contract ExampleContract {
function askTheMeaningOfLife(address source) public returns (uint256) {
(bool ok, bytes memory result) = source.call(abi.encodeWithSignature("meaningOfLifeAndAllExistence()"));
require(ok, "call failed");
return abi.decode(result, (uint256));
}
}
contract AnotherContract {
function meaningOfLifeAndAllExistence() public pure returns (uint256) {
return 42;
}
}