Json-Rpc

是否所有乙太坊網路都將還原原因作為“消息”欄位返回?

  • January 20, 2021

我注意到 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."
}

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