pumpfun_sdk_core/
config.rs1use solana_sdk::pubkey::Pubkey;
2
3use crate::ids;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6pub enum TokenProgram {
7 Legacy,
8 Token2022,
9}
10
11impl TokenProgram {
12 pub fn id(self) -> Pubkey {
13 match self {
14 TokenProgram::Legacy => ids::LEGACY_TOKEN_PROGRAM_ID,
15 TokenProgram::Token2022 => ids::TOKEN_2022_PROGRAM_ID,
16 }
17 }
18}
19
20#[derive(Debug, Clone, Copy)]
21pub struct Config {
22 pub pump_program_id: Pubkey,
23 pub mayhem_program_id: Pubkey,
24 pub token_program: TokenProgram,
25}
26
27impl Config {
28 pub fn mainnet_create_v2_defaults() -> Self {
30 Self {
31 pump_program_id: ids::DEFAULT_PUMP_PROGRAM_ID,
32 mayhem_program_id: ids::DEFAULT_MAYHEM_PROGRAM_ID,
33 token_program: TokenProgram::Token2022,
34 }
35 }
36
37 pub fn devnet_create_v2_defaults() -> Self {
40 Self {
41 pump_program_id: ids::DEFAULT_PUMP_PROGRAM_ID,
42 mayhem_program_id: ids::DEFAULT_MAYHEM_PROGRAM_ID,
43 token_program: TokenProgram::Token2022,
44 }
45 }
46
47 pub fn with_program_ids(pump_program_id: Pubkey, mayhem_program_id: Pubkey) -> Self {
48 Self {
49 pump_program_id,
50 mayhem_program_id,
51 token_program: TokenProgram::Token2022,
52 }
53 }
54}