chapter26-code-1
Thu Mar 30 2023 11:41:46 GMT+0000 (Coordinated Universal Time)
Saved by
@RareSkills
// ------------------ V1 -------------------
contract GetSumV1 {
function getSum(address adder, uint256 a, uint256 b) public returns (uint256) {
(bool ok, bytes memory result) = adder.call(abi.encodeWithSignature("add(uint256,uint256)", a, b));
require(ok, "call failed");
uint256 sum = abi.decode(result, (uint256));
return sum;
}
}
// ----------------- V2 --------------------
interface IAdder {
function add(uint256, uint256) external view returns (uint256);
}
contract GetSumV2 {
function getSum(IAdder adder, uint256 a, uint256 b) public returns (uint256) {
adder.add(a, b);
}
}
contract Adder {
function add(uint256 a, uint256 b) public view returns (uint256) {
return a + b;
}
}
content_copyCOPY
Comments