extern crate self as light_instruction_decoder;
use light_instruction_decoder_derive::InstructionDecoder;
#[derive(InstructionDecoder)]
#[instruction_decoder(
program_id = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
program_name = "SPL Token",
discriminator_size = 1
)]
pub enum SplTokenInstruction {
#[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,
}