extern crate self as light_instruction_decoder;
use light_instruction_decoder_derive::InstructionDecoder;
#[derive(InstructionDecoder)]
#[instruction_decoder(
program_id = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
program_name = "Token 2022",
discriminator_size = 1
)]
pub enum Token2022Instruction {
#[instruction_decoder(account_names = ["mint", "rent"])]
InitializeMint { decimals: u8 },
#[instruction_decoder(account_names = ["account", "mint", "owner", "rent"])]
InitializeAccount,
#[instruction_decoder(account_names = ["multisig", "rent"])]
InitializeMultisig { m: u8 },
#[instruction_decoder(account_names = ["source", "destination", "authority"])]
Transfer { amount: u64 },
#[instruction_decoder(account_names = ["source", "delegate", "owner"])]
Approve { amount: u64 },
#[instruction_decoder(account_names = ["source", "owner"])]
Revoke,
#[instruction_decoder(account_names = ["account_or_mint", "current_authority"])]
SetAuthority { authority_type: u8 },
#[instruction_decoder(account_names = ["mint", "destination", "authority"])]
MintTo { amount: u64 },
#[instruction_decoder(account_names = ["source", "mint", "authority"])]
Burn { amount: u64 },
#[instruction_decoder(account_names = ["account", "destination", "authority"])]
CloseAccount,
#[instruction_decoder(account_names = ["account", "mint", "authority"])]
FreezeAccount,
#[instruction_decoder(account_names = ["account", "mint", "authority"])]
ThawAccount,
#[instruction_decoder(account_names = ["source", "mint", "destination", "authority"])]
TransferChecked { amount: u64, decimals: u8 },
#[instruction_decoder(account_names = ["source", "mint", "delegate", "owner"])]
ApproveChecked { amount: u64, decimals: u8 },
#[instruction_decoder(account_names = ["mint", "destination", "authority"])]
MintToChecked { amount: u64, decimals: u8 },
#[instruction_decoder(account_names = ["source", "mint", "authority"])]
BurnChecked { amount: u64, decimals: u8 },
#[instruction_decoder(account_names = ["account", "mint", "rent"])]
InitializeAccount2,
#[instruction_decoder(account_names = ["account"])]
SyncNative,
#[instruction_decoder(account_names = ["account", "mint"])]
InitializeAccount3,
#[instruction_decoder(account_names = ["multisig"])]
InitializeMultisig2 { m: u8 },
#[instruction_decoder(account_names = ["mint"])]
InitializeMint2 { decimals: u8 },
#[instruction_decoder(account_names = ["mint"])]
GetAccountDataSize,
#[instruction_decoder(account_names = ["account"])]
InitializeImmutableOwner,
#[instruction_decoder(account_names = ["mint"])]
AmountToUiAmount { amount: u64 },
#[instruction_decoder(account_names = ["mint"])]
UiAmountToAmount,
#[instruction_decoder(account_names = ["mint"])]
InitializeMintCloseAuthority,
#[instruction_decoder(account_names = ["mint"])]
TransferFeeExtension,
#[instruction_decoder(account_names = ["account"])]
ConfidentialTransferExtension,
#[instruction_decoder(account_names = ["mint"])]
DefaultAccountStateExtension,
#[instruction_decoder(account_names = ["account", "payer", "system_program"])]
Reallocate,
#[instruction_decoder(account_names = ["account", "owner"])]
MemoTransferExtension,
#[instruction_decoder(account_names = ["mint", "funding_account", "system_program"])]
CreateNativeMint,
#[instruction_decoder(account_names = ["mint"])]
InitializeNonTransferableMint,
#[instruction_decoder(account_names = ["mint"])]
InterestBearingMintExtension,
#[instruction_decoder(account_names = ["account", "owner"])]
CpiGuardExtension,
#[instruction_decoder(account_names = ["mint"])]
InitializePermanentDelegate,
#[instruction_decoder(account_names = ["mint"])]
TransferHookExtension,
#[instruction_decoder(account_names = ["mint"])]
ConfidentialTransferFeeExtension,
#[instruction_decoder(account_names = ["source", "destination", "authority"])]
WithdrawExcessLamports,
#[instruction_decoder(account_names = ["mint"])]
MetadataPointerExtension,
#[instruction_decoder(account_names = ["mint"])]
GroupPointerExtension,
#[instruction_decoder(account_names = ["mint"])]
GroupMemberPointerExtension,
#[instruction_decoder(account_names = ["mint"])]
ConfidentialMintBurnExtension,
#[instruction_decoder(account_names = ["mint"])]
ScaledUiAmountExtension,
#[instruction_decoder(account_names = ["mint"])]
PausableExtension,
}