gmsol_decode/decoder/
transaction_access.rs1pub use anchor_lang::prelude::AccountMeta;
2use solana_sdk::instruction::CompiledInstruction;
3pub use solana_sdk::{message::v0::MessageAddressTableLookup, signature::Signature};
4pub use solana_transaction_status_client_types::UiTransactionStatusMeta;
5
6use crate::DecodeError;
7
8pub trait TransactionAccess {
10 fn slot(&self) -> Result<u64, DecodeError>;
12
13 fn index(&self) -> Result<Option<usize>, DecodeError>;
19
20 fn signature(&self) -> Result<&Signature, DecodeError>;
22
23 fn num_signers(&self, is_writable: bool) -> Result<usize, DecodeError>;
25
26 fn num_accounts(&self) -> usize;
28
29 fn message_signature(&self, idx: usize) -> Option<&Signature>;
31
32 fn account_meta(&self, idx: usize) -> Result<Option<AccountMeta>, DecodeError>;
34
35 fn num_address_table_lookups(&self) -> usize;
37
38 fn address_table_lookup(&self, idx: usize) -> Option<&MessageAddressTableLookup>;
40
41 fn num_instructions(&self) -> usize;
43
44 fn instruction(&self, idx: usize) -> Option<&CompiledInstruction>;
46
47 fn transaction_status_meta(&self) -> Option<&UiTransactionStatusMeta>;
49}