Skip to main content

carbon_token_program_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::{TokenProgramDecoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod amount_to_ui_amount;
11pub mod approve;
12pub mod approve_checked;
13pub mod batch;
14pub mod burn;
15pub mod burn_checked;
16pub mod close_account;
17pub mod freeze_account;
18pub mod get_account_data_size;
19pub mod initialize_account;
20pub mod initialize_account2;
21pub mod initialize_account3;
22pub mod initialize_immutable_owner;
23pub mod initialize_mint;
24pub mod initialize_mint2;
25pub mod initialize_multisig;
26pub mod initialize_multisig2;
27pub mod mint_to;
28pub mod mint_to_checked;
29pub mod revoke;
30pub mod set_authority;
31pub mod sync_native;
32pub mod thaw_account;
33pub mod transfer;
34pub mod transfer_checked;
35pub mod ui_amount_to_amount;
36pub mod unwrap_lamports;
37pub mod withdraw_excess_lamports;
38
39pub use self::{
40    amount_to_ui_amount::*, approve::*, approve_checked::*, batch::*, burn::*, burn_checked::*,
41    close_account::*, freeze_account::*, get_account_data_size::*, initialize_account::*,
42    initialize_account2::*, initialize_account3::*, initialize_immutable_owner::*,
43    initialize_mint::*, initialize_mint2::*, initialize_multisig::*, initialize_multisig2::*,
44    mint_to::*, mint_to_checked::*, revoke::*, set_authority::*, sync_native::*, thaw_account::*,
45    transfer::*, transfer_checked::*, ui_amount_to_amount::*, unwrap_lamports::*,
46    withdraw_excess_lamports::*,
47};
48
49#[derive(Debug, Clone, PartialEq)]
50#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
51#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
52pub enum TokenProgramInstruction {
53    AmountToUiAmount {
54        program_id: solana_pubkey::Pubkey,
55        data: AmountToUiAmount,
56        accounts: AmountToUiAmountInstructionAccounts,
57    },
58    Approve {
59        program_id: solana_pubkey::Pubkey,
60        data: Approve,
61        accounts: ApproveInstructionAccounts,
62    },
63    ApproveChecked {
64        program_id: solana_pubkey::Pubkey,
65        data: ApproveChecked,
66        accounts: ApproveCheckedInstructionAccounts,
67    },
68    Batch {
69        program_id: solana_pubkey::Pubkey,
70        data: Batch,
71        accounts: BatchInstructionAccounts,
72    },
73    Burn {
74        program_id: solana_pubkey::Pubkey,
75        data: Burn,
76        accounts: BurnInstructionAccounts,
77    },
78    BurnChecked {
79        program_id: solana_pubkey::Pubkey,
80        data: BurnChecked,
81        accounts: BurnCheckedInstructionAccounts,
82    },
83    CloseAccount {
84        program_id: solana_pubkey::Pubkey,
85        data: CloseAccount,
86        accounts: CloseAccountInstructionAccounts,
87    },
88    FreezeAccount {
89        program_id: solana_pubkey::Pubkey,
90        data: FreezeAccount,
91        accounts: FreezeAccountInstructionAccounts,
92    },
93    GetAccountDataSize {
94        program_id: solana_pubkey::Pubkey,
95        data: GetAccountDataSize,
96        accounts: GetAccountDataSizeInstructionAccounts,
97    },
98    InitializeAccount {
99        program_id: solana_pubkey::Pubkey,
100        data: InitializeAccount,
101        accounts: InitializeAccountInstructionAccounts,
102    },
103    InitializeAccount2 {
104        program_id: solana_pubkey::Pubkey,
105        data: InitializeAccount2,
106        accounts: InitializeAccount2InstructionAccounts,
107    },
108    InitializeAccount3 {
109        program_id: solana_pubkey::Pubkey,
110        data: InitializeAccount3,
111        accounts: InitializeAccount3InstructionAccounts,
112    },
113    InitializeImmutableOwner {
114        program_id: solana_pubkey::Pubkey,
115        data: InitializeImmutableOwner,
116        accounts: InitializeImmutableOwnerInstructionAccounts,
117    },
118    InitializeMint {
119        program_id: solana_pubkey::Pubkey,
120        data: InitializeMint,
121        accounts: InitializeMintInstructionAccounts,
122    },
123    InitializeMint2 {
124        program_id: solana_pubkey::Pubkey,
125        data: InitializeMint2,
126        accounts: InitializeMint2InstructionAccounts,
127    },
128    InitializeMultisig {
129        program_id: solana_pubkey::Pubkey,
130        data: InitializeMultisig,
131        accounts: InitializeMultisigInstructionAccounts,
132    },
133    InitializeMultisig2 {
134        program_id: solana_pubkey::Pubkey,
135        data: InitializeMultisig2,
136        accounts: InitializeMultisig2InstructionAccounts,
137    },
138    MintTo {
139        program_id: solana_pubkey::Pubkey,
140        data: MintTo,
141        accounts: MintToInstructionAccounts,
142    },
143    MintToChecked {
144        program_id: solana_pubkey::Pubkey,
145        data: MintToChecked,
146        accounts: MintToCheckedInstructionAccounts,
147    },
148    Revoke {
149        program_id: solana_pubkey::Pubkey,
150        data: Revoke,
151        accounts: RevokeInstructionAccounts,
152    },
153    SetAuthority {
154        program_id: solana_pubkey::Pubkey,
155        data: SetAuthority,
156        accounts: SetAuthorityInstructionAccounts,
157    },
158    SyncNative {
159        program_id: solana_pubkey::Pubkey,
160        data: SyncNative,
161        accounts: SyncNativeInstructionAccounts,
162    },
163    ThawAccount {
164        program_id: solana_pubkey::Pubkey,
165        data: ThawAccount,
166        accounts: ThawAccountInstructionAccounts,
167    },
168    Transfer {
169        program_id: solana_pubkey::Pubkey,
170        data: Transfer,
171        accounts: TransferInstructionAccounts,
172    },
173    TransferChecked {
174        program_id: solana_pubkey::Pubkey,
175        data: TransferChecked,
176        accounts: TransferCheckedInstructionAccounts,
177    },
178    UiAmountToAmount {
179        program_id: solana_pubkey::Pubkey,
180        data: UiAmountToAmount,
181        accounts: UiAmountToAmountInstructionAccounts,
182    },
183    UnwrapLamports {
184        program_id: solana_pubkey::Pubkey,
185        data: UnwrapLamports,
186        accounts: UnwrapLamportsInstructionAccounts,
187    },
188    WithdrawExcessLamports {
189        program_id: solana_pubkey::Pubkey,
190        data: WithdrawExcessLamports,
191        accounts: WithdrawExcessLamportsInstructionAccounts,
192    },
193}
194
195impl carbon_core::instruction::InstructionDecoder<'_> for TokenProgramDecoder {
196    type InstructionType = TokenProgramInstruction;
197
198    fn decode_instruction(
199        &self,
200        instruction: &solana_instruction::Instruction,
201    ) -> Option<Self::InstructionType> {
202        if instruction.program_id != PROGRAM_ID {
203            return None;
204        }
205
206        carbon_core::try_decode_instructions!(
207            instruction,
208            PROGRAM_ID,
209            TokenProgramInstruction::AmountToUiAmount => AmountToUiAmount,
210            TokenProgramInstruction::Approve => Approve,
211            TokenProgramInstruction::ApproveChecked => ApproveChecked,
212            TokenProgramInstruction::Batch => Batch,
213            TokenProgramInstruction::Burn => Burn,
214            TokenProgramInstruction::BurnChecked => BurnChecked,
215            TokenProgramInstruction::CloseAccount => CloseAccount,
216            TokenProgramInstruction::FreezeAccount => FreezeAccount,
217            TokenProgramInstruction::GetAccountDataSize => GetAccountDataSize,
218            TokenProgramInstruction::InitializeAccount => InitializeAccount,
219            TokenProgramInstruction::InitializeAccount2 => InitializeAccount2,
220            TokenProgramInstruction::InitializeAccount3 => InitializeAccount3,
221            TokenProgramInstruction::InitializeImmutableOwner => InitializeImmutableOwner,
222            TokenProgramInstruction::InitializeMint => InitializeMint,
223            TokenProgramInstruction::InitializeMint2 => InitializeMint2,
224            TokenProgramInstruction::InitializeMultisig => InitializeMultisig,
225            TokenProgramInstruction::InitializeMultisig2 => InitializeMultisig2,
226            TokenProgramInstruction::MintTo => MintTo,
227            TokenProgramInstruction::MintToChecked => MintToChecked,
228            TokenProgramInstruction::Revoke => Revoke,
229            TokenProgramInstruction::SetAuthority => SetAuthority,
230            TokenProgramInstruction::SyncNative => SyncNative,
231            TokenProgramInstruction::ThawAccount => ThawAccount,
232            TokenProgramInstruction::Transfer => Transfer,
233            TokenProgramInstruction::TransferChecked => TransferChecked,
234            TokenProgramInstruction::UiAmountToAmount => UiAmountToAmount,
235            TokenProgramInstruction::UnwrapLamports => UnwrapLamports,
236            TokenProgramInstruction::WithdrawExcessLamports => WithdrawExcessLamports,
237        )
238    }
239}