簡體   English   中英

當 self 沒有廣播交易時,如何使用以太坊客戶端從狀態恢復異常中獲取消息?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM