Json-Rpc
是否所有乙太坊網路都將還原原因作為“消息”欄位返回?
我注意到 Kovan 上的還原交易不包括還原原因。我收到了通用的“已恢復”/“VM 執行錯誤”。
Koval在這方面有什麼特別之處嗎?我知道乙太坊主網在 JSON-RPC 呼叫的“消息”響應中包含了原因。
不,並非所有乙太坊網路都會在
message
現場返回還原原因。科文是個例外。根據 Infura文件:
在 Mainnet、Rinkeby、Ropsten 和 Goerli 上,如果此呼叫導致 EVM 執行 REVERT 操作,則會返回以下形式的錯誤響應,其中 revert 原因預解碼為字元串:
{ "jsonrpc": "2.0", "id": 1, "error": { "code": 3, "message": "execution reverted: Dai/insufficient-balance", "data": "0x08c3..." }
在 Kovan 上,實際的還原原因是作為響應中數據欄位的一部分編碼返回的。
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32015, "data": "Reverted 0x08c3...", "message": "VM execution error." }