#[derive(SolidityError)]Expand description
Allows an error enum to be used in method signatures.
sol! {
error InsufficientBalance(address from, uint256 have, uint256 want);
error InsufficientAllowance(address owner, address spender, uint256 have, uint256 want);
}
#[derive(SolidityError)]
pub enum Erc20Error {
InsufficientBalance(InsufficientBalance),
InsufficientAllowance(InsufficientAllowance),
}
#[public]
impl Contract {
pub fn fallible_method() -> Result<(), Erc20Error> {
// code that might revert
}
}Under the hood, the above macro works by implementing From<Erc20Error> for Vec<u8>
along with printing code for abi-export.