carbon_pumpfun_decoder/instructions/
migrate.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 = "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}