Go-Ethereum

檢查事務是否通過 RPC 失敗

  • June 24, 2021

我使用 sendTransaction 通過 geth RPC 呼叫合約並獲取交易雜湊。如果此事務由於 VM 中止(Solidity throw 語句,類似)而失敗,是否有辦法通過 geth RPC 介面進行驗證?

交易收據似乎沒有提供任何變數來說明這一點。

@eth 的回答不准確。

使用 eth_getTransactionReceipt 獲取狀態: QUANTITY 1(成功)或 0(失敗)將更精確

參考:

https ://eth.wiki/json-rpc/API

            // Request
           curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

           // Result
           {
           "id":1,
           "jsonrpc":"2.0",
           "result": {
               transactionHash: '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238',
               transactionIndex:  '0x1', // 1
               blockNumber: '0xb', // 11
               blockHash: '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b',
               cumulativeGasUsed: '0x33bc', // 13244
               gasUsed: '0x4dc', // 1244
               contractAddress: '0xb60e8dd61c5d32be8058bb8eb970870f07233155', // or null, if none was created
               logs: [{
                   // logs as returned by getFilterLogs, etc.
               }, ...],
               logsBloom: "0x00...0", // 256 byte bloom filter
               status: '0x1'
           }
           }

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