carbon_virtual_curve_decoder/instructions/
initialize_virtual_pool_with_spl_token.rs1use super::super::types::*;
2
3use carbon_core::{borsh, CarbonDeserialize};
4
5#[derive(
6 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
7)]
8#[carbon(discriminator = "0x8c55d7b06636684f")]
9pub struct InitializeVirtualPoolWithSplToken {
10 pub params: InitializePoolParameters,
11}
12
13#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
14pub struct InitializeVirtualPoolWithSplTokenInstructionAccounts {
15 pub config: solana_pubkey::Pubkey,
16 pub pool_authority: solana_pubkey::Pubkey,
17 pub creator: solana_pubkey::Pubkey,
18 pub base_mint: solana_pubkey::Pubkey,
19 pub quote_mint: solana_pubkey::Pubkey,
20 pub pool: solana_pubkey::Pubkey,
21 pub base_vault: solana_pubkey::Pubkey,
22 pub quote_vault: solana_pubkey::Pubkey,
23 pub mint_metadata: solana_pubkey::Pubkey,
24 pub metadata_program: solana_pubkey::Pubkey,
25 pub payer: solana_pubkey::Pubkey,
26 pub token_quote_program: solana_pubkey::Pubkey,
27 pub token_program: solana_pubkey::Pubkey,
28 pub system_program: solana_pubkey::Pubkey,
29 pub event_authority: solana_pubkey::Pubkey,
30 pub program: solana_pubkey::Pubkey,
31}
32
33impl carbon_core::deserialize::ArrangeAccounts for InitializeVirtualPoolWithSplToken {
34 type ArrangedAccounts = InitializeVirtualPoolWithSplTokenInstructionAccounts;
35
36 fn arrange_accounts(
37 accounts: &[solana_instruction::AccountMeta],
38 ) -> Option<Self::ArrangedAccounts> {
39 let [config, pool_authority, creator, base_mint, quote_mint, pool, base_vault, quote_vault, mint_metadata, metadata_program, payer, token_quote_program, token_program, system_program, event_authority, program, _remaining @ ..] =
40 accounts
41 else {
42 return None;
43 };
44
45 Some(InitializeVirtualPoolWithSplTokenInstructionAccounts {
46 config: config.pubkey,
47 pool_authority: pool_authority.pubkey,
48 creator: creator.pubkey,
49 base_mint: base_mint.pubkey,
50 quote_mint: quote_mint.pubkey,
51 pool: pool.pubkey,
52 base_vault: base_vault.pubkey,
53 quote_vault: quote_vault.pubkey,
54 mint_metadata: mint_metadata.pubkey,
55 metadata_program: metadata_program.pubkey,
56 payer: payer.pubkey,
57 token_quote_program: token_quote_program.pubkey,
58 token_program: token_program.pubkey,
59 system_program: system_program.pubkey,
60 event_authority: event_authority.pubkey,
61 program: program.pubkey,
62 })
63 }
64}