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 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 pub withdraw_authority: solana_pubkey::Pubkey,
14 pub enable_migrate: bool,
15 pub pool_migration_fee: u64,
16 pub creator_fee_basis_points: u64,
17 pub set_creator_authority: solana_pubkey::Pubkey,
18}
19
20#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
21pub struct SetParamsInstructionAccounts {
22 pub global: solana_pubkey::Pubkey,
23 pub authority: solana_pubkey::Pubkey,
24 pub event_authority: solana_pubkey::Pubkey,
25 pub program: solana_pubkey::Pubkey,
26}
27
28impl carbon_core::deserialize::ArrangeAccounts for SetParams {
29 type ArrangedAccounts = SetParamsInstructionAccounts;
30
31 fn arrange_accounts(
32 accounts: &[solana_instruction::AccountMeta],
33 ) -> Option<Self::ArrangedAccounts> {
34 let [global, authority, event_authority, program, _remaining @ ..] = accounts else {
35 return None;
36 };
37
38 Some(SetParamsInstructionAccounts {
39 global: global.pubkey,
40 authority: authority.pubkey,
41 event_authority: event_authority.pubkey,
42 program: program.pubkey,
43 })
44 }
45}