anyFallback
Last updated
function anyExecute(bytes calldata data)
external
returns (bool success, bytes memory result)
{
bytes4 selector = bytes4(data[:4]);
if (selector == this.anyExecute.selector) {
(
string memory message
) = abi.decode(
data[4:],
(string)
);
if (compareStrings(message,"fail")){
return (false, "fail on purpose");
}
emit NewMsg(message);
} else if (selector == this.anyFallback.selector) {
// original data with selector would be passed here if thats the case
(address _to, bytes memory _data) = abi.decode(data[4:], (address, bytes));
this.anyFallback(_to, _data);
} else {
return (false, "unknown selector");
}
return (true, "");
}