pub struct SolanaErrorDecoder;Expand description
Solana error decoder.
Decodes raw error data from Solana program failures. Unlike EVM where errors are ABI-encoded bytes, Solana errors come in several forms:
- Numeric error codes in transaction results
- Program log messages (
"Program failed: custom program error: 0x...") - Instruction error enums
Implementations§
Source§impl SolanaErrorDecoder
impl SolanaErrorDecoder
Sourcepub fn decode_error_code(
&self,
code: u32,
program_id: Option<&str>,
ctx: Option<ErrorContext>,
) -> Result<DecodedError, DecodeErrorError>
pub fn decode_error_code( &self, code: u32, program_id: Option<&str>, ctx: Option<ErrorContext>, ) -> Result<DecodedError, DecodeErrorError>
Decode a Solana error from a numeric error code.
program_id helps determine which error table to use:
Noneor"11111111111111111111111111111111"→ System program"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"→ SPL Token- Other → try Anchor error codes, then fall back to generic
Sourcepub fn decode_log(
&self,
log_line: &str,
ctx: Option<ErrorContext>,
) -> Result<DecodedError, DecodeErrorError>
pub fn decode_log( &self, log_line: &str, ctx: Option<ErrorContext>, ) -> Result<DecodedError, DecodeErrorError>
Decode a Solana error from a program log line.
Parses patterns like:
"Program failed: custom program error: 0x1"→ error code 1"Program log: Error: insufficient funds"→ revert string
Trait Implementations§
Source§impl Default for SolanaErrorDecoder
impl Default for SolanaErrorDecoder
Source§impl ErrorDecoder for SolanaErrorDecoder
impl ErrorDecoder for SolanaErrorDecoder
Source§fn chain_family(&self) -> &'static str
fn chain_family(&self) -> &'static str
Returns the chain family name this decoder handles (e.g.
"evm").Source§fn decode(
&self,
revert_data: &[u8],
ctx: Option<ErrorContext>,
) -> Result<DecodedError, DecodeErrorError>
fn decode( &self, revert_data: &[u8], ctx: Option<ErrorContext>, ) -> Result<DecodedError, DecodeErrorError>
Decode raw revert/error data from a failed transaction. Read more
Source§fn decode_hex(
&self,
hex_str: &str,
ctx: Option<ErrorContext>,
) -> Result<DecodedError, DecodeErrorError>
fn decode_hex( &self, hex_str: &str, ctx: Option<ErrorContext>, ) -> Result<DecodedError, DecodeErrorError>
Convenience: decode from a hex string (with or without
0x prefix).Auto Trait Implementations§
impl Freeze for SolanaErrorDecoder
impl RefUnwindSafe for SolanaErrorDecoder
impl Send for SolanaErrorDecoder
impl Sync for SolanaErrorDecoder
impl Unpin for SolanaErrorDecoder
impl UnsafeUnpin for SolanaErrorDecoder
impl UnwindSafe for SolanaErrorDecoder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more