carbon_wavebreak_decoder/instructions/
graduate_manual.rs1use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x21")]
7pub struct GraduateManual {}
8
9#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
10pub struct GraduateManualInstructionAccounts {
11 pub signer: solana_pubkey::Pubkey,
12 pub destination: solana_pubkey::Pubkey,
13 pub bonding_curve: solana_pubkey::Pubkey,
14 pub quote_mint: solana_pubkey::Pubkey,
15 pub quote_vault: solana_pubkey::Pubkey,
16 pub signer_quote_ata: solana_pubkey::Pubkey,
17 pub destination_quote_ata: solana_pubkey::Pubkey,
18 pub base_mint: solana_pubkey::Pubkey,
19 pub destination_base_ata: solana_pubkey::Pubkey,
20 pub system_program: solana_pubkey::Pubkey,
21 pub ata_program: solana_pubkey::Pubkey,
22 pub quote_token_program: solana_pubkey::Pubkey,
23 pub base_token_program: solana_pubkey::Pubkey,
24}
25
26impl carbon_core::deserialize::ArrangeAccounts for GraduateManual {
27 type ArrangedAccounts = GraduateManualInstructionAccounts;
28
29 fn arrange_accounts(
30 accounts: &[solana_instruction::AccountMeta],
31 ) -> Option<Self::ArrangedAccounts> {
32 let mut iter = accounts.iter();
33 let signer = next_account(&mut iter)?;
34 let destination = next_account(&mut iter)?;
35 let bonding_curve = next_account(&mut iter)?;
36 let quote_mint = next_account(&mut iter)?;
37 let quote_vault = next_account(&mut iter)?;
38 let signer_quote_ata = next_account(&mut iter)?;
39 let destination_quote_ata = next_account(&mut iter)?;
40 let base_mint = next_account(&mut iter)?;
41 let destination_base_ata = next_account(&mut iter)?;
42 let system_program = next_account(&mut iter)?;
43 let ata_program = next_account(&mut iter)?;
44 let quote_token_program = next_account(&mut iter)?;
45 let base_token_program = next_account(&mut iter)?;
46
47 Some(GraduateManualInstructionAccounts {
48 signer,
49 destination,
50 bonding_curve,
51 quote_mint,
52 quote_vault,
53 signer_quote_ata,
54 destination_quote_ata,
55 base_mint,
56 destination_base_ata,
57 system_program,
58 ata_program,
59 quote_token_program,
60 base_token_program,
61 })
62 }
63}