1. 首页
  2. 技术

ETH智能合约的调试手段

ETH智能合约的调试手段

作者:baidang201

文章来源:区块链兄弟

著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

ETH智能合约的调试手段
一 调试手段

《1 变量查看

(1)变量可设置为public
address public withDrawAddress= 0x0;

(2)在rimix函数变量调试栏,点击变量同名按钮,即可查看当前值


ETH智能合约的调试手段 image.png 《2 日志查看

(1)增加event事件的事件声明
event TransferWithDraw(uint balance);

(2)在要调用日志的地方,执行事件调用
TransferWithDraw(withDraw);

(3)执行函数时,remix在logs列,有TransferWithDraw日志输出语句


ETH智能合约的调试手段 image.png 《3 使用remix的Debug功能

(1)在remix右侧,点击执行要执行的函数


ETH智能合约的调试手段 image.png

(2)查看remix下方,有执行结果输出


ETH智能合约的调试手段 image.png

(3)点击remix下半部分的“Debug”按钮,在右侧弹出Debug工具栏


ETH智能合约的调试手段 image.png

主要关心当前的调试步进,还有当前的变量值。

二 完整实例代码

pragma solidity ^0.4.14;

contract testFundContract {
    address owner;
    address public withDrawAddress = 0x0;
    
    event TransferWithDraw(uint balance);
    
    function testFundContract() {
        owner = msg.sender;
    }
    
    function withDrawAddress(address a) {
        require(msg.sender == owner);
        withDrawAddress = a;
        
    }
    
    function addFund() payable returns (uint) {
        return this.balance;
    }
    
    function withDraw() {
        require(this.balance > 0);
        
        if (0x0  == withDrawAddress ){
            revert();
        }
        
        uint withDraw = this.balance;
        withDrawAddress.transfer(withDraw);
        TransferWithDraw(withDraw);
        
    }
    
}

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

ETH智能合约的调试手段

该内容来自于互联网公开内容,非区块链原创内容,如若转载,请注明出处:https://htzkw.com/archives/4261

联系我们

aliyinhang@gmail.com