Erc-20

為什麼 Etherscan 報告負代幣餘額?

  • January 29, 2020

我想知道持有人是否可能有 Etherscan 報告的負餘額。下面是我發現的案例的連結:

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事件,那麼當合約鑄造自己的代幣時,它可能會有錯誤的會計處理。

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