1pub const SOL_MINT: &str = "So11111111111111111111111111111111111111112";
2pub const NATIVE_SOL: &str = "11111111111111111111111111111111";
3pub const LAMPORTS_PER_SIGNATURE: u64 = 5000;
4pub const ESTIMATED_LAMPORTS_FOR_PAYMENT_INSTRUCTION: u64 = 50;
5pub const MIN_BALANCE_FOR_RENT_EXEMPTION: u64 = 2_039_280;
6pub const DEFAULT_INTEREST_MULTIPLIER: u128 = 100 * 24 * 60 * 60 / 10000 / (365 * 24 * 60 * 60);
7
8pub const X_API_KEY: &str = "x-api-key";
10pub const X_HMAC_SIGNATURE: &str = "x-hmac-signature";
11pub const X_TIMESTAMP: &str = "x-timestamp";
12pub const DEFAULT_MAX_TIMESTAMP_AGE: i64 = 300;
13
14pub const JUPITER_API_LITE_URL: &str = "https://lite-api.jup.ag";
16pub const JUPITER_API_PRO_URL: &str = "https://api.jup.ag";
17
18pub const DEFAULT_METRICS_ENDPOINT: &str = "/metrics";
20pub const DEFAULT_METRICS_PORT: u16 = 8080;
21pub const DEFAULT_METRICS_SCRAPE_INTERVAL: u64 = 60;
22
23pub const DEFAULT_CACHE_DEFAULT_TTL: u64 = 300; pub const DEFAULT_CACHE_ACCOUNT_TTL: u64 = 60; pub const DEFAULT_FEE_PAYER_BALANCE_METRICS_EXPIRY_SECONDS: u64 = 30; pub const DEFAULT_USAGE_LIMIT_MAX_TRANSACTIONS: u64 = 0; pub const DEFAULT_USAGE_LIMIT_FALLBACK_IF_UNAVAILABLE: bool = false;
30
31pub const DEFAULT_MAX_REQUEST_BODY_SIZE: usize = 2 * 1024 * 1024; pub mod instruction_indexes {
37 pub mod system_create_account {
38 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
39 pub const PAYER_INDEX: usize = 0;
40 }
41
42 pub mod system_transfer {
43 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
44 pub const SENDER_INDEX: usize = 0;
45 pub const RECEIVER_INDEX: usize = 1;
46 }
47
48 pub mod system_transfer_with_seed {
49 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
50 pub const SENDER_INDEX: usize = 1;
51 pub const RECEIVER_INDEX: usize = 2;
52 }
53
54 pub mod system_withdraw_nonce_account {
55 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 5;
56 pub const NONCE_AUTHORITY_INDEX: usize = 4;
57 pub const RECIPIENT_INDEX: usize = 1;
58 }
59
60 pub mod system_assign {
61 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
62 pub const AUTHORITY_INDEX: usize = 0;
63 }
64
65 pub mod system_assign_with_seed {
66 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
67 pub const AUTHORITY_INDEX: usize = 1;
68 }
69
70 pub mod system_allocate {
71 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
72 pub const ACCOUNT_INDEX: usize = 0;
73 }
74
75 pub mod system_allocate_with_seed {
76 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
77 pub const ACCOUNT_INDEX: usize = 1;
78 }
79
80 pub mod system_initialize_nonce_account {
81 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
82 pub const NONCE_ACCOUNT_INDEX: usize = 0;
83 }
85
86 pub mod system_advance_nonce_account {
87 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
88 pub const NONCE_ACCOUNT_INDEX: usize = 0;
89 pub const NONCE_AUTHORITY_INDEX: usize = 2;
90 }
91
92 pub mod system_authorize_nonce_account {
93 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
94 pub const NONCE_ACCOUNT_INDEX: usize = 0;
95 pub const NONCE_AUTHORITY_INDEX: usize = 1;
96 }
97
98 pub mod spl_token_transfer {
101 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
102 pub const OWNER_INDEX: usize = 2;
103 pub const SOURCE_ADDRESS_INDEX: usize = 0;
104 pub const DESTINATION_ADDRESS_INDEX: usize = 1;
105 }
106
107 pub mod spl_token_transfer_checked {
108 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
109 pub const OWNER_INDEX: usize = 3;
110 pub const MINT_INDEX: usize = 1;
111 pub const SOURCE_ADDRESS_INDEX: usize = 0;
112 pub const DESTINATION_ADDRESS_INDEX: usize = 2;
113 }
114
115 pub mod spl_token_burn {
116 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
117 pub const OWNER_INDEX: usize = 2;
118 }
119
120 pub mod spl_token_close_account {
121 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
122 pub const OWNER_INDEX: usize = 2;
123 }
124
125 pub mod spl_token_approve {
126 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
127 pub const OWNER_INDEX: usize = 2;
128 }
129
130 pub mod spl_token_approve_checked {
131 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
132 pub const OWNER_INDEX: usize = 3;
133 }
134
135 pub mod spl_token_revoke {
136 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
137 pub const OWNER_INDEX: usize = 1;
138 }
139
140 pub mod spl_token_set_authority {
141 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
142 pub const CURRENT_AUTHORITY_INDEX: usize = 1;
143 }
144
145 pub mod spl_token_mint_to {
146 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
147 pub const MINT_AUTHORITY_INDEX: usize = 2;
148 }
149
150 pub mod spl_token_mint_to_checked {
151 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
152 pub const MINT_AUTHORITY_INDEX: usize = 2;
153 }
154
155 pub mod spl_token_initialize_mint {
156 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
157 }
159
160 pub mod spl_token_initialize_mint2 {
161 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
162 }
164
165 pub mod spl_token_initialize_account {
166 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
167 pub const OWNER_INDEX: usize = 2;
169 }
170
171 pub mod spl_token_initialize_account2 {
172 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
173 }
175
176 pub mod spl_token_initialize_account3 {
177 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
178 }
180
181 pub mod spl_token_initialize_multisig {
182 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2; }
185
186 pub mod spl_token_initialize_multisig2 {
187 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1; }
190
191 pub mod spl_token_freeze_account {
192 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
193 pub const FREEZE_AUTHORITY_INDEX: usize = 2;
194 }
195
196 pub mod spl_token_thaw_account {
197 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
198 pub const FREEZE_AUTHORITY_INDEX: usize = 2;
199 }
200}