Go-Ethereum
檢查事務是否通過 RPC 失敗
我使用 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' } }