carbon_raydium_amm_v4_decoder/instructions/
initialize.rs1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x00")]
7pub struct Initialize {
8 pub nonce: u8,
9 pub open_time: u64,
10}
11
12pub struct InitializeInstructionAccounts {
13 pub token_program: solana_pubkey::Pubkey,
14 pub system_program: solana_pubkey::Pubkey,
15 pub rent: solana_pubkey::Pubkey,
16 pub amm: solana_pubkey::Pubkey,
17 pub amm_authority: solana_pubkey::Pubkey,
18 pub amm_open_orders: solana_pubkey::Pubkey,
19 pub lp_mint_address: solana_pubkey::Pubkey,
20 pub coin_mint_address: solana_pubkey::Pubkey,
21 pub pc_mint_address: solana_pubkey::Pubkey,
22 pub pool_coin_token_account: solana_pubkey::Pubkey,
23 pub pool_pc_token_account: solana_pubkey::Pubkey,
24 pub pool_withdraw_queue: solana_pubkey::Pubkey,
25 pub pool_target_orders_account: solana_pubkey::Pubkey,
26 pub user_lp_token_account: solana_pubkey::Pubkey,
27 pub pool_temp_lp_token_account: solana_pubkey::Pubkey,
28 pub serum_program: solana_pubkey::Pubkey,
29 pub serum_market: solana_pubkey::Pubkey,
30 pub user_wallet: solana_pubkey::Pubkey,
31}
32
33impl carbon_core::deserialize::ArrangeAccounts for Initialize {
34 type ArrangedAccounts = InitializeInstructionAccounts;
35
36 fn arrange_accounts(
37 accounts: &[solana_instruction::AccountMeta],
38 ) -> Option<Self::ArrangedAccounts> {
39 let [token_program, system_program, rent, amm, amm_authority, amm_open_orders, lp_mint_address, coin_mint_address, pc_mint_address, pool_coin_token_account, pool_pc_token_account, pool_withdraw_queue, pool_target_orders_account, user_lp_token_account, pool_temp_lp_token_account, serum_program, serum_market, user_wallet, _remaining @ ..] =
40 accounts
41 else {
42 return None;
43 };
44
45 Some(InitializeInstructionAccounts {
46 token_program: token_program.pubkey,
47 system_program: system_program.pubkey,
48 rent: rent.pubkey,
49 amm: amm.pubkey,
50 amm_authority: amm_authority.pubkey,
51 amm_open_orders: amm_open_orders.pubkey,
52 lp_mint_address: lp_mint_address.pubkey,
53 coin_mint_address: coin_mint_address.pubkey,
54 pc_mint_address: pc_mint_address.pubkey,
55 pool_coin_token_account: pool_coin_token_account.pubkey,
56 pool_pc_token_account: pool_pc_token_account.pubkey,
57 pool_withdraw_queue: pool_withdraw_queue.pubkey,
58 pool_target_orders_account: pool_target_orders_account.pubkey,
59 user_lp_token_account: user_lp_token_account.pubkey,
60 pool_temp_lp_token_account: pool_temp_lp_token_account.pubkey,
61 serum_program: serum_program.pubkey,
62 serum_market: serum_market.pubkey,
63 user_wallet: user_wallet.pubkey,
64 })
65 }
66}