1. 程式人生 > >以太坊:Solidity中require校驗不過時的異常訊息是怎麼解析的

以太坊:Solidity中require校驗不過時的異常訊息是怎麼解析的

轉載請註明出處:https://www.cnblogs.com/zhizaixingzou/p/10122209.html


https://solidity-cn.readthedocs.io/zh/develop/control-structures.html?highlight=revert%20

 

經過實際程式來看下:

pragma solidity ^0.4.12;

contract DataStore {
    constructor () public {
        require(80==11, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
}

 

部署的時候就會返回為revert,此時的校驗不過說明字串在程式結果的hReturn中儲存:

08c379a0

0000000000000000000000000000000000000000000000000000000000000020

000000000000000000000000000000000000000000000000000000000000002e

6161616161616161616161616161616161616161616161616161616161616161

6161616161616161616161616161000000000000000000000000000000000000

 

解析這個結果時需要先去掉函式簽名的4個位元組。

結果輸出如下: