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_URL: &str = "https://api.jup.ag";
16
17pub const DEFAULT_METRICS_ENDPOINT: &str = "/metrics";
19pub const DEFAULT_METRICS_PORT: u16 = 8080;
20pub const DEFAULT_METRICS_SCRAPE_INTERVAL: u64 = 60;
21
22pub 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;
29
30pub const DEFAULT_MAX_REQUEST_BODY_SIZE: usize = 2 * 1024 * 1024; pub mod instruction_indexes {
36 pub mod system_create_account {
37 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
38 pub const PAYER_INDEX: usize = 0;
39 }
40
41 pub mod system_transfer {
42 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
43 pub const SENDER_INDEX: usize = 0;
44 pub const RECEIVER_INDEX: usize = 1;
45 }
46
47 pub mod system_transfer_with_seed {
48 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
49 pub const SENDER_INDEX: usize = 1;
50 pub const RECEIVER_INDEX: usize = 2;
51 }
52
53 pub mod system_withdraw_nonce_account {
54 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 5;
55 pub const NONCE_AUTHORITY_INDEX: usize = 4;
56 pub const RECIPIENT_INDEX: usize = 1;
57 }
58
59 pub mod system_assign {
60 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
61 pub const AUTHORITY_INDEX: usize = 0;
62 }
63
64 pub mod system_assign_with_seed {
65 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
66 pub const AUTHORITY_INDEX: usize = 1;
67 }
68
69 pub mod system_allocate {
70 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
71 pub const ACCOUNT_INDEX: usize = 0;
72 }
73
74 pub mod system_allocate_with_seed {
75 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
76 pub const ACCOUNT_INDEX: usize = 1;
77 }
78
79 pub mod system_initialize_nonce_account {
80 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
81 pub const NONCE_ACCOUNT_INDEX: usize = 0;
82 }
84
85 pub mod system_advance_nonce_account {
86 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
87 pub const NONCE_ACCOUNT_INDEX: usize = 0;
88 pub const NONCE_AUTHORITY_INDEX: usize = 2;
89 }
90
91 pub mod system_authorize_nonce_account {
92 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
93 pub const NONCE_ACCOUNT_INDEX: usize = 0;
94 pub const NONCE_AUTHORITY_INDEX: usize = 1;
95 }
96
97 pub mod spl_token_transfer {
100 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
101 pub const OWNER_INDEX: usize = 2;
102 pub const SOURCE_ADDRESS_INDEX: usize = 0;
103 pub const DESTINATION_ADDRESS_INDEX: usize = 1;
104 }
105
106 pub mod spl_token_transfer_checked {
107 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
108 pub const OWNER_INDEX: usize = 3;
109 pub const MINT_INDEX: usize = 1;
110 pub const SOURCE_ADDRESS_INDEX: usize = 0;
111 pub const DESTINATION_ADDRESS_INDEX: usize = 2;
112 }
113
114 pub mod spl_token_burn {
115 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
116 pub const OWNER_INDEX: usize = 2;
117 }
118
119 pub mod spl_token_close_account {
120 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
121 pub const OWNER_INDEX: usize = 2;
122 }
123
124 pub mod spl_token_approve {
125 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
126 pub const OWNER_INDEX: usize = 2;
127 }
128
129 pub mod spl_token_approve_checked {
130 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
131 pub const OWNER_INDEX: usize = 3;
132 }
133
134 pub mod spl_token_revoke {
135 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
136 pub const OWNER_INDEX: usize = 1;
137 }
138
139 pub mod spl_token_set_authority {
140 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
141 pub const CURRENT_AUTHORITY_INDEX: usize = 1;
142 }
143
144 pub mod spl_token_mint_to {
145 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
146 pub const MINT_AUTHORITY_INDEX: usize = 2;
147 }
148
149 pub mod spl_token_mint_to_checked {
150 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
151 pub const MINT_AUTHORITY_INDEX: usize = 2;
152 }
153
154 pub mod spl_token_initialize_mint {
155 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
156 }
158
159 pub mod spl_token_initialize_mint2 {
160 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1;
161 }
163
164 pub mod spl_token_initialize_account {
165 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 4;
166 pub const OWNER_INDEX: usize = 2;
168 }
169
170 pub mod spl_token_initialize_account2 {
171 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
172 }
174
175 pub mod spl_token_initialize_account3 {
176 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2;
177 }
179
180 pub mod spl_token_initialize_multisig {
181 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 2; }
184
185 pub mod spl_token_initialize_multisig2 {
186 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 1; }
189
190 pub mod spl_token_freeze_account {
191 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
192 pub const FREEZE_AUTHORITY_INDEX: usize = 2;
193 }
194
195 pub mod spl_token_thaw_account {
196 pub const REQUIRED_NUMBER_OF_ACCOUNTS: usize = 3;
197 pub const FREEZE_AUTHORITY_INDEX: usize = 2;
198 }
199
200 pub mod ata_instruction_indexes {
202 pub const ATA_ADDRESS_INDEX: usize = 1;
203 pub const WALLET_OWNER_INDEX: usize = 2;
204 pub const MINT_INDEX: usize = 3;
205 pub const MIN_ACCOUNTS: usize = 6;
206 }
207
208 pub mod spl_transfer_instruction_indexes {
209 pub const DESTINATION_INDEX: usize = 1;
210 pub const MIN_ACCOUNTS: usize = 3;
211 }
212}