1. 程式人生 > >智慧合約內部呼叫另一個智慧合約

智慧合約內部呼叫另一個智慧合約

最近在看以太坊,順便記錄一下,這篇文章的目的是一個智慧合約呼叫另一個智慧合約的方法,寫個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方法

傳送成功後就可以查看了

至此一個合約呼叫另一個合約可以實現