Files
khadhroony-bot3/ks-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs
2026-08-09 19:34:08 +02:00

329 lines
14 KiB
Rust

// file: ks-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs
// version: 32
//! Internal constants for Metaplex Token Metadata decoding.
/// Stable decoder surface code.
pub(crate) const DC_METADATA_MTM_SURFACE_CODE: &str = "metadata.metaplex_token_metadata";
/// Maximum retained instruction payload size.
pub(crate) const DC_METADATA_MTM_MAX_INSTRUCTION_BYTES: usize = 16_384;
/// Maximum encoded base64 instruction payload size.
pub(crate) const DC_METADATA_MTM_MAX_BASE64_BYTES: usize = 21_852;
/// Maximum number of instruction accounts accepted by this decoder.
pub(crate) const DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS: usize = 64;
/// Number of bytes retained in malformed-wire diagnostics.
pub(crate) const DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES: usize = 32;
/// Stable event payload contract version.
pub(crate) const DC_METADATA_MTM_EVENT_VERSION: u32 = 1;
/// Deprecated Create Master Edition discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 2;
/// Deprecated Set Reservation List discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR: u8 = 5;
/// Deprecated Create Reservation List discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR: u8 = 6;
/// Deprecated Mint Printing Tokens Via Token discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR: u8 = 8;
/// Deprecated Mint Printing Tokens discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR: u8 = 9;
/// Historical Create Master Edition discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 10;
/// Deprecated printing-token mint-new-edition discriminator.
pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR: u8 =
3;
/// Historical Create Metadata Account discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 0;
/// Historical Update Metadata Account discriminator.
pub(crate) const DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 1;
/// Historical Create Metadata Account V2 discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 16;
/// Create Metadata Account V3 discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR: u8 = 33;
/// Update Metadata Account V2 discriminator.
pub(crate) const DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 15;
/// Verify Collection discriminator.
pub(crate) const DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR: u8 = 18;
/// Unverify Collection discriminator.
pub(crate) const DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR: u8 = 22;
/// Set And Verify Collection discriminator.
pub(crate) const DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR: u8 = 25;
/// Approve Collection Authority discriminator.
pub(crate) const DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 23;
/// Revoke Collection Authority discriminator.
pub(crate) const DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 24;
/// Verify Sized Collection Item discriminator.
pub(crate) const DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 30;
/// Unverify Sized Collection Item discriminator.
pub(crate) const DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 31;
/// Set And Verify Sized Collection Item discriminator.
pub(crate) const DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 32;
/// Sign Metadata discriminator.
pub(crate) const DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR: u8 = 7;
/// Update Primary Sale Happened Via Token discriminator.
pub(crate) const DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR: u8 = 4;
/// Utilize discriminator.
pub(crate) const DC_METADATA_MTM_UTILIZE_DISCRIMINATOR: u8 = 19;
/// Approve Use Authority discriminator.
pub(crate) const DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR: u8 = 20;
/// Revoke Use Authority discriminator.
pub(crate) const DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR: u8 = 21;
/// Puff Metadata discriminator.
pub(crate) const DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR: u8 = 14;
/// Freeze Delegated Account discriminator.
pub(crate) const DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 26;
/// Thaw Delegated Account discriminator.
pub(crate) const DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 27;
/// Remove Creator Verification discriminator.
pub(crate) const DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR: u8 = 28;
/// Set Token Standard discriminator.
pub(crate) const DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR: u8 = 35;
/// Mint New Edition From Master Edition Via Token discriminator.
pub(crate) const DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR: u8 =
11;
/// Mint New Edition From Master Edition Via Vault Proxy discriminator.
pub(crate) const DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR: u8 = 13;
/// Convert Master Edition V1 to V2 discriminator.
pub(crate) const DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR: u8 = 12;
/// Create Master Edition V3 discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR: u8 = 17;
/// Set Collection Size discriminator.
pub(crate) const DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 34;
/// Bubblegum Set Collection Size discriminator.
pub(crate) const DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 36;
/// Create Escrow Account discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 38;
/// Close Escrow Account discriminator.
pub(crate) const DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 39;
/// Transfer Out Of Escrow discriminator.
pub(crate) const DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR: u8 = 40;
/// Collect discriminator.
pub(crate) const DC_METADATA_MTM_COLLECT_DISCRIMINATOR: u8 = 54;
/// Historical Burn NFT discriminator.
pub(crate) const DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR: u8 = 29;
/// Historical Burn Edition NFT discriminator.
pub(crate) const DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR: u8 = 37;
/// Burn discriminator.
pub(crate) const DC_METADATA_MTM_BURN_DISCRIMINATOR: u8 = 41;
/// Lock discriminator.
pub(crate) const DC_METADATA_MTM_LOCK_DISCRIMINATOR: u8 = 46;
/// Unlock discriminator.
pub(crate) const DC_METADATA_MTM_UNLOCK_DISCRIMINATOR: u8 = 47;
/// Transfer discriminator.
pub(crate) const DC_METADATA_MTM_TRANSFER_DISCRIMINATOR: u8 = 49;
/// Close Accounts discriminator.
pub(crate) const DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR: u8 = 57;
/// Modern Create discriminator.
pub(crate) const DC_METADATA_MTM_CREATE_DISCRIMINATOR: u8 = 42;
/// Modern Mint discriminator.
pub(crate) const DC_METADATA_MTM_MINT_DISCRIMINATOR: u8 = 43;
/// Modern Print discriminator.
pub(crate) const DC_METADATA_MTM_PRINT_DISCRIMINATOR: u8 = 55;
/// Modern Update discriminator.
pub(crate) const DC_METADATA_MTM_UPDATE_DISCRIMINATOR: u8 = 50;
/// Modern Use discriminator.
pub(crate) const DC_METADATA_MTM_USE_DISCRIMINATOR: u8 = 51;
/// Modern Verify discriminator.
pub(crate) const DC_METADATA_MTM_VERIFY_DISCRIMINATOR: u8 = 52;
/// Modern Unverify discriminator.
pub(crate) const DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR: u8 = 53;
/// Migrate discriminator.
pub(crate) const DC_METADATA_MTM_MIGRATE_DISCRIMINATOR: u8 = 48;
/// Resize discriminator.
pub(crate) const DC_METADATA_MTM_RESIZE_DISCRIMINATOR: u8 = 56;
/// Delegate discriminator.
pub(crate) const DC_METADATA_MTM_DELEGATE_DISCRIMINATOR: u8 = 44;
/// Revoke discriminator.
pub(crate) const DC_METADATA_MTM_REVOKE_DISCRIMINATOR: u8 = 45;
/// Current pre-release instruction inventory.
pub(crate) const DC_METADATA_MTM_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[
(
DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR,
"create_metadata_account",
true,
),
(
DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR,
"deprecated_create_master_edition",
true,
),
(
DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR,
"deprecated_mint_new_edition_from_master_edition_via_printing_token",
true,
),
(
DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR,
"update_metadata_account",
true,
),
(
DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR,
"update_primary_sale_happened_via_token",
false,
),
(
DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR,
"deprecated_set_reservation_list",
true,
),
(
DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR,
"deprecated_create_reservation_list",
true,
),
(DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR, "sign_metadata", false),
(
DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR,
"deprecated_mint_printing_tokens_via_token",
true,
),
(
DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR,
"deprecated_mint_printing_tokens",
true,
),
(
DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR,
"create_master_edition",
true,
),
(DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR, "puff_metadata", false),
(
DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR,
"mint_new_edition_from_master_edition_via_token",
false,
),
(
DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR,
"mint_new_edition_from_master_edition_via_vault_proxy",
true,
),
(
DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR,
"convert_master_edition_v1_to_v2",
true,
),
(
DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR,
"update_metadata_account_v2",
false,
),
(
DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR,
"create_metadata_account_v2",
true,
),
(
DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR,
"create_master_edition_v3",
false,
),
(
DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR,
"create_metadata_account_v3",
false,
),
(DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR, "verify_collection", false),
(DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR, "unverify_collection", false),
(
DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR,
"set_and_verify_collection",
false,
),
(
DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR,
"approve_collection_authority",
false,
),
(
DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR,
"revoke_collection_authority",
false,
),
(
DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR,
"verify_sized_collection_item",
false,
),
(
DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR,
"unverify_sized_collection_item",
false,
),
(
DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR,
"set_and_verify_sized_collection_item",
false,
),
(DC_METADATA_MTM_UTILIZE_DISCRIMINATOR, "utilize", false),
(
DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR,
"approve_use_authority",
false,
),
(
DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR,
"revoke_use_authority",
false,
),
(
DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR,
"freeze_delegated_account",
true,
),
(
DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR,
"thaw_delegated_account",
true,
),
(
DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR,
"remove_creator_verification",
false,
),
(DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR, "set_token_standard", false),
(DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR, "set_collection_size", false),
(
DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR,
"bubblegum_set_collection_size",
false,
),
(
DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR,
"create_escrow_account",
false,
),
(
DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR,
"close_escrow_account",
false,
),
(
DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR,
"transfer_out_of_escrow",
false,
),
(DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR, "burn_nft", true),
(DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR, "burn_edition_nft", true),
(DC_METADATA_MTM_BURN_DISCRIMINATOR, "burn", false),
(DC_METADATA_MTM_CREATE_DISCRIMINATOR, "create", false),
(DC_METADATA_MTM_MINT_DISCRIMINATOR, "mint", false),
(DC_METADATA_MTM_LOCK_DISCRIMINATOR, "lock", false),
(DC_METADATA_MTM_UNLOCK_DISCRIMINATOR, "unlock", false),
(DC_METADATA_MTM_TRANSFER_DISCRIMINATOR, "transfer", false),
(DC_METADATA_MTM_COLLECT_DISCRIMINATOR, "collect", false),
(DC_METADATA_MTM_PRINT_DISCRIMINATOR, "print", false),
(DC_METADATA_MTM_UPDATE_DISCRIMINATOR, "update", false),
(DC_METADATA_MTM_USE_DISCRIMINATOR, "use", false),
(DC_METADATA_MTM_VERIFY_DISCRIMINATOR, "verify", false),
(DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR, "unverify", false),
(DC_METADATA_MTM_MIGRATE_DISCRIMINATOR, "migrate", false),
(DC_METADATA_MTM_RESIZE_DISCRIMINATOR, "resize", false),
(DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR, "close_accounts", false),
(DC_METADATA_MTM_DELEGATE_DISCRIMINATOR, "delegate", false),
(DC_METADATA_MTM_REVOKE_DISCRIMINATOR, "revoke", false),
];
/// Canonical tracing target for this decoder.
pub(crate) const TRACING_TARGET_DECODER_METADATA_METAPLEX_TOKEN_METADATA: &str =
"kb-lib.decoder.metadata.metaplex_token_metadata";