221 lines
13 KiB
Rust
221 lines
13 KiB
Rust
// file: kb-lib/src/decoder/metadata/metaplex_token_metadata.rs
|
|
// version: 4
|
|
|
|
//! Contextual instruction and bounded account decoder for Metaplex Token Metadata.
|
|
|
|
mod account;
|
|
mod canonical;
|
|
mod constants;
|
|
mod decoder;
|
|
mod instruction;
|
|
|
|
/// Exhaustive published Metaplex account-key inventory.
|
|
pub use self::account::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT;
|
|
/// Canonical projection shared by Collection and Use Authority records.
|
|
pub use self::account::DcMetadataMtmAuthorityRecordAccountSnapshot;
|
|
/// Canonical projection shared by Metadata and Holder delegate records.
|
|
pub use self::account::DcMetadataMtmDelegateRecordAccountSnapshot;
|
|
/// Supported edition account layout.
|
|
pub use self::account::DcMetadataMtmEditionAccountKind;
|
|
/// Canonical bounded projection of one edition or master-edition account.
|
|
pub use self::account::DcMetadataMtmEditionAccountSnapshot;
|
|
/// Supported Edition Marker account layout.
|
|
pub use self::account::DcMetadataMtmEditionMarkerAccountKind;
|
|
/// Canonical bounded projection of one Edition Marker account.
|
|
pub use self::account::DcMetadataMtmEditionMarkerAccountSnapshot;
|
|
/// Bounded error returned while decoding a Metadata account.
|
|
pub use self::account::DcMetadataMtmMetadataAccountDecodeError;
|
|
/// One entry in the exhaustive published account-key audit.
|
|
pub use self::account::DcMetadataMtmMetadataAccountLayoutAuditEntry;
|
|
/// Canonical bounded projection of one Metadata account.
|
|
pub use self::account::DcMetadataMtmMetadataAccountSnapshot;
|
|
/// One bounded historical reservation entry.
|
|
pub use self::account::DcMetadataMtmReservationEntrySnapshot;
|
|
/// Historical Reservation List account generation.
|
|
pub use self::account::DcMetadataMtmReservationListAccountKind;
|
|
/// Canonical decode-only projection of a historical Reservation List account.
|
|
pub use self::account::DcMetadataMtmReservationListAccountSnapshot;
|
|
/// Canonical projection of one Token Owned Escrow account.
|
|
pub use self::account::DcMetadataMtmTokenOwnedEscrowAccountSnapshot;
|
|
/// Authority form used by one Token Owned Escrow account.
|
|
pub use self::account::DcMetadataMtmTokenOwnedEscrowAuthorityKind;
|
|
/// Canonical bounded projection of one programmable Token Record account.
|
|
pub use self::account::DcMetadataMtmTokenRecordAccountSnapshot;
|
|
/// Decodes one Collection Authority Record account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account;
|
|
/// Decodes and validates one edition or master-edition account snapshot.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_account;
|
|
/// Decodes and validates one Edition Marker account snapshot.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account;
|
|
/// Decodes one Holder Delegate Record account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account;
|
|
/// Decodes and validates one canonical Metadata account snapshot.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_metadata_account;
|
|
/// Decodes one Metadata Delegate Record account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account;
|
|
/// Decodes one historical Reservation List V1 or V2 account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account;
|
|
/// Decodes one Token Owned Escrow account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account;
|
|
/// Decodes and validates one programmable Token Record account snapshot.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_token_record_account;
|
|
/// Decodes one Use Authority Record account.
|
|
pub use self::account::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account;
|
|
/// Stable identity and policy of one canonical account snapshot.
|
|
pub use self::canonical::DcMetadataMtmCanonicalAccountIdentity;
|
|
/// Lifecycle class of one canonical account layout.
|
|
pub use self::canonical::DcMetadataMtmCanonicalAccountLifecycle;
|
|
/// Provenance retained for one canonical account observation.
|
|
pub use self::canonical::DcMetadataMtmCanonicalAccountProvenance;
|
|
/// Execution policy separated from historical materialization.
|
|
pub use self::canonical::DcMetadataMtmCanonicalExecutionPolicy;
|
|
/// Materialization policy for active or historical state.
|
|
pub use self::canonical::DcMetadataMtmCanonicalMaterializationPolicy;
|
|
/// Canonical account envelope used by materializers and replay.
|
|
pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountSnapshot;
|
|
/// Typed canonical Metaplex account state.
|
|
pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountState;
|
|
/// Origin of one canonical account observation.
|
|
pub use self::canonical::DcMetadataMtmCanonicalObservationSource;
|
|
/// Exact Metaplex Token Metadata decoder.
|
|
pub use self::decoder::DcMetadataMetaplexTokenMetadataDecoder;
|
|
|
|
/// Approve Collection Authority discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR;
|
|
/// Approve Use Authority discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR;
|
|
/// Bubblegum Set Collection Size discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR;
|
|
/// Burn discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_BURN_DISCRIMINATOR;
|
|
/// Historical Burn Edition NFT discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR;
|
|
/// Historical Burn NFT discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR;
|
|
/// Close Accounts discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR;
|
|
/// Close Escrow Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR;
|
|
/// Collect discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_COLLECT_DISCRIMINATOR;
|
|
/// Convert Master Edition V1 to V2 discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR;
|
|
/// Modern Create discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_DISCRIMINATOR;
|
|
/// Create Escrow Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR;
|
|
/// Historical Create Master Edition discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR;
|
|
/// Create Master Edition V3 discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR;
|
|
/// Historical Create Metadata Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR;
|
|
/// Historical Create Metadata Account V2 discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR;
|
|
/// Create Metadata Account V3 discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR;
|
|
/// Delegate discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR;
|
|
/// Deprecated Create Master Edition discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR;
|
|
/// Deprecated Create Reservation List discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR;
|
|
/// Deprecated printing-token mint-new-edition discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR;
|
|
/// Deprecated Mint Printing Tokens discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR;
|
|
/// Deprecated Mint Printing Tokens Via Token discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR;
|
|
/// Deprecated Set Reservation List discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR;
|
|
/// Number of bytes retained in malformed-wire diagnostics.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES;
|
|
/// Stable event payload contract version.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_EVENT_VERSION;
|
|
/// Freeze Delegated Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR;
|
|
/// Current pre-release instruction inventory.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_INSTRUCTION_ENTRIES;
|
|
/// Lock discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_LOCK_DISCRIMINATOR;
|
|
/// Maximum encoded base64 instruction payload size.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MAX_BASE64_BYTES;
|
|
/// Maximum number of instruction accounts accepted by this decoder.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS;
|
|
/// Maximum retained instruction payload size.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES;
|
|
/// Migrate discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR;
|
|
/// Modern Mint discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MINT_DISCRIMINATOR;
|
|
/// Mint New Edition From Master Edition Via Token discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR;
|
|
/// Mint New Edition From Master Edition Via Vault Proxy discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR;
|
|
/// Modern Print discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_PRINT_DISCRIMINATOR;
|
|
/// Puff Metadata discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR;
|
|
/// Remove Creator Verification discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR;
|
|
/// Resize discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_RESIZE_DISCRIMINATOR;
|
|
/// Revoke Collection Authority discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR;
|
|
/// Revoke discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_DISCRIMINATOR;
|
|
/// Revoke Use Authority discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR;
|
|
/// Set And Verify Collection discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR;
|
|
/// Set And Verify Sized Collection Item discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
|
|
/// Set Collection Size discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR;
|
|
/// Set Token Standard discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR;
|
|
/// Sign Metadata discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR;
|
|
/// Stable decoder surface code.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_SURFACE_CODE;
|
|
/// Thaw Delegated Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR;
|
|
/// Transfer discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR;
|
|
/// Transfer Out Of Escrow discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR;
|
|
/// Unlock discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR;
|
|
/// Unverify Collection discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR;
|
|
/// Modern Unverify discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR;
|
|
/// Unverify Sized Collection Item discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
|
|
/// Modern Update discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_DISCRIMINATOR;
|
|
/// Historical Update Metadata Account discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR;
|
|
/// Update Metadata Account V2 discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR;
|
|
/// Update Primary Sale Happened Via Token discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR;
|
|
/// Modern Use discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_USE_DISCRIMINATOR;
|
|
/// Utilize discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR;
|
|
/// Verify Collection discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR;
|
|
/// Modern Verify discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_DISCRIMINATOR;
|
|
/// Verify Sized Collection Item discriminator.
|
|
pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
|
|
/// Canonical tracing target for this crate.
|
|
pub(crate) use self::constants::TRACING_TARGET_DECODER_METADATA_METAPLEX_TOKEN_METADATA;
|
|
/// Crate-root access to `decode` from `instruction`.
|
|
pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_decode;
|
|
/// Crate-root access to `entry_for_discriminator` from `instruction`.
|
|
pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_entry_for_discriminator;
|
|
/// Crate-root access to `payload_discriminator` from `instruction`.
|
|
pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_payload_discriminator;
|