ETH智能合约的调试手段

ETH智能合约的调试手段一 调试手段《1 变量查看(1)变量可设置为publicaddress public withDrawAddress= 0x0;(2)在rimix函数变量调试栏,点击变量同名按钮,即可查看当前值image.png《2 日志...

attachments-2018-03-9MDlTgOS5aa74ab46b850.png

作者:baidang201

文章来源:区块链兄弟

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

ETH智能合约的调试手段
一 调试手段
《1 变量查看

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

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


385
image.png
《2 日志查看

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

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

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


700
image.png
《3 使用remix的Debug功能

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


385
image.png

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


700
image.png

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


700
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);
        
    }
    
}

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

attachments-2018-02-kL1zBfXx5a7ffd0b78798.jpg

  • 发表于 2018-03-13 12:05
  • 阅读 ( 2606 )
  • 分类:以太坊

0 条评论

请先 登录 后评论
不写代码的码农
baidang201

13 篇文章

作家榜 »

  1. 社区运营-小以 422 文章
  2. 社区运营-小链 246 文章
  3. 于中阳Mercina-zy 78 文章
  4. 涂晶 71 文章
  5. 兄弟连区块链培训 57 文章
  6. 李晓琼 45 文章
  7. 吴寿鹤 36 文章
  8. John-smith 28 文章