最近在看以太坊,顺便记录一下,这篇文章的目的是一个智能合约调用另一个智能合约的方法,写个demo记录一下

pragma solidity ^0.4.18;

contract DataContract {
    mapping (address => uint256) public balanceOf;

    function setBlance(address _address, uint256 v) public  {
        balanceOf[_address] = v;
    }

}

contract ControlContract {
    mapping (address => uint256) public tmp;
    DataContract dataContract;

    function ControlContract(address _dataContractAddr) public {
        dataContract = DataContract(_dataContractAddr);
    }

    function set(uint256 value) public {
        dataContract.setBlance(msg.sender, value);
        tmp[msg.sender] = value + 10;
    }
}

 

说明 DataContract合约提供了一个公共方法setBalance, ControlContract合约中会调用set方法来更新自己与DataContract保存的数据。

首先部署DataContract合约,然后部署ControlContract合约,在创建的时候需要指定DataContract合约地址。

首先调用set方法

发送成功后就可以查看了

至此一个合约调用另一个合约可以实现

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐