合约与链上逻辑
核心智能合约是 Red Devils 的「事实来源」。本篇拆解注册、NFT 铸造、USDT/RMAB 兑换与奖励合约的职责与链上实现,以及 Hardhat 部署流程与安全考量。
01核心合约职责
| 合约 | 职责 | 关键方法(示意) |
|---|---|---|
| 注册合约 | 绑定钱包地址与账户,管理注册状态 | register · isRegistered |
| NFT 铸造合约 | 铸造 Red Devils NFT,记录归属 | mint · ownerOf · tokenURI |
| 兑换合约 | USDT 与 RMAB 双向兑换,管理汇率与储备 | swapIn · swapOut · getRate |
| 奖励合约 | 计算并发放 RMAB 奖励,管理领取 | claim · pendingReward |
| RMAB 代币合约 | RMAB 的铸造、转账、销毁与授权 | mint · burn · transfer · approve |
02链上实现逻辑
注册逻辑
注册合约维护一个「地址 → 注册状态」的映射。用户调用 register() 时,合约校验地址尚未注册,随后更新状态并触发 Registered 事件。注册是后续铸造的前提。
铸造逻辑
NFT 合约遵循 ERC-721 标准。铸造时合约校验用户的注册状态与费用支付,随后为调用者铸造新的 tokenId 并记录归属。铸造使用代币(USDT / RMAB)支付时,需先通过兑换 / 手续费合约完成扣款。
兑换逻辑
swapIn(USDT → RMAB)接收 USDT → 铸造/释放 RMAB → 更新余额
▼
swapOut(RMAB → USDT)接收 RMAB → 销毁/转入储备 → 支付 USDT
兑换合约通过储备池与累计供应计算实时汇率,并执行对应代币的转移或铸造 / 销毁操作。
奖励逻辑
奖励合约根据持有数量、活跃度与等级计算应得奖励,用户调用 claim() 时校验领取资格并发放 RMAB。
03Hardhat 开发与部署
Red Devils 使用 Hardhat 作为 Solidity 开发与部署框架:
- 编写合约在
contracts/目录编写 Solidity 合约。 - 编写测试在
test/目录编写单元与集成测试,覆盖注册 / 铸造 / 兑换 / 奖励。 - 本地验证使用 Hardhat Network 本地运行测试,验证逻辑正确。
- 部署脚本在
scripts/编写部署脚本,部署并初始化合约。 - 链上部署部署至目标网络(如 BSC),记录合约地址供前端引用。
- 验证合约通过区块浏览器验证合约源码,保证公开可审计。
04链上安全考量
常见风险与对策
| 风险 | 对策 |
|---|---|
| 重入攻击 | 使用 Checks-Effects-Interactions 模式与重入锁 |
| 整数溢出 | 使用 SafeMath / Solidity 0.8+ 内置溢出检查 |
| 权限失控 | 仅对必要地址授予管理权限,使用多签 / 时间锁 |
| 授权滥用 | 采用最小授权,避免无上限授权 |
| 未知漏洞 | 通过严格测试与第三方审计降低风险 |
🔥 风险提示
智能合约一旦部署即不可更改,逻辑漏洞可能导致资金损失。Red Devils 高度重视合约安全,但去中心化交互仍存在固有风险。非投资建议,自担风险。
📌 免责声明
本文档不构成投资建议,非投资建议,自担风险。合约逻辑与部署信息以链上实际情况与官方公告为准。