0x0000000000000000000000000000000000000000 怎麼可能發送 ERC-20 代幣?
不是
0x0000000000000000000000000000000000000000
沒有人有私鑰的燒錄地址嗎?如果是這樣,該地址如何將代幣發送到其他地址?如果你查看 Etherscan 的 ERC-20 Token 選項卡,有很多 OUT 記錄:https ://etherscan.io/address/0x00000000000000000000000000000000000000000#tokentxns
根據ERC20 標準,新創建的 ERC20 代幣被發送
0x0000000000000000000000000000000000000000
到它們打算發送到的地址。它是作為一種記錄方式來完成的,並且是為了避免無中生有地創建令牌。更新
ERC20 標準實際上並未定義代幣是從
0x0000000000000000000000000000000000000000
. 只需通過添加到balances
所需使用者的映射、發出Transfer()
事件並將該值添加到_totalSupply
.雖然標準中沒有定義,但最佳實踐是在創建令牌時將
Transfer()
事件0x0
作為地址發出。它允許前端客戶端讀取事件並根據該事件顯示數據。從這篇文章:這是通過這種方式完成的,因此僅解釋“轉移”事件的區塊瀏覽器和錢包可以向使用者顯示操作。使用者抱怨轉賬失敗,因為它沒有出現在他們的錢包(或區塊瀏覽器)中。
只有“Transfer”事件是 ERC20 標準的一部分,“Mint”和“Burn”事件不是。這是一種解決該限制的方法,即從 0x0 生成傳輸以模擬“Mint”事件,並從 0x0 傳輸以模擬“Burn”事件。
您在連結頁面上看到的每筆交易都是 Etherscan 對令牌創建的表示。
為了補充這一點,請查看已將 ERC20 代幣轉移到其他地方的任何地址。如果您點擊“ERC20 Token Tx”選項卡,您將看到將代幣從一個使用者發送到另一個使用者的交易。實際發生的是從發送者到代幣合約的交易,它減少了發送者的
balances
映射,添加到接收者的balances
映射,並發出一個Transfer()
事件。您在該選項卡上看到的只是 EtherscanTransfer()
對令牌事件的讀取。