carbon_pumpfun_decoder/instructions/
set_params.rs1use 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}