carbon_virtuals_decoder/instructions/
create_meteora_pool.rs1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0xf6fe2125e1b029e8")]
7pub struct CreateMeteoraPool {}
8
9pub struct CreateMeteoraPoolInstructionAccounts {
10 pub vpool: solana_pubkey::Pubkey,
11 pub meteora_deployer: solana_pubkey::Pubkey,
12 pub meteora_deployer_virtuals_ata: solana_pubkey::Pubkey,
13 pub meteora_deployer_token_ata: solana_pubkey::Pubkey,
14 pub vpool_virtuals_ata: solana_pubkey::Pubkey,
15 pub vpool_token_ata: solana_pubkey::Pubkey,
16 pub lock_escrow: solana_pubkey::Pubkey,
17 pub escrow_vault: solana_pubkey::Pubkey,
18 pub pool: solana_pubkey::Pubkey,
19 pub config: solana_pubkey::Pubkey,
20 pub lp_mint: solana_pubkey::Pubkey,
21 pub virtuals_mint: solana_pubkey::Pubkey,
22 pub token_mint: solana_pubkey::Pubkey,
23 pub virtuals_vault: solana_pubkey::Pubkey,
24 pub token_vault: solana_pubkey::Pubkey,
25 pub virtuals_token_vault: solana_pubkey::Pubkey,
26 pub token_token_vault: solana_pubkey::Pubkey,
27 pub virtuals_vault_lp_mint: solana_pubkey::Pubkey,
28 pub token_vault_lp_mint: solana_pubkey::Pubkey,
29 pub virtuals_vault_lp: solana_pubkey::Pubkey,
30 pub token_vault_lp: solana_pubkey::Pubkey,
31 pub pool_virtuals_ata: solana_pubkey::Pubkey,
32 pub pool_token_ata: solana_pubkey::Pubkey,
33 pub meteora_deployer_pool_lp: solana_pubkey::Pubkey,
34 pub protocol_virtuals_fee: solana_pubkey::Pubkey,
35 pub protocol_token_fee: solana_pubkey::Pubkey,
36 pub payer: solana_pubkey::Pubkey,
37 pub token_metadata: solana_pubkey::Pubkey,
38 pub rent: solana_pubkey::Pubkey,
39 pub mint_metadata: solana_pubkey::Pubkey,
40 pub metadata_program: solana_pubkey::Pubkey,
41 pub vault_program: solana_pubkey::Pubkey,
42 pub token_program: solana_pubkey::Pubkey,
43 pub associated_token_program: solana_pubkey::Pubkey,
44 pub system_program: solana_pubkey::Pubkey,
45 pub dynamic_amm_program: solana_pubkey::Pubkey,
46}
47
48impl carbon_core::deserialize::ArrangeAccounts for CreateMeteoraPool {
49 type ArrangedAccounts = CreateMeteoraPoolInstructionAccounts;
50
51 fn arrange_accounts(
52 accounts: &[solana_instruction::AccountMeta],
53 ) -> Option<Self::ArrangedAccounts> {
54 let [vpool, meteora_deployer, meteora_deployer_virtuals_ata, meteora_deployer_token_ata, vpool_virtuals_ata, vpool_token_ata, lock_escrow, escrow_vault, pool, config, lp_mint, virtuals_mint, token_mint, virtuals_vault, token_vault, virtuals_token_vault, token_token_vault, virtuals_vault_lp_mint, token_vault_lp_mint, virtuals_vault_lp, token_vault_lp, pool_virtuals_ata, pool_token_ata, meteora_deployer_pool_lp, protocol_virtuals_fee, protocol_token_fee, payer, token_metadata, rent, mint_metadata, metadata_program, vault_program, token_program, associated_token_program, system_program, dynamic_amm_program, _remaining @ ..] =
55 accounts
56 else {
57 return None;
58 };
59
60 Some(CreateMeteoraPoolInstructionAccounts {
61 vpool: vpool.pubkey,
62 meteora_deployer: meteora_deployer.pubkey,
63 meteora_deployer_virtuals_ata: meteora_deployer_virtuals_ata.pubkey,
64 meteora_deployer_token_ata: meteora_deployer_token_ata.pubkey,
65 vpool_virtuals_ata: vpool_virtuals_ata.pubkey,
66 vpool_token_ata: vpool_token_ata.pubkey,
67 lock_escrow: lock_escrow.pubkey,
68 escrow_vault: escrow_vault.pubkey,
69 pool: pool.pubkey,
70 config: config.pubkey,
71 lp_mint: lp_mint.pubkey,
72 virtuals_mint: virtuals_mint.pubkey,
73 token_mint: token_mint.pubkey,
74 virtuals_vault: virtuals_vault.pubkey,
75 token_vault: token_vault.pubkey,
76 virtuals_token_vault: virtuals_token_vault.pubkey,
77 token_token_vault: token_token_vault.pubkey,
78 virtuals_vault_lp_mint: virtuals_vault_lp_mint.pubkey,
79 token_vault_lp_mint: token_vault_lp_mint.pubkey,
80 virtuals_vault_lp: virtuals_vault_lp.pubkey,
81 token_vault_lp: token_vault_lp.pubkey,
82 pool_virtuals_ata: pool_virtuals_ata.pubkey,
83 pool_token_ata: pool_token_ata.pubkey,
84 meteora_deployer_pool_lp: meteora_deployer_pool_lp.pubkey,
85 protocol_virtuals_fee: protocol_virtuals_fee.pubkey,
86 protocol_token_fee: protocol_token_fee.pubkey,
87 payer: payer.pubkey,
88 token_metadata: token_metadata.pubkey,
89 rent: rent.pubkey,
90 mint_metadata: mint_metadata.pubkey,
91 metadata_program: metadata_program.pubkey,
92 vault_program: vault_program.pubkey,
93 token_program: token_program.pubkey,
94 associated_token_program: associated_token_program.pubkey,
95 system_program: system_program.pubkey,
96 dynamic_amm_program: dynamic_amm_program.pubkey,
97 })
98 }
99}