Erc-20
為什麼 Etherscan 報告負代幣餘額?
我想知道持有人是否可能有 Etherscan 報告的負餘額。下面是我發現的案例的連結:
- KICK 代幣持有者
0xc12d1c73ee7dc3615ba4e37e4abfdbddfa38907e
:https ://etherscan.io/token/0xc12d1c73ee7dc3615ba4e37e4abfdbddfa38907e?a=0xc12d1c73ee7dc3615ba4e37e4abfdbddfa38907e#tokenAnalytics- WETH 代幣持有者
0x76481caa104b5f6bccb540dae4cefaf1c398ebea
:https ://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2?a=0x76481caa104b5f6bccb540dae4cefaf1c398ebea#tokenAnalytics
Transfer
對於僅基於 ERC20事件並查詢balanceOf
給定地址來跟踪歷史 ERC20 代幣餘額的應用程序而言,其可靠性如何?在某個時間點出現負餘額是否有意義?
Etherscan 是一個封閉原始碼塊瀏覽器,因此我們只能推測它們的行為。
WETH合約在鑄造新代幣時不會產生任何轉移事件。
function deposit() public payable { balanceOf[msg.sender] += msg.value; Deposit(msg.sender, msg.value); // <--- Desposit event it is not Transfer }
從ERC20 規範來看,沒有鑄造代幣的標準事件。大多數項目使用
Transfer(address(0), target, amount)
.如果 Etherscan 僅依賴於
Transfer
事件,那麼當合約鑄造自己的代幣時,它可能會有錯誤的會計處理。