1macro_rules! path_fn {
7 ($name:ident, $route:expr $(,)?) => {
8 pub fn $name() -> String {
9 ::std::string::String::from($route)
10 }
11 };
12 ($name:ident, $route:expr, $($param:ident),+ $(,)?) => {
13 pub fn $name($($param: impl ::std::fmt::Display),+) -> String {
14 let mut path = ::std::string::String::from($route);
15 $(
16 path = path.replace(
17 concat!("{", stringify!($param), "}"),
18 &$param.to_string(),
19 );
20 )+
21 path
22 }
23 };
24}
25
26pub mod v1 {
27 pub const REWARD_CLAIM_INPUT_ROUTE: &str =
28 "/v1/reward-state-v2/reward-claim-input/{height}/{address}";
29 pub const REWARD_BALANCE_ROUTE: &str = "/v1/reward-state-v2/reward-balance/{height}/{address}";
30 pub const LATEST_REWARD_BALANCE_ROUTE: &str =
31 "/v1/reward-state-v2/reward-balance/latest/{address}";
32 pub const REWARD_ACCOUNT_PROOF_ROUTE: &str = "/v1/reward-state-v2/proof/{height}/{address}";
33 pub const LATEST_REWARD_ACCOUNT_PROOF_ROUTE: &str =
34 "/v1/reward-state-v2/proof/latest/{address}";
35 pub const REWARD_AMOUNTS_ROUTE: &str =
36 "/v1/reward-state-v2/reward-amounts/{height}/{offset}/{limit}";
37 pub const REWARD_MERKLE_TREE_V2_ROUTE: &str =
38 "/v1/reward-state-v2/reward-merkle-tree-v2/{height}";
39 pub const REWARD_STATE_HEIGHT_ROUTE: &str = "/v1/reward-state/block-height";
40 pub const REWARD_STATE_V2_HEIGHT_ROUTE: &str = "/v1/reward-state-v2/block-height";
41 pub const REWARD_V1_ACCOUNT_PROOF_ROUTE: &str = "/v1/reward-state/proof/{height}/{address}";
42 pub const REWARD_V1_BALANCE_ROUTE: &str = "/v1/reward-state/reward-balance/{height}/{address}";
43 pub const REWARD_V1_LATEST_BALANCE_ROUTE: &str =
47 "/v1/reward-state/reward-balance/latest/{address}";
48 pub const REWARD_V1_LATEST_ACCOUNT_PROOF_ROUTE: &str =
49 "/v1/reward-state/proof/latest/{address}";
50 pub const REWARD_V1_AMOUNTS_ROUTE: &str =
51 "/v1/reward-state/reward-amounts/{height}/{offset}/{limit}";
52 pub const REWARD_V1_MERKLE_TREE_V2_ROUTE: &str =
53 "/v1/reward-state/reward-merkle-tree-v2/{height}";
54
55 pub const REWARD_STATE_PATH_BY_HEIGHT_ROUTE: &str = "/v1/reward-state/{height}/{key}";
58 pub const REWARD_STATE_PATH_BY_COMMIT_ROUTE: &str = "/v1/reward-state/commit/{commit}/{key}";
59 pub const REWARD_STATE_V2_PATH_BY_HEIGHT_ROUTE: &str = "/v1/reward-state-v2/{height}/{key}";
60 pub const REWARD_STATE_V2_PATH_BY_COMMIT_ROUTE: &str =
61 "/v1/reward-state-v2/commit/{commit}/{key}";
62
63 pub const NAMESPACE_PROOF_BY_HEIGHT_ROUTE: &str =
64 "/v1/availability/block/{height}/namespace/{namespace}";
65 pub const NAMESPACE_PROOF_BY_HASH_ROUTE: &str =
66 "/v1/availability/block/hash/{hash}/namespace/{namespace}";
67 pub const NAMESPACE_PROOF_BY_PAYLOAD_HASH_ROUTE: &str =
68 "/v1/availability/block/payload-hash/{payload_hash}/namespace/{namespace}";
69 pub const NAMESPACE_PROOF_RANGE_ROUTE: &str =
70 "/v1/availability/block/{from}/{until}/namespace/{namespace}";
71 pub const INCORRECT_ENCODING_PROOF_ROUTE: &str =
72 "/v1/availability/incorrect-encoding-proof/{block_number}/{namespace}";
73
74 pub const STATE_CERT_V1_ROUTE: &str = "/v1/availability/state-cert/{epoch}";
75 pub const STATE_CERT_V2_ROUTE: &str = "/v1/availability/state-cert-v2/{epoch}";
76
77 pub const LEAF_BY_HEIGHT_ROUTE: &str = "/v1/availability/leaf/{height}";
78 pub const LEAF_BY_HASH_ROUTE: &str = "/v1/availability/leaf/hash/{hash}";
79 pub const LEAF_RANGE_ROUTE: &str = "/v1/availability/leaf/{from}/{until}";
80
81 pub const HEADER_BY_HEIGHT_ROUTE: &str = "/v1/availability/header/{height}";
82 pub const HEADER_BY_HASH_ROUTE: &str = "/v1/availability/header/hash/{hash}";
83 pub const HEADER_BY_PAYLOAD_HASH_ROUTE: &str =
84 "/v1/availability/header/payload-hash/{payload_hash}";
85 pub const HEADER_RANGE_ROUTE: &str = "/v1/availability/header/{from}/{until}";
86
87 pub const BLOCK_BY_HEIGHT_ROUTE: &str = "/v1/availability/block/{height}";
88 pub const BLOCK_BY_HASH_ROUTE: &str = "/v1/availability/block/hash/{hash}";
89 pub const BLOCK_BY_PAYLOAD_HASH_ROUTE: &str =
90 "/v1/availability/block/payload-hash/{payload_hash}";
91 pub const BLOCK_RANGE_ROUTE: &str = "/v1/availability/block/{from}/{until}";
92
93 pub const PAYLOAD_BY_HEIGHT_ROUTE: &str = "/v1/availability/payload/{height}";
94 pub const PAYLOAD_BY_HASH_ROUTE: &str = "/v1/availability/payload/hash/{hash}";
95 pub const PAYLOAD_BY_BLOCK_HASH_ROUTE: &str =
96 "/v1/availability/payload/block-hash/{block_hash}";
97 pub const PAYLOAD_RANGE_ROUTE: &str = "/v1/availability/payload/{from}/{until}";
98
99 pub const VID_COMMON_BY_HEIGHT_ROUTE: &str = "/v1/availability/vid/common/{height}";
100 pub const VID_COMMON_BY_HASH_ROUTE: &str = "/v1/availability/vid/common/hash/{hash}";
101 pub const VID_COMMON_BY_PAYLOAD_HASH_ROUTE: &str =
102 "/v1/availability/vid/common/payload-hash/{payload_hash}";
103 pub const VID_COMMON_RANGE_ROUTE: &str = "/v1/availability/vid/common/{from}/{until}";
104
105 pub const LEAF_RANGES_ROUTE: &str = "/v1/availability/leaf/ranges";
106 pub const BLOCK_RANGES_ROUTE: &str = "/v1/availability/block/ranges";
107 pub const VID_COMMON_RANGES_ROUTE: &str = "/v1/availability/vid/common/ranges";
108
109 pub const TRANSACTION_BY_POSITION_NOPROOF_ROUTE: &str =
110 "/v1/availability/transaction/{height}/{index}/noproof";
111 pub const TRANSACTION_BY_HASH_NOPROOF_ROUTE: &str =
112 "/v1/availability/transaction/hash/{hash}/noproof";
113 pub const TRANSACTION_PROOF_BY_POSITION_ROUTE: &str =
114 "/v1/availability/transaction/{height}/{index}/proof";
115 pub const TRANSACTION_PROOF_BY_HASH_ROUTE: &str =
116 "/v1/availability/transaction/hash/{hash}/proof";
117 pub const TRANSACTION_BY_POSITION_ROUTE: &str = "/v1/availability/transaction/{height}/{index}";
118 pub const TRANSACTION_BY_HASH_ROUTE: &str = "/v1/availability/transaction/hash/{hash}";
119
120 pub const BLOCK_SUMMARY_BY_HEIGHT_ROUTE: &str = "/v1/availability/block/summary/{height}";
121 pub const BLOCK_SUMMARY_RANGE_ROUTE: &str = "/v1/availability/block/summaries/{from}/{until}";
122
123 pub const LIMITS_ROUTE: &str = "/v1/availability/limits";
124 pub const CERT2_BY_HEIGHT_ROUTE: &str = "/v1/availability/cert2/{height}";
125
126 pub const STREAM_LEAVES_ROUTE: &str = "/v1/availability/stream/leaves/{height}";
127 pub const STREAM_HEADERS_ROUTE: &str = "/v1/availability/stream/headers/{height}";
128 pub const STREAM_BLOCKS_ROUTE: &str = "/v1/availability/stream/blocks/{height}";
129 pub const STREAM_PAYLOADS_ROUTE: &str = "/v1/availability/stream/payloads/{height}";
130 pub const STREAM_VID_COMMON_ROUTE: &str = "/v1/availability/stream/vid/common/{height}";
131 pub const STREAM_TRANSACTIONS_ROUTE: &str = "/v1/availability/stream/transactions/{height}";
132 pub const STREAM_TRANSACTIONS_NS_ROUTE: &str =
133 "/v1/availability/stream/transactions/{height}/namespace/{namespace}";
134
135 pub const STREAM_NAMESPACE_PROOFS_ROUTE: &str =
136 "/v1/availability/stream/blocks/{height}/namespace/{namespace}";
137
138 pub const BLOCK_STATE_PATH_BY_HEIGHT_ROUTE: &str = "/v1/block-state/{height}/{key}";
139 pub const BLOCK_STATE_PATH_BY_COMMIT_ROUTE: &str = "/v1/block-state/commit/{commit}/{key}";
140 pub const BLOCK_STATE_HEIGHT_ROUTE: &str = "/v1/block-state/block-height";
141
142 pub const FEE_STATE_PATH_BY_HEIGHT_ROUTE: &str = "/v1/fee-state/{height}/{key}";
143 pub const FEE_STATE_PATH_BY_COMMIT_ROUTE: &str = "/v1/fee-state/commit/{commit}/{key}";
144 pub const FEE_STATE_HEIGHT_ROUTE: &str = "/v1/fee-state/block-height";
145 pub const FEE_STATE_BALANCE_LATEST_ROUTE: &str = "/v1/fee-state/fee-balance/latest/{address}";
146
147 pub const STATUS_BLOCK_HEIGHT_ROUTE: &str = "/v1/status/block-height";
148 pub const STATUS_SUCCESS_RATE_ROUTE: &str = "/v1/status/success-rate";
149 pub const STATUS_TIME_SINCE_LAST_DECIDE_ROUTE: &str = "/v1/status/time-since-last-decide";
150 pub const STATUS_METRICS_ROUTE: &str = "/v1/status/metrics";
151 pub const STATUS_KEYS_ROUTE: &str = "/v1/status/keys";
152
153 pub const CONFIG_HOTSHOT_ROUTE: &str = "/v1/config/hotshot";
154 pub const CONFIG_ENV_ROUTE: &str = "/v1/config/env";
155 pub const CONFIG_RUNTIME_ROUTE: &str = "/v1/config/runtime";
156
157 pub const NODE_BLOCK_HEIGHT_ROUTE: &str = "/v1/node/block-height";
158
159 pub const NODE_TRANSACTIONS_COUNT_ROUTE: &str = "/v1/node/transactions/count";
160 pub const NODE_TRANSACTIONS_COUNT_TO_ROUTE: &str = "/v1/node/transactions/count/{to}";
161 pub const NODE_TRANSACTIONS_COUNT_FROM_TO_ROUTE: &str =
162 "/v1/node/transactions/count/{from}/{to}";
163 pub const NODE_TRANSACTIONS_COUNT_NS_ROUTE: &str =
164 "/v1/node/transactions/count/namespace/{namespace}";
165 pub const NODE_TRANSACTIONS_COUNT_NS_TO_ROUTE: &str =
166 "/v1/node/transactions/count/namespace/{namespace}/{to}";
167 pub const NODE_TRANSACTIONS_COUNT_NS_FROM_TO_ROUTE: &str =
168 "/v1/node/transactions/count/namespace/{namespace}/{from}/{to}";
169
170 pub const NODE_PAYLOADS_SIZE_ROUTE: &str = "/v1/node/payloads/size";
171 pub const NODE_PAYLOADS_SIZE_TO_ROUTE: &str = "/v1/node/payloads/size/{to}";
172 pub const NODE_PAYLOADS_SIZE_FROM_TO_ROUTE: &str = "/v1/node/payloads/size/{from}/{to}";
173 pub const NODE_PAYLOADS_TOTAL_SIZE_ROUTE: &str = "/v1/node/payloads/total-size";
174 pub const NODE_PAYLOADS_SIZE_NS_ROUTE: &str = "/v1/node/payloads/size/namespace/{namespace}";
175 pub const NODE_PAYLOADS_SIZE_NS_TO_ROUTE: &str =
176 "/v1/node/payloads/size/namespace/{namespace}/{to}";
177 pub const NODE_PAYLOADS_SIZE_NS_FROM_TO_ROUTE: &str =
178 "/v1/node/payloads/size/namespace/{namespace}/{from}/{to}";
179
180 pub const NODE_VID_SHARE_BY_HEIGHT_ROUTE: &str = "/v1/node/vid/share/{height}";
181 pub const NODE_VID_SHARE_BY_HASH_ROUTE: &str = "/v1/node/vid/share/hash/{hash}";
182 pub const NODE_VID_SHARE_BY_PAYLOAD_HASH_ROUTE: &str =
183 "/v1/node/vid/share/payload-hash/{payload_hash}";
184
185 pub const NODE_SYNC_STATUS_ROUTE: &str = "/v1/node/sync-status";
186
187 pub const NODE_HEADER_WINDOW_TIME_ROUTE: &str = "/v1/node/header/window/{start}/{end}";
188 pub const NODE_HEADER_WINDOW_HEIGHT_ROUTE: &str = "/v1/node/header/window/from/{height}/{end}";
189 pub const NODE_HEADER_WINDOW_HASH_ROUTE: &str = "/v1/node/header/window/from/hash/{hash}/{end}";
190
191 pub const NODE_LIMITS_ROUTE: &str = "/v1/node/limits";
192
193 pub const NODE_STAKE_TABLE_CURRENT_ROUTE: &str = "/v1/node/stake-table/current";
194 pub const NODE_STAKE_TABLE_ROUTE: &str = "/v1/node/stake-table/{epoch_number}";
195 pub const NODE_DA_STAKE_TABLE_CURRENT_ROUTE: &str = "/v1/node/da-stake-table/current";
196 pub const NODE_DA_STAKE_TABLE_ROUTE: &str = "/v1/node/da-stake-table/{epoch_number}";
197
198 pub const NODE_VALIDATORS_ROUTE: &str = "/v1/node/validators/{epoch_number}";
199 pub const NODE_ALL_VALIDATORS_ROUTE: &str =
200 "/v1/node/all-validators/{epoch_number}/{offset}/{limit}";
201
202 pub const NODE_PROPOSAL_PARTICIPATION_CURRENT_ROUTE: &str =
203 "/v1/node/participation/proposal/current";
204 pub const NODE_PROPOSAL_PARTICIPATION_ROUTE: &str = "/v1/node/participation/proposal/{epoch}";
205 pub const NODE_VOTE_PARTICIPATION_CURRENT_ROUTE: &str = "/v1/node/participation/vote/current";
206 pub const NODE_VOTE_PARTICIPATION_ROUTE: &str = "/v1/node/participation/vote/{epoch}";
207
208 pub const NODE_BLOCK_REWARD_ROUTE: &str = "/v1/node/block-reward";
209 pub const NODE_BLOCK_REWARD_EPOCH_ROUTE: &str = "/v1/node/block-reward/epoch/{epoch_number}";
210
211 pub const NODE_OLDEST_BLOCK_ROUTE: &str = "/v1/node/oldest-block";
212 pub const NODE_OLDEST_LEAF_ROUTE: &str = "/v1/node/oldest-leaf";
213
214 pub const CATCHUP_ACCOUNT_ROUTE: &str = "/v1/catchup/{height}/{view}/account/{address}";
216 pub const CATCHUP_ACCOUNTS_ROUTE: &str = "/v1/catchup/{height}/{view}/accounts";
217 pub const CATCHUP_BLOCKS_ROUTE: &str = "/v1/catchup/{height}/{view}/blocks";
218 pub const CATCHUP_CHAINCONFIG_ROUTE: &str = "/v1/catchup/chain-config/{commitment}";
219 pub const CATCHUP_LEAFCHAIN_ROUTE: &str = "/v1/catchup/{height}/leafchain";
220 pub const CATCHUP_CERT2_ROUTE: &str = "/v1/catchup/{height}/cert2";
221 pub const CATCHUP_REWARD_ACCOUNT_ROUTE: &str =
222 "/v1/catchup/{height}/{view}/reward-account/{address}";
223 pub const CATCHUP_REWARD_ACCOUNTS_ROUTE: &str = "/v1/catchup/{height}/{view}/reward-accounts";
224 pub const CATCHUP_REWARD_ACCOUNT_V2_ROUTE: &str =
225 "/v1/catchup/{height}/{view}/reward-account-v2/{address}";
226 pub const CATCHUP_REWARD_ACCOUNTS_V2_ROUTE: &str =
227 "/v1/catchup/{height}/{view}/reward-accounts-v2";
228 pub const CATCHUP_REWARD_AMOUNTS_ROUTE: &str =
229 "/v1/catchup/{height}/reward-amounts/{limit}/{offset}";
230 pub const CATCHUP_REWARD_MERKLE_TREE_V2_ROUTE: &str =
231 "/v1/catchup/reward-merkle-tree-v2/{height}/{view}";
232 pub const CATCHUP_STATE_CERT_ROUTE: &str = "/v1/catchup/{epoch}/state-cert";
233
234 pub const SUBMIT_ROUTE: &str = "/v1/submit/submit";
236
237 pub const STATE_SIGNATURE_BLOCK_ROUTE: &str = "/v1/state-signature/block/{height}";
239
240 pub const LC_LEAF_BY_HEIGHT_ROUTE: &str = "/v1/light-client/leaf/{height}";
242 pub const LC_LEAF_BY_HEIGHT_FINALIZED_ROUTE: &str =
243 "/v1/light-client/leaf/{height}/{finalized}";
244 pub const LC_LEAF_BY_HASH_ROUTE: &str = "/v1/light-client/leaf/hash/{hash}";
245 pub const LC_LEAF_BY_HASH_FINALIZED_ROUTE: &str =
246 "/v1/light-client/leaf/hash/{hash}/{finalized}";
247 pub const LC_LEAF_BY_BLOCK_HASH_ROUTE: &str = "/v1/light-client/leaf/block-hash/{block_hash}";
248 pub const LC_LEAF_BY_BLOCK_HASH_FINALIZED_ROUTE: &str =
249 "/v1/light-client/leaf/block-hash/{block_hash}/{finalized}";
250 pub const LC_LEAF_BY_PAYLOAD_HASH_ROUTE: &str =
251 "/v1/light-client/leaf/payload-hash/{payload_hash}";
252 pub const LC_LEAF_BY_PAYLOAD_HASH_FINALIZED_ROUTE: &str =
253 "/v1/light-client/leaf/payload-hash/{payload_hash}/{finalized}";
254
255 pub const LC_HEADER_BY_HEIGHT_ROUTE: &str = "/v1/light-client/header/{root}/{height}";
256 pub const LC_HEADER_BY_HASH_ROUTE: &str = "/v1/light-client/header/{root}/hash/{hash}";
257 pub const LC_HEADER_BY_PAYLOAD_HASH_ROUTE: &str =
258 "/v1/light-client/header/{root}/payload-hash/{payload_hash}";
259
260 pub const LC_STAKE_TABLE_ROUTE: &str = "/v1/light-client/stake-table/{epoch}";
261
262 pub const LC_PAYLOAD_ROUTE: &str = "/v1/light-client/payload/{height}";
263 pub const LC_PAYLOAD_RANGE_ROUTE: &str = "/v1/light-client/payload/{start}/{end}";
264 pub const LC_PAYLOAD_RANGES_ROUTE: &str = "/v1/light-client/payload/ranges";
265
266 pub const LC_NAMESPACE_ROUTE: &str = "/v1/light-client/namespace/{height}/{namespace}";
267 pub const LC_NAMESPACE_RANGE_ROUTE: &str =
268 "/v1/light-client/namespace/{start}/{end}/{namespace}";
269 pub const LC_NAMESPACES_RANGE_ROUTE: &str =
270 "/v1/light-client/namespaces/{start}/{end}/{namespaces}";
271
272 pub const EXPLORER_BLOCK_DETAIL_BY_HEIGHT_ROUTE: &str = "/v1/explorer/block/{height}";
274 pub const EXPLORER_BLOCK_DETAIL_BY_HASH_ROUTE: &str = "/v1/explorer/block/hash/{hash}";
275 pub const EXPLORER_BLOCK_SUMMARIES_LATEST_ROUTE: &str = "/v1/explorer/blocks/latest/{limit}";
276 pub const EXPLORER_BLOCK_SUMMARIES_FROM_ROUTE: &str = "/v1/explorer/blocks/{from}/{limit}";
277 pub const EXPLORER_TX_DETAIL_BY_POSITION_ROUTE: &str =
278 "/v1/explorer/transaction/{height}/{offset}";
279 pub const EXPLORER_TX_DETAIL_BY_HASH_ROUTE: &str = "/v1/explorer/transaction/hash/{hash}";
280
281 pub const EXPLORER_TX_SUMMARIES_LATEST_ROUTE: &str = "/v1/explorer/transactions/latest/{limit}";
282 pub const EXPLORER_TX_SUMMARIES_FROM_ROUTE: &str =
283 "/v1/explorer/transactions/from/{height}/{offset}/{limit}";
284 pub const EXPLORER_TX_SUMMARIES_BY_HASH_ROUTE: &str =
285 "/v1/explorer/transactions/hash/{hash}/{limit}";
286
287 pub const EXPLORER_TX_SUMMARIES_LATEST_BLOCK_ROUTE: &str =
288 "/v1/explorer/transactions/latest/{limit}/block/{block}";
289 pub const EXPLORER_TX_SUMMARIES_FROM_BLOCK_ROUTE: &str =
290 "/v1/explorer/transactions/from/{height}/{offset}/{limit}/block/{block}";
291 pub const EXPLORER_TX_SUMMARIES_BY_HASH_BLOCK_ROUTE: &str =
292 "/v1/explorer/transactions/hash/{hash}/{limit}/block/{block}";
293
294 pub const EXPLORER_TX_SUMMARIES_LATEST_NS_ROUTE: &str =
295 "/v1/explorer/transactions/latest/{limit}/namespace/{namespace}";
296 pub const EXPLORER_TX_SUMMARIES_FROM_NS_ROUTE: &str =
297 "/v1/explorer/transactions/from/{height}/{offset}/{limit}/namespace/{namespace}";
298 pub const EXPLORER_TX_SUMMARIES_BY_HASH_NS_ROUTE: &str =
299 "/v1/explorer/transactions/hash/{hash}/{limit}/namespace/{namespace}";
300
301 pub const EXPLORER_SUMMARY_ROUTE: &str = "/v1/explorer/explorer-summary";
302 pub const EXPLORER_SEARCH_ROUTE: &str = "/v1/explorer/search/{query}";
303
304 pub const TOKEN_TOTAL_MINTED_SUPPLY_ROUTE: &str = "/v1/token/total-minted-supply";
306 pub const TOKEN_CIRCULATING_SUPPLY_ROUTE: &str = "/v1/token/circulating-supply";
307 pub const TOKEN_CIRCULATING_SUPPLY_ETHEREUM_ROUTE: &str =
308 "/v1/token/circulating-supply-ethereum";
309 pub const TOKEN_TOTAL_ISSUED_SUPPLY_ROUTE: &str = "/v1/token/total-issued-supply";
310 pub const TOKEN_TOTAL_REWARD_DISTRIBUTED_ROUTE: &str = "/v1/token/total-reward-distributed";
311
312 pub const DATABASE_TABLE_SIZES_ROUTE: &str = "/v1/database/table-sizes";
314 pub const DATABASE_MIGRATION_STATUS_ROUTE: &str = "/v1/database/migration-status";
315
316 pub const OPENAPI_SPEC_ROUTE: &str = "/v1/docs/openapi.json";
318 pub const SWAGGER_ROUTE: &str = "/v1";
319 pub const SCALAR_ROUTE: &str = "/v1/scalar";
320
321 path_fn!(
323 reward_claim_input,
324 REWARD_CLAIM_INPUT_ROUTE,
325 height,
326 address
327 );
328 path_fn!(reward_balance, REWARD_BALANCE_ROUTE, height, address);
329 path_fn!(latest_reward_balance, LATEST_REWARD_BALANCE_ROUTE, address);
330 path_fn!(
331 reward_account_proof,
332 REWARD_ACCOUNT_PROOF_ROUTE,
333 height,
334 address
335 );
336 path_fn!(
337 latest_reward_account_proof,
338 LATEST_REWARD_ACCOUNT_PROOF_ROUTE,
339 address
340 );
341 path_fn!(reward_amounts, REWARD_AMOUNTS_ROUTE, height, offset, limit);
342 path_fn!(reward_merkle_tree_v2, REWARD_MERKLE_TREE_V2_ROUTE, height);
343 path_fn!(reward_state_height, REWARD_STATE_HEIGHT_ROUTE);
344 path_fn!(reward_state_v2_height, REWARD_STATE_V2_HEIGHT_ROUTE);
345 path_fn!(
346 reward_v1_account_proof,
347 REWARD_V1_ACCOUNT_PROOF_ROUTE,
348 height,
349 address
350 );
351 path_fn!(reward_v1_balance, REWARD_V1_BALANCE_ROUTE, height, address);
352 path_fn!(
353 reward_v1_latest_balance,
354 REWARD_V1_LATEST_BALANCE_ROUTE,
355 address
356 );
357 path_fn!(
358 reward_v1_latest_account_proof,
359 REWARD_V1_LATEST_ACCOUNT_PROOF_ROUTE,
360 address
361 );
362 path_fn!(
363 reward_v1_amounts,
364 REWARD_V1_AMOUNTS_ROUTE,
365 height,
366 offset,
367 limit
368 );
369 path_fn!(
370 reward_v1_merkle_tree_v2,
371 REWARD_V1_MERKLE_TREE_V2_ROUTE,
372 height
373 );
374 path_fn!(
375 reward_state_path_by_height,
376 REWARD_STATE_PATH_BY_HEIGHT_ROUTE,
377 height,
378 key
379 );
380 path_fn!(
381 reward_state_path_by_commit,
382 REWARD_STATE_PATH_BY_COMMIT_ROUTE,
383 commit,
384 key
385 );
386 path_fn!(
387 reward_state_v2_path_by_height,
388 REWARD_STATE_V2_PATH_BY_HEIGHT_ROUTE,
389 height,
390 key
391 );
392 path_fn!(
393 reward_state_v2_path_by_commit,
394 REWARD_STATE_V2_PATH_BY_COMMIT_ROUTE,
395 commit,
396 key
397 );
398
399 path_fn!(
401 namespace_proof_by_height,
402 NAMESPACE_PROOF_BY_HEIGHT_ROUTE,
403 height,
404 namespace
405 );
406 path_fn!(
407 namespace_proof_by_hash,
408 NAMESPACE_PROOF_BY_HASH_ROUTE,
409 hash,
410 namespace
411 );
412 path_fn!(
413 namespace_proof_by_payload_hash,
414 NAMESPACE_PROOF_BY_PAYLOAD_HASH_ROUTE,
415 payload_hash,
416 namespace
417 );
418 path_fn!(
419 namespace_proof_range,
420 NAMESPACE_PROOF_RANGE_ROUTE,
421 from,
422 until,
423 namespace
424 );
425 path_fn!(
426 incorrect_encoding_proof,
427 INCORRECT_ENCODING_PROOF_ROUTE,
428 block_number,
429 namespace
430 );
431
432 path_fn!(state_cert_v1, STATE_CERT_V1_ROUTE, epoch);
434 path_fn!(state_cert_v2, STATE_CERT_V2_ROUTE, epoch);
435
436 path_fn!(leaf_by_height, LEAF_BY_HEIGHT_ROUTE, height);
438 path_fn!(leaf_by_hash, LEAF_BY_HASH_ROUTE, hash);
439 path_fn!(leaf_range, LEAF_RANGE_ROUTE, from, until);
440
441 path_fn!(header_by_height, HEADER_BY_HEIGHT_ROUTE, height);
443 path_fn!(header_by_hash, HEADER_BY_HASH_ROUTE, hash);
444 path_fn!(
445 header_by_payload_hash,
446 HEADER_BY_PAYLOAD_HASH_ROUTE,
447 payload_hash
448 );
449 path_fn!(header_range, HEADER_RANGE_ROUTE, from, until);
450
451 path_fn!(block_by_height, BLOCK_BY_HEIGHT_ROUTE, height);
453 path_fn!(block_by_hash, BLOCK_BY_HASH_ROUTE, hash);
454 path_fn!(
455 block_by_payload_hash,
456 BLOCK_BY_PAYLOAD_HASH_ROUTE,
457 payload_hash
458 );
459 path_fn!(block_range, BLOCK_RANGE_ROUTE, from, until);
460
461 path_fn!(payload_by_height, PAYLOAD_BY_HEIGHT_ROUTE, height);
463 path_fn!(payload_by_hash, PAYLOAD_BY_HASH_ROUTE, hash);
464 path_fn!(
465 payload_by_block_hash,
466 PAYLOAD_BY_BLOCK_HASH_ROUTE,
467 block_hash
468 );
469 path_fn!(payload_range, PAYLOAD_RANGE_ROUTE, from, until);
470
471 path_fn!(vid_common_by_height, VID_COMMON_BY_HEIGHT_ROUTE, height);
473 path_fn!(vid_common_by_hash, VID_COMMON_BY_HASH_ROUTE, hash);
474 path_fn!(
475 vid_common_by_payload_hash,
476 VID_COMMON_BY_PAYLOAD_HASH_ROUTE,
477 payload_hash
478 );
479 path_fn!(vid_common_range, VID_COMMON_RANGE_ROUTE, from, until);
480
481 path_fn!(leaf_ranges, LEAF_RANGES_ROUTE);
483 path_fn!(block_ranges, BLOCK_RANGES_ROUTE);
484 path_fn!(vid_common_ranges, VID_COMMON_RANGES_ROUTE);
485
486 path_fn!(
488 transaction_by_position_noproof,
489 TRANSACTION_BY_POSITION_NOPROOF_ROUTE,
490 height,
491 index
492 );
493 path_fn!(
494 transaction_by_hash_noproof,
495 TRANSACTION_BY_HASH_NOPROOF_ROUTE,
496 hash
497 );
498 path_fn!(
499 transaction_proof_by_position,
500 TRANSACTION_PROOF_BY_POSITION_ROUTE,
501 height,
502 index
503 );
504 path_fn!(
505 transaction_proof_by_hash,
506 TRANSACTION_PROOF_BY_HASH_ROUTE,
507 hash
508 );
509 path_fn!(
510 transaction_by_position,
511 TRANSACTION_BY_POSITION_ROUTE,
512 height,
513 index
514 );
515 path_fn!(transaction_by_hash, TRANSACTION_BY_HASH_ROUTE, hash);
516
517 path_fn!(
519 block_summary_by_height,
520 BLOCK_SUMMARY_BY_HEIGHT_ROUTE,
521 height
522 );
523 path_fn!(block_summary_range, BLOCK_SUMMARY_RANGE_ROUTE, from, until);
524
525 path_fn!(limits, LIMITS_ROUTE);
527 path_fn!(cert2_by_height, CERT2_BY_HEIGHT_ROUTE, height);
528
529 path_fn!(stream_leaves, STREAM_LEAVES_ROUTE, height);
531 path_fn!(stream_headers, STREAM_HEADERS_ROUTE, height);
532 path_fn!(stream_blocks, STREAM_BLOCKS_ROUTE, height);
533 path_fn!(stream_payloads, STREAM_PAYLOADS_ROUTE, height);
534 path_fn!(stream_vid_common, STREAM_VID_COMMON_ROUTE, height);
535 path_fn!(stream_transactions, STREAM_TRANSACTIONS_ROUTE, height);
536 path_fn!(
537 stream_transactions_ns,
538 STREAM_TRANSACTIONS_NS_ROUTE,
539 height,
540 namespace
541 );
542 path_fn!(
543 stream_namespace_proofs,
544 STREAM_NAMESPACE_PROOFS_ROUTE,
545 height,
546 namespace
547 );
548
549 path_fn!(
551 block_state_path_by_height,
552 BLOCK_STATE_PATH_BY_HEIGHT_ROUTE,
553 height,
554 key
555 );
556 path_fn!(
557 block_state_path_by_commit,
558 BLOCK_STATE_PATH_BY_COMMIT_ROUTE,
559 commit,
560 key
561 );
562 path_fn!(block_state_height, BLOCK_STATE_HEIGHT_ROUTE);
563
564 path_fn!(
566 fee_state_path_by_height,
567 FEE_STATE_PATH_BY_HEIGHT_ROUTE,
568 height,
569 key
570 );
571 path_fn!(
572 fee_state_path_by_commit,
573 FEE_STATE_PATH_BY_COMMIT_ROUTE,
574 commit,
575 key
576 );
577 path_fn!(fee_state_height, FEE_STATE_HEIGHT_ROUTE);
578 path_fn!(
579 fee_state_balance_latest,
580 FEE_STATE_BALANCE_LATEST_ROUTE,
581 address
582 );
583
584 path_fn!(status_block_height, STATUS_BLOCK_HEIGHT_ROUTE);
586 path_fn!(status_success_rate, STATUS_SUCCESS_RATE_ROUTE);
587 path_fn!(
588 status_time_since_last_decide,
589 STATUS_TIME_SINCE_LAST_DECIDE_ROUTE
590 );
591 path_fn!(status_metrics, STATUS_METRICS_ROUTE);
592 path_fn!(status_keys, STATUS_KEYS_ROUTE);
593
594 path_fn!(config_hotshot, CONFIG_HOTSHOT_ROUTE);
596 path_fn!(config_env, CONFIG_ENV_ROUTE);
597 path_fn!(config_runtime, CONFIG_RUNTIME_ROUTE);
598
599 path_fn!(node_block_height, NODE_BLOCK_HEIGHT_ROUTE);
601 path_fn!(node_transactions_count, NODE_TRANSACTIONS_COUNT_ROUTE);
602 path_fn!(
603 node_transactions_count_to,
604 NODE_TRANSACTIONS_COUNT_TO_ROUTE,
605 to
606 );
607 path_fn!(
608 node_transactions_count_from_to,
609 NODE_TRANSACTIONS_COUNT_FROM_TO_ROUTE,
610 from,
611 to
612 );
613 path_fn!(
614 node_transactions_count_ns,
615 NODE_TRANSACTIONS_COUNT_NS_ROUTE,
616 namespace
617 );
618 path_fn!(
619 node_transactions_count_ns_to,
620 NODE_TRANSACTIONS_COUNT_NS_TO_ROUTE,
621 namespace,
622 to
623 );
624 path_fn!(
625 node_transactions_count_ns_from_to,
626 NODE_TRANSACTIONS_COUNT_NS_FROM_TO_ROUTE,
627 namespace,
628 from,
629 to
630 );
631
632 path_fn!(node_payloads_size, NODE_PAYLOADS_SIZE_ROUTE);
633 path_fn!(node_payloads_size_to, NODE_PAYLOADS_SIZE_TO_ROUTE, to);
634 path_fn!(
635 node_payloads_size_from_to,
636 NODE_PAYLOADS_SIZE_FROM_TO_ROUTE,
637 from,
638 to
639 );
640 path_fn!(node_payloads_total_size, NODE_PAYLOADS_TOTAL_SIZE_ROUTE);
641 path_fn!(
642 node_payloads_size_ns,
643 NODE_PAYLOADS_SIZE_NS_ROUTE,
644 namespace
645 );
646 path_fn!(
647 node_payloads_size_ns_to,
648 NODE_PAYLOADS_SIZE_NS_TO_ROUTE,
649 namespace,
650 to
651 );
652 path_fn!(
653 node_payloads_size_ns_from_to,
654 NODE_PAYLOADS_SIZE_NS_FROM_TO_ROUTE,
655 namespace,
656 from,
657 to
658 );
659
660 path_fn!(
662 node_vid_share_by_height,
663 NODE_VID_SHARE_BY_HEIGHT_ROUTE,
664 height
665 );
666 path_fn!(node_vid_share_by_hash, NODE_VID_SHARE_BY_HASH_ROUTE, hash);
667 path_fn!(
668 node_vid_share_by_payload_hash,
669 NODE_VID_SHARE_BY_PAYLOAD_HASH_ROUTE,
670 payload_hash
671 );
672
673 path_fn!(node_sync_status, NODE_SYNC_STATUS_ROUTE);
675 path_fn!(
676 node_header_window_time,
677 NODE_HEADER_WINDOW_TIME_ROUTE,
678 start,
679 end
680 );
681 path_fn!(
682 node_header_window_height,
683 NODE_HEADER_WINDOW_HEIGHT_ROUTE,
684 height,
685 end
686 );
687 path_fn!(
688 node_header_window_hash,
689 NODE_HEADER_WINDOW_HASH_ROUTE,
690 hash,
691 end
692 );
693 path_fn!(node_limits, NODE_LIMITS_ROUTE);
694
695 path_fn!(node_stake_table_current, NODE_STAKE_TABLE_CURRENT_ROUTE);
697 path_fn!(node_stake_table, NODE_STAKE_TABLE_ROUTE, epoch_number);
698 path_fn!(
699 node_da_stake_table_current,
700 NODE_DA_STAKE_TABLE_CURRENT_ROUTE
701 );
702 path_fn!(node_da_stake_table, NODE_DA_STAKE_TABLE_ROUTE, epoch_number);
703 path_fn!(node_validators, NODE_VALIDATORS_ROUTE, epoch_number);
704 path_fn!(
705 node_all_validators,
706 NODE_ALL_VALIDATORS_ROUTE,
707 epoch_number,
708 offset,
709 limit
710 );
711 path_fn!(
712 node_proposal_participation_current,
713 NODE_PROPOSAL_PARTICIPATION_CURRENT_ROUTE
714 );
715 path_fn!(
716 node_proposal_participation,
717 NODE_PROPOSAL_PARTICIPATION_ROUTE,
718 epoch
719 );
720 path_fn!(
721 node_vote_participation_current,
722 NODE_VOTE_PARTICIPATION_CURRENT_ROUTE
723 );
724 path_fn!(
725 node_vote_participation,
726 NODE_VOTE_PARTICIPATION_ROUTE,
727 epoch
728 );
729
730 path_fn!(node_block_reward, NODE_BLOCK_REWARD_ROUTE);
732 path_fn!(
733 node_block_reward_epoch,
734 NODE_BLOCK_REWARD_EPOCH_ROUTE,
735 epoch_number
736 );
737 path_fn!(node_oldest_block, NODE_OLDEST_BLOCK_ROUTE);
738 path_fn!(node_oldest_leaf, NODE_OLDEST_LEAF_ROUTE);
739
740 path_fn!(
742 catchup_account,
743 CATCHUP_ACCOUNT_ROUTE,
744 height,
745 view,
746 address
747 );
748 path_fn!(catchup_accounts, CATCHUP_ACCOUNTS_ROUTE, height, view);
749 path_fn!(catchup_blocks, CATCHUP_BLOCKS_ROUTE, height, view);
750 path_fn!(catchup_chainconfig, CATCHUP_CHAINCONFIG_ROUTE, commitment);
751 path_fn!(catchup_leafchain, CATCHUP_LEAFCHAIN_ROUTE, height);
752 path_fn!(catchup_cert2, CATCHUP_CERT2_ROUTE, height);
753 path_fn!(
754 catchup_reward_account,
755 CATCHUP_REWARD_ACCOUNT_ROUTE,
756 height,
757 view,
758 address
759 );
760 path_fn!(
761 catchup_reward_accounts,
762 CATCHUP_REWARD_ACCOUNTS_ROUTE,
763 height,
764 view
765 );
766 path_fn!(
767 catchup_reward_account_v2,
768 CATCHUP_REWARD_ACCOUNT_V2_ROUTE,
769 height,
770 view,
771 address
772 );
773 path_fn!(
774 catchup_reward_accounts_v2,
775 CATCHUP_REWARD_ACCOUNTS_V2_ROUTE,
776 height,
777 view
778 );
779 path_fn!(
780 catchup_reward_amounts,
781 CATCHUP_REWARD_AMOUNTS_ROUTE,
782 height,
783 limit,
784 offset
785 );
786 path_fn!(
787 catchup_reward_merkle_tree_v2,
788 CATCHUP_REWARD_MERKLE_TREE_V2_ROUTE,
789 height,
790 view
791 );
792 path_fn!(catchup_state_cert, CATCHUP_STATE_CERT_ROUTE, epoch);
793
794 path_fn!(submit, SUBMIT_ROUTE);
796
797 path_fn!(state_signature_block, STATE_SIGNATURE_BLOCK_ROUTE, height);
799
800 path_fn!(lc_leaf_by_height, LC_LEAF_BY_HEIGHT_ROUTE, height);
802 path_fn!(
803 lc_leaf_by_height_finalized,
804 LC_LEAF_BY_HEIGHT_FINALIZED_ROUTE,
805 height,
806 finalized
807 );
808 path_fn!(lc_leaf_by_hash, LC_LEAF_BY_HASH_ROUTE, hash);
809 path_fn!(
810 lc_leaf_by_hash_finalized,
811 LC_LEAF_BY_HASH_FINALIZED_ROUTE,
812 hash,
813 finalized
814 );
815 path_fn!(
816 lc_leaf_by_block_hash,
817 LC_LEAF_BY_BLOCK_HASH_ROUTE,
818 block_hash
819 );
820 path_fn!(
821 lc_leaf_by_block_hash_finalized,
822 LC_LEAF_BY_BLOCK_HASH_FINALIZED_ROUTE,
823 block_hash,
824 finalized
825 );
826 path_fn!(
827 lc_leaf_by_payload_hash,
828 LC_LEAF_BY_PAYLOAD_HASH_ROUTE,
829 payload_hash
830 );
831 path_fn!(
832 lc_leaf_by_payload_hash_finalized,
833 LC_LEAF_BY_PAYLOAD_HASH_FINALIZED_ROUTE,
834 payload_hash,
835 finalized
836 );
837 path_fn!(lc_header_by_height, LC_HEADER_BY_HEIGHT_ROUTE, root, height);
838 path_fn!(lc_header_by_hash, LC_HEADER_BY_HASH_ROUTE, root, hash);
839 path_fn!(
840 lc_header_by_payload_hash,
841 LC_HEADER_BY_PAYLOAD_HASH_ROUTE,
842 root,
843 payload_hash
844 );
845 path_fn!(lc_stake_table, LC_STAKE_TABLE_ROUTE, epoch);
846 path_fn!(lc_payload, LC_PAYLOAD_ROUTE, height);
847 path_fn!(lc_payload_range, LC_PAYLOAD_RANGE_ROUTE, start, end);
848 path_fn!(lc_payload_ranges, LC_PAYLOAD_RANGES_ROUTE);
849 path_fn!(lc_namespace, LC_NAMESPACE_ROUTE, height, namespace);
850 path_fn!(
851 lc_namespace_range,
852 LC_NAMESPACE_RANGE_ROUTE,
853 start,
854 end,
855 namespace
856 );
857 path_fn!(
858 lc_namespaces_range,
859 LC_NAMESPACES_RANGE_ROUTE,
860 start,
861 end,
862 namespaces
863 );
864
865 path_fn!(
867 explorer_block_detail_by_height,
868 EXPLORER_BLOCK_DETAIL_BY_HEIGHT_ROUTE,
869 height
870 );
871 path_fn!(
872 explorer_block_detail_by_hash,
873 EXPLORER_BLOCK_DETAIL_BY_HASH_ROUTE,
874 hash
875 );
876 path_fn!(
877 explorer_block_summaries_latest,
878 EXPLORER_BLOCK_SUMMARIES_LATEST_ROUTE,
879 limit
880 );
881 path_fn!(
882 explorer_block_summaries_from,
883 EXPLORER_BLOCK_SUMMARIES_FROM_ROUTE,
884 from,
885 limit
886 );
887
888 path_fn!(
890 explorer_tx_detail_by_position,
891 EXPLORER_TX_DETAIL_BY_POSITION_ROUTE,
892 height,
893 offset
894 );
895 path_fn!(
896 explorer_tx_detail_by_hash,
897 EXPLORER_TX_DETAIL_BY_HASH_ROUTE,
898 hash
899 );
900 path_fn!(
901 explorer_tx_summaries_latest,
902 EXPLORER_TX_SUMMARIES_LATEST_ROUTE,
903 limit
904 );
905 path_fn!(
906 explorer_tx_summaries_from,
907 EXPLORER_TX_SUMMARIES_FROM_ROUTE,
908 height,
909 offset,
910 limit
911 );
912 path_fn!(
913 explorer_tx_summaries_by_hash,
914 EXPLORER_TX_SUMMARIES_BY_HASH_ROUTE,
915 hash,
916 limit
917 );
918 path_fn!(
919 explorer_tx_summaries_latest_block,
920 EXPLORER_TX_SUMMARIES_LATEST_BLOCK_ROUTE,
921 limit,
922 block
923 );
924 path_fn!(
925 explorer_tx_summaries_from_block,
926 EXPLORER_TX_SUMMARIES_FROM_BLOCK_ROUTE,
927 height,
928 offset,
929 limit,
930 block
931 );
932 path_fn!(
933 explorer_tx_summaries_by_hash_block,
934 EXPLORER_TX_SUMMARIES_BY_HASH_BLOCK_ROUTE,
935 hash,
936 limit,
937 block
938 );
939 path_fn!(
940 explorer_tx_summaries_latest_ns,
941 EXPLORER_TX_SUMMARIES_LATEST_NS_ROUTE,
942 limit,
943 namespace
944 );
945 path_fn!(
946 explorer_tx_summaries_from_ns,
947 EXPLORER_TX_SUMMARIES_FROM_NS_ROUTE,
948 height,
949 offset,
950 limit,
951 namespace
952 );
953 path_fn!(
954 explorer_tx_summaries_by_hash_ns,
955 EXPLORER_TX_SUMMARIES_BY_HASH_NS_ROUTE,
956 hash,
957 limit,
958 namespace
959 );
960 path_fn!(explorer_summary, EXPLORER_SUMMARY_ROUTE);
961 path_fn!(explorer_search, EXPLORER_SEARCH_ROUTE, query);
962
963 path_fn!(token_total_minted_supply, TOKEN_TOTAL_MINTED_SUPPLY_ROUTE);
965 path_fn!(token_circulating_supply, TOKEN_CIRCULATING_SUPPLY_ROUTE);
966 path_fn!(
967 token_circulating_supply_ethereum,
968 TOKEN_CIRCULATING_SUPPLY_ETHEREUM_ROUTE
969 );
970 path_fn!(token_total_issued_supply, TOKEN_TOTAL_ISSUED_SUPPLY_ROUTE);
971 path_fn!(
972 token_total_reward_distributed,
973 TOKEN_TOTAL_REWARD_DISTRIBUTED_ROUTE
974 );
975
976 path_fn!(database_table_sizes, DATABASE_TABLE_SIZES_ROUTE);
978 path_fn!(database_migration_status, DATABASE_MIGRATION_STATUS_ROUTE);
979}
980
981pub mod v2 {
985 pub const OPENAPI_SPEC_ROUTE: &str = "/v2/docs/openapi.json";
986 pub const SWAGGER_ROUTE: &str = "/v2";
987 pub const SWAGGER_SLASH_ROUTE: &str = "/v2/";
990 pub const SCALAR_ROUTE: &str = "/v2/scalar";
991 pub const CONFIG_ROUTES: &[&str] =
993 &["/v2/config/hotshot", "/v2/config/env", "/v2/config/runtime"];
994 pub const SUBMIT_ROUTES: &[&str] = &["/v2/submit/transaction"];
996 pub const EXPLORER_ROUTES: &[&str] = &[
998 "/v2/explorer/block",
999 "/v2/explorer/blocks",
1000 "/v2/explorer/transaction",
1001 "/v2/explorer/transactions",
1002 "/v2/explorer/summary",
1003 "/v2/explorer/search",
1004 ];
1005}