![](/img/trans.png)
[英]How to read information from ethereum transaction using transactionHash in web3?
[英]How can one obtain the message from state-reverting exception using ethereum clients, when self did not broadcast transaction?
假設以太坊智能合約具有外部函數“foo”,其邏輯具有狀態恢復異常require(1 == 0, 'error: you broke the simulation!');
.
如果以太坊客戶端 A 廣播交易“txA”,這是對 foo 的函數調用,那么以太坊客戶端 B 如何訪問與“txA”對應的狀態恢復消息?
編輯:“怎么做”,我的意思是開發人員實際上如何讓以太坊客戶端 B 訪問這些數據。 即你能指出我從特定工具正確(低級..不是 webui)api/rpc 調用的方向嗎?
顯然這是可能的,因為區塊瀏覽器為失敗的交易提供了這樣的消息。 我通讀了 etherscan 的一些源代碼,但它們的 javascript 被最小化且不易閱讀。
提前致謝!
請參閱: https : //ethereum.stackexchange.com/questions/39817/are-failed-transactions-included-in-the-blockchain
失敗的交易通常包含在鏈中。
您有時會看到,如果您正在使用例如 MetaMask,則會在將交易發送到鏈之前出現一個彈出窗口,提示“此交易將失敗”。 這是 MetaMask 試圖提供幫助並防止您浪費汽油。 但是,你可以強制要送出的交易,你會得到一個失敗/恢復交易張貼在鏈(像這樣一個對這個密實度的來源)。
所以為了回答最初的問題,如果 TxA 被發布在鏈上,那么客戶端 B 將處理它並自己獲取恢復消息。 如果 TxA 沒有發布在鏈上,那么就沒有它的記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.