Adding custom errors
eugenioclrc opened this issue · 1 comments
eugenioclrc commented
Currently there is the REQUIRE
that lets you mimic solidity require(condition, "message")
I want to propose a REQUIRE_CUSTOM_ERROR
:
#define macro REQUIRE_CUSTOM_ERROR() = takes(2) returns(0) {
// [condition, customErrorSig]
do_not_throwErr jumpi
0x00 mstore
0x04 0x00 revert
do_not_throwErr:
pop
}
eugenioclrc commented
Perhaps this is even better, (ERROR_SIGNATURE = PUSH4 SIG
):
/// @notice Reverts with a Custom error
#define macro ERR_CUSTOM() = takes (1) returns (0) {
// ERROR SIGNATURE
0x00 mstore
0x04 0x1c revert
}
#define macro REQUIRE_CUSTOM_ERROR(ERROR_SIGNATURE) = takes(2) returns(0) {
// [condition, customErrorSig]
do_not_throwErr jumpi
<ERROR_SIGNATURE>
ERR_CUSTOM()
do_not_throwErr:
}