示例代码如下:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
contract A {
string name;
function setName(string memory _name)public{
name=_name;
}
function getName()public view returns(string memory){
return name;
}
}
contract call_demo{
A a;
constructor(address addr){
a=A(addr);
}
function setName(string memory _name)public{
a.setName(_name);
}
function getName()public view returns(string memory){
return a.getName();
}
}
这里我们先创建了A合约,并且写入了两个方法,之后又创建了合约call_demo对A合约中的两个方法进行了调用;首先部署A合约,之后将A合约的地址传给call_demo,就成功实现了智能合约间的简单调用。
抽象成接口后合约调用代码:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
interface IA {
function setName(string memory _name)external;
function getName()external view returns(string memory);
}
contra