Skip to main content

solana_primitives/instructions/
mod.rs

1// Re-export instruction modules
2pub mod anchor;
3pub mod associated_token;
4pub mod compute_budget;
5pub mod memo;
6pub mod system;
7pub mod token;
8
9// Program IDs
10pub mod program_ids {
11    use crate::types::Pubkey;
12
13    /// System program ID
14    pub const SYSTEM_PROGRAM_ID: &str = "11111111111111111111111111111111";
15
16    /// Token program ID
17    pub const TOKEN_PROGRAM_ID: &str = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
18
19    /// Token 2022 program ID
20    pub const TOKEN_2022_PROGRAM_ID: &str = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
21
22    /// Associated Token program ID
23    pub const ASSOCIATED_TOKEN_PROGRAM_ID: &str = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
24
25    /// Memo program ID
26    pub const MEMO_PROGRAM_ID: &str = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
27
28    /// BPF Loader program ID
29    pub const BPF_LOADER_PROGRAM_ID: &str = "BPFLoaderUpgradeab1e11111111111111111111111";
30
31    /// Compute Budget program ID
32    pub const COMPUTE_BUDGET_PROGRAM_ID: &str = "ComputeBudget111111111111111111111111111111";
33
34    /// Rent sysvar ID
35    pub const SYSVAR_RENT_ID: &str = "SysvarRent111111111111111111111111111111111";
36
37    /// Helper function to get System program Pubkey
38    pub fn system_program() -> Pubkey {
39        Pubkey::from_base58(SYSTEM_PROGRAM_ID).unwrap()
40    }
41
42    /// Helper function to get Token program Pubkey
43    pub fn token_program() -> Pubkey {
44        Pubkey::from_base58(TOKEN_PROGRAM_ID).unwrap()
45    }
46
47    /// Helper function to get Token 2022 program Pubkey
48    pub fn token_2022_program() -> Pubkey {
49        Pubkey::from_base58(TOKEN_2022_PROGRAM_ID).unwrap()
50    }
51
52    /// Helper function to get Associated Token program Pubkey
53    pub fn associated_token_program() -> Pubkey {
54        Pubkey::from_base58(ASSOCIATED_TOKEN_PROGRAM_ID).unwrap()
55    }
56
57    /// Helper function to get Memo program Pubkey
58    pub fn memo_program() -> Pubkey {
59        Pubkey::from_base58(MEMO_PROGRAM_ID).unwrap()
60    }
61
62    /// Helper function to get BPF Loader program Pubkey
63    pub fn bpf_loader_program() -> Pubkey {
64        Pubkey::from_base58(BPF_LOADER_PROGRAM_ID).unwrap()
65    }
66
67    /// Helper function to get Compute Budget program Pubkey
68    pub fn compute_budget_program() -> Pubkey {
69        Pubkey::from_base58(COMPUTE_BUDGET_PROGRAM_ID).unwrap()
70    }
71
72    /// Helper function to get Rent sysvar Pubkey
73    pub fn rent_sysvar() -> Pubkey {
74        Pubkey::from_base58(SYSVAR_RENT_ID).unwrap()
75    }
76}