ERC-223标准
以太坊开发人员Dexaran在一篇文章中详细描述了ETC20不适合的两种场景:
“在ERC20中执行交易有两种方式:
- transfer函数。
- approve + transferFrom机制。
通证余额只是通证合约中的一个变量。
通证的交易是合约内部变量的变化。 转出账户的余额将减少,转入账户的余额将增加。
交易发生时, transfer()函数不会通知转入账户。 因此转入账户将无法识别传入的交易! 我写了一个例子,可以展示这一导致未处理的交易和资金损失的过程 。
因此,如果接收账户是合约,那么必须使用approve + transferFrom机制来发送通证。 如果接受账户是外部拥有帐户,则必须通过transfer函数发送通证。 如果选择了错误的机制, 通证将卡在合约内(合约将不会识别交易),没有办法来提取这些卡壳的通证。“
他对这个问题提出的解决方案包含在ERC-223中 。 它与ERC-20标准非常相似,但解决了上述问题。 当通证转移到智能合约账户时,该合约的特殊函数tokenFallback() 允许接收方合约拒绝令牌或触发 进一步的操作。 在大多数情况下,这可以用来代替approve()函数。
- 标准状态:标准打开
- 建议日期:3/5/2017
如果你希望高效的学习以太坊DApp开发,可以访问汇智网提供的最热门在线互动教程:
其他更多内容也可以访问这个以太坊博客。