先写一个简单的合约将其部署,部署后的合约地址为: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();
}
}