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