carbon_pumpfun_decoder/instructions/
set_params.rs

1use carbon_core::{borsh, CarbonDeserialize};
2#[derive(
3    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
4)]
5#[carbon(discriminator = "0x1beab2349302bb8d")]
6pub struct SetParams {
7    pub fee_recipient: solana_sdk::pubkey::Pubkey,
8    pub initial_virtual_token_reserves: u64,
9    pub initial_virtual_sol_reserves: u64,
10    pub initial_real_token_reserves: u64,
11    pub token_total_supply: u64,
12    pub fee_basis_points: u64,
13}
14
15pub struct SetParamsInstructionAccounts {
16    pub global: solana_sdk::pubkey::Pubkey,
17    pub user: solana_sdk::pubkey::Pubkey,
18    pub system_program: solana_sdk::pubkey::Pubkey,
19    pub event_authority: solana_sdk::pubkey::Pubkey,
20    pub program: solana_sdk::pubkey::Pubkey,
21}
22
23impl carbon_core::deserialize::ArrangeAccounts for SetParams {
24    type ArrangedAccounts = SetParamsInstructionAccounts;
25
26    fn arrange_accounts(
27        accounts: &[solana_sdk::instruction::AccountMeta],
28    ) -> Option<Self::ArrangedAccounts> {
29        let [global, user, system_program, event_authority, program, _remaining @ ..] = accounts
30        else {
31            return None;
32        };
33
34        Some(SetParamsInstructionAccounts {
35            global: global.pubkey,
36            user: user.pubkey,
37            system_program: system_program.pubkey,
38            event_authority: event_authority.pubkey,
39            program: program.pubkey,
40        })
41    }
42}