329 lines
14 KiB
Rust
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";
|