智慧合約內部呼叫另一個智慧合約
阿新 • • 發佈:2018-12-15
最近在看以太坊,順便記錄一下,這篇文章的目的是一個智慧合約呼叫另一個智慧合約的方法,寫個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方法
傳送成功後就可以查看了
至此一個合約呼叫另一個合約可以實現