最近在看以太坊,顺便记录一下,这篇文章的目的是一个智能合约调用另一个智能合约的方法,写个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方法
发送成功后就可以查看了
至此一个合约调用另一个合约可以实现