Go-Ethereum
通過 RPC 檢測失敗的令牌傳輸
似乎 Etherscan 可以檢測到失敗的令牌傳輸,即使交易本身是成功的並且氣體沒有完全使用。
有沒有辦法在完整的非歸檔 Geth 節點上通過 RPC 檢測令牌傳輸失敗?eth_getToken 和 eth_getTokenReceipt 在這方面似乎沒有產生任何有用的東西。
Etherscan 知道交易輸入以 0xa9059cbb 開頭(這是呼叫 ERC20 傳輸函式的簽名)。他們也知道目標地址是一個 ERC20 代幣。所以假設使用者想要進行令牌轉移。
為了使 ERC20 令牌傳輸成功,它應該生成一個傳輸事件(傳輸事件的主題 id 為 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef)。
如果您檢查交易的收據並且沒有生成 Transfer 事件,那麼您就知道傳輸失敗或者它來自不合規的 ERC20 合約。