如何知道交易是否通過?(沒氣了)
顯然,當從賬戶而不是錢包發送交易時,消耗的氣體很少(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
這筆交易立即用完了gas。一些交易在進行一些計算後可能會耗盡gas,點擊操作將顯示正在執行的每個步驟以及何時發生gas耗盡。