tapimo 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/ApiKey.d.ts +65 -0
  4. package/dist/ApiKey.d.ts.map +1 -0
  5. package/dist/ApiKey.js +105 -0
  6. package/dist/ApiKey.js.map +1 -0
  7. package/dist/ApiKeySource.d.ts +166 -0
  8. package/dist/ApiKeySource.d.ts.map +1 -0
  9. package/dist/ApiKeySource.js +234 -0
  10. package/dist/ApiKeySource.js.map +1 -0
  11. package/dist/App.d.ts +19317 -0
  12. package/dist/App.d.ts.map +1 -0
  13. package/dist/App.js +612 -0
  14. package/dist/App.js.map +1 -0
  15. package/dist/Assets.d.ts +44 -0
  16. package/dist/Assets.d.ts.map +1 -0
  17. package/dist/Assets.js +23 -0
  18. package/dist/Assets.js.map +1 -0
  19. package/dist/Auth.d.ts +2 -0
  20. package/dist/Auth.d.ts.map +1 -0
  21. package/dist/Auth.js +2 -0
  22. package/dist/Auth.js.map +1 -0
  23. package/dist/Cli.d.ts +21 -0
  24. package/dist/Cli.d.ts.map +1 -0
  25. package/dist/Cli.js +13 -0
  26. package/dist/Cli.js.map +1 -0
  27. package/dist/Client.d.ts +20 -0
  28. package/dist/Client.d.ts.map +1 -0
  29. package/dist/Client.js +24 -0
  30. package/dist/Client.js.map +1 -0
  31. package/dist/Metrics.d.ts +70 -0
  32. package/dist/Metrics.d.ts.map +1 -0
  33. package/dist/Metrics.js +91 -0
  34. package/dist/Metrics.js.map +1 -0
  35. package/dist/Scope.d.ts +35 -0
  36. package/dist/Scope.d.ts.map +1 -0
  37. package/dist/Scope.js +38 -0
  38. package/dist/Scope.js.map +1 -0
  39. package/dist/Webhooks.d.ts +79 -0
  40. package/dist/Webhooks.d.ts.map +1 -0
  41. package/dist/Webhooks.js +107 -0
  42. package/dist/Webhooks.js.map +1 -0
  43. package/dist/admin/Access.d.ts +41 -0
  44. package/dist/admin/Access.d.ts.map +1 -0
  45. package/dist/admin/Access.js +75 -0
  46. package/dist/admin/Access.js.map +1 -0
  47. package/dist/admin/App.d.ts +1221 -0
  48. package/dist/admin/App.d.ts.map +1 -0
  49. package/dist/admin/App.js +113 -0
  50. package/dist/admin/App.js.map +1 -0
  51. package/dist/admin/apps/api-keys.d.ts +209 -0
  52. package/dist/admin/apps/api-keys.d.ts.map +1 -0
  53. package/dist/admin/apps/api-keys.js +129 -0
  54. package/dist/admin/apps/api-keys.js.map +1 -0
  55. package/dist/admin/apps/scopes.d.ts +46 -0
  56. package/dist/admin/apps/scopes.d.ts.map +1 -0
  57. package/dist/admin/apps/scopes.js +41 -0
  58. package/dist/admin/apps/scopes.js.map +1 -0
  59. package/dist/admin/apps/verified-tokens.d.ts +1206 -0
  60. package/dist/admin/apps/verified-tokens.d.ts.map +1 -0
  61. package/dist/admin/apps/verified-tokens.js +485 -0
  62. package/dist/admin/apps/verified-tokens.js.map +1 -0
  63. package/dist/admin/index.d.ts +3 -0
  64. package/dist/admin/index.d.ts.map +1 -0
  65. package/dist/admin/index.js +3 -0
  66. package/dist/admin/index.js.map +1 -0
  67. package/dist/admin/ui.generated.d.ts +11 -0
  68. package/dist/admin/ui.generated.d.ts.map +1 -0
  69. package/dist/admin/ui.generated.js +43 -0
  70. package/dist/admin/ui.generated.js.map +1 -0
  71. package/dist/apps/activities.d.ts +18725 -0
  72. package/dist/apps/activities.d.ts.map +1 -0
  73. package/dist/apps/activities.js +3138 -0
  74. package/dist/apps/activities.js.map +1 -0
  75. package/dist/apps/addresses.d.ts +3662 -0
  76. package/dist/apps/addresses.d.ts.map +1 -0
  77. package/dist/apps/addresses.js +22 -0
  78. package/dist/apps/addresses.js.map +1 -0
  79. package/dist/apps/balances.d.ts +342 -0
  80. package/dist/apps/balances.d.ts.map +1 -0
  81. package/dist/apps/balances.js +393 -0
  82. package/dist/apps/balances.js.map +1 -0
  83. package/dist/apps/blocks.d.ts +931 -0
  84. package/dist/apps/blocks.d.ts.map +1 -0
  85. package/dist/apps/blocks.js +689 -0
  86. package/dist/apps/blocks.js.map +1 -0
  87. package/dist/apps/coingecko.d.ts +1053 -0
  88. package/dist/apps/coingecko.d.ts.map +1 -0
  89. package/dist/apps/coingecko.js +1015 -0
  90. package/dist/apps/coingecko.js.map +1 -0
  91. package/dist/apps/exchanges.d.ts +3000 -0
  92. package/dist/apps/exchanges.d.ts.map +1 -0
  93. package/dist/apps/exchanges.js +3570 -0
  94. package/dist/apps/exchanges.js.map +1 -0
  95. package/dist/apps/fee-amm.d.ts +640 -0
  96. package/dist/apps/fee-amm.d.ts.map +1 -0
  97. package/dist/apps/fee-amm.js +815 -0
  98. package/dist/apps/fee-amm.js.map +1 -0
  99. package/dist/apps/indexer.d.ts +116 -0
  100. package/dist/apps/indexer.d.ts.map +1 -0
  101. package/dist/apps/indexer.js +270 -0
  102. package/dist/apps/indexer.js.map +1 -0
  103. package/dist/apps/receipts.d.ts +1438 -0
  104. package/dist/apps/receipts.d.ts.map +1 -0
  105. package/dist/apps/receipts.js +874 -0
  106. package/dist/apps/receipts.js.map +1 -0
  107. package/dist/apps/rpc.d.ts +173 -0
  108. package/dist/apps/rpc.d.ts.map +1 -0
  109. package/dist/apps/rpc.js +191 -0
  110. package/dist/apps/rpc.js.map +1 -0
  111. package/dist/apps/tokenlist.d.ts +192 -0
  112. package/dist/apps/tokenlist.d.ts.map +1 -0
  113. package/dist/apps/tokenlist.js +153 -0
  114. package/dist/apps/tokenlist.js.map +1 -0
  115. package/dist/apps/tokens.d.ts +2246 -0
  116. package/dist/apps/tokens.d.ts.map +1 -0
  117. package/dist/apps/tokens.js +1789 -0
  118. package/dist/apps/tokens.js.map +1 -0
  119. package/dist/apps/transactions.d.ts +2327 -0
  120. package/dist/apps/transactions.d.ts.map +1 -0
  121. package/dist/apps/transactions.js +975 -0
  122. package/dist/apps/transactions.js.map +1 -0
  123. package/dist/apps/transfers.d.ts +589 -0
  124. package/dist/apps/transfers.d.ts.map +1 -0
  125. package/dist/apps/transfers.js +769 -0
  126. package/dist/apps/transfers.js.map +1 -0
  127. package/dist/apps/verified-tokens.d.ts +544 -0
  128. package/dist/apps/verified-tokens.d.ts.map +1 -0
  129. package/dist/apps/verified-tokens.js +234 -0
  130. package/dist/apps/verified-tokens.js.map +1 -0
  131. package/dist/apps/webhooks.d.ts +7684 -0
  132. package/dist/apps/webhooks.d.ts.map +1 -0
  133. package/dist/apps/webhooks.js +2112 -0
  134. package/dist/apps/webhooks.js.map +1 -0
  135. package/dist/cloudflare.d.ts +32 -0
  136. package/dist/cloudflare.d.ts.map +1 -0
  137. package/dist/cloudflare.js +45 -0
  138. package/dist/cloudflare.js.map +1 -0
  139. package/dist/index.d.ts +16 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +16 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/internal/Auth.d.ts +298 -0
  144. package/dist/internal/Auth.d.ts.map +1 -0
  145. package/dist/internal/Auth.js +618 -0
  146. package/dist/internal/Auth.js.map +1 -0
  147. package/dist/internal/Cache.d.ts +74 -0
  148. package/dist/internal/Cache.d.ts.map +1 -0
  149. package/dist/internal/Cache.js +215 -0
  150. package/dist/internal/Cache.js.map +1 -0
  151. package/dist/internal/Cursor.d.ts +79 -0
  152. package/dist/internal/Cursor.d.ts.map +1 -0
  153. package/dist/internal/Cursor.js +116 -0
  154. package/dist/internal/Cursor.js.map +1 -0
  155. package/dist/internal/EdgeCache.d.ts +59 -0
  156. package/dist/internal/EdgeCache.d.ts.map +1 -0
  157. package/dist/internal/EdgeCache.js +174 -0
  158. package/dist/internal/EdgeCache.js.map +1 -0
  159. package/dist/internal/Log.d.ts +104 -0
  160. package/dist/internal/Log.d.ts.map +1 -0
  161. package/dist/internal/Log.js +118 -0
  162. package/dist/internal/Log.js.map +1 -0
  163. package/dist/internal/MetricSink.d.ts +65 -0
  164. package/dist/internal/MetricSink.d.ts.map +1 -0
  165. package/dist/internal/MetricSink.js +146 -0
  166. package/dist/internal/MetricSink.js.map +1 -0
  167. package/dist/internal/Mpp.d.ts +71 -0
  168. package/dist/internal/Mpp.d.ts.map +1 -0
  169. package/dist/internal/Mpp.js +105 -0
  170. package/dist/internal/Mpp.js.map +1 -0
  171. package/dist/internal/OpenApi.d.ts +313 -0
  172. package/dist/internal/OpenApi.d.ts.map +1 -0
  173. package/dist/internal/OpenApi.fonts.d.ts +2 -0
  174. package/dist/internal/OpenApi.fonts.d.ts.map +1 -0
  175. package/dist/internal/OpenApi.fonts.js +39 -0
  176. package/dist/internal/OpenApi.fonts.js.map +1 -0
  177. package/dist/internal/OpenApi.js +335 -0
  178. package/dist/internal/OpenApi.js.map +1 -0
  179. package/dist/internal/OpenApi.logo.d.ts +6 -0
  180. package/dist/internal/OpenApi.logo.d.ts.map +1 -0
  181. package/dist/internal/OpenApi.logo.js +19 -0
  182. package/dist/internal/OpenApi.logo.js.map +1 -0
  183. package/dist/internal/Path.d.ts +5 -0
  184. package/dist/internal/Path.d.ts.map +1 -0
  185. package/dist/internal/Path.js +16 -0
  186. package/dist/internal/Path.js.map +1 -0
  187. package/dist/internal/RateLimit.d.ts +60 -0
  188. package/dist/internal/RateLimit.d.ts.map +1 -0
  189. package/dist/internal/RateLimit.js +48 -0
  190. package/dist/internal/RateLimit.js.map +1 -0
  191. package/dist/internal/Response.d.ts +132 -0
  192. package/dist/internal/Response.d.ts.map +1 -0
  193. package/dist/internal/Response.js +72 -0
  194. package/dist/internal/Response.js.map +1 -0
  195. package/dist/internal/Schema.d.ts +257 -0
  196. package/dist/internal/Schema.d.ts.map +1 -0
  197. package/dist/internal/Schema.js +360 -0
  198. package/dist/internal/Schema.js.map +1 -0
  199. package/dist/internal/Store.d.ts +204 -0
  200. package/dist/internal/Store.d.ts.map +1 -0
  201. package/dist/internal/Store.js +291 -0
  202. package/dist/internal/Store.js.map +1 -0
  203. package/dist/internal/Tidx.d.ts +120 -0
  204. package/dist/internal/Tidx.d.ts.map +1 -0
  205. package/dist/internal/Tidx.js +156 -0
  206. package/dist/internal/Tidx.js.map +1 -0
  207. package/dist/internal/Timing.d.ts +22 -0
  208. package/dist/internal/Timing.d.ts.map +1 -0
  209. package/dist/internal/Timing.js +32 -0
  210. package/dist/internal/Timing.js.map +1 -0
  211. package/dist/internal/Ttl.d.ts +25 -0
  212. package/dist/internal/Ttl.d.ts.map +1 -0
  213. package/dist/internal/Ttl.js +49 -0
  214. package/dist/internal/Ttl.js.map +1 -0
  215. package/dist/internal/Value.d.ts +47 -0
  216. package/dist/internal/Value.d.ts.map +1 -0
  217. package/dist/internal/Value.js +122 -0
  218. package/dist/internal/Value.js.map +1 -0
  219. package/dist/internal/VerifiedTokens.d.ts +228 -0
  220. package/dist/internal/VerifiedTokens.d.ts.map +1 -0
  221. package/dist/internal/VerifiedTokens.js +450 -0
  222. package/dist/internal/VerifiedTokens.js.map +1 -0
  223. package/dist/internal/Viem.d.ts +2082 -0
  224. package/dist/internal/Viem.d.ts.map +1 -0
  225. package/dist/internal/Viem.js +63 -0
  226. package/dist/internal/Viem.js.map +1 -0
  227. package/dist/internal/WebhookDestination.d.ts +198 -0
  228. package/dist/internal/WebhookDestination.d.ts.map +1 -0
  229. package/dist/internal/WebhookDestination.js +170 -0
  230. package/dist/internal/WebhookDestination.js.map +1 -0
  231. package/dist/internal/Webhooks.d.ts +433 -0
  232. package/dist/internal/Webhooks.d.ts.map +1 -0
  233. package/dist/internal/Webhooks.js +489 -0
  234. package/dist/internal/Webhooks.js.map +1 -0
  235. package/dist/internal/webhookDestinations/betterStack.d.ts +26 -0
  236. package/dist/internal/webhookDestinations/betterStack.d.ts.map +1 -0
  237. package/dist/internal/webhookDestinations/betterStack.js +76 -0
  238. package/dist/internal/webhookDestinations/betterStack.js.map +1 -0
  239. package/dist/internal/webhookDestinations/slack.d.ts +59 -0
  240. package/dist/internal/webhookDestinations/slack.d.ts.map +1 -0
  241. package/dist/internal/webhookDestinations/slack.js +422 -0
  242. package/dist/internal/webhookDestinations/slack.js.map +1 -0
  243. package/dist/internal/webhookDestinations/url.d.ts +17 -0
  244. package/dist/internal/webhookDestinations/url.d.ts.map +1 -0
  245. package/dist/internal/webhookDestinations/url.js +130 -0
  246. package/dist/internal/webhookDestinations/url.js.map +1 -0
  247. package/dist/openrpc.json +5302 -0
  248. package/package.json +46 -4
  249. package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +1 -0
  250. package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +1 -0
  251. package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +1 -0
  252. package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +1 -0
  253. package/seeds/31318/verified-tokens.json +30 -0
  254. package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +25 -0
  255. package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +1 -0
  256. package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +1 -0
  257. package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +4 -0
  258. package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +30 -0
  259. package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +1 -0
  260. package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +1 -0
  261. package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +1 -0
  262. package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +11 -0
  263. package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +1 -0
  264. package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +1 -0
  265. package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
  266. package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +1 -0
  267. package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
  268. package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +1 -0
  269. package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +5 -0
  270. package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +1 -0
  271. package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +1 -0
  272. package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +1 -0
  273. package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +1 -0
  274. package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +1 -0
  275. package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +1 -0
  276. package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +1 -0
  277. package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +1 -0
  278. package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
  279. package/seeds/4217/verified-tokens.json +177 -0
  280. package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +25 -0
  281. package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +1 -0
  282. package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +1 -0
  283. package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +1 -0
  284. package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +1 -0
  285. package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +1 -0
  286. package/seeds/42431/verified-tokens.json +44 -0
  287. package/seeds/openrpc/README.md +27 -0
  288. package/seeds/openrpc/execution-apis.json +8989 -0
  289. package/src/ApiKey.test.ts +91 -0
  290. package/src/ApiKey.ts +122 -0
  291. package/src/ApiKeySource.test-d.ts +11 -0
  292. package/src/ApiKeySource.test.ts +295 -0
  293. package/src/ApiKeySource.ts +303 -0
  294. package/src/App.test-d.ts +38 -0
  295. package/src/App.test.ts +65927 -0
  296. package/src/App.ts +855 -0
  297. package/src/Assets.ts +58 -0
  298. package/src/Auth.ts +1 -0
  299. package/src/Cli.test.ts +81 -0
  300. package/src/Cli.ts +38 -0
  301. package/src/Client.test-d.ts +1438 -0
  302. package/src/Client.test.ts +134 -0
  303. package/src/Client.ts +45 -0
  304. package/src/Metrics.ts +154 -0
  305. package/src/Scope.ts +50 -0
  306. package/src/Webhooks.test.ts +49 -0
  307. package/src/Webhooks.ts +172 -0
  308. package/src/admin/Access.test.ts +130 -0
  309. package/src/admin/Access.ts +87 -0
  310. package/src/admin/App.test.ts +225 -0
  311. package/src/admin/App.ts +216 -0
  312. package/src/admin/apps/api-keys.test.ts +156 -0
  313. package/src/admin/apps/api-keys.ts +157 -0
  314. package/src/admin/apps/scopes.test.ts +52 -0
  315. package/src/admin/apps/scopes.ts +47 -0
  316. package/src/admin/apps/verified-tokens.test.ts +415 -0
  317. package/src/admin/apps/verified-tokens.ts +566 -0
  318. package/src/admin/index.ts +2 -0
  319. package/src/admin/ui/plugin.ts +135 -0
  320. package/src/admin/ui/src/components/Checkbox.tsx +22 -0
  321. package/src/admin/ui/src/components/Dialog.tsx +32 -0
  322. package/src/admin/ui/src/components/MobileProfile.tsx +31 -0
  323. package/src/admin/ui/src/components/Page.tsx +53 -0
  324. package/src/admin/ui/src/components/TempoLogo.tsx +37 -0
  325. package/src/admin/ui/src/fonts/Pilat-Demi.woff2 +0 -0
  326. package/src/admin/ui/src/fonts/Pilat-Regular.woff2 +0 -0
  327. package/src/admin/ui/src/lib/api-keys.ts +63 -0
  328. package/src/admin/ui/src/lib/client.ts +15 -0
  329. package/src/admin/ui/src/lib/config.ts +57 -0
  330. package/src/admin/ui/src/lib/query-client.ts +26 -0
  331. package/src/admin/ui/src/lib/scopes.ts +25 -0
  332. package/src/admin/ui/src/lib/verified-tokens.ts +89 -0
  333. package/src/admin/ui/src/lib/wagmi.ts +18 -0
  334. package/src/admin/ui/src/routeTree.gen.ts +104 -0
  335. package/src/admin/ui/src/router.tsx +25 -0
  336. package/src/admin/ui/src/routes/__root.tsx +219 -0
  337. package/src/admin/ui/src/routes/api-keys.tsx +329 -0
  338. package/src/admin/ui/src/routes/index.tsx +7 -0
  339. package/src/admin/ui/src/routes/verified-tokens.tsx +331 -0
  340. package/src/admin/ui/src/styles.css +20 -0
  341. package/src/admin/ui/tsconfig.json +16 -0
  342. package/src/admin/ui/vite.config.ts +29 -0
  343. package/src/admin/ui.generated.ts +60 -0
  344. package/src/apps/activities.test.ts +1020 -0
  345. package/src/apps/activities.ts +3934 -0
  346. package/src/apps/addresses.ts +24 -0
  347. package/src/apps/balances.test.ts +274 -0
  348. package/src/apps/balances.ts +533 -0
  349. package/src/apps/blocks.test.ts +385 -0
  350. package/src/apps/blocks.ts +896 -0
  351. package/src/apps/coingecko.test.ts +218 -0
  352. package/src/apps/coingecko.ts +1383 -0
  353. package/src/apps/exchanges.test.ts +958 -0
  354. package/src/apps/exchanges.ts +4773 -0
  355. package/src/apps/fee-amm.test.ts +321 -0
  356. package/src/apps/fee-amm.ts +1121 -0
  357. package/src/apps/indexer.test.ts +153 -0
  358. package/src/apps/indexer.ts +330 -0
  359. package/src/apps/receipts.test.ts +285 -0
  360. package/src/apps/receipts.ts +1193 -0
  361. package/src/apps/rpc.test.ts +302 -0
  362. package/src/apps/rpc.ts +222 -0
  363. package/src/apps/tokenlist.test.ts +80 -0
  364. package/src/apps/tokenlist.ts +207 -0
  365. package/src/apps/tokens.test.ts +1062 -0
  366. package/src/apps/tokens.ts +2292 -0
  367. package/src/apps/transactions.test.ts +408 -0
  368. package/src/apps/transactions.ts +1363 -0
  369. package/src/apps/transfers.test.ts +371 -0
  370. package/src/apps/transfers.ts +1116 -0
  371. package/src/apps/verified-tokens.test.ts +114 -0
  372. package/src/apps/verified-tokens.ts +295 -0
  373. package/src/apps/webhooks.test.ts +1937 -0
  374. package/src/apps/webhooks.ts +2926 -0
  375. package/src/cloudflare.ts +55 -0
  376. package/src/index.ts +15 -0
  377. package/src/internal/Auth.test.ts +980 -0
  378. package/src/internal/Auth.ts +1012 -0
  379. package/src/internal/Cache.test.ts +240 -0
  380. package/src/internal/Cache.ts +262 -0
  381. package/src/internal/Cursor.test.ts +100 -0
  382. package/src/internal/Cursor.ts +149 -0
  383. package/src/internal/EdgeCache.test.ts +234 -0
  384. package/src/internal/EdgeCache.ts +224 -0
  385. package/src/internal/Errors.ts +14 -0
  386. package/src/internal/Log.test.ts +244 -0
  387. package/src/internal/Log.ts +216 -0
  388. package/src/internal/MetricSink.ts +220 -0
  389. package/src/internal/Mpp.test.ts +64 -0
  390. package/src/internal/Mpp.ts +141 -0
  391. package/src/internal/OpenApi.fonts.ts +38 -0
  392. package/src/internal/OpenApi.logo.ts +18 -0
  393. package/src/internal/OpenApi.ts +488 -0
  394. package/src/internal/Path.test.ts +14 -0
  395. package/src/internal/Path.ts +15 -0
  396. package/src/internal/RateLimit.test.ts +93 -0
  397. package/src/internal/RateLimit.ts +93 -0
  398. package/src/internal/Response.ts +131 -0
  399. package/src/internal/Schema.test.ts +34 -0
  400. package/src/internal/Schema.ts +523 -0
  401. package/src/internal/Store.test.ts +545 -0
  402. package/src/internal/Store.ts +526 -0
  403. package/src/internal/Tidx.local.test.ts +33 -0
  404. package/src/internal/Tidx.test.ts +294 -0
  405. package/src/internal/Tidx.ts +238 -0
  406. package/src/internal/Timing.test.ts +22 -0
  407. package/src/internal/Timing.ts +62 -0
  408. package/src/internal/Ttl.test.ts +18 -0
  409. package/src/internal/Ttl.ts +59 -0
  410. package/src/internal/Value.ts +114 -0
  411. package/src/internal/VerifiedTokens.test.ts +333 -0
  412. package/src/internal/VerifiedTokens.ts +645 -0
  413. package/src/internal/Viem.test.ts +115 -0
  414. package/src/internal/Viem.ts +165 -0
  415. package/src/internal/WebhookDestination.test.ts +648 -0
  416. package/src/internal/WebhookDestination.ts +331 -0
  417. package/src/internal/Webhooks.test.ts +668 -0
  418. package/src/internal/Webhooks.ts +940 -0
  419. package/src/internal/webhookDestinations/betterStack.ts +91 -0
  420. package/src/internal/webhookDestinations/slack.ts +496 -0
  421. package/src/internal/webhookDestinations/url.ts +128 -0
  422. package/src/openrpc.json +5302 -0
@@ -0,0 +1,2246 @@
1
+ import { type Context } from 'hono';
2
+ import * as z from 'zod/mini';
3
+ import type * as App from '../App.js';
4
+ import * as Response from '../internal/Response.js';
5
+ import * as Schema from '../internal/Schema.js';
6
+ import * as VerifiedTokens from '../internal/VerifiedTokens.js';
7
+ /** Zod schemas owned by the token handlers. */
8
+ export declare namespace schema {
9
+ /** Schemas for the getToken operation. */
10
+ namespace getToken {
11
+ /** Path parameters for token metadata requests. */
12
+ const Params: z.ZodMiniObject<{
13
+ token: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
14
+ }, z.core.$strip>;
15
+ /** Optional expensive fields that callers opt into via `include`. */
16
+ const Include: z.ZodMiniEnum<{
17
+ admin: "admin";
18
+ createdAt: "createdAt";
19
+ holderCount: "holderCount";
20
+ quoteToken: "quoteToken";
21
+ transferStats: "transferStats";
22
+ }>;
23
+ /**
24
+ * Parses a comma-separated `include` query value into a list of optional
25
+ * fields. Expensive computations (the `createdAt`/`admin`/`quoteToken`
26
+ * indexer lookups, holder counts, and transfer statistics) are only run
27
+ * when explicitly requested, keeping the base response fast.
28
+ */
29
+ const includeQuery: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
30
+ admin: "admin";
31
+ createdAt: "createdAt";
32
+ holderCount: "holderCount";
33
+ quoteToken: "quoteToken";
34
+ transferStats: "transferStats";
35
+ }>>>;
36
+ /** Query parameters for token metadata requests. */
37
+ const Query: z.ZodMiniObject<{
38
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
39
+ mainnet: "mainnet";
40
+ testnet: "testnet";
41
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
42
+ include: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
43
+ admin: "admin";
44
+ createdAt: "createdAt";
45
+ holderCount: "holderCount";
46
+ quoteToken: "quoteToken";
47
+ transferStats: "transferStats";
48
+ }>>>;
49
+ }, z.core.$strip>;
50
+ /** TIP-20 token metadata returned by token endpoints. */
51
+ const Response: z.ZodMiniObject<{
52
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
53
+ admin: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
54
+ currency: z.ZodMiniString<string>;
55
+ createdAt: z.ZodMiniOptional<z.ZodMiniISODateTime>;
56
+ decimals: z.ZodMiniNumber<number>;
57
+ holderCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
58
+ id: z.ZodMiniString<string>;
59
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
60
+ name: z.ZodMiniString<string>;
61
+ quoteToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
62
+ symbol: z.ZodMiniString<string>;
63
+ totalSupply: z.ZodMiniOptional<z.ZodMiniString<string>>;
64
+ transferStats: z.ZodMiniOptional<z.ZodMiniObject<{
65
+ count: z.ZodMiniNumber<number>;
66
+ firstAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
67
+ lastAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
68
+ }, z.core.$strip>>;
69
+ verified: z.ZodMiniBoolean<boolean>;
70
+ }, z.core.$strip>;
71
+ }
72
+ /**
73
+ * Trimmed TIP-20 token reference embedded in list/feed responses via
74
+ * `include=token`. Carries identity and display fields only; supply-level and
75
+ * temporal facts (`totalSupply`, `holderCount`, `createdAt`) belong on the
76
+ * token detail endpoint, not in feed rows.
77
+ */
78
+ const Token: z.ZodMiniObject<{
79
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
80
+ currency: z.ZodMiniString<string>;
81
+ decimals: z.ZodMiniNumber<number>;
82
+ id: z.ZodMiniString<string>;
83
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
84
+ name: z.ZodMiniString<string>;
85
+ symbol: z.ZodMiniString<string>;
86
+ verified: z.ZodMiniBoolean<boolean>;
87
+ }, z.core.$strip>;
88
+ /** Schemas for the getTokenBySymbol operation. */
89
+ namespace getTokenBySymbol {
90
+ /** Hono route pattern for verified token symbols. */
91
+ const routePattern = "[A-Za-z][A-Za-z0-9._]{0,63}";
92
+ /** Path parameters for token symbol metadata requests. */
93
+ const Params: z.ZodMiniObject<{
94
+ symbol: z.ZodMiniString<string>;
95
+ }, z.core.$strip>;
96
+ }
97
+ /** Schemas for the getTokenLogo operation. */
98
+ namespace getTokenLogo {
99
+ /** Path parameters for token logo image requests. */
100
+ const Params: z.ZodMiniObject<{
101
+ token: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
102
+ }, z.core.$strip>;
103
+ /** Query parameters for token logo image requests. */
104
+ const Query: z.ZodMiniObject<{
105
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
106
+ mainnet: "mainnet";
107
+ testnet: "testnet";
108
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
109
+ }, z.core.$strip>;
110
+ }
111
+ /** Schemas for the getTokens operation. */
112
+ namespace getTokens {
113
+ /** Query parameters for token list requests. */
114
+ const Query: z.ZodMiniObject<{
115
+ addresses: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTransform<string[], unknown>, z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>>;
116
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
117
+ mainnet: "mainnet";
118
+ testnet: "testnet";
119
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
120
+ currency: z.ZodMiniOptional<z.ZodMiniString<string>>;
121
+ cursor: z.ZodMiniOptional<z.ZodMiniString<string>>;
122
+ include: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
123
+ admin: "admin";
124
+ createdAt: "createdAt";
125
+ holderCount: "holderCount";
126
+ quoteToken: "quoteToken";
127
+ transferStats: "transferStats";
128
+ }>>>;
129
+ limit: z.ZodMiniDefault<z.ZodMiniNumber<unknown>>;
130
+ order: z.ZodMiniDefault<z.ZodMiniEnum<{
131
+ asc: "asc";
132
+ desc: "desc";
133
+ }>>;
134
+ page: z.ZodMiniOptional<z.ZodMiniNumber<unknown>>;
135
+ verified: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniEnum<{
136
+ false: "false";
137
+ true: "true";
138
+ }>, z.ZodMiniTransform<boolean, "false" | "true">>>;
139
+ }, z.core.$strict>;
140
+ /** Page of TIP-20 tokens. */
141
+ const Response: z.ZodMiniObject<{
142
+ data: z.ZodMiniArray<z.ZodMiniObject<{
143
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
144
+ admin: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
145
+ currency: z.ZodMiniString<string>;
146
+ createdAt: z.ZodMiniOptional<z.ZodMiniISODateTime>;
147
+ decimals: z.ZodMiniNumber<number>;
148
+ holderCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
149
+ id: z.ZodMiniString<string>;
150
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
151
+ name: z.ZodMiniString<string>;
152
+ quoteToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
153
+ symbol: z.ZodMiniString<string>;
154
+ totalSupply: z.ZodMiniOptional<z.ZodMiniString<string>>;
155
+ transferStats: z.ZodMiniOptional<z.ZodMiniObject<{
156
+ count: z.ZodMiniNumber<number>;
157
+ firstAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
158
+ lastAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
159
+ }, z.core.$strip>>;
160
+ verified: z.ZodMiniBoolean<boolean>;
161
+ }, z.core.$strip>>;
162
+ nextCursor: z.ZodMiniNullable<z.ZodMiniString<string>>;
163
+ }, z.core.$strip>;
164
+ }
165
+ /** Schemas for the getTokenHolders operation. */
166
+ namespace getTokenHolders {
167
+ /** Path parameters for token holder requests. */
168
+ const Params: z.ZodMiniObject<{
169
+ token: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
170
+ }, z.core.$strip>;
171
+ /** Optional related resources that callers opt into via `include`. */
172
+ const Include: z.ZodMiniEnum<{
173
+ token: "token";
174
+ totalCount: "totalCount";
175
+ }>;
176
+ /**
177
+ * Parses a comma-separated `include` query value into a list of optional
178
+ * resources to embed. Extra lookups (token metadata, the holder total) only
179
+ * run when explicitly requested, keeping the base holder page fast.
180
+ */
181
+ const includeQuery: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
182
+ token: "token";
183
+ totalCount: "totalCount";
184
+ }>>>;
185
+ /** Query parameters for token holder requests. */
186
+ const Query: z.ZodMiniObject<{
187
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
188
+ mainnet: "mainnet";
189
+ testnet: "testnet";
190
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
191
+ cursor: z.ZodMiniOptional<z.ZodMiniString<string>>;
192
+ include: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
193
+ token: "token";
194
+ totalCount: "totalCount";
195
+ }>>>;
196
+ limit: z.ZodMiniDefault<z.ZodMiniNumber<unknown>>;
197
+ page: z.ZodMiniOptional<z.ZodMiniNumber<unknown>>;
198
+ }, z.core.$strict>;
199
+ /** A single TIP-20 token holder. */
200
+ const Holder: z.ZodMiniObject<{
201
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
202
+ balance: z.ZodMiniString<string>;
203
+ id: z.ZodMiniString<string>;
204
+ }, z.core.$strip>;
205
+ /** Resources embedded on demand via `include`. */
206
+ const Meta: z.ZodMiniObject<{
207
+ totalCountCapped: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
208
+ token: z.ZodMiniOptional<z.ZodMiniObject<{
209
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
210
+ currency: z.ZodMiniString<string>;
211
+ decimals: z.ZodMiniNumber<number>;
212
+ id: z.ZodMiniString<string>;
213
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
214
+ name: z.ZodMiniString<string>;
215
+ symbol: z.ZodMiniString<string>;
216
+ verified: z.ZodMiniBoolean<boolean>;
217
+ }, z.core.$strip>>;
218
+ totalCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
219
+ }, z.core.$strip>;
220
+ /** Page of TIP-20 token holders, ordered by balance descending. */
221
+ const Response: z.ZodMiniObject<{
222
+ data: z.ZodMiniArray<z.ZodMiniObject<{
223
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
224
+ balance: z.ZodMiniString<string>;
225
+ id: z.ZodMiniString<string>;
226
+ }, z.core.$strip>>;
227
+ meta: z.ZodMiniOptional<z.ZodMiniObject<{
228
+ totalCountCapped: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
229
+ token: z.ZodMiniOptional<z.ZodMiniObject<{
230
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
231
+ currency: z.ZodMiniString<string>;
232
+ decimals: z.ZodMiniNumber<number>;
233
+ id: z.ZodMiniString<string>;
234
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
235
+ name: z.ZodMiniString<string>;
236
+ symbol: z.ZodMiniString<string>;
237
+ verified: z.ZodMiniBoolean<boolean>;
238
+ }, z.core.$strip>>;
239
+ totalCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
240
+ }, z.core.$strip>>;
241
+ nextCursor: z.ZodMiniNullable<z.ZodMiniString<string>>;
242
+ }, z.core.$strip>;
243
+ }
244
+ /** Schemas for the getTokenTransactions operation. */
245
+ namespace getTokenTransactions {
246
+ /** Path parameters for token transaction requests. */
247
+ const Params: z.ZodMiniObject<{
248
+ token: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
249
+ }, z.core.$strip>;
250
+ /** Optional related resources that callers opt into via `include`. */
251
+ const Include: z.ZodMiniEnum<{
252
+ feeToken: "feeToken";
253
+ token: "token";
254
+ totalCount: "totalCount";
255
+ }>;
256
+ /**
257
+ * Parses a comma-separated `include` query value into a list of optional
258
+ * resources to embed. Extra lookups only run when explicitly requested,
259
+ * keeping the base transaction page fast.
260
+ */
261
+ const includeQuery: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
262
+ feeToken: "feeToken";
263
+ token: "token";
264
+ totalCount: "totalCount";
265
+ }>>>;
266
+ /** Query parameters for token transaction requests. */
267
+ const Query: z.ZodMiniObject<{
268
+ 'blockNumber.from': z.ZodMiniOptional<z.ZodMiniNumber<unknown>>;
269
+ 'blockNumber.to': z.ZodMiniOptional<z.ZodMiniNumber<unknown>>;
270
+ chainId: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniPipe<z.ZodMiniEnum<{
271
+ mainnet: "mainnet";
272
+ testnet: "testnet";
273
+ }>, z.ZodMiniTransform<4217 | 42431, "mainnet" | "testnet">>, z.ZodMiniNumber<unknown>]>, z.ZodMiniNumber<number>>>;
274
+ cursor: z.ZodMiniOptional<z.ZodMiniString<string>>;
275
+ feePayer: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
276
+ feeToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
277
+ include: z.ZodMiniPipe<z.ZodMiniPipe<z.ZodMiniOptional<z.ZodMiniUnknown>, z.ZodMiniTransform<string[], unknown>>, z.ZodMiniArray<z.ZodMiniEnum<{
278
+ feeToken: "feeToken";
279
+ token: "token";
280
+ totalCount: "totalCount";
281
+ }>>>;
282
+ limit: z.ZodMiniDefault<z.ZodMiniNumber<unknown>>;
283
+ order: z.ZodMiniDefault<z.ZodMiniEnum<{
284
+ asc: "asc";
285
+ desc: "desc";
286
+ }>>;
287
+ page: z.ZodMiniOptional<z.ZodMiniNumber<unknown>>;
288
+ 'timestamp.from': z.ZodMiniOptional<z.ZodMiniISODateTime>;
289
+ 'timestamp.to': z.ZodMiniOptional<z.ZodMiniISODateTime>;
290
+ }, z.core.$strict>;
291
+ /** Resources embedded on demand via `include`. */
292
+ const Meta: z.ZodMiniObject<{
293
+ totalCountCapped: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
294
+ token: z.ZodMiniOptional<z.ZodMiniObject<{
295
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
296
+ currency: z.ZodMiniString<string>;
297
+ decimals: z.ZodMiniNumber<number>;
298
+ id: z.ZodMiniString<string>;
299
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
300
+ name: z.ZodMiniString<string>;
301
+ symbol: z.ZodMiniString<string>;
302
+ verified: z.ZodMiniBoolean<boolean>;
303
+ }, z.core.$strip>>;
304
+ totalCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
305
+ }, z.core.$strip>;
306
+ /**
307
+ * Page of transactions touching the token contract. Each row is the
308
+ * humanized transaction shape returned by `GET /transactions/:transactionHash`;
309
+ * the optional `meta.token` embed is the token being scoped to.
310
+ *
311
+ * The `data` schema is wrapped in `z.lazy` because `transactions.ts`
312
+ * already imports `Tokens.schema` at module init; a direct reference
313
+ * here would close the import cycle and crash during evaluation.
314
+ */
315
+ const Response: z.ZodMiniObject<{
316
+ data: z.ZodMiniArray<z.ZodMiniLazy<z.ZodMiniObject<{
317
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
318
+ blockNumber: z.ZodMiniNullable<z.ZodMiniNumber<number>>;
319
+ calls: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
320
+ data: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
321
+ to: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
322
+ }, z.core.$strip>>>;
323
+ chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
324
+ feeToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
325
+ gas: z.ZodMiniNumber<number>;
326
+ gasPrice: z.ZodMiniOptional<z.ZodMiniString<string>>;
327
+ hash: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
328
+ id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
329
+ input: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
330
+ maxFeePerGas: z.ZodMiniOptional<z.ZodMiniString<string>>;
331
+ maxPriorityFeePerGas: z.ZodMiniOptional<z.ZodMiniString<string>>;
332
+ meta: z.ZodMiniObject<{
333
+ feeToken: z.ZodMiniOptional<z.ZodMiniLazy<z.ZodMiniObject<{
334
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
335
+ admin: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
336
+ currency: z.ZodMiniString<string>;
337
+ createdAt: z.ZodMiniOptional<z.ZodMiniISODateTime>;
338
+ decimals: z.ZodMiniNumber<number>;
339
+ holderCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
340
+ id: z.ZodMiniString<string>;
341
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
342
+ name: z.ZodMiniString<string>;
343
+ quoteToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
344
+ symbol: z.ZodMiniString<string>;
345
+ totalSupply: z.ZodMiniOptional<z.ZodMiniString<string>>;
346
+ transferStats: z.ZodMiniOptional<z.ZodMiniObject<{
347
+ count: z.ZodMiniNumber<number>;
348
+ firstAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
349
+ lastAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
350
+ }, z.core.$strip>>;
351
+ verified: z.ZodMiniBoolean<boolean>;
352
+ }, z.core.$strip>>>;
353
+ receipt: z.ZodMiniOptional<z.ZodMiniLazy<z.ZodMiniObject<{
354
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
355
+ blockNumber: z.ZodMiniNumber<number>;
356
+ contractAddress: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
357
+ cumulativeGasUsed: z.ZodMiniNumber<number>;
358
+ effectiveGasPrice: z.ZodMiniString<string>;
359
+ feeAmount: z.ZodMiniString<string>;
360
+ feePayer: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
361
+ feeToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
362
+ gasUsed: z.ZodMiniNumber<number>;
363
+ id: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
364
+ logs: z.ZodMiniArray<z.ZodMiniObject<{
365
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
366
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
367
+ blockNumber: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
368
+ blockTimestamp: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
369
+ data: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
370
+ logIndex: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
371
+ removed: z.ZodMiniBoolean<boolean>;
372
+ topics: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
373
+ transactionHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
374
+ transactionIndex: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
375
+ }, z.core.$loose>>;
376
+ meta: z.ZodMiniObject<{
377
+ feeToken: z.ZodMiniOptional<z.ZodMiniLazy<z.ZodMiniObject<{
378
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
379
+ admin: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
380
+ currency: z.ZodMiniString<string>;
381
+ createdAt: z.ZodMiniOptional<z.ZodMiniISODateTime>;
382
+ decimals: z.ZodMiniNumber<number>;
383
+ holderCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
384
+ id: z.ZodMiniString<string>;
385
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
386
+ name: z.ZodMiniString<string>;
387
+ quoteToken: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
388
+ symbol: z.ZodMiniString<string>;
389
+ totalSupply: z.ZodMiniOptional<z.ZodMiniString<string>>;
390
+ transferStats: z.ZodMiniOptional<z.ZodMiniObject<{
391
+ count: z.ZodMiniNumber<number>;
392
+ firstAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
393
+ lastAt: z.ZodMiniNullable<z.ZodMiniISODateTime>;
394
+ }, z.core.$strip>>;
395
+ verified: z.ZodMiniBoolean<boolean>;
396
+ }, z.core.$strip>>>;
397
+ rpc: z.ZodMiniObject<{
398
+ blobGasPrice: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
399
+ blobGasUsed: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
400
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
401
+ blockNumber: z.ZodMiniTemplateLiteral<`0x${string}`>;
402
+ blockTimestamp: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
403
+ contractAddress: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
404
+ cumulativeGasUsed: z.ZodMiniTemplateLiteral<`0x${string}`>;
405
+ effectiveGasPrice: z.ZodMiniTemplateLiteral<`0x${string}`>;
406
+ feePayer: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
407
+ feeToken: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
408
+ from: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
409
+ gasUsed: z.ZodMiniTemplateLiteral<`0x${string}`>;
410
+ logs: z.ZodMiniArray<z.ZodMiniObject<{
411
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
412
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
413
+ blockNumber: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
414
+ blockTimestamp: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
415
+ data: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
416
+ logIndex: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
417
+ removed: z.ZodMiniBoolean<boolean>;
418
+ topics: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
419
+ transactionHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
420
+ transactionIndex: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
421
+ }, z.core.$loose>>;
422
+ logsBloom: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
423
+ root: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
424
+ status: z.ZodMiniTemplateLiteral<`0x${string}`>;
425
+ to: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
426
+ transactionHash: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
427
+ transactionIndex: z.ZodMiniTemplateLiteral<`0x${string}`>;
428
+ type: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
429
+ }, z.core.$loose>;
430
+ }, z.core.$strip>;
431
+ recipient: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
432
+ sender: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
433
+ status: z.ZodMiniEnum<{
434
+ reverted: "reverted";
435
+ success: "success";
436
+ }>;
437
+ timestamp: z.ZodMiniNullable<z.ZodMiniISODateTime>;
438
+ transactionHash: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
439
+ transactionIndex: z.ZodMiniNumber<number>;
440
+ type: z.ZodMiniLazy<z.ZodMiniEnum<{
441
+ eip1559: "eip1559";
442
+ eip2930: "eip2930";
443
+ eip4844: "eip4844";
444
+ eip7702: "eip7702";
445
+ legacy: "legacy";
446
+ tempo: "tempo";
447
+ unknown: "unknown";
448
+ }>>;
449
+ }, z.core.$strip>>>;
450
+ rpc: z.ZodMiniObject<{
451
+ aaAuthorizationList: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{}, z.core.$loose>>>;
452
+ accessList: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
453
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
454
+ storageKeys: z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
455
+ }, z.core.$loose>>>;
456
+ authorizationList: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{}, z.core.$loose>>>;
457
+ blobVersionedHashes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
458
+ blockHash: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
459
+ blockNumber: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
460
+ blockTimestamp: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
461
+ calls: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniArray<z.ZodMiniObject<{
462
+ data: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>>;
463
+ input: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>>;
464
+ to: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
465
+ value: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
466
+ }, z.core.$loose>>, z.ZodMiniNull]>>;
467
+ chainId: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
468
+ feePayerSignature: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniObject<{
469
+ type: z.ZodMiniOptional<z.ZodMiniString<string>>;
470
+ }, z.core.$loose>>>;
471
+ feeToken: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
472
+ from: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
473
+ gas: z.ZodMiniTemplateLiteral<`0x${string}`>;
474
+ gasPrice: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
475
+ hash: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
476
+ input: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
477
+ keyAuthorization: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniObject<{}, z.core.$loose>>>;
478
+ maxFeePerBlobGas: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
479
+ maxFeePerGas: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
480
+ maxPriorityFeePerGas: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
481
+ nonce: z.ZodMiniTemplateLiteral<`0x${string}`>;
482
+ nonceKey: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
483
+ r: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
484
+ s: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
485
+ signature: z.ZodMiniOptional<z.ZodMiniObject<{
486
+ type: z.ZodMiniOptional<z.ZodMiniString<string>>;
487
+ }, z.core.$loose>>;
488
+ to: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>>;
489
+ transactionIndex: z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>;
490
+ type: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
491
+ v: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
492
+ validAfter: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
493
+ validBefore: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniTemplateLiteral<`0x${string}`>>>;
494
+ value: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
495
+ yParity: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
496
+ }, z.core.$loose>;
497
+ }, z.core.$strip>;
498
+ nonce: z.ZodMiniNumber<number>;
499
+ nonceKey: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>>;
500
+ recipient: z.ZodMiniNullable<z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>>;
501
+ sender: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
502
+ timestamp: z.ZodMiniNullable<z.ZodMiniISODateTime>;
503
+ transactionIndex: z.ZodMiniNullable<z.ZodMiniNumber<number>>;
504
+ type: z.ZodMiniEnum<{
505
+ eip1559: "eip1559";
506
+ eip2930: "eip2930";
507
+ eip4844: "eip4844";
508
+ eip7702: "eip7702";
509
+ legacy: "legacy";
510
+ tempo: "tempo";
511
+ unknown: "unknown";
512
+ }>;
513
+ validAfter: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODateTime>>;
514
+ validBefore: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniISODateTime>>;
515
+ value: z.ZodMiniString<string>;
516
+ }, z.core.$strip>>>;
517
+ meta: z.ZodMiniOptional<z.ZodMiniObject<{
518
+ totalCountCapped: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
519
+ token: z.ZodMiniOptional<z.ZodMiniObject<{
520
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
521
+ currency: z.ZodMiniString<string>;
522
+ decimals: z.ZodMiniNumber<number>;
523
+ id: z.ZodMiniString<string>;
524
+ logoUri: z.ZodMiniOptional<z.ZodMiniString<string>>;
525
+ name: z.ZodMiniString<string>;
526
+ symbol: z.ZodMiniString<string>;
527
+ verified: z.ZodMiniBoolean<boolean>;
528
+ }, z.core.$strip>>;
529
+ totalCount: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
530
+ }, z.core.$strip>>;
531
+ nextCursor: z.ZodMiniNullable<z.ZodMiniString<string>>;
532
+ }, z.core.$strip>;
533
+ }
534
+ }
535
+ /** Creates token handlers. */
536
+ export declare function tokens(): import("hono/hono-base").HonoBase<App.Environment, {
537
+ "/": {
538
+ $get: {
539
+ output: null;
540
+ outputFormat: "body";
541
+ status: 402;
542
+ input: {
543
+ query?: {
544
+ addresses?: string | string[];
545
+ chainId?: string | string[];
546
+ currency?: string | string[];
547
+ cursor?: string | string[];
548
+ include?: string | string[];
549
+ limit?: string | string[];
550
+ order?: string | string[];
551
+ page?: string | string[];
552
+ verified?: string | string[];
553
+ } | undefined;
554
+ };
555
+ } | {
556
+ output: {
557
+ error: {
558
+ code: "api_key_malformed";
559
+ details?: readonly Response.error.Detail[] | undefined;
560
+ message: string;
561
+ };
562
+ requestId: string;
563
+ };
564
+ outputFormat: "json";
565
+ status: 400;
566
+ input: {
567
+ query?: {
568
+ addresses?: string | string[];
569
+ chainId?: string | string[];
570
+ currency?: string | string[];
571
+ cursor?: string | string[];
572
+ include?: string | string[];
573
+ limit?: string | string[];
574
+ order?: string | string[];
575
+ page?: string | string[];
576
+ verified?: string | string[];
577
+ } | undefined;
578
+ };
579
+ } | {
580
+ output: {
581
+ error: {
582
+ code: "api_key_invalid" | "api_key_missing";
583
+ details?: readonly Response.error.Detail[] | undefined;
584
+ message: string;
585
+ };
586
+ requestId: string;
587
+ };
588
+ outputFormat: "json";
589
+ status: 401;
590
+ input: {
591
+ query?: {
592
+ addresses?: string | string[];
593
+ chainId?: string | string[];
594
+ currency?: string | string[];
595
+ cursor?: string | string[];
596
+ include?: string | string[];
597
+ limit?: string | string[];
598
+ order?: string | string[];
599
+ page?: string | string[];
600
+ verified?: string | string[];
601
+ } | undefined;
602
+ };
603
+ } | {
604
+ output: {
605
+ error: {
606
+ code: "api_key_forbidden";
607
+ details?: readonly Response.error.Detail[] | undefined;
608
+ message: string;
609
+ };
610
+ requestId: string;
611
+ };
612
+ outputFormat: "json";
613
+ status: 403;
614
+ input: {
615
+ query?: {
616
+ addresses?: string | string[];
617
+ chainId?: string | string[];
618
+ currency?: string | string[];
619
+ cursor?: string | string[];
620
+ include?: string | string[];
621
+ limit?: string | string[];
622
+ order?: string | string[];
623
+ page?: string | string[];
624
+ verified?: string | string[];
625
+ } | undefined;
626
+ };
627
+ } | {
628
+ output: {
629
+ error: {
630
+ code: "payment_required" | "rate_limit_exceeded";
631
+ details?: readonly Response.error.Detail[] | undefined;
632
+ message: string;
633
+ };
634
+ requestId: string;
635
+ };
636
+ outputFormat: "json";
637
+ status: 429;
638
+ input: {
639
+ query?: {
640
+ addresses?: string | string[];
641
+ chainId?: string | string[];
642
+ currency?: string | string[];
643
+ cursor?: string | string[];
644
+ include?: string | string[];
645
+ limit?: string | string[];
646
+ order?: string | string[];
647
+ page?: string | string[];
648
+ verified?: string | string[];
649
+ } | undefined;
650
+ };
651
+ } | {
652
+ output: {
653
+ error: {
654
+ code: "query_invalid";
655
+ details?: readonly Response.error.Detail[] | undefined;
656
+ message: string;
657
+ };
658
+ requestId: string;
659
+ };
660
+ outputFormat: "json";
661
+ status: 400;
662
+ input: {
663
+ query?: {
664
+ addresses?: string | string[];
665
+ chainId?: string | string[];
666
+ currency?: string | string[];
667
+ cursor?: string | string[];
668
+ include?: string | string[];
669
+ limit?: string | string[];
670
+ order?: string | string[];
671
+ page?: string | string[];
672
+ verified?: string | string[];
673
+ } | undefined;
674
+ };
675
+ } | {
676
+ output: {
677
+ data: {
678
+ address: `0x${string}`;
679
+ admin?: `0x${string}` | undefined;
680
+ currency: string;
681
+ createdAt?: string | undefined;
682
+ decimals: number;
683
+ holderCount?: number | undefined;
684
+ id: string;
685
+ logoUri?: string | undefined;
686
+ name: string;
687
+ quoteToken?: `0x${string}` | undefined;
688
+ symbol: string;
689
+ totalSupply?: string | undefined;
690
+ transferStats?: {
691
+ count: number;
692
+ firstAt: string | null;
693
+ lastAt: string | null;
694
+ } | undefined;
695
+ verified: boolean;
696
+ }[];
697
+ nextCursor: string | null;
698
+ };
699
+ outputFormat: "json";
700
+ status: 200;
701
+ input: {
702
+ query?: {
703
+ addresses?: string | string[];
704
+ chainId?: string | string[];
705
+ currency?: string | string[];
706
+ cursor?: string | string[];
707
+ include?: string | string[];
708
+ limit?: string | string[];
709
+ order?: string | string[];
710
+ page?: string | string[];
711
+ verified?: string | string[];
712
+ } | undefined;
713
+ };
714
+ } | {
715
+ output: {
716
+ error: {
717
+ code: "upstream_error";
718
+ details?: readonly Response.error.Detail[] | undefined;
719
+ message: string;
720
+ };
721
+ requestId: string;
722
+ };
723
+ outputFormat: "json";
724
+ status: 502;
725
+ input: {
726
+ query?: {
727
+ addresses?: string | string[];
728
+ chainId?: string | string[];
729
+ currency?: string | string[];
730
+ cursor?: string | string[];
731
+ include?: string | string[];
732
+ limit?: string | string[];
733
+ order?: string | string[];
734
+ page?: string | string[];
735
+ verified?: string | string[];
736
+ } | undefined;
737
+ };
738
+ };
739
+ };
740
+ } & {
741
+ "/:symbol{[A-Za-z][A-Za-z0-9._]{0,63}}": {
742
+ $get: {
743
+ output: null;
744
+ outputFormat: "body";
745
+ status: 402;
746
+ input: {
747
+ param: {
748
+ symbol: string;
749
+ };
750
+ } & {
751
+ query?: {
752
+ chainId?: string | string[];
753
+ include?: string | string[];
754
+ } | undefined;
755
+ };
756
+ } | {
757
+ output: {
758
+ error: {
759
+ code: "api_key_malformed";
760
+ details?: readonly Response.error.Detail[] | undefined;
761
+ message: string;
762
+ };
763
+ requestId: string;
764
+ };
765
+ outputFormat: "json";
766
+ status: 400;
767
+ input: {
768
+ param: {
769
+ symbol: string;
770
+ };
771
+ } & {
772
+ query?: {
773
+ chainId?: string | string[];
774
+ include?: string | string[];
775
+ } | undefined;
776
+ };
777
+ } | {
778
+ output: {
779
+ error: {
780
+ code: "api_key_invalid" | "api_key_missing";
781
+ details?: readonly Response.error.Detail[] | undefined;
782
+ message: string;
783
+ };
784
+ requestId: string;
785
+ };
786
+ outputFormat: "json";
787
+ status: 401;
788
+ input: {
789
+ param: {
790
+ symbol: string;
791
+ };
792
+ } & {
793
+ query?: {
794
+ chainId?: string | string[];
795
+ include?: string | string[];
796
+ } | undefined;
797
+ };
798
+ } | {
799
+ output: {
800
+ error: {
801
+ code: "api_key_forbidden";
802
+ details?: readonly Response.error.Detail[] | undefined;
803
+ message: string;
804
+ };
805
+ requestId: string;
806
+ };
807
+ outputFormat: "json";
808
+ status: 403;
809
+ input: {
810
+ param: {
811
+ symbol: string;
812
+ };
813
+ } & {
814
+ query?: {
815
+ chainId?: string | string[];
816
+ include?: string | string[];
817
+ } | undefined;
818
+ };
819
+ } | {
820
+ output: {
821
+ error: {
822
+ code: "payment_required" | "rate_limit_exceeded";
823
+ details?: readonly Response.error.Detail[] | undefined;
824
+ message: string;
825
+ };
826
+ requestId: string;
827
+ };
828
+ outputFormat: "json";
829
+ status: 429;
830
+ input: {
831
+ param: {
832
+ symbol: string;
833
+ };
834
+ } & {
835
+ query?: {
836
+ chainId?: string | string[];
837
+ include?: string | string[];
838
+ } | undefined;
839
+ };
840
+ } | {
841
+ output: {
842
+ error: {
843
+ code: "query_invalid";
844
+ details?: readonly Response.error.Detail[] | undefined;
845
+ message: string;
846
+ };
847
+ requestId: string;
848
+ };
849
+ outputFormat: "json";
850
+ status: 400;
851
+ input: {
852
+ param: {
853
+ symbol: string;
854
+ };
855
+ } & {
856
+ query?: {
857
+ chainId?: string | string[];
858
+ include?: string | string[];
859
+ } | undefined;
860
+ };
861
+ } | {
862
+ output: {
863
+ error: {
864
+ code: "upstream_error";
865
+ details?: readonly Response.error.Detail[] | undefined;
866
+ message: string;
867
+ };
868
+ requestId: string;
869
+ };
870
+ outputFormat: "json";
871
+ status: 502;
872
+ input: {
873
+ param: {
874
+ symbol: string;
875
+ };
876
+ } & {
877
+ query?: {
878
+ chainId?: string | string[];
879
+ include?: string | string[];
880
+ } | undefined;
881
+ };
882
+ } | {
883
+ output: {
884
+ error: {
885
+ code: "symbol_invalid";
886
+ details?: readonly Response.error.Detail[] | undefined;
887
+ message: string;
888
+ };
889
+ requestId: string;
890
+ };
891
+ outputFormat: "json";
892
+ status: 400;
893
+ input: {
894
+ param: {
895
+ symbol: string;
896
+ };
897
+ } & {
898
+ query?: {
899
+ chainId?: string | string[];
900
+ include?: string | string[];
901
+ } | undefined;
902
+ };
903
+ } | {
904
+ output: {
905
+ address: `0x${string}`;
906
+ admin?: `0x${string}` | undefined;
907
+ currency: string;
908
+ createdAt?: string | undefined;
909
+ decimals: number;
910
+ holderCount?: number | undefined;
911
+ id: string;
912
+ logoUri?: string | undefined;
913
+ name: string;
914
+ quoteToken?: `0x${string}` | undefined;
915
+ symbol: string;
916
+ totalSupply?: string | undefined;
917
+ transferStats?: {
918
+ count: number;
919
+ firstAt: string | null;
920
+ lastAt: string | null;
921
+ } | undefined;
922
+ verified: boolean;
923
+ };
924
+ outputFormat: "json";
925
+ status: 200;
926
+ input: {
927
+ param: {
928
+ symbol: string;
929
+ };
930
+ } & {
931
+ query?: {
932
+ chainId?: string | string[];
933
+ include?: string | string[];
934
+ } | undefined;
935
+ };
936
+ } | {
937
+ output: {
938
+ error: {
939
+ code: "token_not_found";
940
+ details?: readonly Response.error.Detail[] | undefined;
941
+ message: string;
942
+ };
943
+ requestId: string;
944
+ };
945
+ outputFormat: "json";
946
+ status: 404;
947
+ input: {
948
+ param: {
949
+ symbol: string;
950
+ };
951
+ } & {
952
+ query?: {
953
+ chainId?: string | string[];
954
+ include?: string | string[];
955
+ } | undefined;
956
+ };
957
+ };
958
+ };
959
+ } & {
960
+ "/:token": {
961
+ $get: {
962
+ output: null;
963
+ outputFormat: "body";
964
+ status: 402;
965
+ input: {
966
+ param: {
967
+ token: `0x${string}`;
968
+ };
969
+ } & {
970
+ query?: {
971
+ chainId?: string | string[];
972
+ include?: string | string[];
973
+ } | undefined;
974
+ };
975
+ } | {
976
+ output: {
977
+ error: {
978
+ code: "api_key_malformed";
979
+ details?: readonly Response.error.Detail[] | undefined;
980
+ message: string;
981
+ };
982
+ requestId: string;
983
+ };
984
+ outputFormat: "json";
985
+ status: 400;
986
+ input: {
987
+ param: {
988
+ token: `0x${string}`;
989
+ };
990
+ } & {
991
+ query?: {
992
+ chainId?: string | string[];
993
+ include?: string | string[];
994
+ } | undefined;
995
+ };
996
+ } | {
997
+ output: {
998
+ error: {
999
+ code: "api_key_invalid" | "api_key_missing";
1000
+ details?: readonly Response.error.Detail[] | undefined;
1001
+ message: string;
1002
+ };
1003
+ requestId: string;
1004
+ };
1005
+ outputFormat: "json";
1006
+ status: 401;
1007
+ input: {
1008
+ param: {
1009
+ token: `0x${string}`;
1010
+ };
1011
+ } & {
1012
+ query?: {
1013
+ chainId?: string | string[];
1014
+ include?: string | string[];
1015
+ } | undefined;
1016
+ };
1017
+ } | {
1018
+ output: {
1019
+ error: {
1020
+ code: "api_key_forbidden";
1021
+ details?: readonly Response.error.Detail[] | undefined;
1022
+ message: string;
1023
+ };
1024
+ requestId: string;
1025
+ };
1026
+ outputFormat: "json";
1027
+ status: 403;
1028
+ input: {
1029
+ param: {
1030
+ token: `0x${string}`;
1031
+ };
1032
+ } & {
1033
+ query?: {
1034
+ chainId?: string | string[];
1035
+ include?: string | string[];
1036
+ } | undefined;
1037
+ };
1038
+ } | {
1039
+ output: {
1040
+ error: {
1041
+ code: "payment_required" | "rate_limit_exceeded";
1042
+ details?: readonly Response.error.Detail[] | undefined;
1043
+ message: string;
1044
+ };
1045
+ requestId: string;
1046
+ };
1047
+ outputFormat: "json";
1048
+ status: 429;
1049
+ input: {
1050
+ param: {
1051
+ token: `0x${string}`;
1052
+ };
1053
+ } & {
1054
+ query?: {
1055
+ chainId?: string | string[];
1056
+ include?: string | string[];
1057
+ } | undefined;
1058
+ };
1059
+ } | {
1060
+ output: {
1061
+ error: {
1062
+ code: "query_invalid";
1063
+ details?: readonly Response.error.Detail[] | undefined;
1064
+ message: string;
1065
+ };
1066
+ requestId: string;
1067
+ };
1068
+ outputFormat: "json";
1069
+ status: 400;
1070
+ input: {
1071
+ param: {
1072
+ token: `0x${string}`;
1073
+ };
1074
+ } & {
1075
+ query?: {
1076
+ chainId?: string | string[];
1077
+ include?: string | string[];
1078
+ } | undefined;
1079
+ };
1080
+ } | {
1081
+ output: {
1082
+ error: {
1083
+ code: "upstream_error";
1084
+ details?: readonly Response.error.Detail[] | undefined;
1085
+ message: string;
1086
+ };
1087
+ requestId: string;
1088
+ };
1089
+ outputFormat: "json";
1090
+ status: 502;
1091
+ input: {
1092
+ param: {
1093
+ token: `0x${string}`;
1094
+ };
1095
+ } & {
1096
+ query?: {
1097
+ chainId?: string | string[];
1098
+ include?: string | string[];
1099
+ } | undefined;
1100
+ };
1101
+ } | {
1102
+ output: {
1103
+ address: `0x${string}`;
1104
+ admin?: `0x${string}` | undefined;
1105
+ currency: string;
1106
+ createdAt?: string | undefined;
1107
+ decimals: number;
1108
+ holderCount?: number | undefined;
1109
+ id: string;
1110
+ logoUri?: string | undefined;
1111
+ name: string;
1112
+ quoteToken?: `0x${string}` | undefined;
1113
+ symbol: string;
1114
+ totalSupply?: string | undefined;
1115
+ transferStats?: {
1116
+ count: number;
1117
+ firstAt: string | null;
1118
+ lastAt: string | null;
1119
+ } | undefined;
1120
+ verified: boolean;
1121
+ };
1122
+ outputFormat: "json";
1123
+ status: 200;
1124
+ input: {
1125
+ param: {
1126
+ token: `0x${string}`;
1127
+ };
1128
+ } & {
1129
+ query?: {
1130
+ chainId?: string | string[];
1131
+ include?: string | string[];
1132
+ } | undefined;
1133
+ };
1134
+ } | {
1135
+ output: {
1136
+ error: {
1137
+ code: "token_not_found";
1138
+ details?: readonly Response.error.Detail[] | undefined;
1139
+ message: string;
1140
+ };
1141
+ requestId: string;
1142
+ };
1143
+ outputFormat: "json";
1144
+ status: 404;
1145
+ input: {
1146
+ param: {
1147
+ token: `0x${string}`;
1148
+ };
1149
+ } & {
1150
+ query?: {
1151
+ chainId?: string | string[];
1152
+ include?: string | string[];
1153
+ } | undefined;
1154
+ };
1155
+ } | {
1156
+ output: {
1157
+ error: {
1158
+ code: "token_invalid";
1159
+ details?: readonly Response.error.Detail[] | undefined;
1160
+ message: string;
1161
+ };
1162
+ requestId: string;
1163
+ };
1164
+ outputFormat: "json";
1165
+ status: 400;
1166
+ input: {
1167
+ param: {
1168
+ token: `0x${string}`;
1169
+ };
1170
+ } & {
1171
+ query?: {
1172
+ chainId?: string | string[];
1173
+ include?: string | string[];
1174
+ } | undefined;
1175
+ };
1176
+ };
1177
+ };
1178
+ } & {
1179
+ "/:token/logo": {
1180
+ $get: {
1181
+ output: null;
1182
+ outputFormat: "body";
1183
+ status: 402;
1184
+ input: {
1185
+ param: {
1186
+ token: `0x${string}`;
1187
+ };
1188
+ } & {
1189
+ query?: {
1190
+ chainId?: string | string[];
1191
+ } | undefined;
1192
+ };
1193
+ } | {
1194
+ output: ArrayBuffer;
1195
+ outputFormat: "body";
1196
+ status: 200;
1197
+ input: {
1198
+ param: {
1199
+ token: `0x${string}`;
1200
+ };
1201
+ } & {
1202
+ query?: {
1203
+ chainId?: string | string[];
1204
+ } | undefined;
1205
+ };
1206
+ } | {
1207
+ output: {
1208
+ error: {
1209
+ code: "api_key_malformed";
1210
+ details?: readonly Response.error.Detail[] | undefined;
1211
+ message: string;
1212
+ };
1213
+ requestId: string;
1214
+ };
1215
+ outputFormat: "json";
1216
+ status: 400;
1217
+ input: {
1218
+ param: {
1219
+ token: `0x${string}`;
1220
+ };
1221
+ } & {
1222
+ query?: {
1223
+ chainId?: string | string[];
1224
+ } | undefined;
1225
+ };
1226
+ } | {
1227
+ output: {
1228
+ error: {
1229
+ code: "api_key_invalid" | "api_key_missing";
1230
+ details?: readonly Response.error.Detail[] | undefined;
1231
+ message: string;
1232
+ };
1233
+ requestId: string;
1234
+ };
1235
+ outputFormat: "json";
1236
+ status: 401;
1237
+ input: {
1238
+ param: {
1239
+ token: `0x${string}`;
1240
+ };
1241
+ } & {
1242
+ query?: {
1243
+ chainId?: string | string[];
1244
+ } | undefined;
1245
+ };
1246
+ } | {
1247
+ output: {
1248
+ error: {
1249
+ code: "api_key_forbidden";
1250
+ details?: readonly Response.error.Detail[] | undefined;
1251
+ message: string;
1252
+ };
1253
+ requestId: string;
1254
+ };
1255
+ outputFormat: "json";
1256
+ status: 403;
1257
+ input: {
1258
+ param: {
1259
+ token: `0x${string}`;
1260
+ };
1261
+ } & {
1262
+ query?: {
1263
+ chainId?: string | string[];
1264
+ } | undefined;
1265
+ };
1266
+ } | {
1267
+ output: {
1268
+ error: {
1269
+ code: "payment_required" | "rate_limit_exceeded";
1270
+ details?: readonly Response.error.Detail[] | undefined;
1271
+ message: string;
1272
+ };
1273
+ requestId: string;
1274
+ };
1275
+ outputFormat: "json";
1276
+ status: 429;
1277
+ input: {
1278
+ param: {
1279
+ token: `0x${string}`;
1280
+ };
1281
+ } & {
1282
+ query?: {
1283
+ chainId?: string | string[];
1284
+ } | undefined;
1285
+ };
1286
+ } | {
1287
+ output: {
1288
+ error: {
1289
+ code: "query_invalid";
1290
+ details?: readonly Response.error.Detail[] | undefined;
1291
+ message: string;
1292
+ };
1293
+ requestId: string;
1294
+ };
1295
+ outputFormat: "json";
1296
+ status: 400;
1297
+ input: {
1298
+ param: {
1299
+ token: `0x${string}`;
1300
+ };
1301
+ } & {
1302
+ query?: {
1303
+ chainId?: string | string[];
1304
+ } | undefined;
1305
+ };
1306
+ } | {
1307
+ output: {
1308
+ error: {
1309
+ code: "upstream_error";
1310
+ details?: readonly Response.error.Detail[] | undefined;
1311
+ message: string;
1312
+ };
1313
+ requestId: string;
1314
+ };
1315
+ outputFormat: "json";
1316
+ status: 502;
1317
+ input: {
1318
+ param: {
1319
+ token: `0x${string}`;
1320
+ };
1321
+ } & {
1322
+ query?: {
1323
+ chainId?: string | string[];
1324
+ } | undefined;
1325
+ };
1326
+ } | {
1327
+ output: {
1328
+ error: {
1329
+ code: "token_invalid";
1330
+ details?: readonly Response.error.Detail[] | undefined;
1331
+ message: string;
1332
+ };
1333
+ requestId: string;
1334
+ };
1335
+ outputFormat: "json";
1336
+ status: 400;
1337
+ input: {
1338
+ param: {
1339
+ token: `0x${string}`;
1340
+ };
1341
+ } & {
1342
+ query?: {
1343
+ chainId?: string | string[];
1344
+ } | undefined;
1345
+ };
1346
+ } | {
1347
+ output: {
1348
+ error: {
1349
+ code: "token_logo_not_found";
1350
+ details?: readonly Response.error.Detail[] | undefined;
1351
+ message: string;
1352
+ };
1353
+ requestId: string;
1354
+ };
1355
+ outputFormat: "json";
1356
+ status: 404;
1357
+ input: {
1358
+ param: {
1359
+ token: `0x${string}`;
1360
+ };
1361
+ } & {
1362
+ query?: {
1363
+ chainId?: string | string[];
1364
+ } | undefined;
1365
+ };
1366
+ };
1367
+ };
1368
+ } & {
1369
+ "/:token/holders": {
1370
+ $get: {
1371
+ output: null;
1372
+ outputFormat: "body";
1373
+ status: 402;
1374
+ input: {
1375
+ param: {
1376
+ token: `0x${string}`;
1377
+ };
1378
+ } & {
1379
+ query?: {
1380
+ chainId?: string | string[];
1381
+ cursor?: string | string[];
1382
+ include?: string | string[];
1383
+ limit?: string | string[];
1384
+ page?: string | string[];
1385
+ } | undefined;
1386
+ };
1387
+ } | {
1388
+ output: {
1389
+ error: {
1390
+ code: "api_key_malformed";
1391
+ details?: readonly Response.error.Detail[] | undefined;
1392
+ message: string;
1393
+ };
1394
+ requestId: string;
1395
+ };
1396
+ outputFormat: "json";
1397
+ status: 400;
1398
+ input: {
1399
+ param: {
1400
+ token: `0x${string}`;
1401
+ };
1402
+ } & {
1403
+ query?: {
1404
+ chainId?: string | string[];
1405
+ cursor?: string | string[];
1406
+ include?: string | string[];
1407
+ limit?: string | string[];
1408
+ page?: string | string[];
1409
+ } | undefined;
1410
+ };
1411
+ } | {
1412
+ output: {
1413
+ error: {
1414
+ code: "api_key_invalid" | "api_key_missing";
1415
+ details?: readonly Response.error.Detail[] | undefined;
1416
+ message: string;
1417
+ };
1418
+ requestId: string;
1419
+ };
1420
+ outputFormat: "json";
1421
+ status: 401;
1422
+ input: {
1423
+ param: {
1424
+ token: `0x${string}`;
1425
+ };
1426
+ } & {
1427
+ query?: {
1428
+ chainId?: string | string[];
1429
+ cursor?: string | string[];
1430
+ include?: string | string[];
1431
+ limit?: string | string[];
1432
+ page?: string | string[];
1433
+ } | undefined;
1434
+ };
1435
+ } | {
1436
+ output: {
1437
+ error: {
1438
+ code: "api_key_forbidden";
1439
+ details?: readonly Response.error.Detail[] | undefined;
1440
+ message: string;
1441
+ };
1442
+ requestId: string;
1443
+ };
1444
+ outputFormat: "json";
1445
+ status: 403;
1446
+ input: {
1447
+ param: {
1448
+ token: `0x${string}`;
1449
+ };
1450
+ } & {
1451
+ query?: {
1452
+ chainId?: string | string[];
1453
+ cursor?: string | string[];
1454
+ include?: string | string[];
1455
+ limit?: string | string[];
1456
+ page?: string | string[];
1457
+ } | undefined;
1458
+ };
1459
+ } | {
1460
+ output: {
1461
+ error: {
1462
+ code: "payment_required" | "rate_limit_exceeded";
1463
+ details?: readonly Response.error.Detail[] | undefined;
1464
+ message: string;
1465
+ };
1466
+ requestId: string;
1467
+ };
1468
+ outputFormat: "json";
1469
+ status: 429;
1470
+ input: {
1471
+ param: {
1472
+ token: `0x${string}`;
1473
+ };
1474
+ } & {
1475
+ query?: {
1476
+ chainId?: string | string[];
1477
+ cursor?: string | string[];
1478
+ include?: string | string[];
1479
+ limit?: string | string[];
1480
+ page?: string | string[];
1481
+ } | undefined;
1482
+ };
1483
+ } | {
1484
+ output: {
1485
+ error: {
1486
+ code: "query_invalid";
1487
+ details?: readonly Response.error.Detail[] | undefined;
1488
+ message: string;
1489
+ };
1490
+ requestId: string;
1491
+ };
1492
+ outputFormat: "json";
1493
+ status: 400;
1494
+ input: {
1495
+ param: {
1496
+ token: `0x${string}`;
1497
+ };
1498
+ } & {
1499
+ query?: {
1500
+ chainId?: string | string[];
1501
+ cursor?: string | string[];
1502
+ include?: string | string[];
1503
+ limit?: string | string[];
1504
+ page?: string | string[];
1505
+ } | undefined;
1506
+ };
1507
+ } | {
1508
+ output: {
1509
+ error: {
1510
+ code: "upstream_error";
1511
+ details?: readonly Response.error.Detail[] | undefined;
1512
+ message: string;
1513
+ };
1514
+ requestId: string;
1515
+ };
1516
+ outputFormat: "json";
1517
+ status: 502;
1518
+ input: {
1519
+ param: {
1520
+ token: `0x${string}`;
1521
+ };
1522
+ } & {
1523
+ query?: {
1524
+ chainId?: string | string[];
1525
+ cursor?: string | string[];
1526
+ include?: string | string[];
1527
+ limit?: string | string[];
1528
+ page?: string | string[];
1529
+ } | undefined;
1530
+ };
1531
+ } | {
1532
+ output: {
1533
+ error: {
1534
+ code: "token_invalid";
1535
+ details?: readonly Response.error.Detail[] | undefined;
1536
+ message: string;
1537
+ };
1538
+ requestId: string;
1539
+ };
1540
+ outputFormat: "json";
1541
+ status: 400;
1542
+ input: {
1543
+ param: {
1544
+ token: `0x${string}`;
1545
+ };
1546
+ } & {
1547
+ query?: {
1548
+ chainId?: string | string[];
1549
+ cursor?: string | string[];
1550
+ include?: string | string[];
1551
+ limit?: string | string[];
1552
+ page?: string | string[];
1553
+ } | undefined;
1554
+ };
1555
+ } | {
1556
+ output: {
1557
+ data: {
1558
+ address: `0x${string}`;
1559
+ balance: string;
1560
+ id: string;
1561
+ }[];
1562
+ meta?: {
1563
+ totalCountCapped?: boolean | undefined;
1564
+ token?: {
1565
+ address: `0x${string}`;
1566
+ currency: string;
1567
+ decimals: number;
1568
+ id: string;
1569
+ logoUri?: string | undefined;
1570
+ name: string;
1571
+ symbol: string;
1572
+ verified: boolean;
1573
+ } | undefined;
1574
+ totalCount?: number | undefined;
1575
+ } | undefined;
1576
+ nextCursor: string | null;
1577
+ };
1578
+ outputFormat: "json";
1579
+ status: 200;
1580
+ input: {
1581
+ param: {
1582
+ token: `0x${string}`;
1583
+ };
1584
+ } & {
1585
+ query?: {
1586
+ chainId?: string | string[];
1587
+ cursor?: string | string[];
1588
+ include?: string | string[];
1589
+ limit?: string | string[];
1590
+ page?: string | string[];
1591
+ } | undefined;
1592
+ };
1593
+ };
1594
+ };
1595
+ } & {
1596
+ "/:token/transactions": {
1597
+ $get: {
1598
+ output: null;
1599
+ outputFormat: "body";
1600
+ status: 402;
1601
+ input: {
1602
+ param: {
1603
+ token: `0x${string}`;
1604
+ };
1605
+ } & {
1606
+ query?: {
1607
+ 'blockNumber.from'?: string | string[];
1608
+ 'blockNumber.to'?: string | string[];
1609
+ chainId?: string | string[];
1610
+ cursor?: string | string[];
1611
+ feePayer?: string | string[];
1612
+ feeToken?: string | string[];
1613
+ include?: string | string[];
1614
+ limit?: string | string[];
1615
+ order?: string | string[];
1616
+ page?: string | string[];
1617
+ 'timestamp.from'?: string | string[];
1618
+ 'timestamp.to'?: string | string[];
1619
+ } | undefined;
1620
+ };
1621
+ } | {
1622
+ output: {
1623
+ error: {
1624
+ code: "api_key_malformed";
1625
+ details?: readonly Response.error.Detail[] | undefined;
1626
+ message: string;
1627
+ };
1628
+ requestId: string;
1629
+ };
1630
+ outputFormat: "json";
1631
+ status: 400;
1632
+ input: {
1633
+ param: {
1634
+ token: `0x${string}`;
1635
+ };
1636
+ } & {
1637
+ query?: {
1638
+ 'blockNumber.from'?: string | string[];
1639
+ 'blockNumber.to'?: string | string[];
1640
+ chainId?: string | string[];
1641
+ cursor?: string | string[];
1642
+ feePayer?: string | string[];
1643
+ feeToken?: string | string[];
1644
+ include?: string | string[];
1645
+ limit?: string | string[];
1646
+ order?: string | string[];
1647
+ page?: string | string[];
1648
+ 'timestamp.from'?: string | string[];
1649
+ 'timestamp.to'?: string | string[];
1650
+ } | undefined;
1651
+ };
1652
+ } | {
1653
+ output: {
1654
+ error: {
1655
+ code: "api_key_invalid" | "api_key_missing";
1656
+ details?: readonly Response.error.Detail[] | undefined;
1657
+ message: string;
1658
+ };
1659
+ requestId: string;
1660
+ };
1661
+ outputFormat: "json";
1662
+ status: 401;
1663
+ input: {
1664
+ param: {
1665
+ token: `0x${string}`;
1666
+ };
1667
+ } & {
1668
+ query?: {
1669
+ 'blockNumber.from'?: string | string[];
1670
+ 'blockNumber.to'?: string | string[];
1671
+ chainId?: string | string[];
1672
+ cursor?: string | string[];
1673
+ feePayer?: string | string[];
1674
+ feeToken?: string | string[];
1675
+ include?: string | string[];
1676
+ limit?: string | string[];
1677
+ order?: string | string[];
1678
+ page?: string | string[];
1679
+ 'timestamp.from'?: string | string[];
1680
+ 'timestamp.to'?: string | string[];
1681
+ } | undefined;
1682
+ };
1683
+ } | {
1684
+ output: {
1685
+ error: {
1686
+ code: "api_key_forbidden";
1687
+ details?: readonly Response.error.Detail[] | undefined;
1688
+ message: string;
1689
+ };
1690
+ requestId: string;
1691
+ };
1692
+ outputFormat: "json";
1693
+ status: 403;
1694
+ input: {
1695
+ param: {
1696
+ token: `0x${string}`;
1697
+ };
1698
+ } & {
1699
+ query?: {
1700
+ 'blockNumber.from'?: string | string[];
1701
+ 'blockNumber.to'?: string | string[];
1702
+ chainId?: string | string[];
1703
+ cursor?: string | string[];
1704
+ feePayer?: string | string[];
1705
+ feeToken?: string | string[];
1706
+ include?: string | string[];
1707
+ limit?: string | string[];
1708
+ order?: string | string[];
1709
+ page?: string | string[];
1710
+ 'timestamp.from'?: string | string[];
1711
+ 'timestamp.to'?: string | string[];
1712
+ } | undefined;
1713
+ };
1714
+ } | {
1715
+ output: {
1716
+ error: {
1717
+ code: "payment_required" | "rate_limit_exceeded";
1718
+ details?: readonly Response.error.Detail[] | undefined;
1719
+ message: string;
1720
+ };
1721
+ requestId: string;
1722
+ };
1723
+ outputFormat: "json";
1724
+ status: 429;
1725
+ input: {
1726
+ param: {
1727
+ token: `0x${string}`;
1728
+ };
1729
+ } & {
1730
+ query?: {
1731
+ 'blockNumber.from'?: string | string[];
1732
+ 'blockNumber.to'?: string | string[];
1733
+ chainId?: string | string[];
1734
+ cursor?: string | string[];
1735
+ feePayer?: string | string[];
1736
+ feeToken?: string | string[];
1737
+ include?: string | string[];
1738
+ limit?: string | string[];
1739
+ order?: string | string[];
1740
+ page?: string | string[];
1741
+ 'timestamp.from'?: string | string[];
1742
+ 'timestamp.to'?: string | string[];
1743
+ } | undefined;
1744
+ };
1745
+ } | {
1746
+ output: {
1747
+ error: {
1748
+ code: "query_invalid";
1749
+ details?: readonly Response.error.Detail[] | undefined;
1750
+ message: string;
1751
+ };
1752
+ requestId: string;
1753
+ };
1754
+ outputFormat: "json";
1755
+ status: 400;
1756
+ input: {
1757
+ param: {
1758
+ token: `0x${string}`;
1759
+ };
1760
+ } & {
1761
+ query?: {
1762
+ 'blockNumber.from'?: string | string[];
1763
+ 'blockNumber.to'?: string | string[];
1764
+ chainId?: string | string[];
1765
+ cursor?: string | string[];
1766
+ feePayer?: string | string[];
1767
+ feeToken?: string | string[];
1768
+ include?: string | string[];
1769
+ limit?: string | string[];
1770
+ order?: string | string[];
1771
+ page?: string | string[];
1772
+ 'timestamp.from'?: string | string[];
1773
+ 'timestamp.to'?: string | string[];
1774
+ } | undefined;
1775
+ };
1776
+ } | {
1777
+ output: {
1778
+ error: {
1779
+ code: "upstream_error";
1780
+ details?: readonly Response.error.Detail[] | undefined;
1781
+ message: string;
1782
+ };
1783
+ requestId: string;
1784
+ };
1785
+ outputFormat: "json";
1786
+ status: 502;
1787
+ input: {
1788
+ param: {
1789
+ token: `0x${string}`;
1790
+ };
1791
+ } & {
1792
+ query?: {
1793
+ 'blockNumber.from'?: string | string[];
1794
+ 'blockNumber.to'?: string | string[];
1795
+ chainId?: string | string[];
1796
+ cursor?: string | string[];
1797
+ feePayer?: string | string[];
1798
+ feeToken?: string | string[];
1799
+ include?: string | string[];
1800
+ limit?: string | string[];
1801
+ order?: string | string[];
1802
+ page?: string | string[];
1803
+ 'timestamp.from'?: string | string[];
1804
+ 'timestamp.to'?: string | string[];
1805
+ } | undefined;
1806
+ };
1807
+ } | {
1808
+ output: {
1809
+ error: {
1810
+ code: "token_invalid";
1811
+ details?: readonly Response.error.Detail[] | undefined;
1812
+ message: string;
1813
+ };
1814
+ requestId: string;
1815
+ };
1816
+ outputFormat: "json";
1817
+ status: 400;
1818
+ input: {
1819
+ param: {
1820
+ token: `0x${string}`;
1821
+ };
1822
+ } & {
1823
+ query?: {
1824
+ 'blockNumber.from'?: string | string[];
1825
+ 'blockNumber.to'?: string | string[];
1826
+ chainId?: string | string[];
1827
+ cursor?: string | string[];
1828
+ feePayer?: string | string[];
1829
+ feeToken?: string | string[];
1830
+ include?: string | string[];
1831
+ limit?: string | string[];
1832
+ order?: string | string[];
1833
+ page?: string | string[];
1834
+ 'timestamp.from'?: string | string[];
1835
+ 'timestamp.to'?: string | string[];
1836
+ } | undefined;
1837
+ };
1838
+ } | {
1839
+ output: {
1840
+ data: {
1841
+ blockHash: `0x${string}` | null;
1842
+ blockNumber: number | null;
1843
+ calls?: {
1844
+ data?: `0x${string}` | undefined;
1845
+ to: `0x${string}` | null;
1846
+ }[] | undefined;
1847
+ chainId?: number | undefined;
1848
+ feeToken?: `0x${string}` | undefined;
1849
+ gas: number;
1850
+ gasPrice?: string | undefined;
1851
+ hash: `0x${string}`;
1852
+ id: `0x${string}`;
1853
+ input?: `0x${string}` | undefined;
1854
+ maxFeePerGas?: string | undefined;
1855
+ maxPriorityFeePerGas?: string | undefined;
1856
+ meta: {
1857
+ feeToken?: {
1858
+ address: `0x${string}`;
1859
+ admin?: `0x${string}` | undefined;
1860
+ currency: string;
1861
+ createdAt?: string | undefined;
1862
+ decimals: number;
1863
+ holderCount?: number | undefined;
1864
+ id: string;
1865
+ logoUri?: string | undefined;
1866
+ name: string;
1867
+ quoteToken?: `0x${string}` | undefined;
1868
+ symbol: string;
1869
+ totalSupply?: string | undefined;
1870
+ transferStats?: {
1871
+ count: number;
1872
+ firstAt: string | null;
1873
+ lastAt: string | null;
1874
+ } | undefined;
1875
+ verified: boolean;
1876
+ } | undefined;
1877
+ receipt?: {
1878
+ blockHash: `0x${string}` | null;
1879
+ blockNumber: number;
1880
+ contractAddress: `0x${string}` | null;
1881
+ cumulativeGasUsed: number;
1882
+ effectiveGasPrice: string;
1883
+ feeAmount: string;
1884
+ feePayer?: `0x${string}` | undefined;
1885
+ feeToken?: `0x${string}` | undefined;
1886
+ gasUsed: number;
1887
+ id: `0x${string}`;
1888
+ logs: {
1889
+ [x: string]: import("hono/utils/types").JSONValue;
1890
+ address: `0x${string}`;
1891
+ blockHash: `0x${string}` | null;
1892
+ blockNumber: `0x${string}` | null;
1893
+ blockTimestamp?: `0x${string}` | null | undefined;
1894
+ data: `0x${string}`;
1895
+ logIndex: `0x${string}` | null;
1896
+ removed: boolean;
1897
+ topics: `0x${string}`[];
1898
+ transactionHash: `0x${string}` | null;
1899
+ transactionIndex: `0x${string}` | null;
1900
+ }[];
1901
+ meta: {
1902
+ feeToken?: {
1903
+ address: `0x${string}`;
1904
+ admin?: `0x${string}` | undefined;
1905
+ currency: string;
1906
+ createdAt?: string | undefined;
1907
+ decimals: number;
1908
+ holderCount?: number | undefined;
1909
+ id: string;
1910
+ logoUri?: string | undefined;
1911
+ name: string;
1912
+ quoteToken?: `0x${string}` | undefined;
1913
+ symbol: string;
1914
+ totalSupply?: string | undefined;
1915
+ transferStats?: {
1916
+ count: number;
1917
+ firstAt: string | null;
1918
+ lastAt: string | null;
1919
+ } | undefined;
1920
+ verified: boolean;
1921
+ } | undefined;
1922
+ rpc: {
1923
+ [x: string]: import("hono/utils/types").JSONValue;
1924
+ blobGasPrice?: `0x${string}` | undefined;
1925
+ blobGasUsed?: `0x${string}` | undefined;
1926
+ blockHash: `0x${string}` | null;
1927
+ blockNumber: `0x${string}`;
1928
+ blockTimestamp?: `0x${string}` | null | undefined;
1929
+ contractAddress?: `0x${string}` | null | undefined;
1930
+ cumulativeGasUsed: `0x${string}`;
1931
+ effectiveGasPrice: `0x${string}`;
1932
+ feePayer?: `0x${string}` | null | undefined;
1933
+ feeToken?: `0x${string}` | null | undefined;
1934
+ from: `0x${string}`;
1935
+ gasUsed: `0x${string}`;
1936
+ logs: {
1937
+ [x: string]: import("hono/utils/types").JSONValue;
1938
+ address: `0x${string}`;
1939
+ blockHash: `0x${string}` | null;
1940
+ blockNumber: `0x${string}` | null;
1941
+ blockTimestamp?: `0x${string}` | null | undefined;
1942
+ data: `0x${string}`;
1943
+ logIndex: `0x${string}` | null;
1944
+ removed: boolean;
1945
+ topics: `0x${string}`[];
1946
+ transactionHash: `0x${string}` | null;
1947
+ transactionIndex: `0x${string}` | null;
1948
+ }[];
1949
+ logsBloom?: `0x${string}` | undefined;
1950
+ root?: `0x${string}` | undefined;
1951
+ status: `0x${string}`;
1952
+ to: `0x${string}` | null;
1953
+ transactionHash: `0x${string}`;
1954
+ transactionIndex: `0x${string}`;
1955
+ type: `0x${string}`;
1956
+ };
1957
+ };
1958
+ recipient: `0x${string}` | null;
1959
+ sender: `0x${string}`;
1960
+ status: "reverted" | "success";
1961
+ timestamp: string | null;
1962
+ transactionHash: `0x${string}`;
1963
+ transactionIndex: number;
1964
+ type: "eip1559" | "eip2930" | "eip4844" | "eip7702" | "legacy" | "tempo" | "unknown";
1965
+ } | undefined;
1966
+ rpc: {
1967
+ [x: string]: import("hono/utils/types").JSONValue;
1968
+ aaAuthorizationList?: {
1969
+ [x: string]: import("hono/utils/types").JSONValue;
1970
+ }[] | undefined;
1971
+ accessList?: {
1972
+ [x: string]: import("hono/utils/types").JSONValue;
1973
+ address: `0x${string}`;
1974
+ storageKeys: `0x${string}`[];
1975
+ }[] | undefined;
1976
+ authorizationList?: {
1977
+ [x: string]: import("hono/utils/types").JSONValue;
1978
+ }[] | undefined;
1979
+ blobVersionedHashes?: `0x${string}`[] | undefined;
1980
+ blockHash: `0x${string}` | null;
1981
+ blockNumber: `0x${string}` | null;
1982
+ blockTimestamp?: `0x${string}` | null | undefined;
1983
+ calls?: {
1984
+ [x: string]: import("hono/utils/types").JSONValue;
1985
+ data?: `0x${string}` | null | undefined;
1986
+ input?: `0x${string}` | null | undefined;
1987
+ to?: `0x${string}` | null | undefined;
1988
+ value?: `0x${string}` | null | undefined;
1989
+ }[] | null | undefined;
1990
+ chainId?: `0x${string}` | undefined;
1991
+ feePayerSignature?: {
1992
+ [x: string]: import("hono/utils/types").JSONValue;
1993
+ type?: string | undefined;
1994
+ } | null | undefined;
1995
+ feeToken?: `0x${string}` | null | undefined;
1996
+ from: `0x${string}`;
1997
+ gas: `0x${string}`;
1998
+ gasPrice?: `0x${string}` | undefined;
1999
+ hash: `0x${string}`;
2000
+ input?: `0x${string}` | undefined;
2001
+ keyAuthorization?: {
2002
+ [x: string]: import("hono/utils/types").JSONValue;
2003
+ } | null | undefined;
2004
+ maxFeePerBlobGas?: `0x${string}` | undefined;
2005
+ maxFeePerGas?: `0x${string}` | undefined;
2006
+ maxPriorityFeePerGas?: `0x${string}` | undefined;
2007
+ nonce: `0x${string}`;
2008
+ nonceKey?: `0x${string}` | undefined;
2009
+ r?: `0x${string}` | undefined;
2010
+ s?: `0x${string}` | undefined;
2011
+ signature?: {
2012
+ [x: string]: import("hono/utils/types").JSONValue;
2013
+ type?: string | undefined;
2014
+ } | undefined;
2015
+ to?: `0x${string}` | null | undefined;
2016
+ transactionIndex: `0x${string}` | null;
2017
+ type: `0x${string}`;
2018
+ v?: `0x${string}` | undefined;
2019
+ validAfter?: `0x${string}` | null | undefined;
2020
+ validBefore?: `0x${string}` | null | undefined;
2021
+ value?: `0x${string}` | undefined;
2022
+ yParity?: `0x${string}` | undefined;
2023
+ };
2024
+ };
2025
+ nonce: number;
2026
+ nonceKey?: `0x${string}` | undefined;
2027
+ recipient: `0x${string}` | null;
2028
+ sender: `0x${string}`;
2029
+ timestamp: string | null;
2030
+ transactionIndex: number | null;
2031
+ type: "eip1559" | "eip2930" | "eip4844" | "eip7702" | "legacy" | "tempo" | "unknown";
2032
+ validAfter?: string | null | undefined;
2033
+ validBefore?: string | null | undefined;
2034
+ value: string;
2035
+ }[];
2036
+ meta?: {
2037
+ totalCountCapped?: boolean | undefined;
2038
+ token?: {
2039
+ address: `0x${string}`;
2040
+ currency: string;
2041
+ decimals: number;
2042
+ id: string;
2043
+ logoUri?: string | undefined;
2044
+ name: string;
2045
+ symbol: string;
2046
+ verified: boolean;
2047
+ } | undefined;
2048
+ totalCount?: number | undefined;
2049
+ } | undefined;
2050
+ nextCursor: string | null;
2051
+ };
2052
+ outputFormat: "json";
2053
+ status: 200;
2054
+ input: {
2055
+ param: {
2056
+ token: `0x${string}`;
2057
+ };
2058
+ } & {
2059
+ query?: {
2060
+ 'blockNumber.from'?: string | string[];
2061
+ 'blockNumber.to'?: string | string[];
2062
+ chainId?: string | string[];
2063
+ cursor?: string | string[];
2064
+ feePayer?: string | string[];
2065
+ feeToken?: string | string[];
2066
+ include?: string | string[];
2067
+ limit?: string | string[];
2068
+ order?: string | string[];
2069
+ page?: string | string[];
2070
+ 'timestamp.from'?: string | string[];
2071
+ 'timestamp.to'?: string | string[];
2072
+ } | undefined;
2073
+ };
2074
+ };
2075
+ };
2076
+ }, "/", "/:token/transactions">;
2077
+ declare function getToken(c: Context<App.Environment>, options: getToken.Options): Promise<(Response & import("hono").TypedResponse<{
2078
+ error: {
2079
+ code: "token_not_found";
2080
+ details?: readonly Response.error.Detail[] | undefined;
2081
+ message: string;
2082
+ };
2083
+ requestId: string;
2084
+ }, 404, "json">) | (Response & import("hono").TypedResponse<{
2085
+ error: {
2086
+ code: "upstream_error";
2087
+ details?: readonly Response.error.Detail[] | undefined;
2088
+ message: string;
2089
+ };
2090
+ requestId: string;
2091
+ }, 502, "json">) | (Response & import("hono").TypedResponse<{
2092
+ address: `0x${string}`;
2093
+ admin?: `0x${string}` | undefined;
2094
+ currency: string;
2095
+ createdAt?: string | undefined;
2096
+ decimals: number;
2097
+ holderCount?: number | undefined;
2098
+ id: string;
2099
+ logoUri?: string | undefined;
2100
+ name: string;
2101
+ quoteToken?: `0x${string}` | undefined;
2102
+ symbol: string;
2103
+ totalSupply?: string | undefined;
2104
+ transferStats?: {
2105
+ count: number;
2106
+ firstAt: string | null;
2107
+ lastAt: string | null;
2108
+ } | undefined;
2109
+ verified: boolean;
2110
+ }, 200, "json">)>;
2111
+ declare namespace getToken {
2112
+ type Options = {
2113
+ address: z.output<typeof Schema.Address>;
2114
+ chainId: z.output<typeof Schema.ChainId>;
2115
+ createdAtByAddress?: Record<string, string> | undefined;
2116
+ /** Pre-fetched `TokenCreated` extras (`admin`/`quoteToken`) for page callers. */
2117
+ createdByAddress?: Record<string, getTokenCreatedByAddress.Created> | undefined;
2118
+ /** Pre-fetched holder counts for page callers. */
2119
+ holderCountByAddress?: Record<string, number> | undefined;
2120
+ include?: readonly z.output<typeof schema.getToken.Include>[] | undefined;
2121
+ snapshot?: VerifiedTokens.Snapshot | undefined;
2122
+ /** Pre-fetched transfer statistics for page callers. */
2123
+ transferStatsByAddress?: Record<string, getTransferStats.Stats> | undefined;
2124
+ };
2125
+ }
2126
+ /**
2127
+ * Resolves the token metadata object. Throws on upstream failure / not found so
2128
+ * callers can map the error (e.g. `getToken` → 404/502). Shared by `getToken`,
2129
+ * the holder page's `include=token`, and the per-row address balance `token`.
2130
+ *
2131
+ * Page-level callers that enrich many tokens at once should pre-fetch
2132
+ * `createdAtByAddress` (one `IN (...)` TIDX query for the whole page) and pass
2133
+ * it in to avoid N separate `getTokenCreatedAtByAddress` round-trips. The same
2134
+ * applies to the verified-token `snapshot` and the other batch enrichments
2135
+ * (`createdByAddress`, `holderCountByAddress`, `transferStatsByAddress`).
2136
+ */
2137
+ export declare function resolveToken(c: Context<App.Environment>, options: resolveToken.Options): Promise<z.output<typeof schema.getToken.Response>>;
2138
+ export declare namespace resolveToken {
2139
+ type Options = getToken.Options;
2140
+ }
2141
+ /**
2142
+ * Resolves a token's on-chain metadata (`name`/`symbol`/`decimals`/`currency`/
2143
+ * `totalSupply`) via a single `token.getMetadata` RPC, memoized under the shared
2144
+ * `token:v1:{chainId}:{address}:metadata` key. Exported so feed enrichers (e.g.
2145
+ * `activities`) reuse the same cache entry as the token resource rather than
2146
+ * fetching metadata through a parallel path.
2147
+ */
2148
+ export declare function getTokenMetadata(c: Context<App.Environment>, options: getTokenMetadata.Options): Promise<{
2149
+ currency: string;
2150
+ decimals: number;
2151
+ logoUri: string | undefined;
2152
+ name: string;
2153
+ symbol: string;
2154
+ totalSupply: string;
2155
+ }>;
2156
+ declare namespace getTokenMetadata {
2157
+ type Options = {
2158
+ address: z.output<typeof Schema.Address>;
2159
+ chainId: z.output<typeof Schema.ChainId>;
2160
+ };
2161
+ }
2162
+ /**
2163
+ * Resolves a token's curated R2 icon URI, memoized per `(chainId, address)`
2164
+ * so page enrichers (balances, holders, transfers `include=token`) don't
2165
+ * re-fetch the asset per row on every request. Misses are memoized as `null`
2166
+ * too — most tokens have no curated icon, and the negative lookup is exactly
2167
+ * what page enrichment would otherwise repeat N times per page.
2168
+ *
2169
+ * The public URI embeds the request origin, so the origin is part of the
2170
+ * cache key; cardinality stays bounded by the number of public hostnames.
2171
+ */
2172
+ export declare function getTokenLogo(c: Context<App.Environment>, options: getTokenLogo.Options): Promise<string | undefined>;
2173
+ declare namespace getTokenLogo {
2174
+ type Options = {
2175
+ address: z.output<typeof Schema.Address>;
2176
+ chainId: z.output<typeof Schema.ChainId>;
2177
+ };
2178
+ }
2179
+ declare function getTransferStats(c: Context<App.Environment>, options: getTransferStats.Options): Promise<{
2180
+ count: number;
2181
+ firstAt: string | null;
2182
+ lastAt: string | null;
2183
+ } | null>;
2184
+ declare namespace getTransferStats {
2185
+ /** Lifetime `Transfer` statistics for one token, as surfaced on the token resource. */
2186
+ type Stats = Exclude<z.output<typeof schema.getToken.Response>['transferStats'], undefined>;
2187
+ type Options = {
2188
+ address: z.output<typeof Schema.Address>;
2189
+ chainId: z.output<typeof Schema.ChainId>;
2190
+ };
2191
+ }
2192
+ /**
2193
+ * Resolves `createdAt` for many tokens in one TIDX round-trip while keeping
2194
+ * cache entries keyed per-address, so two pages sharing N-1 of N tokens
2195
+ * naturally reuse most of the cache. We:
2196
+ *
2197
+ * 1. Look up each requested address in the per-address cache.
2198
+ * 2. Issue a single `IN (…)` query for the misses only.
2199
+ * 3. Write each freshly-resolved address back to the per-address cache.
2200
+ *
2201
+ * Token creation timestamps are immutable, so successful entries are cached
2202
+ * for a day. Addresses the indexer answered but did not resolve (no
2203
+ * `TokenCreated` row — e.g. genesis tokens) are negative-cached briefly so
2204
+ * they do not re-run the `logs` decode CTE on every request; the short TTL
2205
+ * covers tokens that are simply not indexed yet.
2206
+ */
2207
+ export declare function getTokenCreatedAtByAddress(c: Context<App.Environment>, options: getTokenCreatedAtByAddress.Options): Promise<Record<string, string>>;
2208
+ export declare namespace getTokenCreatedAtByAddress {
2209
+ type Options = {
2210
+ addresses: readonly z.output<typeof Schema.Address>[];
2211
+ chainId: z.output<typeof Schema.ChainId>;
2212
+ };
2213
+ }
2214
+ /**
2215
+ * Resolves the `TokenCreated` extras (`admin`/`quoteToken`, plus the event's
2216
+ * `createdAt` timestamp) for many tokens in one TIDX round-trip while keeping
2217
+ * cache entries keyed per-address, mirroring {@link getTokenCreatedAtByAddress}.
2218
+ * The deployed indexer's `tokencreated` event CTE cannot serve the
2219
+ * `quoteToken`/`admin` columns (selecting them returns `db error`), so this
2220
+ * reads the raw `logs` table by topic0 and ABI-decodes the non-indexed event
2221
+ * data instead.
2222
+ *
2223
+ * Token creation payloads are immutable, so successful entries are cached for
2224
+ * a day. Addresses the indexer answered but did not resolve (no `TokenCreated`
2225
+ * log — e.g. genesis tokens) are negative-cached briefly so they do not
2226
+ * re-scan `logs` on every request; the short TTL covers tokens that are simply
2227
+ * not indexed yet.
2228
+ */
2229
+ declare function getTokenCreatedByAddress(c: Context<App.Environment>, options: getTokenCreatedByAddress.Options): Promise<Record<string, getTokenCreatedByAddress.Created>>;
2230
+ declare namespace getTokenCreatedByAddress {
2231
+ /** `TokenCreated` payload fields resolved per token. */
2232
+ type Created = {
2233
+ /** Token admin address from the `TokenCreated` event. */
2234
+ admin: z.output<typeof Schema.Address>;
2235
+ /** Token creation timestamp (ISO 8601). */
2236
+ createdAt: string;
2237
+ /** Quote token address from the `TokenCreated` event. */
2238
+ quoteToken: z.output<typeof Schema.Address>;
2239
+ };
2240
+ type Options = {
2241
+ addresses: readonly z.output<typeof Schema.Address>[];
2242
+ chainId: z.output<typeof Schema.ChainId>;
2243
+ };
2244
+ }
2245
+ export {};
2246
+ //# sourceMappingURL=tokens.d.ts.map