我从以太坊官方网站上获取了ERC20令牌的代码。 链接:https://www.ethereum.org/token(页面末尾) 我的问题是为什么他们在那里有两个合同,即TokenERC20和MyAdvancedToken,而不将所有功能合并在一个合同中?另外,我应该部署哪个合同才能使所有功能正常工作?提前非常感谢您。
spring.profiles.active=@activatedProperties@
答案 0 :(得分:0)
TokenERC20
是大多数人使用的标准ERC20令牌。通过此合同,您可以创建具有ERC20令牌基本功能的令牌,例如transfer
,transferFrom
,approve
等。这些都是符合{ {3}}。
MyAdvancedToken
合同是TokenERC20
合同的扩展(因此,行MyAdvancedToken is owned, TokenERC20
)。这意味着MyAdvancedToken能够使用TokenERC20的所有功能,而无需重写整个内容。该合同存在的原因是为了赋予令牌其他功能。
在此示例中,您可以看到所有者能够铸造其他令牌并冻结特定用户的令牌。虽然这不是ERC20规范的直接组成部分,但是您可以添加类似的功能。
您可能会看到两个合同中都包含某些功能,例如_transfer
。发生这种情况时,子合同功能将覆盖父合同。在这种情况下,调用时执行的_transfer
函数就是检查冻结帐户的函数。