Use Solidity Like a Professional
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
不要自己发明标准。用别人发明好的。
最常见的代币合约,来自 ERC20.
兼容 ERC20.
定义了向合约转 token 的标准处理方式,要求合约支持 tokenFallback 调用,否则失败。(参数检查)
避免 ERC20 token 被发入黑洞地址(发往合约,如果该合约不能支持提token出来,那么就是黑洞)
非同质化代币。例如以太猫。 NFT.
The Final Token Standard on Ethereum.
是 ERC20 和 ERC721 的结合体.。支持批量转账。
Future Proofing Smart Contracts and Tokens.
通过修改 delegate address 方式,使合约可以持续升级.
检查合约支持的接口。
Contract interface Registry.
又一 ERC20 替代,兼容, 必须在 ERC1820 注册。方法较多。
token(erc20) metadata uri. 链上管理 ERC20 token 的配置源信息。
但实际上是提供一个 URL 去下载一个固定格式的 JSON 文件。
1047 是其 metadata 格式 = ERC20Metadata
合约实现的业界标杆。人类希望。
AccessControl: role based access contrl
Ownable: 提供 onlyOwner modifier, ownership 管理
SafeMath/SignedSafeMath
Pausable: 合约的紧急停止手段
ReentrancyGuard: 防止函数被重入,重要的防攻击手段
及若干 TOKEN 实现
参考 ERC1538.
参考 ERC223.
先更改合约本地变量,再进行外部调用的风格
使用预言机机制获取外部参数时候,应该保存重要参数例如价格,与上一次做对比,波动过大时候暂停合约
波场缺乏链上随机变量,即所有TVM中可获取的外部变量均是可预测的。所以建议使用两步法产生随机变量。
概念验证代码(含合约和触发后端)
impl:
Metadata 格式参考: