Finds enums marked with thiserrorError derive and consume each error attribute on the
respective variant to extract error information.
Supports explicit and implicit variant discriminants as well as a mix of both, some examples it
handles:
Implicit Discriminants (Error codes)
/// Errors that may be returned by the Vault program.
#[derive(Clone, Debug, Eq, Error, FromPrimitive, PartialEq)]
pub enum VaultError {
/// Invalid instruction data passed in.
#[error("Failed to unpack instruction data")]
InstructionUnpackError,
/// Lamport balance below rent-exempt threshold.
#[error("Lamport balance below rent-exempt threshold")]
NotRentExempt,
}
Finds enums marked with
thiserror
Error
derive and consume eacherror
attribute on the respective variant to extract error information.Supports explicit and implicit variant discriminants as well as a mix of both, some examples it handles:
Implicit Discriminants (Error codes)
IDL:
Mixed Discriminants (Error Codes)
IDL
Improvements
To extract correct error codes
ParsedEnum
was improved to handle multiple discriminant scenarios.FIXES: https://github.com/metaplex-foundation/metaplex-program-library/issues/261