41调用其他函数
调用其他合约的函数
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
contract CallTestContract{
function setX(address _test,uint _x) external {
TestContract(_test).setX(_x);
}
// 另一种写法
function setX1(TestContract _test,uint _x) external {
_test.setX(_x);
}
function getX(address _test) external view returns (uint){
return TestContract(_test).getX();
}
}
contract TestContract{
uint public x;
uint public value=123;
function setX(uint _x) external {
x=_x;
}
function getX() external view returns (uint){
return x;
}
}
调用其他合约的函数(带主币)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
contract CallTestContract{
function setXandSendEther(address _test,uint _x) external payable {
TestContract(_test).setXandReceiveEther(_x);
}
function getXandValue(address _test) external view returns (uint,uint){
return TestContract(_test).getXandValue();
}
}
contract TestContract{
uint public x;
uint public value=123;
function setX(uint _x) external {
x=_x;
}
function getX() external view returns (uint){
return x;
}
function setXandReceiveEther(uint _x) external payable {
x=_x;
value=msg.value;
}
function getXandValue() external view returns (uint,uint){
return (x,value);
}
}