carbon_pumpfun_decoder/instructions/
migrate.rs

1use 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 = "0x9beae792ec9ea21e")]
7pub struct Migrate {}
8
9#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
10pub struct MigrateInstructionAccounts {
11    pub global: solana_pubkey::Pubkey,
12    pub withdraw_authority: solana_pubkey::Pubkey,
13    pub mint: solana_pubkey::Pubkey,
14    pub bonding_curve: solana_pubkey::Pubkey,
15    pub associated_bonding_curve: solana_pubkey::Pubkey,
16    pub user: solana_pubkey::Pubkey,
17    pub system_program: solana_pubkey::Pubkey,
18    pub token_program: solana_pubkey::Pubkey,
19    pub pump_amm: solana_pubkey::Pubkey,
20    pub pool: solana_pubkey::Pubkey,
21    pub pool_authority: solana_pubkey::Pubkey,
22    pub pool_authority_mint_account: solana_pubkey::Pubkey,
23    pub pool_authority_wsol_account: solana_pubkey::Pubkey,
24    pub amm_global_config: solana_pubkey::Pubkey,
25    pub wsol_mint: solana_pubkey::Pubkey,
26    pub lp_mint: solana_pubkey::Pubkey,
27    pub user_pool_token_account: solana_pubkey::Pubkey,
28    pub pool_base_token_account: solana_pubkey::Pubkey,
29    pub pool_quote_token_account: solana_pubkey::Pubkey,
30    pub token_2022_program: solana_pubkey::Pubkey,
31    pub associated_token_program: solana_pubkey::Pubkey,
32    pub pump_amm_event_authority: solana_pubkey::Pubkey,
33    pub event_authority: solana_pubkey::Pubkey,
34    pub program: solana_pubkey::Pubkey,
35}
36
37impl carbon_core::deserialize::ArrangeAccounts for Migrate {
38    type ArrangedAccounts = MigrateInstructionAccounts;
39
40    fn arrange_accounts(
41        accounts: &[solana_instruction::AccountMeta],
42    ) -> Option<Self::ArrangedAccounts> {
43        let mut iter = accounts.iter();
44        let global = next_account(&mut iter)?;
45        let withdraw_authority = next_account(&mut iter)?;
46        let mint = next_account(&mut iter)?;
47        let bonding_curve = next_account(&mut iter)?;
48        let associated_bonding_curve = next_account(&mut iter)?;
49        let user = next_account(&mut iter)?;
50        let system_program = next_account(&mut iter)?;
51        let token_program = next_account(&mut iter)?;
52        let pump_amm = next_account(&mut iter)?;
53        let pool = next_account(&mut iter)?;
54        let pool_authority = next_account(&mut iter)?;
55        let pool_authority_mint_account = next_account(&mut iter)?;
56        let pool_authority_wsol_account = next_account(&mut iter)?;
57        let amm_global_config = next_account(&mut iter)?;
58        let wsol_mint = next_account(&mut iter)?;
59        let lp_mint = next_account(&mut iter)?;
60        let user_pool_token_account = next_account(&mut iter)?;
61        let pool_base_token_account = next_account(&mut iter)?;
62        let pool_quote_token_account = next_account(&mut iter)?;
63        let token_2022_program = next_account(&mut iter)?;
64        let associated_token_program = next_account(&mut iter)?;
65        let pump_amm_event_authority = next_account(&mut iter)?;
66        let event_authority = next_account(&mut iter)?;
67        let program = next_account(&mut iter)?;
68
69        Some(MigrateInstructionAccounts {
70            global,
71            withdraw_authority,
72            mint,
73            bonding_curve,
74            associated_bonding_curve,
75            user,
76            system_program,
77            token_program,
78            pump_amm,
79            pool,
80            pool_authority,
81            pool_authority_mint_account,
82            pool_authority_wsol_account,
83            amm_global_config,
84            wsol_mint,
85            lp_mint,
86            user_pool_token_account,
87            pool_base_token_account,
88            pool_quote_token_account,
89            token_2022_program,
90            associated_token_program,
91            pump_amm_event_authority,
92            event_authority,
93            program,
94        })
95    }
96}