carbon_meteora_pools_decoder/instructions/
create_config.rs

1use 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 = "0xc9cff3724b6f2fbd")]
9pub struct CreateConfig {
10    pub config_parameters: ConfigParameters,
11}
12
13pub struct CreateConfigInstructionAccounts {
14    pub config: solana_pubkey::Pubkey,
15    pub admin: solana_pubkey::Pubkey,
16    pub system_program: solana_pubkey::Pubkey,
17}
18
19impl carbon_core::deserialize::ArrangeAccounts for CreateConfig {
20    type ArrangedAccounts = CreateConfigInstructionAccounts;
21
22    fn arrange_accounts(
23        accounts: &[solana_instruction::AccountMeta],
24    ) -> Option<Self::ArrangedAccounts> {
25        let [config, admin, system_program, _remaining @ ..] = accounts else {
26            return None;
27        };
28
29        Some(CreateConfigInstructionAccounts {
30            config: config.pubkey,
31            admin: admin.pubkey,
32            system_program: system_program.pubkey,
33        })
34    }
35}