如何通过合约调用合约

前段时间,处理了一个ERC20访问ERC721的合约问题。涉及到两个合约之间的相互调用,猛查了一通资料,找到了一个适合自己的方法,在这里分享给大家。
我这里写一个简单的例子,分享给大家,如果有不明白的地方,可以加v交流。v:54516204
合约1
pragma solidity ^0.6.12;
contract test1 {
uint256 public test = 1;

function settest(uint256  itest) public  {
     test = itest;
}
function gettest() public  veiw returns(uint256) {
	return test;
}

}
这是一个简单的合约,如果我在另一个合约中,想访问合约1中的settest和gettest函数,如何做得到呢,下面是合约2
pragma solidity ^0.6.12;
contract test1 {
//首先声明两个要访问的函数
function settest(uint) public returns (uint256) {}
function gettest() public pure returns (uint256) {}

}
contract Existing {

test1 ts1;

//定义一下合约1的地址
address internal ad1=合约1的地址;
ts1=test1(ad1);
function getts1() public view returns (uint result) {
return ts1.gettest();
}

function setts1(uint256 value) public  {
    ts1.settest(value);
}

}
通过这种方式,合约2就能正常的访问合约1的函数了,如果你想访问更多,那么你就在test1中声明更多的公用函数。

猜你喜欢

转载自blog.csdn.net/weixin_38532278/article/details/124568394