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 @@
1
+ {"version":3,"file":"Timing.js","sourceRoot":"","sources":["../../src/internal/Timing.ts"],"names":[],"mappings":"AAqBA,iEAAiE;AACjE,MAAM,UAAU,UAAU;IAGxB,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAE9B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,IAAI,EAAE,CAAA;QACZ,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAEtE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QACnD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAChF,CAAC,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,CAAuB,EACvB,IAAY,EACZ,EAAgC;IAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAC/B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;YAAS,CAAC;QACT,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,OAA0B;IACxC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /** Returns milliseconds from milliseconds. */
2
+ export declare function milliseconds(value: number): number;
3
+ /** Returns milliseconds from seconds. */
4
+ export declare function seconds(value: number): number;
5
+ /** Returns milliseconds from minutes. */
6
+ export declare function minutes(value: number): number;
7
+ /** Returns milliseconds from hours. */
8
+ export declare function hours(value: number): number;
9
+ /** Returns milliseconds from days. */
10
+ export declare function days(value: number): number;
11
+ /** Returns milliseconds from weeks. */
12
+ export declare function weeks(value: number): number;
13
+ /** Returns milliseconds from milliseconds. */
14
+ export declare function millisecond(value: number): number;
15
+ /** Returns milliseconds from seconds. */
16
+ export declare function second(value: number): number;
17
+ /** Returns milliseconds from minutes. */
18
+ export declare function minute(value: number): number;
19
+ /** Returns milliseconds from hours. */
20
+ export declare function hour(value: number): number;
21
+ /** Returns milliseconds from days. */
22
+ export declare function day(value: number): number;
23
+ /** Returns milliseconds from weeks. */
24
+ export declare function week(value: number): number;
25
+ //# sourceMappingURL=Ttl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ttl.d.ts","sourceRoot":"","sources":["../../src/internal/Ttl.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC;AAED,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,UAEpC;AAED,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,UAEpC;AAED,uCAAuC;AACvC,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,UAElC;AAED,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,UAEjC;AAED,uCAAuC;AACvC,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,UAElC;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,UAExC;AAED,yCAAyC;AACzC,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAEnC;AAED,yCAAyC;AACzC,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAEnC;AAED,uCAAuC;AACvC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,UAEjC;AAED,sCAAsC;AACtC,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,UAEhC;AAED,uCAAuC;AACvC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,UAEjC"}
@@ -0,0 +1,49 @@
1
+ /** Returns milliseconds from milliseconds. */
2
+ export function milliseconds(value) {
3
+ return value;
4
+ }
5
+ /** Returns milliseconds from seconds. */
6
+ export function seconds(value) {
7
+ return value * 1_000;
8
+ }
9
+ /** Returns milliseconds from minutes. */
10
+ export function minutes(value) {
11
+ return seconds(value) * 60;
12
+ }
13
+ /** Returns milliseconds from hours. */
14
+ export function hours(value) {
15
+ return minutes(value) * 60;
16
+ }
17
+ /** Returns milliseconds from days. */
18
+ export function days(value) {
19
+ return hours(value) * 24;
20
+ }
21
+ /** Returns milliseconds from weeks. */
22
+ export function weeks(value) {
23
+ return days(value) * 7;
24
+ }
25
+ /** Returns milliseconds from milliseconds. */
26
+ export function millisecond(value) {
27
+ return milliseconds(value);
28
+ }
29
+ /** Returns milliseconds from seconds. */
30
+ export function second(value) {
31
+ return seconds(value);
32
+ }
33
+ /** Returns milliseconds from minutes. */
34
+ export function minute(value) {
35
+ return minutes(value);
36
+ }
37
+ /** Returns milliseconds from hours. */
38
+ export function hour(value) {
39
+ return hours(value);
40
+ }
41
+ /** Returns milliseconds from days. */
42
+ export function day(value) {
43
+ return days(value);
44
+ }
45
+ /** Returns milliseconds from weeks. */
46
+ export function week(value) {
47
+ return weeks(value);
48
+ }
49
+ //# sourceMappingURL=Ttl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ttl.js","sourceRoot":"","sources":["../../src/internal/Ttl.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK,GAAG,KAAK,CAAA;AACtB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AAC5B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AAC5B,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AAC1B,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;AACpB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { Hex } from 'ox';
2
+ /** Coerce a TIDX numeric column (bigint / number / string) to a JS number. */
3
+ export declare function toNumber(value: unknown): number | undefined;
4
+ /**
5
+ * Coerce a TIDX text column (address / hash / topic / hex data) to a string.
6
+ * TIDX already returns these columns as strings; this narrows the `unknown`
7
+ * row value without an unsafe `String(...)` on a possible object. Returns
8
+ * undefined for null/non-string values.
9
+ */
10
+ export declare function toText(value: unknown): string | undefined;
11
+ /**
12
+ * Coerce a TIDX numeric column (bigint / number / string) to a non-negative
13
+ * decimal integer string, preserving precision for values beyond
14
+ * `Number.MAX_SAFE_INTEGER` (e.g. token balances). Returns undefined when the
15
+ * value cannot be interpreted as a non-negative integer.
16
+ */
17
+ export declare function toIntegerString(value: unknown): string | undefined;
18
+ /**
19
+ * Coerce a TIDX numeric column (bigint / number / decimal string) to a minimal
20
+ * `0x`-prefixed hex quantity (`0x0` for zero), matching the JSON-RPC wire
21
+ * format. Returns undefined when the value is null/undefined or cannot be
22
+ * interpreted as a non-negative integer.
23
+ */
24
+ export declare function toHex(value: unknown): Hex.Hex | undefined;
25
+ /**
26
+ * Parse a `0x`-prefixed hex quantity into a non-negative decimal integer string,
27
+ * preserving precision beyond `Number.MAX_SAFE_INTEGER`. Returns undefined when
28
+ * the value is not a valid hex quantity.
29
+ */
30
+ export declare function fromHex(value: unknown): string | undefined;
31
+ /**
32
+ * Parse a `0x`-prefixed hex quantity into a JS number. Returns undefined when
33
+ * the value is not a valid hex quantity.
34
+ */
35
+ export declare function hexToNumber(value: unknown): number | undefined;
36
+ /**
37
+ * Convert a `0x`-prefixed hex Unix-seconds timestamp into an ISO 8601 datetime
38
+ * string. Returns undefined when the value is not a valid hex quantity.
39
+ */
40
+ export declare function hexSecondsToIso(value: unknown): string | undefined;
41
+ /**
42
+ * Coerce a TIDX timestamp column (Date / epoch seconds / epoch ms / ISO string)
43
+ * to an ISO 8601 datetime string. Returns undefined when the value cannot be
44
+ * interpreted as a timestamp.
45
+ */
46
+ export declare function toIsoDateTime(value: unknown): string | undefined;
47
+ //# sourceMappingURL=Value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../src/internal/Value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAExB,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,sBAKtC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,sBAa7C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,SAAS,CAazD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,sBAkB3C"}
@@ -0,0 +1,122 @@
1
+ import { Hex } from 'ox';
2
+ /** Coerce a TIDX numeric column (bigint / number / string) to a JS number. */
3
+ export function toNumber(value) {
4
+ if (typeof value === 'bigint')
5
+ return Number(value);
6
+ if (typeof value === 'number')
7
+ return value;
8
+ if (typeof value === 'string')
9
+ return Number(value);
10
+ return undefined;
11
+ }
12
+ /**
13
+ * Coerce a TIDX text column (address / hash / topic / hex data) to a string.
14
+ * TIDX already returns these columns as strings; this narrows the `unknown`
15
+ * row value without an unsafe `String(...)` on a possible object. Returns
16
+ * undefined for null/non-string values.
17
+ */
18
+ export function toText(value) {
19
+ return typeof value === 'string' ? value : undefined;
20
+ }
21
+ /**
22
+ * Coerce a TIDX numeric column (bigint / number / string) to a non-negative
23
+ * decimal integer string, preserving precision for values beyond
24
+ * `Number.MAX_SAFE_INTEGER` (e.g. token balances). Returns undefined when the
25
+ * value cannot be interpreted as a non-negative integer.
26
+ */
27
+ export function toIntegerString(value) {
28
+ if (typeof value === 'bigint')
29
+ return value >= 0n ? value.toString() : undefined;
30
+ if (typeof value === 'number') {
31
+ if (!Number.isFinite(value) || value < 0 || !Number.isInteger(value))
32
+ return undefined;
33
+ // Route through BigInt so large integers serialize as plain decimals rather
34
+ // than exponential notation (e.g. `1e+21`).
35
+ return BigInt(value).toString();
36
+ }
37
+ if (typeof value === 'string') {
38
+ const trimmed = value.trim();
39
+ return /^\d+$/.test(trimmed) ? trimmed : undefined;
40
+ }
41
+ return undefined;
42
+ }
43
+ /**
44
+ * Coerce a TIDX numeric column (bigint / number / decimal string) to a minimal
45
+ * `0x`-prefixed hex quantity (`0x0` for zero), matching the JSON-RPC wire
46
+ * format. Returns undefined when the value is null/undefined or cannot be
47
+ * interpreted as a non-negative integer.
48
+ */
49
+ export function toHex(value) {
50
+ let big;
51
+ if (typeof value === 'bigint')
52
+ big = value;
53
+ else if (typeof value === 'number') {
54
+ if (!Number.isFinite(value) || !Number.isInteger(value))
55
+ return undefined;
56
+ big = BigInt(value);
57
+ }
58
+ else if (typeof value === 'string') {
59
+ const trimmed = value.trim();
60
+ if (!/^\d+$/.test(trimmed))
61
+ return undefined;
62
+ big = BigInt(trimmed);
63
+ }
64
+ else
65
+ return undefined;
66
+ if (big < 0n)
67
+ return undefined;
68
+ return Hex.fromNumber(big);
69
+ }
70
+ /**
71
+ * Parse a `0x`-prefixed hex quantity into a non-negative decimal integer string,
72
+ * preserving precision beyond `Number.MAX_SAFE_INTEGER`. Returns undefined when
73
+ * the value is not a valid hex quantity.
74
+ */
75
+ export function fromHex(value) {
76
+ if (typeof value !== 'string' || !/^0x[0-9a-fA-F]+$/.test(value))
77
+ return undefined;
78
+ return BigInt(value).toString();
79
+ }
80
+ /**
81
+ * Parse a `0x`-prefixed hex quantity into a JS number. Returns undefined when
82
+ * the value is not a valid hex quantity.
83
+ */
84
+ export function hexToNumber(value) {
85
+ const decimal = fromHex(value);
86
+ return decimal === undefined ? undefined : Number(decimal);
87
+ }
88
+ /**
89
+ * Convert a `0x`-prefixed hex Unix-seconds timestamp into an ISO 8601 datetime
90
+ * string. Returns undefined when the value is not a valid hex quantity.
91
+ */
92
+ export function hexSecondsToIso(value) {
93
+ const seconds = hexToNumber(value);
94
+ return seconds === undefined ? undefined : new Date(seconds * 1000).toISOString();
95
+ }
96
+ /**
97
+ * Coerce a TIDX timestamp column (Date / epoch seconds / epoch ms / ISO string)
98
+ * to an ISO 8601 datetime string. Returns undefined when the value cannot be
99
+ * interpreted as a timestamp.
100
+ */
101
+ export function toIsoDateTime(value) {
102
+ if (value instanceof Date)
103
+ return value.toISOString();
104
+ // TIDX can surface timestamps as either decoded date strings or numeric
105
+ // epochs depending on the query engine and transport codec.
106
+ if (typeof value === 'number')
107
+ return new Date(value > 1_000_000_000_000 ? value : value * 1000).toISOString();
108
+ if (typeof value !== 'string')
109
+ return undefined;
110
+ // ClickHouse formats `DateTime`/`DateTime64` as `YYYY-MM-DD HH:MM:SS[.sss]`
111
+ // (UTC), which V8's Date parser treats as *local* time. Normalize to a
112
+ // strict ISO 8601 UTC string so both engines hit the same `new Date(...)`
113
+ // path.
114
+ const normalized = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d+)?$/.test(value)
115
+ ? `${value.replace(' ', 'T')}Z`
116
+ : value;
117
+ const date = new Date(normalized);
118
+ if (Number.isNaN(date.getTime()))
119
+ return undefined;
120
+ return date.toISOString();
121
+ }
122
+ //# sourceMappingURL=Value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Value.js","sourceRoot":"","sources":["../../src/internal/Value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import type { Context } from 'hono';
2
+ import * as z from 'zod/mini';
3
+ import type * as App from '../App.js';
4
+ import * as Schema from './Schema.js';
5
+ import * as Store from './Store.js';
6
+ /** Chain id covered by the curated verified-token lists. */
7
+ export type ChainId = z.output<typeof Schema.ChainId>;
8
+ /** Schema for a chain's verified token list (the value stored in KV). */
9
+ export declare const Data: z.ZodMiniArray<z.ZodMiniObject<{
10
+ address: z.ZodMiniPipe<z.ZodMiniTemplateLiteral<`0x${string}`>, z.ZodMiniTransform<`0x${string}`, `0x${string}`>>;
11
+ currency: z.ZodMiniString<string>;
12
+ decimals: z.ZodMiniNumber<number>;
13
+ id: z.ZodMiniString<string>;
14
+ logoUri: z.ZodMiniOptional<z.ZodMiniURL>;
15
+ name: z.ZodMiniString<string>;
16
+ symbol: z.ZodMiniString<string>;
17
+ }, z.core.$strip>>;
18
+ type SnapshotToken = z.output<typeof Data>[number];
19
+ /** A single curated verified TIP-20 token accepted by write/compile APIs. */
20
+ export type Token = Omit<SnapshotToken, 'id'> & {
21
+ id?: string | undefined;
22
+ };
23
+ /** Verified-token input accepted before the stable resource id is derived. */
24
+ export type TokenInput = Token;
25
+ /**
26
+ * A compiled, indexed snapshot of one chain's curated verified-token list.
27
+ * Fetched once per request and threaded into per-row enrichment so lookups are
28
+ * plain in-memory map reads rather than repeated array scans.
29
+ */
30
+ export type Snapshot = {
31
+ /** Tokens indexed by lowercased contract address (membership + lookup). */
32
+ byAddress: ReadonlyMap<string, SnapshotToken>;
33
+ /** Tokens grouped by lowercased display currency, preserving list order. */
34
+ byCurrency: ReadonlyMap<string, readonly SnapshotToken[]>;
35
+ /** Tokens indexed by lowercased ticker symbol. */
36
+ bySymbol: ReadonlyMap<string, SnapshotToken>;
37
+ /** Chain the snapshot belongs to. */
38
+ chainId: number;
39
+ /** Sorted, distinct display currencies present in the list. */
40
+ currencies: readonly string[];
41
+ /** The curated tokens in their canonical order. */
42
+ list: readonly SnapshotToken[];
43
+ /** ISO timestamp of the snapshot's last update. */
44
+ updatedAt: string;
45
+ /** Opaque snapshot version; changes whenever the list changes. */
46
+ version: string;
47
+ };
48
+ /** Compiles a raw token list into an indexed {@link Snapshot}. */
49
+ export declare function compile(options: compile.Options): Snapshot;
50
+ export declare namespace compile {
51
+ /** Options for {@link compile}. */
52
+ type Options = {
53
+ /** Chain the tokens belong to. */
54
+ chainId: number;
55
+ /** Curated tokens in canonical order. */
56
+ tokens: readonly TokenInput[];
57
+ /** ISO timestamp of the snapshot's last update. */
58
+ updatedAt: string;
59
+ /** Opaque snapshot version. */
60
+ version: string;
61
+ };
62
+ }
63
+ declare const Head: z.ZodMiniObject<{
64
+ chainId: z.ZodMiniNumber<number>;
65
+ count: z.ZodMiniNumber<number>;
66
+ schema: z.ZodMiniNumber<number>;
67
+ updatedAt: z.ZodMiniString<string>;
68
+ version: z.ZodMiniString<string>;
69
+ }, z.core.$strip>;
70
+ /** Parsed head pointer for a chain. */
71
+ export type Head = z.output<typeof Head>;
72
+ /**
73
+ * Reads and compiles the snapshot a chain's head points at. Returns `null` when
74
+ * the chain has no head. Throws {@link TornStateError} when `head` references a
75
+ * missing snapshot blob.
76
+ */
77
+ export declare function read(store: Store.State, chainId: ChainId): Promise<Snapshot | null>;
78
+ /**
79
+ * Appends a verified token to a chain's list and publishes a new snapshot.
80
+ * Throws on a duplicate address or (case-insensitive) symbol.
81
+ */
82
+ export declare function create(store: Store.State, input: create.Input): Promise<create.Result>;
83
+ export declare namespace create {
84
+ /** Input for {@link create}. */
85
+ type Input = {
86
+ /** TIP-20 token contract address (normalized to lowercase). */
87
+ address: string;
88
+ /** Chain the token belongs to. */
89
+ chainId: ChainId;
90
+ /** Display currency, e.g. `USD`. */
91
+ currency: string;
92
+ /** Decimal precision. */
93
+ decimals: number;
94
+ /** Curated HTTPS logo URL. Omit when no curated logo is set. */
95
+ logoUri?: string | undefined;
96
+ /** Display name. */
97
+ name: string;
98
+ /** Ticker symbol. */
99
+ symbol: string;
100
+ };
101
+ /** Result of {@link create}. */
102
+ type Result = {
103
+ /** The published snapshot reflecting the new token. */
104
+ snapshot: Snapshot;
105
+ /** The created token. */
106
+ token: Token;
107
+ };
108
+ }
109
+ /**
110
+ * Partially updates a verified token in place (preserving list order) and
111
+ * publishes a new snapshot. Throws {@link NotFoundError} when the address is
112
+ * absent, and the uniqueness errors when an edit collides with another entry.
113
+ */
114
+ export declare function patch(store: Store.State, chainId: ChainId, address: string, input: patch.Input, options?: patch.Options): Promise<create.Result>;
115
+ export declare namespace patch {
116
+ /** Patchable fields for {@link patch} (address and chain are immutable). */
117
+ type Input = {
118
+ /** Display currency, e.g. `USD`. */
119
+ currency?: string | undefined;
120
+ /** Decimal precision. */
121
+ decimals?: number | undefined;
122
+ /** Curated HTTPS logo URL. Omitting keeps the current value (use `replace` to clear). */
123
+ logoUri?: string | undefined;
124
+ /** Display name. */
125
+ name?: string | undefined;
126
+ /** Ticker symbol. */
127
+ symbol?: string | undefined;
128
+ };
129
+ /** Options for {@link patch}. */
130
+ type Options = {
131
+ /** Expected current version for optimistic concurrency (best-effort). */
132
+ ifMatch?: string | undefined;
133
+ };
134
+ }
135
+ /**
136
+ * Removes a verified token from a chain's list and publishes a new snapshot.
137
+ * Throws {@link NotFoundError} when the address is absent.
138
+ */
139
+ export declare function remove(store: Store.State, chainId: ChainId, address: string, options?: patch.Options): Promise<remove.Result>;
140
+ export declare namespace remove {
141
+ /** Result of {@link remove}. */
142
+ type Result = {
143
+ /** The published snapshot reflecting the removal. */
144
+ snapshot: Snapshot;
145
+ };
146
+ }
147
+ /**
148
+ * Replaces a chain's entire verified list and publishes a new snapshot. Used to
149
+ * bulk-load the initial list and to roll back to a previous one.
150
+ */
151
+ export declare function replace(store: Store.State, chainId: ChainId, tokens: readonly TokenInput[], options?: patch.Options): Promise<remove.Result>;
152
+ /**
153
+ * Primes this isolate's in-memory snapshot for a chain. The writer isolate calls
154
+ * this after a successful publish so the next read reflects the write without
155
+ * waiting on store propagation (read-your-write).
156
+ */
157
+ export declare function prime(chainId: ChainId, snapshot: Snapshot): void;
158
+ /**
159
+ * Returns the compiled verified-token {@link Snapshot} for a chain.
160
+ *
161
+ * When the verified-tokens feature is unconfigured, serves an empty snapshot.
162
+ * When configured with a {@link Store.State}, serves a per-isolate snapshot
163
+ * refreshed on a soft TTL: fresh lookups do zero store I/O; soft-stale
164
+ * lookups return the current snapshot immediately and refresh in the background
165
+ * (single-flight, head-only unless the version changed); a cold isolate loads
166
+ * from the store (an empty snapshot when no head exists).
167
+ */
168
+ export declare function snapshot(c: Context<App.Environment>, chainId: ChainId): Promise<Snapshot>;
169
+ /**
170
+ * Well-known display currencies surfaced as an OpenAPI `examples` hint on
171
+ * filters that accept any currency string but want to populate the well-known
172
+ * ones in Swagger/Stoplight/Scalar dropdowns. Static hint only — the
173
+ * authoritative set is `Snapshot.currencies` from the live store.
174
+ */
175
+ export declare const currencies: string[];
176
+ /**
177
+ * Thrown when a chain's `head` points at a snapshot version whose blob is
178
+ * missing from the store. The write path always writes the blob before flipping
179
+ * the head, so this indicates a torn write or external tampering.
180
+ */
181
+ export declare class TornStateError extends Error {
182
+ name: string;
183
+ constructor(options: {
184
+ chainId: number;
185
+ version: string;
186
+ });
187
+ }
188
+ /** Thrown when a write would introduce a duplicate address on a chain. */
189
+ export declare class DuplicateAddressError extends Error {
190
+ name: string;
191
+ constructor(options: {
192
+ address: string;
193
+ chainId: number;
194
+ });
195
+ }
196
+ /**
197
+ * Thrown when a write would introduce a duplicate (case-insensitive) symbol on a
198
+ * chain — which would make `GET /tokens/:symbol` ambiguous.
199
+ */
200
+ export declare class DuplicateSymbolError extends Error {
201
+ name: string;
202
+ constructor(options: {
203
+ chainId: number;
204
+ symbol: string;
205
+ });
206
+ }
207
+ /** Thrown when a patch/delete targets an address not in a chain's verified list. */
208
+ export declare class NotFoundError extends Error {
209
+ name: string;
210
+ constructor(options: {
211
+ address: string;
212
+ chainId: number;
213
+ });
214
+ }
215
+ /**
216
+ * Thrown when an `If-Match` precondition does not equal the current head version
217
+ * (best-effort optimistic concurrency).
218
+ */
219
+ export declare class VersionMismatchError extends Error {
220
+ name: string;
221
+ constructor(options: {
222
+ actual: string;
223
+ chainId: number;
224
+ expected: string;
225
+ });
226
+ }
227
+ export {};
228
+ //# sourceMappingURL=VerifiedTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifiedTokens.d.ts","sourceRoot":"","sources":["../../src/internal/VerifiedTokens.ts"],"names":[],"mappings":"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"}