Solidity
我們可以修改 ERC20 的功能嗎?
我必須使用 ERC 20 創建和傳輸代幣。在 ERC 20 的標準介面中,我們有函式approve(address sender,using token),它反過來批准spender 從(msg.sender)獲取一些代幣。我的問題是,我們可以指定其他一些我們希望從中轉移的帳戶地址,而不是 (msg.sender)..?(即我們可以為函式批准傳遞一個額外的參數,比如批准(地址所有者,地址花費者,uint令牌)……??)
如果您希望您的代幣符合 ERC20 ,您必須具有所需的功能和所需的簽名。這就是標準的全部意義所在。
但是,這給您留下了另外兩個選擇:
添加更多函式和/或合約變數。只要合約中也存在所需的 ERC20 簽名,您就可以使用您希望的任何簽名和功能添加您希望的任何功能。
在所需的 ERC20 函式中做任何你想做的事情。ERC20 只能被視為一個介面——它不會告訴你如何實現這些功能,只是強制你在合約中擁有某些功能。例如,您可以使用自定義函式添加一些數據,並在所需的
approve
函式中以某種方式使用數據。
如果您這樣做,您將不再是 ERC20 代幣。
ERC20 令牌必須公開具有完全相同簽名的已定義方法。這意味著您不能更改參數或名稱。
您可以添加修飾符,或更新函式內部的程式碼(正如可暫停標記和其他擴展標記的各種實現所做的那樣)。
如果你想定義一個額外的方法,你可以這樣做,但是你原來的approv()方法必須保留它的參數。