145 lines
8.2 KiB
Rust
145 lines
8.2 KiB
Rust
// file: kb-lib/src/decoder/spl.rs
|
|
// version: 5
|
|
|
|
//! `spl` decoder family.
|
|
|
|
pub mod account_compression;
|
|
pub mod associated_token_account;
|
|
pub mod elgamal_registry;
|
|
pub mod memo;
|
|
pub mod noop;
|
|
pub mod single_pool;
|
|
pub mod stake_pool;
|
|
mod token;
|
|
pub mod token_2022;
|
|
|
|
/// Current stable Associated Token Account decoded event contract version.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION;
|
|
/// Exact Associated Token Account instructions published by the official interface.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES;
|
|
/// Maximum retained account-key text length for the Associated Token Account decoder.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES;
|
|
/// Maximum retained instruction account count for the Associated Token Account decoder.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS;
|
|
/// Maximum retained semantic diagnostic count for the Associated Token Account decoder.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS;
|
|
/// Maximum retained Associated Token Account instruction payload size.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES;
|
|
/// Maximum retained transaction account-key count for the Associated Token Account decoder.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS;
|
|
/// Stable protocol and surface code for the Associated Token Account program.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE;
|
|
/// Canonical tracing target for the Associated Token Account decoder.
|
|
pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET;
|
|
/// Decodes one bounded Associated Token Account instruction.
|
|
pub(crate) use self::associated_token_account::spl_associated_token_account_decode;
|
|
/// Returns the exact entry matching an Associated Token Account wire.
|
|
pub(crate) use self::associated_token_account::spl_associated_token_account_entry;
|
|
/// Reads one bounded Associated Token Account payload.
|
|
pub(crate) use self::associated_token_account::spl_associated_token_account_payload;
|
|
/// One parsed SPL ElGamal registry instruction.
|
|
pub(crate) use self::elgamal_registry::ParsedRegistryInstruction;
|
|
/// Current stable SPL ElGamal registry event contract version.
|
|
pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_EVENT_VERSION;
|
|
/// Maximum retained SPL ElGamal registry instruction payload size.
|
|
pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES;
|
|
/// Stable SPL ElGamal registry surface code.
|
|
pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_SURFACE_CODE;
|
|
/// Canonical tracing target for the SPL ElGamal registry decoder.
|
|
pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_TRACING_TARGET;
|
|
/// Decodes one bounded SPL ElGamal registry instruction.
|
|
pub(crate) use self::elgamal_registry::spl_elgamal_registry_decode;
|
|
/// Decodes one bounded SPL ElGamal registry instruction payload.
|
|
pub(crate) use self::elgamal_registry::spl_elgamal_registry_decode_payload;
|
|
/// Parses one exact SPL ElGamal registry instruction.
|
|
pub(crate) use self::elgamal_registry::spl_elgamal_registry_parse;
|
|
/// Maximum payload prefix retained for bounded diagnostics.
|
|
pub(crate) use self::memo::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES;
|
|
/// Current stable Memo decoded event contract version.
|
|
pub(crate) use self::memo::SPL_MEMO_EVENT_VERSION;
|
|
/// Maximum decoded instruction data retained as a complete Memo payload.
|
|
pub(crate) use self::memo::SPL_MEMO_MAX_PAYLOAD_BYTES;
|
|
/// Stable protocol code shared by Memo generations.
|
|
pub(crate) use self::memo::SPL_MEMO_PROTOCOL_CODE;
|
|
/// Canonical tracing target for the SPL Memo decoder.
|
|
pub(crate) use self::memo::SPL_MEMO_TRACING_TARGET;
|
|
/// Stable Memo v1 surface code.
|
|
pub(crate) use self::memo::SPL_MEMO_V1_SURFACE_CODE;
|
|
/// Stable Memo v3 surface code.
|
|
pub(crate) use self::memo::SPL_MEMO_V3_SURFACE_CODE;
|
|
/// Stable Memo v4 surface code.
|
|
pub(crate) use self::memo::SPL_MEMO_V4_SURFACE_CODE;
|
|
/// Decodes one bounded SPL Memo instruction.
|
|
pub(crate) use self::memo::spl_memo_decode;
|
|
/// Maximum prefix retained in bounded classic SPL Token diagnostics.
|
|
pub(crate) use self::token::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES;
|
|
/// Current stable classic SPL Token decoded event contract version.
|
|
pub(crate) use self::token::SPL_TOKEN_EVENT_VERSION;
|
|
/// One exact classic SPL Token instruction entry published by the official interface.
|
|
pub(crate) use self::token::SPL_TOKEN_INSTRUCTION_ENTRIES;
|
|
/// Maximum total account metas consumed by one classic SPL Token batch.
|
|
pub(crate) use self::token::SPL_TOKEN_MAX_BATCH_ACCOUNTS;
|
|
/// Maximum decoded sub-instructions in one classic SPL Token batch.
|
|
pub(crate) use self::token::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS;
|
|
/// Maximum retained classic SPL Token instruction payload size.
|
|
pub(crate) use self::token::SPL_TOKEN_MAX_INSTRUCTION_BYTES;
|
|
/// Stable protocol and surface code for the classic SPL Token program.
|
|
pub(crate) use self::token::SPL_TOKEN_SURFACE_CODE;
|
|
/// Canonical tracing target for the classic SPL Token decoder.
|
|
pub(crate) use self::token::SPL_TOKEN_TRACING_TARGET;
|
|
/// Decodes one bounded classic SPL Token instruction.
|
|
pub(crate) use self::token::spl_token_decode;
|
|
/// Returns the published entry matching one classic SPL Token tag.
|
|
pub(crate) use self::token::spl_token_entry_for_tag;
|
|
/// Returns the first byte of one retained classic SPL Token payload.
|
|
pub(crate) use self::token::spl_token_payload_tag;
|
|
/// Maximum prefix retained in bounded Token-2022 diagnostics.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES;
|
|
/// Current stable Token-2022 decoded event contract version.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_EVENT_VERSION;
|
|
/// Exact top-level instruction inventory published by the resolved Token-2022 interface.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_INSTRUCTION_ENTRIES;
|
|
/// Maximum total account metas consumed by one Token-2022 batch.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS;
|
|
/// Maximum decoded sub-instructions in one Token-2022 batch.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS;
|
|
/// Maximum retained Token-2022 instruction payload size.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES;
|
|
/// Maximum retained UTF-8 string size for embedded Token Metadata instructions.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES;
|
|
/// Stable Token-2022 surface code.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_SURFACE_CODE;
|
|
/// Canonical tracing target for the Token-2022 decoder.
|
|
pub(crate) use self::token_2022::SPL_TOKEN_2022_TRACING_TARGET;
|
|
/// Decodes one bounded Token-2022 instruction.
|
|
pub(crate) use self::token_2022::spl_token_2022_decode;
|
|
/// Returns the exact entry matching one Token-2022 tag.
|
|
pub(crate) use self::token_2022::spl_token_2022_entry_for_tag;
|
|
/// Returns the first byte of one retained Token-2022 payload.
|
|
pub(crate) use self::token_2022::spl_token_2022_payload_tag;
|
|
|
|
/// Exact decoder for the SPL Associated Token Account program.
|
|
pub use self::associated_token_account::SplAssociatedTokenAccountDecoder;
|
|
/// Exact byte length of one SPL ElGamal registry account.
|
|
pub use self::elgamal_registry::ELGAMAL_REGISTRY_ACCOUNT_LEN;
|
|
/// Parsed SPL ElGamal public-key registry account.
|
|
pub use self::elgamal_registry::ElGamalRegistryState;
|
|
/// Exact decoder for the SPL ElGamal registry program.
|
|
pub use self::elgamal_registry::SplElgamalRegistryDecoder;
|
|
/// Parses one exact SPL ElGamal registry account.
|
|
pub use self::elgamal_registry::parse_elgamal_registry_state;
|
|
/// Exact decoder for the three registered SPL Memo generations.
|
|
pub use self::memo::SplMemoDecoder;
|
|
/// Exact decoder for the classic SPL Token program.
|
|
pub use self::token::SplTokenDecoder;
|
|
/// Exact decoder for the Token-2022 program.
|
|
pub use self::token_2022::SplToken2022Decoder;
|
|
/// Parsed Token-2022 Mint, Account, or Multisig state.
|
|
pub use self::token_2022::Token2022State;
|
|
/// Exact Token-2022 base account state kind.
|
|
pub use self::token_2022::Token2022StateKind;
|
|
/// One exact Token-2022 TLV entry.
|
|
pub use self::token_2022::Token2022TlvEntry;
|
|
/// Parses one Token-2022 Mint, Account, or Multisig state.
|
|
pub use self::token_2022::parse_token_2022_state;
|