// file: kb_decoder_spl_token_2022/src/lib.rs // version: 6 //! Decoder crate for `spl_token_2022`. #![warn(missing_docs)] #![deny(unreachable_pub)] #![forbid(unsafe_code)] mod constants; mod decoder; pub mod state; mod token; /// Maximum prefix retained in diagnostics. pub(crate) use crate::constants::DIAGNOSTIC_PREFIX_BYTES; /// Exact top-level instruction inventory published by the resolved Token-2022 interface. pub(crate) use crate::constants::INSTRUCTION_ENTRIES; /// Maximum total account metas consumed by one batch. pub(crate) use crate::constants::MAX_BATCH_ACCOUNTS; /// Maximum decoded sub-instructions in one batch. pub(crate) use crate::constants::MAX_BATCH_INSTRUCTIONS; /// Maximum retained instruction payload size. pub(crate) use crate::constants::MAX_INSTRUCTION_BYTES; /// Maximum retained UTF-8 string size for embedded Token Metadata instructions. pub(crate) use crate::constants::MAX_METADATA_STRING_BYTES; /// Stable Token-2022 surface code. pub(crate) use crate::constants::SURFACE_CODE; /// Current decoded event contract version. pub(crate) use crate::constants::TOKEN_EVENT_VERSION; /// Canonical tracing target for this crate. pub(crate) use crate::constants::TRACING_TARGET; /// Crate-root access to `decode` from `token`. pub(crate) use crate::token::decode; /// Crate-root access to `entry_for_tag` from `token`. pub(crate) use crate::token::entry_for_tag; /// Crate-root access to `payload_tag` from `token`. pub(crate) use crate::token::payload_tag; /// Initial decoder implementation placeholder. pub use crate::decoder::SplToken2022Decoder; /// Crate-root access to `Token2022State` from `state`. pub use crate::state::Token2022State; /// Crate-root access to `Token2022StateKind` from `state`. pub use crate::state::Token2022StateKind; /// Crate-root access to `Token2022TlvEntry` from `state`. pub use crate::state::Token2022TlvEntry; /// Parse one Token-2022 Mint, Account, or Multisig state without interpreting extension payloads. pub use crate::state::parse_token_2022_state;