Erc-20

如何從 ERC20 代幣中複製每個地址和持有量?

  • February 24, 2018

我要從我的 ERC20 令牌的 f***d 創建新版本(問題在其他地方不在 ERC20 實現中),我已經知道如何燒掉舊令牌並在使用者請求時發送新令牌它。

但是在合約初始化之後立即執行一次會好得多。

我知道我可以使用映射來獲取地址,

contract OLD_CONTRACT {
   mapping (address => mapping (uint => uint)) public balances;

但是然後我如何在某個循環中使用這些地址來將我的新令牌的確切數量轉移到每個地址。最重要的是我怎樣才能以某種有效的方式做到這一點?

你真的不能。由於它儲存在映射中,因此您需要訪問該合約的每個地址的餘額,因為地址本身實際上並未儲存在該合約中。但是,如果您可以凍結 OLD_CONTRACT 的餘額,您可以讓balances新合約上的函式檢查餘額是否已在新合約上初始化,如果還沒有,則將其設置為舊合約上使用者的餘額契約。

另一種選擇是使用https://github.com/Giveth/minime,這是一個允許在給定塊號上“分叉”的令牌。

或者,你可以有一個“升級”機制,人們會批准你的合約從舊合約中轉移他們的代幣,然後他們upgrade在你的新合約上呼叫一個函式,燒掉他們所有的舊代幣並給他們新的代幣。

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