103 lines
5.7 KiB
Rust
103 lines
5.7 KiB
Rust
// file: kb-lib/src/decoder/metadata/solana_program_metadata.rs
|
|
// version: 5
|
|
|
|
//! Public Solana Program Metadata models and exact account and instruction decoders.
|
|
|
|
mod account;
|
|
mod constants;
|
|
mod decoder;
|
|
mod instruction;
|
|
mod model;
|
|
|
|
/// Error returned while decoding a Solana Program Metadata account.
|
|
pub use self::account::DcMetadataSpmAccountDecodeError;
|
|
/// Supported bounded Solana Program Metadata account projection.
|
|
pub use self::account::DcMetadataSpmAccountSnapshot;
|
|
/// Bounded projection of one Solana Program Metadata Buffer account.
|
|
pub use self::account::DcMetadataSpmBufferAccountSnapshot;
|
|
/// Bounded projection of one initialized Solana Program Metadata account.
|
|
pub use self::account::DcMetadataSpmMetadataAccountSnapshot;
|
|
/// Decodes one supported Solana Program Metadata account by its discriminator.
|
|
pub use self::account::decoder_metadata_solana_program_metadata_decode_account;
|
|
/// Decodes one Solana Program Metadata Buffer account.
|
|
pub use self::account::decoder_metadata_solana_program_metadata_decode_buffer_account;
|
|
/// Decodes one initialized Solana Program Metadata account.
|
|
pub use self::account::decoder_metadata_solana_program_metadata_decode_metadata_account;
|
|
/// Exact fixed byte length of one Buffer account header.
|
|
pub use self::constants::DC_METADATA_SPM_BUFFER_HEADER_BYTES;
|
|
/// Exact byte length of one external-account data reference.
|
|
pub use self::constants::DC_METADATA_SPM_EXTERNAL_DATA_BYTES;
|
|
/// Maximum Solana account-data length accepted by bounded account decoders.
|
|
pub use self::constants::DC_METADATA_SPM_MAX_ACCOUNT_BYTES;
|
|
/// Exact fixed byte length of one Metadata account header.
|
|
pub use self::constants::DC_METADATA_SPM_METADATA_HEADER_BYTES;
|
|
/// Exact byte length of one Solana Program Metadata seed.
|
|
pub use self::constants::DC_METADATA_SPM_SEED_BYTES;
|
|
/// Exact decoder for Solana Program Metadata instructions and account snapshots.
|
|
pub use self::decoder::DcMetadataSolanaProgramMetadataDecoder;
|
|
/// Solana Program Metadata account discriminator.
|
|
pub use self::model::DcMetadataSpmAccountDiscriminator;
|
|
/// Compression declared for metadata content.
|
|
pub use self::model::DcMetadataSpmCompression;
|
|
/// Typed on-chain metadata content without off-chain resolution.
|
|
pub use self::model::DcMetadataSpmData;
|
|
/// On-chain source used for metadata content.
|
|
pub use self::model::DcMetadataSpmDataSource;
|
|
/// Encoding declared for metadata content.
|
|
pub use self::model::DcMetadataSpmEncoding;
|
|
/// Fixed external-account data reference.
|
|
pub use self::model::DcMetadataSpmExternalData;
|
|
/// Format declared for metadata content.
|
|
pub use self::model::DcMetadataSpmFormat;
|
|
/// Bounded model conversion error.
|
|
pub use self::model::DcMetadataSpmModelError;
|
|
/// Official Solana Program Metadata custom error.
|
|
pub use self::model::DcMetadataSpmProgramError;
|
|
/// Exact fixed-size metadata seed.
|
|
pub use self::model::DcMetadataSpmSeed;
|
|
|
|
/// Account contract for `Allocate`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_ALLOCATE_ACCOUNT_CONTRACTS;
|
|
/// Account contract for `Close`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_CLOSE_ACCOUNT_CONTRACTS;
|
|
/// Surfaces handled by the Solana Program Metadata decoder.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_DECODER_SURFACES;
|
|
/// Maximum instruction prefix retained in hexadecimal diagnostics.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_DIAGNOSTIC_PREFIX_BYTES;
|
|
/// Stable event schema version for decoded Solana Program Metadata instructions.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_EVENT_VERSION;
|
|
/// Account contract for `Extend`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_EXTEND_ACCOUNT_CONTRACTS;
|
|
/// Account contract for `Initialize`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_INITIALIZE_ACCOUNT_CONTRACTS;
|
|
/// Current stable instruction inventory for program releases 1.0.0 and 1.0.1.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_INSTRUCTION_ENTRIES;
|
|
/// Maximum instruction-account count accepted by the contextual decoder.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_MAX_INSTRUCTION_ACCOUNTS;
|
|
/// Maximum retained instruction payload accepted by the contextual decoder.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_MAX_INSTRUCTION_BYTES;
|
|
/// Program ids handled by the Solana Program Metadata decoder.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_PROGRAM_IDS;
|
|
/// Account contract for `SetAuthority`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_SET_AUTHORITY_ACCOUNT_CONTRACTS;
|
|
/// Account contract for `SetData`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_SET_DATA_ACCOUNT_CONTRACTS;
|
|
/// Account contract for `SetImmutable`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_SET_IMMUTABLE_ACCOUNT_CONTRACTS;
|
|
/// Stable Solana Program Metadata decoder surface code.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_SURFACE_CODE;
|
|
/// Account contract for `Trim`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_TRIM_ACCOUNT_CONTRACTS;
|
|
/// Account contract for `Write`.
|
|
pub(crate) use self::constants::DC_METADATA_SPM_WRITE_ACCOUNT_CONTRACTS;
|
|
/// Expected account role and privileges for one instruction position.
|
|
pub(crate) use self::constants::DcMetadataSpmInstructionAccountContract;
|
|
/// Canonical tracing target for the Solana Program Metadata decoder.
|
|
pub(crate) use self::constants::TRACING_TARGET_DECODER_METADATA_SOLANA_PROGRAM_METADATA;
|
|
/// Decodes one bounded Solana Program Metadata instruction.
|
|
pub(crate) use self::instruction::decoder_metadata_solana_program_metadata_decode;
|
|
/// Returns the stable entry matching one Solana Program Metadata discriminator.
|
|
pub(crate) use self::instruction::decoder_metadata_solana_program_metadata_entry_for_discriminator;
|
|
/// Returns the first byte of one retained Solana Program Metadata payload.
|
|
pub(crate) use self::instruction::decoder_metadata_solana_program_metadata_payload_discriminator;
|