v0.4.7-pre.006

This commit is contained in:
2026-08-02 11:22:59 +02:00
parent 80f102b129
commit d34d70f619
14 changed files with 1110 additions and 268 deletions

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor.rs
// version: 13
// version: 14
//! Consolidated executor modules.
@@ -208,37 +208,79 @@ pub use self::lending::ExLendingKaminoExecutor;
pub use self::lending::ExLendingMarginfiV2Executor;
/// Exposes the reserved `lock/raydium_lp` executor.
pub use self::lock::ExLockRaydiumLpExecutor;
/// Stable operation code for Metaplex Burn.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION;
/// Stable operation code for Metaplex Close Accounts.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION;
/// Stable operation code for the current Metaplex Create wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION;
/// Stable operation code for Metaplex Delegate.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION;
/// Deprecated Metaplex operation codes requiring explicit approval.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES;
/// Stable operation code for Metaplex Lock.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION;
/// Stable deprecated Metaplex PuffMetadata operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION;
/// Stable operation code for Metaplex Revoke.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION;
/// Stable deprecated Metaplex SetCollectionSize operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION;
/// Stable deprecated Metaplex SetTokenStandard operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION;
/// Current and deprecated Metaplex Token Metadata operations.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES;
/// Stable operation code for Metaplex Transfer.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION;
/// Stable operation code for Metaplex Unlock.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION;
/// Stable operation code for the current Metaplex Unverify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION;
/// Stable operation code for the current Metaplex Update wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION;
/// Stable operation code for the current Metaplex Verify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_USE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_USE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION`.
pub use self::metadata::EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION;
/// Exposes the Metaplex Token Metadata executor.
pub use self::metadata::ExMetadataMetaplexTokenMetadataExecutor;

View File

@@ -1,30 +1,91 @@
// file: kb-lib/src/executor/metadata.rs
// version: 7
// version: 8
//! `metadata` executor family.
mod metaplex_token_metadata;
mod solana_program_metadata;
mod spl_name_service;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION;
/// Exposes the Metaplex Token Metadata execution surface.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_USE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_USE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION`.
pub use self::metaplex_token_metadata::EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION;
/// Exposes the Metaplex Token Metadata executor.
pub use self::metaplex_token_metadata::ExMetadataMetaplexTokenMetadataExecutor;
/// Exposes the complete Metaplex Token Metadata execution intent.
pub use self::metaplex_token_metadata::ExMetaplexTokenMetadataExecutionIntent;
/// Exposes the Metaplex Token Metadata operation intent.
pub use self::metaplex_token_metadata::ExMetaplexTokenMetadataOperation;
/// Exposes the reserved `metadata/solana_program_metadata` executor.
pub use self::solana_program_metadata::ExMetadataSolanaProgramMetadataExecutor;

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/metadata/metaplex_token_metadata.rs
// version: 9
// version: 10
//! Metaplex Token Metadata typed execution surface.
@@ -9,37 +9,79 @@ mod intent;
/// Exposes the Metaplex Token Metadata executor.
pub use self::executor::ExMetadataMetaplexTokenMetadataExecutor;
/// Stable operation code for Metaplex Burn.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION;
/// Stable operation code for Metaplex Close Accounts.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION;
/// Stable operation code for the current Create wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION;
/// Stable operation code for Metaplex Delegate.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION;
/// Deprecated operation codes requiring explicit operator approval.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES;
/// Stable operation code for Metaplex Lock.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION;
/// Stable deprecated operation code for PuffMetadata.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION;
/// Stable operation code for Metaplex Revoke.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION;
/// Stable deprecated operation code for SetCollectionSize.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION;
/// Stable deprecated operation code for SetTokenStandard.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION;
/// Current and deprecated operations implemented by this prerelease.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES;
/// Stable operation code for Metaplex Transfer.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION;
/// Stable operation code for Metaplex Unlock.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION;
/// Stable operation code for the current Unverify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION;
/// Stable operation code for the current Update wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION;
/// Stable operation code for the current Verify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_USE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_USE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION`.
pub use self::intent::EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION;
/// Exposes the complete Metaplex Token Metadata execution intent.
pub use self::intent::ExMetaplexTokenMetadataExecutionIntent;

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/metadata/metaplex_token_metadata/builder.rs
// version: 6
// version: 7
//! Official Metaplex builders and conservative plan validation.
@@ -162,178 +162,34 @@ pub(crate) fn executor_metaplex_token_metadata_build_prepared_plan(
collection_authority_record.as_ref(),
*size,
),
crate::ExMetaplexTokenMetadataOperation::Burn {
authority,
collection_metadata,
metadata,
edition,
mint,
token,
master_edition,
master_edition_mint,
master_edition_token,
edition_marker,
token_record,
burn_args,
} => build_burn(
authority,
collection_metadata.as_ref(),
metadata,
edition.as_ref(),
mint,
token,
master_edition.as_ref(),
master_edition_mint.as_ref(),
master_edition_token.as_ref(),
edition_marker.as_ref(),
token_record.as_ref(),
burn_args,
),
crate::ExMetaplexTokenMetadataOperation::Delegate {
delegate_record,
delegate,
metadata,
master_edition,
token_record,
mint,
token,
authority,
spl_token_program,
authorization_rules_program,
authorization_rules,
delegate_args,
} => build_delegate(
intent,
delegate_record.as_ref(),
delegate,
metadata,
master_edition.as_ref(),
token_record.as_ref(),
mint,
token.as_ref(),
authority,
spl_token_program.as_ref(),
authorization_rules_program.as_ref(),
authorization_rules.as_ref(),
delegate_args,
),
crate::ExMetaplexTokenMetadataOperation::Revoke {
delegate_record,
delegate,
metadata,
master_edition,
token_record,
mint,
token,
authority,
spl_token_program,
authorization_rules_program,
authorization_rules,
revoke_args,
} => build_revoke(
intent,
delegate_record.as_ref(),
delegate,
metadata,
master_edition.as_ref(),
token_record.as_ref(),
mint,
token.as_ref(),
authority,
spl_token_program.as_ref(),
authorization_rules_program.as_ref(),
authorization_rules.as_ref(),
revoke_args,
),
crate::ExMetaplexTokenMetadataOperation::Lock {
authority,
token_owner,
token,
mint,
metadata,
edition,
token_record,
spl_token_program,
authorization_rules_program,
authorization_rules,
lock_args,
} => build_lock(
intent,
authority,
token_owner.as_ref(),
token,
mint,
metadata,
edition.as_ref(),
token_record.as_ref(),
spl_token_program.as_ref(),
authorization_rules_program.as_ref(),
authorization_rules.as_ref(),
lock_args,
),
crate::ExMetaplexTokenMetadataOperation::Unlock {
authority,
token_owner,
token,
mint,
metadata,
edition,
token_record,
spl_token_program,
authorization_rules_program,
authorization_rules,
unlock_args,
} => build_unlock(
intent,
authority,
token_owner.as_ref(),
token,
mint,
metadata,
edition.as_ref(),
token_record.as_ref(),
spl_token_program.as_ref(),
authorization_rules_program.as_ref(),
authorization_rules.as_ref(),
unlock_args,
),
crate::ExMetaplexTokenMetadataOperation::Transfer {
token,
token_owner,
destination_token,
destination_owner,
mint,
metadata,
edition,
token_record,
destination_token_record,
authority,
authorization_rules_program,
authorization_rules,
transfer_args,
} => build_transfer(
intent,
token,
token_owner,
destination_token,
destination_owner,
mint,
metadata,
edition.as_ref(),
token_record.as_ref(),
destination_token_record.as_ref(),
authority,
authorization_rules_program.as_ref(),
authorization_rules.as_ref(),
transfer_args,
),
crate::ExMetaplexTokenMetadataOperation::CloseAccounts {
metadata,
edition,
mint,
authority,
destination,
} => build_close_accounts(metadata, edition, mint, authority, destination),
crate::ExMetaplexTokenMetadataOperation::Burn { authority, collection_metadata, metadata, edition, mint, token, master_edition, master_edition_mint, master_edition_token, edition_marker, token_record, burn_args } => build_burn(authority, collection_metadata.as_ref(), metadata, edition.as_ref(), mint, token, master_edition.as_ref(), master_edition_mint.as_ref(), master_edition_token.as_ref(), edition_marker.as_ref(), token_record.as_ref(), burn_args),
crate::ExMetaplexTokenMetadataOperation::Delegate { delegate_record, delegate, metadata, master_edition, token_record, mint, token, authority, spl_token_program, authorization_rules_program, authorization_rules, delegate_args } => build_delegate(intent, delegate_record.as_ref(), delegate, metadata, master_edition.as_ref(), token_record.as_ref(), mint, token.as_ref(), authority, spl_token_program.as_ref(), authorization_rules_program.as_ref(), authorization_rules.as_ref(), delegate_args),
crate::ExMetaplexTokenMetadataOperation::Revoke { delegate_record, delegate, metadata, master_edition, token_record, mint, token, authority, spl_token_program, authorization_rules_program, authorization_rules, revoke_args } => build_revoke(intent, delegate_record.as_ref(), delegate, metadata, master_edition.as_ref(), token_record.as_ref(), mint, token.as_ref(), authority, spl_token_program.as_ref(), authorization_rules_program.as_ref(), authorization_rules.as_ref(), revoke_args),
crate::ExMetaplexTokenMetadataOperation::Lock { authority, token_owner, token, mint, metadata, edition, token_record, spl_token_program, authorization_rules_program, authorization_rules, lock_args } => build_lock(intent, authority, token_owner.as_ref(), token, mint, metadata, edition.as_ref(), token_record.as_ref(), spl_token_program.as_ref(), authorization_rules_program.as_ref(), authorization_rules.as_ref(), lock_args),
crate::ExMetaplexTokenMetadataOperation::Unlock { authority, token_owner, token, mint, metadata, edition, token_record, spl_token_program, authorization_rules_program, authorization_rules, unlock_args } => build_unlock(intent, authority, token_owner.as_ref(), token, mint, metadata, edition.as_ref(), token_record.as_ref(), spl_token_program.as_ref(), authorization_rules_program.as_ref(), authorization_rules.as_ref(), unlock_args),
crate::ExMetaplexTokenMetadataOperation::Transfer { token, token_owner, destination_token, destination_owner, mint, metadata, edition, token_record, destination_token_record, authority, authorization_rules_program, authorization_rules, transfer_args } => build_transfer(intent, token, token_owner, destination_token, destination_owner, mint, metadata, edition.as_ref(), token_record.as_ref(), destination_token_record.as_ref(), authority, authorization_rules_program.as_ref(), authorization_rules.as_ref(), transfer_args),
crate::ExMetaplexTokenMetadataOperation::CloseAccounts { metadata, edition, mint, authority, destination } => build_close_accounts(metadata, edition, mint, authority, destination),
crate::ExMetaplexTokenMetadataOperation::DeprecatedCreateMasterEdition { edition, mint, printing_mint, one_time_printing_authorization_mint, update_authority, printing_mint_authority, mint_authority, metadata, payer, token_program, system_program, rent, one_time_printing_authorization_mint_authority } => build_idl_instruction_no_args(2, &[(edition, false, true), (mint, false, true), (printing_mint, false, true), (one_time_printing_authorization_mint, false, true), (update_authority, true, false), (printing_mint_authority, true, false), (mint_authority, true, false), (metadata, false, false), (payer, true, false), (token_program, false, false), (system_program, false, false), (rent, false, false), (one_time_printing_authorization_mint_authority, true, false)]),
crate::ExMetaplexTokenMetadataOperation::DeprecatedMintNewEditionFromMasterEditionViaPrintingToken { metadata, edition, master_edition, mint, mint_authority, printing_mint, master_token_account, edition_marker, burn_authority, payer, master_update_authority, master_metadata, token_program, system_program, rent, reservation_list } => build_idl_instruction_no_args(3, &[(metadata, false, true), (edition, false, true), (master_edition, false, true), (mint, false, true), (mint_authority, true, false), (printing_mint, false, true), (master_token_account, false, true), (edition_marker, false, true), (burn_authority, true, false), (payer, true, false), (master_update_authority, false, false), (master_metadata, false, false), (token_program, false, false), (system_program, false, false), (rent, false, false), (reservation_list, false, true)]),
crate::ExMetaplexTokenMetadataOperation::UpdatePrimarySaleHappenedViaToken { metadata, owner, token } => build_idl_instruction_no_args(4, &[(metadata, false, true), (owner, true, false), (token, false, false)]),
crate::ExMetaplexTokenMetadataOperation::DeprecatedSetReservationList { master_edition, reservation_list, resource } => build_idl_instruction_no_args(5, &[(master_edition, false, true), (reservation_list, false, true), (resource, true, false)]),
crate::ExMetaplexTokenMetadataOperation::DeprecatedCreateReservationList { reservation_list, payer, update_authority, master_edition, resource, metadata, system_program, rent } => build_idl_instruction_no_args(6, &[(reservation_list, false, true), (payer, true, false), (update_authority, true, false), (master_edition, false, false), (resource, false, false), (metadata, false, false), (system_program, false, false), (rent, false, false)]),
crate::ExMetaplexTokenMetadataOperation::DeprecatedMintPrintingTokensViaToken { destination, token, one_time_printing_authorization_mint, printing_mint, burn_authority, metadata, master_edition, token_program, rent } => build_idl_instruction_no_args(8, &[(destination, false, true), (token, false, true), (one_time_printing_authorization_mint, false, true), (printing_mint, false, true), (burn_authority, true, false), (metadata, false, false), (master_edition, false, false), (token_program, false, false), (rent, false, false)]),
crate::ExMetaplexTokenMetadataOperation::DeprecatedMintPrintingTokens { destination, printing_mint, update_authority, metadata, master_edition, token_program, rent } => build_idl_instruction_no_args(9, &[(destination, false, true), (printing_mint, false, true), (update_authority, true, false), (metadata, false, false), (master_edition, false, false), (token_program, false, false), (rent, false, false)]),
crate::ExMetaplexTokenMetadataOperation::ConvertMasterEditionV1ToV2 { master_edition, one_time_auth, printing_mint } => build_idl_instruction_no_args(12, &[(master_edition, false, true), (one_time_auth, false, true), (printing_mint, false, true)]),
crate::ExMetaplexTokenMetadataOperation::MintNewEditionFromMasterEditionViaVaultProxy { new_metadata, new_edition, master_edition, new_mint, edition_mark_pda, new_mint_authority, payer, vault_authority, safety_deposit_store, safety_deposit_box, vault, new_metadata_update_authority, metadata, token_program, token_vault_program, system_program, rent, args } => build_idl_instruction_with_args(13, &[(new_metadata, false, true), (new_edition, false, true), (master_edition, false, true), (new_mint, false, true), (edition_mark_pda, false, true), (new_mint_authority, true, false), (payer, true, true), (vault_authority, true, false), (safety_deposit_store, false, false), (safety_deposit_box, false, false), (vault, false, false), (new_metadata_update_authority, false, false), (metadata, false, false), (token_program, false, false), (token_vault_program, false, false), (system_program, false, false), (rent, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::Utilize { metadata, token_account, mint, use_authority, owner, token_program, ata_program, system_program, rent, use_authority_record, burner, args } => build_idl_instruction_with_args(19, &[(metadata, false, true), (token_account, false, true), (mint, false, true), (use_authority, true, true), (owner, false, false), (token_program, false, false), (ata_program, false, false), (system_program, false, false), (rent, false, false), (use_authority_record, false, true), (burner, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::ApproveUseAuthority { use_authority_record, owner, payer, user, owner_token_account, metadata, mint, burner, token_program, system_program, rent, args } => build_idl_instruction_with_args(20, &[(use_authority_record, false, true), (owner, true, true), (payer, true, true), (user, false, false), (owner_token_account, false, true), (metadata, false, false), (mint, false, false), (burner, false, false), (token_program, false, false), (system_program, false, false), (rent, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::RevokeUseAuthority { use_authority_record, owner, user, owner_token_account, mint, metadata, token_program, system_program, rent } => build_idl_instruction_no_args(21, &[(use_authority_record, false, true), (owner, true, true), (user, false, false), (owner_token_account, false, true), (mint, false, false), (metadata, false, false), (token_program, false, false), (system_program, false, false), (rent, false, false)]),
crate::ExMetaplexTokenMetadataOperation::CreateEscrowAccount { escrow, metadata, mint, token_account, edition, payer, system_program, sysvar_instructions, authority } => build_idl_instruction_no_args(38, &[(escrow, false, true), (metadata, false, true), (mint, false, false), (token_account, false, false), (edition, false, false), (payer, true, true), (system_program, false, false), (sysvar_instructions, false, false), (authority, true, false)]),
crate::ExMetaplexTokenMetadataOperation::CloseEscrowAccount { escrow, metadata, mint, token_account, edition, payer, system_program, sysvar_instructions } => build_idl_instruction_no_args(39, &[(escrow, false, true), (metadata, false, true), (mint, false, false), (token_account, false, false), (edition, false, false), (payer, true, true), (system_program, false, false), (sysvar_instructions, false, false)]),
crate::ExMetaplexTokenMetadataOperation::TransferOutOfEscrow { escrow, metadata, payer, attribute_mint, attribute_src, attribute_dst, escrow_mint, escrow_account, system_program, ata_program, token_program, sysvar_instructions, authority, args } => build_idl_instruction_with_args(40, &[(escrow, false, false), (metadata, false, true), (payer, true, true), (attribute_mint, false, false), (attribute_src, false, true), (attribute_dst, false, true), (escrow_mint, false, false), (escrow_account, false, false), (system_program, false, false), (ata_program, false, false), (token_program, false, false), (sysvar_instructions, false, false), (authority, true, false)], args),
crate::ExMetaplexTokenMetadataOperation::Mint { token, token_owner, metadata, master_edition, token_record, mint, authority, delegate_record, payer, system_program, sysvar_instructions, spl_token_program, spl_ata_program, authorization_rules_program, authorization_rules, args } => build_idl_instruction_with_args(43, &[(token, false, true), (token_owner, false, false), (metadata, false, false), (master_edition, false, true), (token_record, false, true), (mint, false, true), (authority, true, false), (delegate_record, false, false), (payer, true, true), (system_program, false, false), (sysvar_instructions, false, false), (spl_token_program, false, false), (spl_ata_program, false, false), (authorization_rules_program, false, false), (authorization_rules, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::Migrate { metadata, edition, token, token_owner, mint, payer, authority, collection_metadata, delegate_record, token_record, system_program, sysvar_instructions, spl_token_program, authorization_rules_program, authorization_rules } => build_idl_instruction_no_args(48, &[(metadata, false, true), (edition, false, true), (token, false, true), (token_owner, false, false), (mint, false, false), (payer, true, true), (authority, true, false), (collection_metadata, false, false), (delegate_record, false, false), (token_record, false, true), (system_program, false, false), (sysvar_instructions, false, false), (spl_token_program, false, false), (authorization_rules_program, false, false), (authorization_rules, false, false)]),
crate::ExMetaplexTokenMetadataOperation::Use { authority, delegate_record, token, mint, metadata, edition, payer, system_program, sysvar_instructions, spl_token_program, authorization_rules_program, authorization_rules, args } => build_idl_instruction_with_args(51, &[(authority, true, false), (delegate_record, false, true), (token, false, true), (mint, false, false), (metadata, false, true), (edition, false, true), (payer, true, false), (system_program, false, false), (sysvar_instructions, false, false), (spl_token_program, false, false), (authorization_rules_program, false, false), (authorization_rules, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::Collect { authority, recipient } => build_idl_instruction_no_args(54, &[(authority, true, false), (recipient, false, false)]),
crate::ExMetaplexTokenMetadataOperation::Print { edition_metadata, edition, edition_mint, edition_token_account_owner, edition_token_account, edition_mint_authority, edition_token_record, master_edition, edition_marker_pda, payer, master_token_account_owner, master_token_account, master_metadata, update_authority, spl_token_program, spl_ata_program, sysvar_instructions, system_program, args } => build_idl_instruction_with_args(55, &[(edition_metadata, false, true), (edition, false, true), (edition_mint, false, true), (edition_token_account_owner, false, false), (edition_token_account, false, true), (edition_mint_authority, true, false), (edition_token_record, false, true), (master_edition, false, true), (edition_marker_pda, false, true), (payer, true, true), (master_token_account_owner, false, false), (master_token_account, false, false), (master_metadata, false, false), (update_authority, false, false), (spl_token_program, false, false), (spl_ata_program, false, false), (sysvar_instructions, false, false), (system_program, false, false)], args),
crate::ExMetaplexTokenMetadataOperation::Resize { metadata, edition, mint, payer, authority, token, system_program } => build_idl_instruction_no_args(56, &[(metadata, false, true), (edition, false, true), (mint, false, false), (payer, false, true), (authority, true, false), (token, false, false), (system_program, false, false)]),
};
let instruction = match instruction_result {
std::result::Result::Ok(value) => value,
@@ -380,7 +236,7 @@ fn validate_intent(intent: &crate::ExMetaplexTokenMetadataExecutionIntent) -> kb
if !intent.policy.dry_run {
return std::result::Result::Err(kb_core::Error::new(
"execution_metaplex_dry_run_required",
"Metaplex Token Metadata pre.005 intents are simulation-only",
"Metaplex Token Metadata pre.006 intents are simulation-only",
));
}
match intent.policy.cost_limit.max_fee_lamports {
@@ -1357,6 +1213,65 @@ fn build_close_accounts(
return std::result::Result::Ok(convert_official_instruction!(official));
}
fn build_idl_instruction_no_args(
discriminator: u8,
accounts: &[(&crate::MdPubkey, bool, bool)],
) -> kb_core::Result<solana_instruction::Instruction> {
return build_idl_instruction(discriminator, accounts, std::option::Option::None);
}
fn build_idl_instruction_with_args<T: borsh_0_10::BorshSerialize>(
discriminator: u8,
accounts: &[(&crate::MdPubkey, bool, bool)],
args: &T,
) -> kb_core::Result<solana_instruction::Instruction> {
let encoded = match borsh_0_10::BorshSerialize::try_to_vec(args) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {
return std::result::Result::Err(kb_core::Error::new(
"execution_metaplex_arguments_serialize_failed",
error.to_string(),
));
},
};
return build_idl_instruction(discriminator, accounts, std::option::Option::Some(encoded));
}
fn build_idl_instruction(
discriminator: u8,
accounts: &[(&crate::MdPubkey, bool, bool)],
encoded_args: std::option::Option<std::vec::Vec<u8>>,
) -> kb_core::Result<solana_instruction::Instruction> {
let program_id = match parse_str_pubkey(
kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID,
"program_id",
) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
let mut metas = std::vec::Vec::with_capacity(accounts.len());
for (value, is_signer, is_writable) in accounts {
let pubkey = match parse_pubkey(value, "instruction_account") {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(error),
};
metas.push(solana_instruction::AccountMeta {
pubkey,
is_signer: *is_signer,
is_writable: *is_writable,
});
}
let mut data = vec![discriminator];
if let std::option::Option::Some(mut value) = encoded_args {
data.append(&mut value);
}
return std::result::Result::Ok(solana_instruction::Instruction {
program_id,
accounts: metas,
data,
});
}
#[cfg(test)]
mod tests {
#[allow(deprecated)]
@@ -1541,4 +1456,23 @@ mod tests {
assert_eq!(instruction.accounts.len(), 5);
assert!(instruction.accounts[3].is_signer);
}
#[test]
fn collect_builds_exact_discriminator_and_signer_contract() {
let authority = crate::MdPubkey("11111111111111111111111111111111".to_string());
let recipient = crate::MdPubkey("SysvarRent111111111111111111111111111111111".to_string());
let result = super::build_idl_instruction_no_args(
54,
&[(&authority, true, false), (&recipient, false, false)],
);
assert!(result.is_ok());
let instruction = match result {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return,
};
assert_eq!(instruction.data, vec![54]);
assert_eq!(instruction.accounts.len(), 2);
assert!(instruction.accounts[0].is_signer);
assert!(!instruction.accounts[1].is_signer);
}
}

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/metadata/metaplex_token_metadata/executor.rs
// version: 5
// version: 6
//! Exact Metaplex Token Metadata capability dispatch.
@@ -168,6 +168,12 @@ mod tests {
crate::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION,
);
assert!(matches!(transfer, crate::ExApiExecutionCapability::Supported { .. }));
let collect = <crate::ExMetadataMetaplexTokenMetadataExecutor as crate::ExApiTypedInstructionExecutor>::capability(
&executor,
&program_id,
crate::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION,
);
assert!(matches!(collect, crate::ExApiExecutionCapability::Supported { .. }));
let unknown = <crate::ExMetadataMetaplexTokenMetadataExecutor as crate::ExApiTypedInstructionExecutor>::capability(
&executor,
&program_id,

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/executor/metadata/metaplex_token_metadata/intent.rs
// version: 6
// version: 8
//! Typed current and deprecated Metaplex Token Metadata execution intents.
@@ -45,11 +45,84 @@ pub const EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION: &str =
/// Stable operation code for CloseAccounts, discriminator 57.
pub const EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION: &str =
"metadata.metaplex_token_metadata.close_accounts";
/// Stable deprecated operation code for DeprecatedCreateMasterEdition, discriminator 2.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_create_master_edition";
/// Stable deprecated operation code for DeprecatedMintNewEditionFromMasterEditionViaPrintingToken, discriminator 3.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_mint_new_edition_from_master_edition_via_printing_token";
/// Stable deprecated operation code for UpdatePrimarySaleHappenedViaToken, discriminator 4.
pub const EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION: &str =
"metadata.metaplex_token_metadata.update_primary_sale_happened_via_token";
/// Stable deprecated operation code for DeprecatedSetReservationList, discriminator 5.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_set_reservation_list";
/// Stable deprecated operation code for DeprecatedCreateReservationList, discriminator 6.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_create_reservation_list";
/// Stable deprecated operation code for DeprecatedMintPrintingTokensViaToken, discriminator 8.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_mint_printing_tokens_via_token";
/// Stable deprecated operation code for DeprecatedMintPrintingTokens, discriminator 9.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION: &str =
"metadata.metaplex_token_metadata.deprecated_mint_printing_tokens";
/// Stable deprecated operation code for ConvertMasterEditionV1ToV2, discriminator 12.
pub const EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION: &str =
"metadata.metaplex_token_metadata.convert_master_edition_v1_to_v2";
/// Stable deprecated operation code for MintNewEditionFromMasterEditionViaVaultProxy, discriminator 13.
pub const EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION: &str =
"metadata.metaplex_token_metadata.mint_new_edition_from_master_edition_via_vault_proxy";
/// Stable deprecated operation code for Utilize, discriminator 19.
pub const EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION: &str =
"metadata.metaplex_token_metadata.utilize";
/// Stable deprecated operation code for ApproveUseAuthority, discriminator 20.
pub const EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION: &str =
"metadata.metaplex_token_metadata.approve_use_authority";
/// Stable deprecated operation code for RevokeUseAuthority, discriminator 21.
pub const EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION: &str =
"metadata.metaplex_token_metadata.revoke_use_authority";
/// Stable operation code for CreateEscrowAccount, discriminator 38.
pub const EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION: &str =
"metadata.metaplex_token_metadata.create_escrow_account";
/// Stable operation code for CloseEscrowAccount, discriminator 39.
pub const EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION: &str =
"metadata.metaplex_token_metadata.close_escrow_account";
/// Stable operation code for TransferOutOfEscrow, discriminator 40.
pub const EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION: &str =
"metadata.metaplex_token_metadata.transfer_out_of_escrow";
/// Stable operation code for Mint, discriminator 43.
pub const EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION: &str = "metadata.metaplex_token_metadata.mint";
/// Stable operation code for Migrate, discriminator 48.
pub const EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION: &str =
"metadata.metaplex_token_metadata.migrate";
/// Stable operation code for Use, discriminator 51.
pub const EX_METAPLEX_TOKEN_METADATA_USE_OPERATION: &str = "metadata.metaplex_token_metadata.use";
/// Stable operation code for Collect, discriminator 54.
pub const EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION: &str =
"metadata.metaplex_token_metadata.collect";
/// Stable operation code for Print, discriminator 55.
pub const EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION: &str =
"metadata.metaplex_token_metadata.print";
/// Stable operation code for Resize, discriminator 56.
pub const EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION: &str =
"metadata.metaplex_token_metadata.resize";
/// Deprecated operations that require explicit operator approval at runtime.
pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES: &[&str] = &[
EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION,
EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION,
EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION,
EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION,
EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION,
EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION,
EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION,
EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION,
];
/// Current and deprecated operations implemented through `0.4.7-pre.005`.
pub const EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES: &[&str] = &[
@@ -67,6 +140,27 @@ pub const EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES: &[&str] = &[
EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION,
EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION,
EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION,
EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION,
EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION,
EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION,
EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION,
EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION,
EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION,
EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION,
EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION,
EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION,
EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION,
EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION,
EX_METAPLEX_TOKEN_METADATA_USE_OPERATION,
EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION,
EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION,
EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION,
];
/// One current or explicitly deprecated Metaplex Token Metadata operation.
@@ -304,6 +398,556 @@ pub enum ExMetaplexTokenMetadataOperation {
authority: crate::MdPubkey,
destination: crate::MdPubkey,
},
/// Build deprecated DeprecatedCreateMasterEdition, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedCreateMasterEdition is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedCreateMasterEdition {
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `printingMint` from the official IDL contract.
printing_mint: crate::MdPubkey,
/// Account `oneTimePrintingAuthorizationMint` from the official IDL contract.
one_time_printing_authorization_mint: crate::MdPubkey,
/// Account `updateAuthority` from the official IDL contract.
update_authority: crate::MdPubkey,
/// Account `printingMintAuthority` from the official IDL contract.
printing_mint_authority: crate::MdPubkey,
/// Account `mintAuthority` from the official IDL contract.
mint_authority: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
/// Account `oneTimePrintingAuthorizationMintAuthority` from the official IDL contract.
one_time_printing_authorization_mint_authority: crate::MdPubkey,
},
/// Build deprecated DeprecatedMintNewEditionFromMasterEditionViaPrintingToken, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedMintNewEditionFromMasterEditionViaPrintingToken is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedMintNewEditionFromMasterEditionViaPrintingToken {
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `mintAuthority` from the official IDL contract.
mint_authority: crate::MdPubkey,
/// Account `printingMint` from the official IDL contract.
printing_mint: crate::MdPubkey,
/// Account `masterTokenAccount` from the official IDL contract.
master_token_account: crate::MdPubkey,
/// Account `editionMarker` from the official IDL contract.
edition_marker: crate::MdPubkey,
/// Account `burnAuthority` from the official IDL contract.
burn_authority: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `masterUpdateAuthority` from the official IDL contract.
master_update_authority: crate::MdPubkey,
/// Account `masterMetadata` from the official IDL contract.
master_metadata: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
/// Account `reservationList` from the official IDL contract.
reservation_list: crate::MdPubkey,
},
/// Build deprecated UpdatePrimarySaleHappenedViaToken, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "UpdatePrimarySaleHappenedViaToken is obsolete; use only for explicit compatibility workflows"
)]
UpdatePrimarySaleHappenedViaToken {
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `owner` from the official IDL contract.
owner: crate::MdPubkey,
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
},
/// Build deprecated DeprecatedSetReservationList, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedSetReservationList is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedSetReservationList {
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `reservationList` from the official IDL contract.
reservation_list: crate::MdPubkey,
/// Account `resource` from the official IDL contract.
resource: crate::MdPubkey,
},
/// Build deprecated DeprecatedCreateReservationList, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedCreateReservationList is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedCreateReservationList {
/// Account `reservationList` from the official IDL contract.
reservation_list: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `updateAuthority` from the official IDL contract.
update_authority: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `resource` from the official IDL contract.
resource: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
},
/// Build deprecated DeprecatedMintPrintingTokensViaToken, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedMintPrintingTokensViaToken is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedMintPrintingTokensViaToken {
/// Account `destination` from the official IDL contract.
destination: crate::MdPubkey,
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
/// Account `oneTimePrintingAuthorizationMint` from the official IDL contract.
one_time_printing_authorization_mint: crate::MdPubkey,
/// Account `printingMint` from the official IDL contract.
printing_mint: crate::MdPubkey,
/// Account `burnAuthority` from the official IDL contract.
burn_authority: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
},
/// Build deprecated DeprecatedMintPrintingTokens, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "DeprecatedMintPrintingTokens is obsolete; use only for explicit compatibility workflows"
)]
DeprecatedMintPrintingTokens {
/// Account `destination` from the official IDL contract.
destination: crate::MdPubkey,
/// Account `printingMint` from the official IDL contract.
printing_mint: crate::MdPubkey,
/// Account `updateAuthority` from the official IDL contract.
update_authority: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
},
/// Build deprecated ConvertMasterEditionV1ToV2, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "ConvertMasterEditionV1ToV2 is obsolete; use only for explicit compatibility workflows"
)]
ConvertMasterEditionV1ToV2 {
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `oneTimeAuth` from the official IDL contract.
one_time_auth: crate::MdPubkey,
/// Account `printingMint` from the official IDL contract.
printing_mint: crate::MdPubkey,
},
/// Build deprecated MintNewEditionFromMasterEditionViaVaultProxy, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "MintNewEditionFromMasterEditionViaVaultProxy is obsolete; use only for explicit compatibility workflows"
)]
MintNewEditionFromMasterEditionViaVaultProxy {
/// Account `newMetadata` from the official IDL contract.
new_metadata: crate::MdPubkey,
/// Account `newEdition` from the official IDL contract.
new_edition: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `newMint` from the official IDL contract.
new_mint: crate::MdPubkey,
/// Account `editionMarkPda` from the official IDL contract.
edition_mark_pda: crate::MdPubkey,
/// Account `newMintAuthority` from the official IDL contract.
new_mint_authority: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `vaultAuthority` from the official IDL contract.
vault_authority: crate::MdPubkey,
/// Account `safetyDepositStore` from the official IDL contract.
safety_deposit_store: crate::MdPubkey,
/// Account `safetyDepositBox` from the official IDL contract.
safety_deposit_box: crate::MdPubkey,
/// Account `vault` from the official IDL contract.
vault: crate::MdPubkey,
/// Account `newMetadataUpdateAuthority` from the official IDL contract.
new_metadata_update_authority: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `tokenVaultProgram` from the official IDL contract.
token_vault_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::types::MintNewEditionFromMasterEditionViaTokenArgs,
},
/// Build deprecated Utilize, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "Utilize is obsolete; use only for explicit compatibility workflows"
)]
Utilize {
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `tokenAccount` from the official IDL contract.
token_account: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `useAuthority` from the official IDL contract.
use_authority: crate::MdPubkey,
/// Account `owner` from the official IDL contract.
owner: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `ataProgram` from the official IDL contract.
ata_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
/// Account `useAuthorityRecord` from the official IDL contract.
use_authority_record: crate::MdPubkey,
/// Account `burner` from the official IDL contract.
burner: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::instructions::UtilizeInstructionArgs,
},
/// Build deprecated ApproveUseAuthority, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "ApproveUseAuthority is obsolete; use only for explicit compatibility workflows"
)]
ApproveUseAuthority {
/// Account `useAuthorityRecord` from the official IDL contract.
use_authority_record: crate::MdPubkey,
/// Account `owner` from the official IDL contract.
owner: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `user` from the official IDL contract.
user: crate::MdPubkey,
/// Account `ownerTokenAccount` from the official IDL contract.
owner_token_account: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `burner` from the official IDL contract.
burner: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::instructions::ApproveUseAuthorityInstructionArgs,
},
/// Build deprecated RevokeUseAuthority, retained for explicit compatibility workflows.
#[deprecated(
since = "0.4.7",
note = "RevokeUseAuthority is obsolete; use only for explicit compatibility workflows"
)]
RevokeUseAuthority {
/// Account `useAuthorityRecord` from the official IDL contract.
use_authority_record: crate::MdPubkey,
/// Account `owner` from the official IDL contract.
owner: crate::MdPubkey,
/// Account `user` from the official IDL contract.
user: crate::MdPubkey,
/// Account `ownerTokenAccount` from the official IDL contract.
owner_token_account: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `rent` from the official IDL contract.
rent: crate::MdPubkey,
},
/// Build the current CreateEscrowAccount instruction.
CreateEscrowAccount {
/// Account `escrow` from the official IDL contract.
escrow: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `tokenAccount` from the official IDL contract.
token_account: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
},
/// Build the current CloseEscrowAccount instruction.
CloseEscrowAccount {
/// Account `escrow` from the official IDL contract.
escrow: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `tokenAccount` from the official IDL contract.
token_account: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
},
/// Build the current TransferOutOfEscrow instruction.
TransferOutOfEscrow {
/// Account `escrow` from the official IDL contract.
escrow: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `attributeMint` from the official IDL contract.
attribute_mint: crate::MdPubkey,
/// Account `attributeSrc` from the official IDL contract.
attribute_src: crate::MdPubkey,
/// Account `attributeDst` from the official IDL contract.
attribute_dst: crate::MdPubkey,
/// Account `escrowMint` from the official IDL contract.
escrow_mint: crate::MdPubkey,
/// Account `escrowAccount` from the official IDL contract.
escrow_account: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `ataProgram` from the official IDL contract.
ata_program: crate::MdPubkey,
/// Account `tokenProgram` from the official IDL contract.
token_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::instructions::TransferOutOfEscrowInstructionArgs,
},
/// Build the current Mint instruction.
Mint {
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
/// Account `tokenOwner` from the official IDL contract.
token_owner: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `tokenRecord` from the official IDL contract.
token_record: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Account `delegateRecord` from the official IDL contract.
delegate_record: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `splTokenProgram` from the official IDL contract.
spl_token_program: crate::MdPubkey,
/// Account `splAtaProgram` from the official IDL contract.
spl_ata_program: crate::MdPubkey,
/// Account `authorizationRulesProgram` from the official IDL contract.
authorization_rules_program: crate::MdPubkey,
/// Account `authorizationRules` from the official IDL contract.
authorization_rules: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::types::MintArgs,
},
/// Build the current Migrate instruction.
Migrate {
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
/// Account `tokenOwner` from the official IDL contract.
token_owner: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Account `collectionMetadata` from the official IDL contract.
collection_metadata: crate::MdPubkey,
/// Account `delegateRecord` from the official IDL contract.
delegate_record: crate::MdPubkey,
/// Account `tokenRecord` from the official IDL contract.
token_record: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `splTokenProgram` from the official IDL contract.
spl_token_program: crate::MdPubkey,
/// Account `authorizationRulesProgram` from the official IDL contract.
authorization_rules_program: crate::MdPubkey,
/// Account `authorizationRules` from the official IDL contract.
authorization_rules: crate::MdPubkey,
},
/// Build the current Use instruction.
Use {
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Account `delegateRecord` from the official IDL contract.
delegate_record: crate::MdPubkey,
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `splTokenProgram` from the official IDL contract.
spl_token_program: crate::MdPubkey,
/// Account `authorizationRulesProgram` from the official IDL contract.
authorization_rules_program: crate::MdPubkey,
/// Account `authorizationRules` from the official IDL contract.
authorization_rules: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::types::UseArgs,
},
/// Build the current Collect instruction.
Collect {
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Account `recipient` from the official IDL contract.
recipient: crate::MdPubkey,
},
/// Build the current Print instruction.
Print {
/// Account `editionMetadata` from the official IDL contract.
edition_metadata: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `editionMint` from the official IDL contract.
edition_mint: crate::MdPubkey,
/// Account `editionTokenAccountOwner` from the official IDL contract.
edition_token_account_owner: crate::MdPubkey,
/// Account `editionTokenAccount` from the official IDL contract.
edition_token_account: crate::MdPubkey,
/// Account `editionMintAuthority` from the official IDL contract.
edition_mint_authority: crate::MdPubkey,
/// Account `editionTokenRecord` from the official IDL contract.
edition_token_record: crate::MdPubkey,
/// Account `masterEdition` from the official IDL contract.
master_edition: crate::MdPubkey,
/// Account `editionMarkerPda` from the official IDL contract.
edition_marker_pda: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `masterTokenAccountOwner` from the official IDL contract.
master_token_account_owner: crate::MdPubkey,
/// Account `masterTokenAccount` from the official IDL contract.
master_token_account: crate::MdPubkey,
/// Account `masterMetadata` from the official IDL contract.
master_metadata: crate::MdPubkey,
/// Account `updateAuthority` from the official IDL contract.
update_authority: crate::MdPubkey,
/// Account `splTokenProgram` from the official IDL contract.
spl_token_program: crate::MdPubkey,
/// Account `splAtaProgram` from the official IDL contract.
spl_ata_program: crate::MdPubkey,
/// Account `sysvarInstructions` from the official IDL contract.
sysvar_instructions: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
/// Official Metaplex instruction arguments.
#[ts(type = "unknown")]
args: mpl_token_metadata::types::PrintArgs,
},
/// Build the current Resize instruction.
Resize {
/// Account `metadata` from the official IDL contract.
metadata: crate::MdPubkey,
/// Account `edition` from the official IDL contract.
edition: crate::MdPubkey,
/// Account `mint` from the official IDL contract.
mint: crate::MdPubkey,
/// Account `payer` from the official IDL contract.
payer: crate::MdPubkey,
/// Account `authority` from the official IDL contract.
authority: crate::MdPubkey,
/// Account `token` from the official IDL contract.
token: crate::MdPubkey,
/// Account `systemProgram` from the official IDL contract.
system_program: crate::MdPubkey,
},
}
#[allow(deprecated)]
@@ -315,7 +959,9 @@ impl crate::ExMetaplexTokenMetadataOperation {
Self::UpdateAsUpdateAuthorityV2 { .. } => {
crate::EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION
},
Self::PuffMetadata { .. } => crate::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION,
Self::PuffMetadata { .. } => {
crate::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION
},
Self::SetTokenStandard { .. } => {
crate::EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION
},
@@ -333,6 +979,27 @@ impl crate::ExMetaplexTokenMetadataOperation {
Self::CloseAccounts { .. } => {
crate::EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION
},
Self::DeprecatedCreateMasterEdition { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION,
Self::DeprecatedMintNewEditionFromMasterEditionViaPrintingToken { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION,
Self::UpdatePrimarySaleHappenedViaToken { .. } => crate::EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION,
Self::DeprecatedSetReservationList { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION,
Self::DeprecatedCreateReservationList { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION,
Self::DeprecatedMintPrintingTokensViaToken { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION,
Self::DeprecatedMintPrintingTokens { .. } => crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION,
Self::ConvertMasterEditionV1ToV2 { .. } => crate::EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION,
Self::MintNewEditionFromMasterEditionViaVaultProxy { .. } => crate::EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION,
Self::Utilize { .. } => crate::EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION,
Self::ApproveUseAuthority { .. } => crate::EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION,
Self::RevokeUseAuthority { .. } => crate::EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION,
Self::CreateEscrowAccount { .. } => crate::EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION,
Self::CloseEscrowAccount { .. } => crate::EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION,
Self::TransferOutOfEscrow { .. } => crate::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION,
Self::Mint { .. } => crate::EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION,
Self::Migrate { .. } => crate::EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION,
Self::Use { .. } => crate::EX_METAPLEX_TOKEN_METADATA_USE_OPERATION,
Self::Collect { .. } => crate::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION,
Self::Print { .. } => crate::EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION,
Self::Resize { .. } => crate::EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION,
};
}
@@ -343,6 +1010,18 @@ impl crate::ExMetaplexTokenMetadataOperation {
Self::PuffMetadata { .. }
| Self::SetTokenStandard { .. }
| Self::SetCollectionSize { .. }
| Self::DeprecatedCreateMasterEdition { .. }
| Self::DeprecatedMintNewEditionFromMasterEditionViaPrintingToken { .. }
| Self::UpdatePrimarySaleHappenedViaToken { .. }
| Self::DeprecatedSetReservationList { .. }
| Self::DeprecatedCreateReservationList { .. }
| Self::DeprecatedMintPrintingTokensViaToken { .. }
| Self::DeprecatedMintPrintingTokens { .. }
| Self::ConvertMasterEditionV1ToV2 { .. }
| Self::MintNewEditionFromMasterEditionViaVaultProxy { .. }
| Self::Utilize { .. }
| Self::ApproveUseAuthority { .. }
| Self::RevokeUseAuthority { .. }
);
}
}
@@ -373,12 +1052,12 @@ mod tests {
#[test]
#[allow(deprecated)]
fn operation_codes_are_exact_unique_and_partition_deprecated_operations() {
assert_eq!(crate::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.len(), 14);
assert_eq!(crate::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.len(), 35);
let mut unique = std::collections::BTreeSet::new();
for operation_code in crate::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES {
assert!(unique.insert(*operation_code));
}
assert_eq!(crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES.len(), 3);
assert_eq!(crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES.len(), 15);
assert!(
crate::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES
.contains(&crate::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION,)

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/lib.rs
// version: 28
// version: 29
//! Consolidated decoder, executor, materializer and shared model library.
#![warn(missing_docs)]
@@ -358,37 +358,79 @@ pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_use_autho
pub use self::decoder::decoder_spl_elgamal_registry_parse_elgamal_registry_state;
/// Parses one Token-2022 Mint, Account, or Multisig state.
pub use self::decoder::decoder_spl_token_2022_parse_token_2022_state;
/// Stable Metaplex Token Metadata burn operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_BURN_OPERATION;
/// Stable Metaplex Token Metadata close_accounts operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_CLOSE_ACCOUNTS_OPERATION;
/// Stable operation code for the current Metaplex Create wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_CLOSE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_COLLECT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_CONVERT_MASTER_EDITION_V1_TO_V2_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_CREATE_ESCROW_ACCOUNT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION;
/// Stable Metaplex Token Metadata delegate operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DELEGATE_OPERATION;
/// Deprecated Metaplex operation codes requiring explicit approval.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_MASTER_EDITION_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_CREATE_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_PRINTING_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES;
/// Stable Metaplex Token Metadata lock operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_SET_RESERVATION_LIST_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_LOCK_OPERATION;
/// Stable deprecated Metaplex PuffMetadata operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_MIGRATE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_MINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_PRINT_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_PUFF_METADATA_OPERATION;
/// Stable Metaplex Token Metadata revoke operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_RESIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_REVOKE_OPERATION;
/// Stable deprecated Metaplex SetCollectionSize operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_SET_COLLECTION_SIZE_OPERATION;
/// Stable deprecated Metaplex SetTokenStandard operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_SET_TOKEN_STANDARD_OPERATION;
/// Current and deprecated Metaplex Token Metadata operations.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES;
/// Stable Metaplex Token Metadata transfer operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OPERATION;
/// Stable Metaplex Token Metadata unlock operation code.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_TRANSFER_OUT_OF_ESCROW_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_UNLOCK_OPERATION;
/// Stable operation code for the current Metaplex Unverify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_UNVERIFY_OPERATION;
/// Stable operation code for the current Metaplex Update wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION;
/// Stable operation code for the current Metaplex Verify wrapper.
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_USE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_USE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_UTILIZE_OPERATION;
/// Exposes `EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION`.
pub use self::executor::EX_METAPLEX_TOKEN_METADATA_VERIFY_OPERATION;
/// Exposes the Address Lookup Table close operation code.
pub use self::executor::EX_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_CLOSE_OPERATION;