Transactions

如何知道交易是否通過?(沒氣了)

  • August 21, 2019

顯然,當從賬戶而不是錢包發送交易時,消耗的氣體很少(21K),不足以將乙太幣發送到合約錢包(可以說是用盡了氣體)。

發生這種情況時,交易不應該通過(或被取消,正如它所說的here),但它似乎仍然記錄在區塊鏈中,為什麼?例子

etherscan.io 是否沒有提供有關交易最終是否有效的任何線索?據我所知,在這種情況下,它應該在該 URL 中標記為 CANCELLED/INVALID。

使用 etherscan 區塊鏈瀏覽器

TxReceipt Status在 etherscan中,尋找Fail紅色或Success綠色的。

失敗範例: https ://ropsten.etherscan.io/tx/0x67a5f6442f49a5da6ff8682250a8eef899d9dc0c5adf20b683709433902b5956

使用收據

eth.getTransactionReceipt(transactionHash)將返回一個status欄位,該欄位的值0是事務失敗1時間和事務成功時間。

這是一個顯示該status欄位的範例:

{ blockHash: '0xb1fcff633029ee18ab6482b58ff8b6e95dd7c82a954c852157152a7a6d32785e',
 blockNumber: 4370000,
 contractAddress: null,
 cumulativeGasUsed: 21000,
 gasUsed: 21000,
 logs: [],
 logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
 root: null,
 status: 1, // **** HERE IS THE STATUS FIELD *****
 transactionHash: '0x1421a887a02301ae127bf2cd4c006116053c9dc4a255e69ea403a2d77c346cf5',
 transactionIndex: 0 }

更多細節在這裡


歷史

要查看交易是否用完 gas,您可以在https://live.ether.camp中輸入交易(雜湊) ,然後點擊“VM Trace”。(對於測試網 Morden,請使用https://morden.ether.camp

或者在這個 url 中插入 transactionHash:

https://live.ether.camp/transaction/<transactionHash>/vmtrace#0

對於問題中提到的交易,022f440fa96eb469363804d7b6c52321d4f409fa76578cdbdc5f04ff494b1321

這是輸出 https://live.ether.camp/transaction/022f440fa96eb469363804d7b6c52321d4f409fa76578cdbdc5f04ff494b1321/vmtrace#0

在此處輸入圖像描述

這筆交易立即用完了gas。一些交易在進行一些計算後可能會耗盡gas,點擊操作將顯示正在執行的每個步驟以及何時發生gas耗盡。

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