use crate::{Token2022Decoder, PROGRAM_ID};
#[cfg(feature = "postgres")]
pub mod postgres;
#[cfg(feature = "graphql")]
pub mod graphql;
pub mod amount_to_ui_amount;
pub mod apply_confidential_pending_balance;
pub mod approve;
pub mod approve_checked;
pub mod approve_confidential_transfer_account;
pub mod burn;
pub mod burn_checked;
pub mod close_account;
pub mod confidential_deposit;
pub mod confidential_transfer;
pub mod confidential_transfer_with_fee;
pub mod confidential_withdraw;
pub mod configure_confidential_transfer_account;
pub mod create_native_mint;
pub mod disable_confidential_credits;
pub mod disable_cpi_guard;
pub mod disable_harvest_to_mint;
pub mod disable_memo_transfers;
pub mod disable_non_confidential_credits;
pub mod emit_token_metadata;
pub mod empty_confidential_transfer_account;
pub mod enable_confidential_credits;
pub mod enable_cpi_guard;
pub mod enable_harvest_to_mint;
pub mod enable_memo_transfers;
pub mod enable_non_confidential_credits;
pub mod freeze_account;
pub mod get_account_data_size;
pub mod harvest_withheld_tokens_to_mint;
pub mod harvest_withheld_tokens_to_mint_for_confidential_transfer_fee;
pub mod initialize_account;
pub mod initialize_account2;
pub mod initialize_account3;
pub mod initialize_confidential_transfer_fee;
pub mod initialize_confidential_transfer_mint;
pub mod initialize_default_account_state;
pub mod initialize_group_member_pointer;
pub mod initialize_group_pointer;
pub mod initialize_immutable_owner;
pub mod initialize_interest_bearing_mint;
pub mod initialize_metadata_pointer;
pub mod initialize_mint;
pub mod initialize_mint2;
pub mod initialize_mint_close_authority;
pub mod initialize_multisig;
pub mod initialize_multisig2;
pub mod initialize_non_transferable_mint;
pub mod initialize_pausable_config;
pub mod initialize_permanent_delegate;
pub mod initialize_permissioned_burn;
pub mod initialize_scaled_ui_amount_mint;
pub mod initialize_token_group;
pub mod initialize_token_group_member;
pub mod initialize_token_metadata;
pub mod initialize_transfer_fee_config;
pub mod initialize_transfer_hook;
pub mod mint_to;
pub mod mint_to_checked;
pub mod pause;
pub mod permissioned_burn;
pub mod permissioned_burn_checked;
pub mod reallocate;
pub mod remove_token_metadata_key;
pub mod resume;
pub mod revoke;
pub mod set_authority;
pub mod set_transfer_fee;
pub mod sync_native;
pub mod thaw_account;
pub mod transfer;
pub mod transfer_checked;
pub mod transfer_checked_with_fee;
pub mod ui_amount_to_amount;
pub mod unwrap_lamports;
pub mod update_confidential_transfer_mint;
pub mod update_default_account_state;
pub mod update_group_member_pointer;
pub mod update_group_pointer;
pub mod update_metadata_pointer;
pub mod update_multiplier_scaled_ui_mint;
pub mod update_rate_interest_bearing_mint;
pub mod update_token_group_max_size;
pub mod update_token_group_update_authority;
pub mod update_token_metadata_field;
pub mod update_token_metadata_update_authority;
pub mod update_transfer_hook;
pub mod withdraw_excess_lamports;
pub mod withdraw_withheld_tokens_from_accounts;
pub mod withdraw_withheld_tokens_from_accounts_for_confidential_transfer_fee;
pub mod withdraw_withheld_tokens_from_mint;
pub mod withdraw_withheld_tokens_from_mint_for_confidential_transfer_fee;
pub use self::{
amount_to_ui_amount::*, apply_confidential_pending_balance::*, approve::*, approve_checked::*,
approve_confidential_transfer_account::*, burn::*, burn_checked::*, close_account::*,
confidential_deposit::*, confidential_transfer::*, confidential_transfer_with_fee::*,
confidential_withdraw::*, configure_confidential_transfer_account::*, create_native_mint::*,
disable_confidential_credits::*, disable_cpi_guard::*, disable_harvest_to_mint::*,
disable_memo_transfers::*, disable_non_confidential_credits::*, emit_token_metadata::*,
empty_confidential_transfer_account::*, enable_confidential_credits::*, enable_cpi_guard::*,
enable_harvest_to_mint::*, enable_memo_transfers::*, enable_non_confidential_credits::*,
freeze_account::*, get_account_data_size::*, harvest_withheld_tokens_to_mint::*,
harvest_withheld_tokens_to_mint_for_confidential_transfer_fee::*, initialize_account::*,
initialize_account2::*, initialize_account3::*, initialize_confidential_transfer_fee::*,
initialize_confidential_transfer_mint::*, initialize_default_account_state::*,
initialize_group_member_pointer::*, initialize_group_pointer::*, initialize_immutable_owner::*,
initialize_interest_bearing_mint::*, initialize_metadata_pointer::*, initialize_mint::*,
initialize_mint2::*, initialize_mint_close_authority::*, initialize_multisig::*,
initialize_multisig2::*, initialize_non_transferable_mint::*, initialize_pausable_config::*,
initialize_permanent_delegate::*, initialize_permissioned_burn::*,
initialize_scaled_ui_amount_mint::*, initialize_token_group::*,
initialize_token_group_member::*, initialize_token_metadata::*,
initialize_transfer_fee_config::*, initialize_transfer_hook::*, mint_to::*, mint_to_checked::*,
pause::*, permissioned_burn::*, permissioned_burn_checked::*, reallocate::*,
remove_token_metadata_key::*, resume::*, revoke::*, set_authority::*, set_transfer_fee::*,
sync_native::*, thaw_account::*, transfer::*, transfer_checked::*,
transfer_checked_with_fee::*, ui_amount_to_amount::*, unwrap_lamports::*,
update_confidential_transfer_mint::*, update_default_account_state::*,
update_group_member_pointer::*, update_group_pointer::*, update_metadata_pointer::*,
update_multiplier_scaled_ui_mint::*, update_rate_interest_bearing_mint::*,
update_token_group_max_size::*, update_token_group_update_authority::*,
update_token_metadata_field::*, update_token_metadata_update_authority::*,
update_transfer_hook::*, withdraw_excess_lamports::*,
withdraw_withheld_tokens_from_accounts::*,
withdraw_withheld_tokens_from_accounts_for_confidential_transfer_fee::*,
withdraw_withheld_tokens_from_mint::*,
withdraw_withheld_tokens_from_mint_for_confidential_transfer_fee::*,
};
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
pub enum Token2022Instruction {
AmountToUiAmount {
program_id: solana_pubkey::Pubkey,
data: AmountToUiAmount,
accounts: AmountToUiAmountInstructionAccounts,
},
ApplyConfidentialPendingBalance {
program_id: solana_pubkey::Pubkey,
data: ApplyConfidentialPendingBalance,
accounts: ApplyConfidentialPendingBalanceInstructionAccounts,
},
Approve {
program_id: solana_pubkey::Pubkey,
data: Approve,
accounts: ApproveInstructionAccounts,
},
ApproveChecked {
program_id: solana_pubkey::Pubkey,
data: ApproveChecked,
accounts: ApproveCheckedInstructionAccounts,
},
ApproveConfidentialTransferAccount {
program_id: solana_pubkey::Pubkey,
data: ApproveConfidentialTransferAccount,
accounts: ApproveConfidentialTransferAccountInstructionAccounts,
},
Burn {
program_id: solana_pubkey::Pubkey,
data: Burn,
accounts: BurnInstructionAccounts,
},
BurnChecked {
program_id: solana_pubkey::Pubkey,
data: BurnChecked,
accounts: BurnCheckedInstructionAccounts,
},
CloseAccount {
program_id: solana_pubkey::Pubkey,
data: CloseAccount,
accounts: CloseAccountInstructionAccounts,
},
ConfidentialDeposit {
program_id: solana_pubkey::Pubkey,
data: ConfidentialDeposit,
accounts: ConfidentialDepositInstructionAccounts,
},
ConfidentialTransfer {
program_id: solana_pubkey::Pubkey,
data: ConfidentialTransfer,
accounts: ConfidentialTransferInstructionAccounts,
},
ConfidentialTransferWithFee {
program_id: solana_pubkey::Pubkey,
data: ConfidentialTransferWithFee,
accounts: ConfidentialTransferWithFeeInstructionAccounts,
},
ConfidentialWithdraw {
program_id: solana_pubkey::Pubkey,
data: ConfidentialWithdraw,
accounts: ConfidentialWithdrawInstructionAccounts,
},
ConfigureConfidentialTransferAccount {
program_id: solana_pubkey::Pubkey,
data: ConfigureConfidentialTransferAccount,
accounts: ConfigureConfidentialTransferAccountInstructionAccounts,
},
CreateNativeMint {
program_id: solana_pubkey::Pubkey,
data: CreateNativeMint,
accounts: CreateNativeMintInstructionAccounts,
},
DisableConfidentialCredits {
program_id: solana_pubkey::Pubkey,
data: DisableConfidentialCredits,
accounts: DisableConfidentialCreditsInstructionAccounts,
},
DisableCpiGuard {
program_id: solana_pubkey::Pubkey,
data: DisableCpiGuard,
accounts: DisableCpiGuardInstructionAccounts,
},
DisableHarvestToMint {
program_id: solana_pubkey::Pubkey,
data: DisableHarvestToMint,
accounts: DisableHarvestToMintInstructionAccounts,
},
DisableMemoTransfers {
program_id: solana_pubkey::Pubkey,
data: DisableMemoTransfers,
accounts: DisableMemoTransfersInstructionAccounts,
},
DisableNonConfidentialCredits {
program_id: solana_pubkey::Pubkey,
data: DisableNonConfidentialCredits,
accounts: DisableNonConfidentialCreditsInstructionAccounts,
},
EmitTokenMetadata {
program_id: solana_pubkey::Pubkey,
data: EmitTokenMetadata,
accounts: EmitTokenMetadataInstructionAccounts,
},
EmptyConfidentialTransferAccount {
program_id: solana_pubkey::Pubkey,
data: EmptyConfidentialTransferAccount,
accounts: EmptyConfidentialTransferAccountInstructionAccounts,
},
EnableConfidentialCredits {
program_id: solana_pubkey::Pubkey,
data: EnableConfidentialCredits,
accounts: EnableConfidentialCreditsInstructionAccounts,
},
EnableCpiGuard {
program_id: solana_pubkey::Pubkey,
data: EnableCpiGuard,
accounts: EnableCpiGuardInstructionAccounts,
},
EnableHarvestToMint {
program_id: solana_pubkey::Pubkey,
data: EnableHarvestToMint,
accounts: EnableHarvestToMintInstructionAccounts,
},
EnableMemoTransfers {
program_id: solana_pubkey::Pubkey,
data: EnableMemoTransfers,
accounts: EnableMemoTransfersInstructionAccounts,
},
EnableNonConfidentialCredits {
program_id: solana_pubkey::Pubkey,
data: EnableNonConfidentialCredits,
accounts: EnableNonConfidentialCreditsInstructionAccounts,
},
FreezeAccount {
program_id: solana_pubkey::Pubkey,
data: FreezeAccount,
accounts: FreezeAccountInstructionAccounts,
},
GetAccountDataSize {
program_id: solana_pubkey::Pubkey,
data: GetAccountDataSize,
accounts: GetAccountDataSizeInstructionAccounts,
},
HarvestWithheldTokensToMint {
program_id: solana_pubkey::Pubkey,
data: HarvestWithheldTokensToMint,
accounts: HarvestWithheldTokensToMintInstructionAccounts,
},
HarvestWithheldTokensToMintForConfidentialTransferFee {
program_id: solana_pubkey::Pubkey,
data: HarvestWithheldTokensToMintForConfidentialTransferFee,
accounts: HarvestWithheldTokensToMintForConfidentialTransferFeeInstructionAccounts,
},
InitializeAccount {
program_id: solana_pubkey::Pubkey,
data: InitializeAccount,
accounts: InitializeAccountInstructionAccounts,
},
InitializeAccount2 {
program_id: solana_pubkey::Pubkey,
data: InitializeAccount2,
accounts: InitializeAccount2InstructionAccounts,
},
InitializeAccount3 {
program_id: solana_pubkey::Pubkey,
data: InitializeAccount3,
accounts: InitializeAccount3InstructionAccounts,
},
InitializeConfidentialTransferFee {
program_id: solana_pubkey::Pubkey,
data: InitializeConfidentialTransferFee,
accounts: InitializeConfidentialTransferFeeInstructionAccounts,
},
InitializeConfidentialTransferMint {
program_id: solana_pubkey::Pubkey,
data: InitializeConfidentialTransferMint,
accounts: InitializeConfidentialTransferMintInstructionAccounts,
},
InitializeDefaultAccountState {
program_id: solana_pubkey::Pubkey,
data: InitializeDefaultAccountState,
accounts: InitializeDefaultAccountStateInstructionAccounts,
},
InitializeGroupMemberPointer {
program_id: solana_pubkey::Pubkey,
data: InitializeGroupMemberPointer,
accounts: InitializeGroupMemberPointerInstructionAccounts,
},
InitializeGroupPointer {
program_id: solana_pubkey::Pubkey,
data: InitializeGroupPointer,
accounts: InitializeGroupPointerInstructionAccounts,
},
InitializeImmutableOwner {
program_id: solana_pubkey::Pubkey,
data: InitializeImmutableOwner,
accounts: InitializeImmutableOwnerInstructionAccounts,
},
InitializeInterestBearingMint {
program_id: solana_pubkey::Pubkey,
data: InitializeInterestBearingMint,
accounts: InitializeInterestBearingMintInstructionAccounts,
},
InitializeMetadataPointer {
program_id: solana_pubkey::Pubkey,
data: InitializeMetadataPointer,
accounts: InitializeMetadataPointerInstructionAccounts,
},
InitializeMint {
program_id: solana_pubkey::Pubkey,
data: InitializeMint,
accounts: InitializeMintInstructionAccounts,
},
InitializeMint2 {
program_id: solana_pubkey::Pubkey,
data: InitializeMint2,
accounts: InitializeMint2InstructionAccounts,
},
InitializeMintCloseAuthority {
program_id: solana_pubkey::Pubkey,
data: InitializeMintCloseAuthority,
accounts: InitializeMintCloseAuthorityInstructionAccounts,
},
InitializeMultisig {
program_id: solana_pubkey::Pubkey,
data: InitializeMultisig,
accounts: InitializeMultisigInstructionAccounts,
},
InitializeMultisig2 {
program_id: solana_pubkey::Pubkey,
data: InitializeMultisig2,
accounts: InitializeMultisig2InstructionAccounts,
},
InitializeNonTransferableMint {
program_id: solana_pubkey::Pubkey,
data: InitializeNonTransferableMint,
accounts: InitializeNonTransferableMintInstructionAccounts,
},
InitializePausableConfig {
program_id: solana_pubkey::Pubkey,
data: InitializePausableConfig,
accounts: InitializePausableConfigInstructionAccounts,
},
InitializePermanentDelegate {
program_id: solana_pubkey::Pubkey,
data: InitializePermanentDelegate,
accounts: InitializePermanentDelegateInstructionAccounts,
},
InitializePermissionedBurn {
program_id: solana_pubkey::Pubkey,
data: InitializePermissionedBurn,
accounts: InitializePermissionedBurnInstructionAccounts,
},
InitializeScaledUiAmountMint {
program_id: solana_pubkey::Pubkey,
data: InitializeScaledUiAmountMint,
accounts: InitializeScaledUiAmountMintInstructionAccounts,
},
InitializeTokenGroup {
program_id: solana_pubkey::Pubkey,
data: InitializeTokenGroup,
accounts: InitializeTokenGroupInstructionAccounts,
},
InitializeTokenGroupMember {
program_id: solana_pubkey::Pubkey,
data: InitializeTokenGroupMember,
accounts: InitializeTokenGroupMemberInstructionAccounts,
},
InitializeTokenMetadata {
program_id: solana_pubkey::Pubkey,
data: InitializeTokenMetadata,
accounts: InitializeTokenMetadataInstructionAccounts,
},
InitializeTransferFeeConfig {
program_id: solana_pubkey::Pubkey,
data: InitializeTransferFeeConfig,
accounts: InitializeTransferFeeConfigInstructionAccounts,
},
InitializeTransferHook {
program_id: solana_pubkey::Pubkey,
data: InitializeTransferHook,
accounts: InitializeTransferHookInstructionAccounts,
},
MintTo {
program_id: solana_pubkey::Pubkey,
data: MintTo,
accounts: MintToInstructionAccounts,
},
MintToChecked {
program_id: solana_pubkey::Pubkey,
data: MintToChecked,
accounts: MintToCheckedInstructionAccounts,
},
Pause {
program_id: solana_pubkey::Pubkey,
data: Pause,
accounts: PauseInstructionAccounts,
},
PermissionedBurn {
program_id: solana_pubkey::Pubkey,
data: PermissionedBurn,
accounts: PermissionedBurnInstructionAccounts,
},
PermissionedBurnChecked {
program_id: solana_pubkey::Pubkey,
data: PermissionedBurnChecked,
accounts: PermissionedBurnCheckedInstructionAccounts,
},
Reallocate {
program_id: solana_pubkey::Pubkey,
data: Reallocate,
accounts: ReallocateInstructionAccounts,
},
RemoveTokenMetadataKey {
program_id: solana_pubkey::Pubkey,
data: RemoveTokenMetadataKey,
accounts: RemoveTokenMetadataKeyInstructionAccounts,
},
Resume {
program_id: solana_pubkey::Pubkey,
data: Resume,
accounts: ResumeInstructionAccounts,
},
Revoke {
program_id: solana_pubkey::Pubkey,
data: Revoke,
accounts: RevokeInstructionAccounts,
},
SetAuthority {
program_id: solana_pubkey::Pubkey,
data: SetAuthority,
accounts: SetAuthorityInstructionAccounts,
},
SetTransferFee {
program_id: solana_pubkey::Pubkey,
data: SetTransferFee,
accounts: SetTransferFeeInstructionAccounts,
},
SyncNative {
program_id: solana_pubkey::Pubkey,
data: SyncNative,
accounts: SyncNativeInstructionAccounts,
},
ThawAccount {
program_id: solana_pubkey::Pubkey,
data: ThawAccount,
accounts: ThawAccountInstructionAccounts,
},
Transfer {
program_id: solana_pubkey::Pubkey,
data: Transfer,
accounts: TransferInstructionAccounts,
},
TransferChecked {
program_id: solana_pubkey::Pubkey,
data: TransferChecked,
accounts: TransferCheckedInstructionAccounts,
},
TransferCheckedWithFee {
program_id: solana_pubkey::Pubkey,
data: TransferCheckedWithFee,
accounts: TransferCheckedWithFeeInstructionAccounts,
},
UiAmountToAmount {
program_id: solana_pubkey::Pubkey,
data: UiAmountToAmount,
accounts: UiAmountToAmountInstructionAccounts,
},
UnwrapLamports {
program_id: solana_pubkey::Pubkey,
data: UnwrapLamports,
accounts: UnwrapLamportsInstructionAccounts,
},
UpdateConfidentialTransferMint {
program_id: solana_pubkey::Pubkey,
data: UpdateConfidentialTransferMint,
accounts: UpdateConfidentialTransferMintInstructionAccounts,
},
UpdateDefaultAccountState {
program_id: solana_pubkey::Pubkey,
data: UpdateDefaultAccountState,
accounts: UpdateDefaultAccountStateInstructionAccounts,
},
UpdateGroupMemberPointer {
program_id: solana_pubkey::Pubkey,
data: UpdateGroupMemberPointer,
accounts: UpdateGroupMemberPointerInstructionAccounts,
},
UpdateGroupPointer {
program_id: solana_pubkey::Pubkey,
data: UpdateGroupPointer,
accounts: UpdateGroupPointerInstructionAccounts,
},
UpdateMetadataPointer {
program_id: solana_pubkey::Pubkey,
data: UpdateMetadataPointer,
accounts: UpdateMetadataPointerInstructionAccounts,
},
UpdateMultiplierScaledUiMint {
program_id: solana_pubkey::Pubkey,
data: UpdateMultiplierScaledUiMint,
accounts: UpdateMultiplierScaledUiMintInstructionAccounts,
},
UpdateRateInterestBearingMint {
program_id: solana_pubkey::Pubkey,
data: UpdateRateInterestBearingMint,
accounts: UpdateRateInterestBearingMintInstructionAccounts,
},
UpdateTokenGroupMaxSize {
program_id: solana_pubkey::Pubkey,
data: UpdateTokenGroupMaxSize,
accounts: UpdateTokenGroupMaxSizeInstructionAccounts,
},
UpdateTokenGroupUpdateAuthority {
program_id: solana_pubkey::Pubkey,
data: UpdateTokenGroupUpdateAuthority,
accounts: UpdateTokenGroupUpdateAuthorityInstructionAccounts,
},
UpdateTokenMetadataField {
program_id: solana_pubkey::Pubkey,
data: UpdateTokenMetadataField,
accounts: UpdateTokenMetadataFieldInstructionAccounts,
},
UpdateTokenMetadataUpdateAuthority {
program_id: solana_pubkey::Pubkey,
data: UpdateTokenMetadataUpdateAuthority,
accounts: UpdateTokenMetadataUpdateAuthorityInstructionAccounts,
},
UpdateTransferHook {
program_id: solana_pubkey::Pubkey,
data: UpdateTransferHook,
accounts: UpdateTransferHookInstructionAccounts,
},
WithdrawExcessLamports {
program_id: solana_pubkey::Pubkey,
data: WithdrawExcessLamports,
accounts: WithdrawExcessLamportsInstructionAccounts,
},
WithdrawWithheldTokensFromAccounts {
program_id: solana_pubkey::Pubkey,
data: WithdrawWithheldTokensFromAccounts,
accounts: WithdrawWithheldTokensFromAccountsInstructionAccounts,
},
WithdrawWithheldTokensFromAccountsForConfidentialTransferFee {
program_id: solana_pubkey::Pubkey,
data: WithdrawWithheldTokensFromAccountsForConfidentialTransferFee,
accounts: WithdrawWithheldTokensFromAccountsForConfidentialTransferFeeInstructionAccounts,
},
WithdrawWithheldTokensFromMint {
program_id: solana_pubkey::Pubkey,
data: WithdrawWithheldTokensFromMint,
accounts: WithdrawWithheldTokensFromMintInstructionAccounts,
},
WithdrawWithheldTokensFromMintForConfidentialTransferFee {
program_id: solana_pubkey::Pubkey,
data: WithdrawWithheldTokensFromMintForConfidentialTransferFee,
accounts: WithdrawWithheldTokensFromMintForConfidentialTransferFeeInstructionAccounts,
},
}
impl carbon_core::instruction::InstructionDecoder<'_> for Token2022Decoder {
type InstructionType = Token2022Instruction;
fn decode_instruction(
&self,
instruction: &solana_instruction::Instruction,
) -> Option<Self::InstructionType> {
if instruction.program_id != PROGRAM_ID {
return None;
}
carbon_core::try_decode_instructions!(
instruction,
PROGRAM_ID,
Token2022Instruction::AmountToUiAmount => AmountToUiAmount,
Token2022Instruction::ApplyConfidentialPendingBalance => ApplyConfidentialPendingBalance,
Token2022Instruction::Approve => Approve,
Token2022Instruction::ApproveChecked => ApproveChecked,
Token2022Instruction::ApproveConfidentialTransferAccount => ApproveConfidentialTransferAccount,
Token2022Instruction::Burn => Burn,
Token2022Instruction::BurnChecked => BurnChecked,
Token2022Instruction::CloseAccount => CloseAccount,
Token2022Instruction::ConfidentialDeposit => ConfidentialDeposit,
Token2022Instruction::ConfidentialTransfer => ConfidentialTransfer,
Token2022Instruction::ConfidentialTransferWithFee => ConfidentialTransferWithFee,
Token2022Instruction::ConfidentialWithdraw => ConfidentialWithdraw,
Token2022Instruction::ConfigureConfidentialTransferAccount => ConfigureConfidentialTransferAccount,
Token2022Instruction::CreateNativeMint => CreateNativeMint,
Token2022Instruction::DisableConfidentialCredits => DisableConfidentialCredits,
Token2022Instruction::DisableCpiGuard => DisableCpiGuard,
Token2022Instruction::DisableHarvestToMint => DisableHarvestToMint,
Token2022Instruction::DisableMemoTransfers => DisableMemoTransfers,
Token2022Instruction::DisableNonConfidentialCredits => DisableNonConfidentialCredits,
Token2022Instruction::EmitTokenMetadata => EmitTokenMetadata,
Token2022Instruction::EmptyConfidentialTransferAccount => EmptyConfidentialTransferAccount,
Token2022Instruction::EnableConfidentialCredits => EnableConfidentialCredits,
Token2022Instruction::EnableCpiGuard => EnableCpiGuard,
Token2022Instruction::EnableHarvestToMint => EnableHarvestToMint,
Token2022Instruction::EnableMemoTransfers => EnableMemoTransfers,
Token2022Instruction::EnableNonConfidentialCredits => EnableNonConfidentialCredits,
Token2022Instruction::FreezeAccount => FreezeAccount,
Token2022Instruction::GetAccountDataSize => GetAccountDataSize,
Token2022Instruction::HarvestWithheldTokensToMint => HarvestWithheldTokensToMint,
Token2022Instruction::HarvestWithheldTokensToMintForConfidentialTransferFee => HarvestWithheldTokensToMintForConfidentialTransferFee,
Token2022Instruction::InitializeAccount => InitializeAccount,
Token2022Instruction::InitializeAccount2 => InitializeAccount2,
Token2022Instruction::InitializeAccount3 => InitializeAccount3,
Token2022Instruction::InitializeConfidentialTransferFee => InitializeConfidentialTransferFee,
Token2022Instruction::InitializeConfidentialTransferMint => InitializeConfidentialTransferMint,
Token2022Instruction::InitializeDefaultAccountState => InitializeDefaultAccountState,
Token2022Instruction::InitializeGroupMemberPointer => InitializeGroupMemberPointer,
Token2022Instruction::InitializeGroupPointer => InitializeGroupPointer,
Token2022Instruction::InitializeImmutableOwner => InitializeImmutableOwner,
Token2022Instruction::InitializeInterestBearingMint => InitializeInterestBearingMint,
Token2022Instruction::InitializeMetadataPointer => InitializeMetadataPointer,
Token2022Instruction::InitializeMint => InitializeMint,
Token2022Instruction::InitializeMint2 => InitializeMint2,
Token2022Instruction::InitializeMintCloseAuthority => InitializeMintCloseAuthority,
Token2022Instruction::InitializeMultisig => InitializeMultisig,
Token2022Instruction::InitializeMultisig2 => InitializeMultisig2,
Token2022Instruction::InitializeNonTransferableMint => InitializeNonTransferableMint,
Token2022Instruction::InitializePausableConfig => InitializePausableConfig,
Token2022Instruction::InitializePermanentDelegate => InitializePermanentDelegate,
Token2022Instruction::InitializePermissionedBurn => InitializePermissionedBurn,
Token2022Instruction::InitializeScaledUiAmountMint => InitializeScaledUiAmountMint,
Token2022Instruction::InitializeTokenGroup => InitializeTokenGroup,
Token2022Instruction::InitializeTokenGroupMember => InitializeTokenGroupMember,
Token2022Instruction::InitializeTokenMetadata => InitializeTokenMetadata,
Token2022Instruction::InitializeTransferFeeConfig => InitializeTransferFeeConfig,
Token2022Instruction::InitializeTransferHook => InitializeTransferHook,
Token2022Instruction::MintTo => MintTo,
Token2022Instruction::MintToChecked => MintToChecked,
Token2022Instruction::Pause => Pause,
Token2022Instruction::PermissionedBurn => PermissionedBurn,
Token2022Instruction::PermissionedBurnChecked => PermissionedBurnChecked,
Token2022Instruction::Reallocate => Reallocate,
Token2022Instruction::RemoveTokenMetadataKey => RemoveTokenMetadataKey,
Token2022Instruction::Resume => Resume,
Token2022Instruction::Revoke => Revoke,
Token2022Instruction::SetAuthority => SetAuthority,
Token2022Instruction::SetTransferFee => SetTransferFee,
Token2022Instruction::SyncNative => SyncNative,
Token2022Instruction::ThawAccount => ThawAccount,
Token2022Instruction::Transfer => Transfer,
Token2022Instruction::TransferChecked => TransferChecked,
Token2022Instruction::TransferCheckedWithFee => TransferCheckedWithFee,
Token2022Instruction::UiAmountToAmount => UiAmountToAmount,
Token2022Instruction::UnwrapLamports => UnwrapLamports,
Token2022Instruction::UpdateConfidentialTransferMint => UpdateConfidentialTransferMint,
Token2022Instruction::UpdateDefaultAccountState => UpdateDefaultAccountState,
Token2022Instruction::UpdateGroupMemberPointer => UpdateGroupMemberPointer,
Token2022Instruction::UpdateGroupPointer => UpdateGroupPointer,
Token2022Instruction::UpdateMetadataPointer => UpdateMetadataPointer,
Token2022Instruction::UpdateMultiplierScaledUiMint => UpdateMultiplierScaledUiMint,
Token2022Instruction::UpdateRateInterestBearingMint => UpdateRateInterestBearingMint,
Token2022Instruction::UpdateTokenGroupMaxSize => UpdateTokenGroupMaxSize,
Token2022Instruction::UpdateTokenGroupUpdateAuthority => UpdateTokenGroupUpdateAuthority,
Token2022Instruction::UpdateTokenMetadataField => UpdateTokenMetadataField,
Token2022Instruction::UpdateTokenMetadataUpdateAuthority => UpdateTokenMetadataUpdateAuthority,
Token2022Instruction::UpdateTransferHook => UpdateTransferHook,
Token2022Instruction::WithdrawExcessLamports => WithdrawExcessLamports,
Token2022Instruction::WithdrawWithheldTokensFromAccounts => WithdrawWithheldTokensFromAccounts,
Token2022Instruction::WithdrawWithheldTokensFromAccountsForConfidentialTransferFee => WithdrawWithheldTokensFromAccountsForConfidentialTransferFee,
Token2022Instruction::WithdrawWithheldTokensFromMint => WithdrawWithheldTokensFromMint,
Token2022Instruction::WithdrawWithheldTokensFromMintForConfidentialTransferFee => WithdrawWithheldTokensFromMintForConfidentialTransferFee,
)
}
}