Solidity

為什麼在鑄造代幣後轉移(0x0,_to,_amount)

  • February 13, 2022

https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/MintableToken.sol#L38中,為什麼需要發出事件

Transfer(0x0, _to, _amount);

在鑄造了一些硬幣之後?有人可以解釋一下這行程式碼嗎?您實際上是在將硬幣從0x0轉移到地址_to嗎?

那不是傳輸操作,而是事件通知。

這是通過這種方式完成的,因此僅解釋“轉移”事件的區塊瀏覽器和錢包可以向使用者顯示操作。使用者抱怨轉賬失敗,因為它沒有出現在他們的錢包(或區塊瀏覽器)中。

只有 ‘Transfer’ 事件是ERC20 標準的一部分,而事件 ‘Mint’ 和 ‘Burn’ 不是。解決該限制的方法是從 0x0 生成傳輸以模擬“Mint”事件,並傳輸到 0x0 以模擬“Burn”事件。

作為這行程式碼的原作者,它在 EtherScan 中顯示 EIP-20 交易事件。這樣,代幣銷售購買者在購買代幣銷售時可以看到他們收到了代幣和正確的數量。

更多討論可以在原始原始碼文件中找到:

https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol#L38

引用自:https://ethereum.stackexchange.com/questions/28087