以太坊網絡把在網絡上讀與寫數據進行了區分,寫數據被稱做交易(transaction),讀數據被稱做調用(call)。網絡
第一個合約:Doug.sol代碼以下:app
pragma solidity ^0.4.19; contract Doug{ mapping (bytes32 => uint) public contracts; function Doug() { contracts['hww'] = 1; contracts['brian'] = 2; contracts['zzy'] = 7; } function getDougName(string _name) public view returns(string) { return _name; } function getDougAge(uint _age) public pure returns(uint) { return 3 ** _age; } }
第二個合約 myContract.sol 代碼以下:工具
pragma solidity ^0.4.19; contract DogInterface { function getDougAge(uint _age) returns (uint); function contracts(bytes32 name) returns (uint); } contract main{ event FetchContract(address dogInterfaceAddress, address sender, bytes32 name); address DOUG; address dogInterfaceAddress = 0x3e6494333ae0e929ade0eb9a19fb02632b8e07cf; DogInterface dogContract = DogInterface(dogInterfaceAddress); function setDOUG(address _doug) { DOUG = _doug; } function dougOfage(uint _age) public view returns(uint) { uint num = dogContract.getDougAge(_age); return _age+num; // return num; } function uintOfName(bytes32 _name) returns (uint) { dogContract.contracts(_name); FetchContract(dogInterfaceAddress, msg.sender, _name); } // function getTest(string _name) public view returns(string) { // string memory newName = _name ; // DogInterface(DOUG).getDougName(newName); // return newName; // } }
執行結果: ui