[solidity]合约调用合约
先写一个简单的合约将其部署,部署后的合约地址为:0xd9145CCE52D386f254917e481eB44e9943F39138
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;contract A{string myname;function setName(string memory _name) public{myname=_name;}function getName() public view returns(string memory) {return myname;}
}
然后再写一个CallA合约去调用A合约;需要在CallA合约中包含合约A的变量,并在部署时传入合约A的地址。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;import "./A.sol";contract CallA{A a;//输入A合约的地址constructor(address addr){//将该地址强转为A合约对象a=A(addr);}function setAName(string memory _name) public {a.setName(_name);}function getName() public view returns(string memory) {return a.getName();}
}