tapimo 0.7.0 → 0.7.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 (689) hide show
  1. package/dist/ApiKeys.d.ts +24 -7
  2. package/dist/ApiKeys.d.ts.map +1 -1
  3. package/dist/ApiKeys.js +17 -5
  4. package/dist/ApiKeys.js.map +1 -1
  5. package/dist/App.d.ts +12104 -7861
  6. package/dist/App.d.ts.map +1 -1
  7. package/dist/App.js +191 -128
  8. package/dist/App.js.map +1 -1
  9. package/dist/Assets.d.ts +10 -0
  10. package/dist/Assets.d.ts.map +1 -1
  11. package/dist/Assets.js +17 -4
  12. package/dist/Assets.js.map +1 -1
  13. package/dist/Scope.d.ts +19 -8
  14. package/dist/Scope.d.ts.map +1 -1
  15. package/dist/Scope.js +25 -9
  16. package/dist/Scope.js.map +1 -1
  17. package/dist/Webhooks.d.ts +1 -1
  18. package/dist/admin/App.d.ts +601 -20
  19. package/dist/admin/App.d.ts.map +1 -1
  20. package/dist/admin/App.js +12 -2
  21. package/dist/admin/App.js.map +1 -1
  22. package/dist/admin/apps/api-keys.d.ts +94 -11
  23. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  24. package/dist/admin/apps/api-keys.js +141 -32
  25. package/dist/admin/apps/api-keys.js.map +1 -1
  26. package/dist/admin/apps/earn-vaults.d.ts +1069 -0
  27. package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
  28. package/dist/admin/apps/earn-vaults.js +409 -0
  29. package/dist/admin/apps/earn-vaults.js.map +1 -0
  30. package/dist/admin/apps/verified-tokens.d.ts +166 -166
  31. package/dist/admin/ui.generated.d.ts +1 -1
  32. package/dist/admin/ui.generated.d.ts.map +1 -1
  33. package/dist/admin/ui.generated.js +151 -95
  34. package/dist/admin/ui.generated.js.map +1 -1
  35. package/dist/analytics/Analytics.d.ts +2 -0
  36. package/dist/analytics/Analytics.d.ts.map +1 -1
  37. package/dist/analytics/Analytics.js +18 -2
  38. package/dist/analytics/Analytics.js.map +1 -1
  39. package/dist/analytics/tables/requestEvents.d.ts +22 -1
  40. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  41. package/dist/analytics/tables/requestEvents.js +59 -39
  42. package/dist/analytics/tables/requestEvents.js.map +1 -1
  43. package/dist/apps/Zones.d.ts +8335 -0
  44. package/dist/apps/Zones.d.ts.map +1 -0
  45. package/dist/apps/Zones.js +38 -0
  46. package/dist/apps/Zones.js.map +1 -0
  47. package/dist/apps/data/App.d.ts +14377 -10165
  48. package/dist/apps/data/App.d.ts.map +1 -1
  49. package/dist/apps/data/App.js +91 -19
  50. package/dist/apps/data/App.js.map +1 -1
  51. package/dist/apps/data/FxOracle.d.ts +1 -1
  52. package/dist/apps/data/FxOracle.d.ts.map +1 -1
  53. package/dist/apps/data/index.d.ts +0 -1
  54. package/dist/apps/data/index.d.ts.map +1 -1
  55. package/dist/apps/data/index.js +0 -1
  56. package/dist/apps/data/index.js.map +1 -1
  57. package/dist/apps/data/routes/activities.d.ts +32 -32
  58. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  59. package/dist/apps/data/routes/activities.js +130 -65
  60. package/dist/apps/data/routes/activities.js.map +1 -1
  61. package/dist/apps/data/routes/addresses.d.ts +312 -312
  62. package/dist/apps/data/routes/balances.d.ts +18 -18
  63. package/dist/apps/data/routes/balances.js +5 -5
  64. package/dist/apps/data/routes/balances.js.map +1 -1
  65. package/dist/apps/data/routes/coingecko.d.ts +176 -176
  66. package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
  67. package/dist/apps/data/routes/coingecko.js +62 -35
  68. package/dist/apps/data/routes/coingecko.js.map +1 -1
  69. package/dist/apps/data/routes/earn.d.ts +2144 -0
  70. package/dist/apps/data/routes/earn.d.ts.map +1 -0
  71. package/dist/apps/data/routes/earn.js +947 -0
  72. package/dist/apps/data/routes/earn.js.map +1 -0
  73. package/dist/apps/data/routes/exchanges.d.ts +1231 -324
  74. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  75. package/dist/apps/data/routes/exchanges.js +656 -193
  76. package/dist/apps/data/routes/exchanges.js.map +1 -1
  77. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  78. package/dist/apps/data/routes/fee-amm.js +59 -8
  79. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  80. package/dist/apps/data/routes/funding.d.ts +4092 -387
  81. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  82. package/dist/apps/data/routes/funding.js +1403 -256
  83. package/dist/apps/data/routes/funding.js.map +1 -1
  84. package/dist/apps/data/routes/indexer.d.ts +5 -5
  85. package/dist/apps/data/routes/indexer.d.ts.map +1 -1
  86. package/dist/apps/data/routes/indexer.js +19 -2
  87. package/dist/apps/data/routes/indexer.js.map +1 -1
  88. package/dist/apps/data/routes/receipts.d.ts +265 -265
  89. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  90. package/dist/apps/data/routes/receipts.js +11 -11
  91. package/dist/apps/data/routes/receipts.js.map +1 -1
  92. package/dist/apps/data/routes/rpc.d.ts +5 -5
  93. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  94. package/dist/apps/data/routes/rpc.js +211 -22
  95. package/dist/apps/data/routes/rpc.js.map +1 -1
  96. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  97. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
  98. package/dist/apps/data/routes/tokenlist.js +49 -9
  99. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  100. package/dist/apps/data/routes/tokens.d.ts +116 -88
  101. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  102. package/dist/apps/data/routes/tokens.js +198 -91
  103. package/dist/apps/data/routes/tokens.js.map +1 -1
  104. package/dist/apps/data/routes/transactions.d.ts +55 -55
  105. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  106. package/dist/apps/data/routes/transactions.js +78 -39
  107. package/dist/apps/data/routes/transactions.js.map +1 -1
  108. package/dist/apps/data/routes/transfers.d.ts +78 -29
  109. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  110. package/dist/apps/data/routes/transfers.js +165 -67
  111. package/dist/apps/data/routes/transfers.js.map +1 -1
  112. package/dist/apps/data/routes/valuation.d.ts +10 -10
  113. package/dist/apps/data/routes/valuation.js +2 -2
  114. package/dist/apps/data/routes/valuation.js.map +1 -1
  115. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
  116. package/dist/apps/data/routes/verified-tokens.js +34 -9
  117. package/dist/apps/data/routes/verified-tokens.js.map +1 -1
  118. package/dist/apps/data/routes/webhooks.d.ts +5 -3
  119. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  120. package/dist/apps/data/routes/webhooks.js +175 -65
  121. package/dist/apps/data/routes/webhooks.js.map +1 -1
  122. package/dist/apps/data/routes/zones.d.ts +281 -0
  123. package/dist/apps/data/routes/zones.d.ts.map +1 -0
  124. package/dist/apps/data/routes/zones.js +252 -0
  125. package/dist/apps/data/routes/zones.js.map +1 -0
  126. package/dist/apps/docs/reference.js +6 -5
  127. package/dist/apps/docs/reference.js.map +1 -1
  128. package/dist/apps/index.d.ts +2 -1
  129. package/dist/apps/index.d.ts.map +1 -1
  130. package/dist/apps/index.js +2 -1
  131. package/dist/apps/index.js.map +1 -1
  132. package/dist/apps/management/App.d.ts +670 -670
  133. package/dist/apps/management/Billing.d.ts +8 -0
  134. package/dist/apps/management/Billing.d.ts.map +1 -1
  135. package/dist/apps/management/Billing.js +12 -0
  136. package/dist/apps/management/Billing.js.map +1 -1
  137. package/dist/apps/management/Error.d.ts +12 -0
  138. package/dist/apps/management/Error.d.ts.map +1 -0
  139. package/dist/apps/management/Error.js +10 -0
  140. package/dist/apps/management/Error.js.map +1 -0
  141. package/dist/apps/management/routes/api-keys.d.ts +5 -5
  142. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  143. package/dist/apps/management/routes/api-keys.js +2 -8
  144. package/dist/apps/management/routes/api-keys.js.map +1 -1
  145. package/dist/apps/management/routes/billing.d.ts +119 -119
  146. package/dist/apps/management/routes/faucet.d.ts +35 -35
  147. package/dist/apps/management/routes/invitations.d.ts +62 -62
  148. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  149. package/dist/apps/management/routes/invitations.js +4 -10
  150. package/dist/apps/management/routes/invitations.js.map +1 -1
  151. package/dist/apps/management/routes/invite-links.d.ts +30 -30
  152. package/dist/apps/management/routes/me.d.ts +6 -6
  153. package/dist/apps/management/routes/members.d.ts +78 -78
  154. package/dist/apps/management/routes/orgs.d.ts +48 -48
  155. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  156. package/dist/apps/management/routes/orgs.js +2 -8
  157. package/dist/apps/management/routes/orgs.js.map +1 -1
  158. package/dist/apps/management/routes/projects.d.ts +9 -9
  159. package/dist/apps/management/routes/scopes.js +2 -2
  160. package/dist/apps/management/routes/scopes.js.map +1 -1
  161. package/dist/apps/management/routes/usage.d.ts +80 -80
  162. package/dist/apps/management/routes/verified-token-requests.d.ts +36 -36
  163. package/dist/apps/management/routes/webhooks.d.ts +50 -50
  164. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  165. package/dist/apps/management/routes/webhooks.js +15 -3
  166. package/dist/apps/management/routes/webhooks.js.map +1 -1
  167. package/dist/apps/mpp/App.d.ts +55 -56
  168. package/dist/apps/mpp/App.d.ts.map +1 -1
  169. package/dist/apps/mpp/App.js +192 -27
  170. package/dist/apps/mpp/App.js.map +1 -1
  171. package/dist/apps/mpp/Mpp.d.ts +0 -20
  172. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  173. package/dist/apps/mpp/Mpp.js +0 -24
  174. package/dist/apps/mpp/Mpp.js.map +1 -1
  175. package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
  176. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
  177. package/dist/apps/mpp/internal/Adapter.js +66 -0
  178. package/dist/apps/mpp/internal/Adapter.js.map +1 -0
  179. package/dist/apps/mpp/internal/Error.d.ts +4 -0
  180. package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
  181. package/dist/apps/mpp/internal/Error.js +41 -0
  182. package/dist/apps/mpp/internal/Error.js.map +1 -0
  183. package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
  184. package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
  185. package/dist/apps/mpp/internal/Idempotency.js +28 -0
  186. package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
  187. package/dist/apps/mpp/internal/Policy.d.ts +46 -0
  188. package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
  189. package/dist/apps/mpp/internal/Policy.js +57 -0
  190. package/dist/apps/mpp/internal/Policy.js.map +1 -0
  191. package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
  192. package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
  193. package/dist/apps/mpp/internal/ScreenManager.js +18 -0
  194. package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
  195. package/dist/apps/mpp/internal/Screening.d.ts +35 -0
  196. package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
  197. package/dist/apps/mpp/internal/Screening.js +20 -0
  198. package/dist/apps/mpp/internal/Screening.js.map +1 -0
  199. package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
  200. package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
  201. package/dist/apps/mpp/internal/Sponsorship.js +103 -0
  202. package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
  203. package/dist/apps/mpp/internal/Utils.d.ts +7 -0
  204. package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
  205. package/dist/apps/mpp/internal/Utils.js +24 -0
  206. package/dist/apps/mpp/internal/Utils.js.map +1 -0
  207. package/dist/apps/relay/App.js +184 -24
  208. package/dist/apps/relay/App.js.map +1 -1
  209. package/dist/apps/relay/Sponsorships.d.ts +4 -0
  210. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  211. package/dist/apps/relay/Sponsorships.js +16 -7
  212. package/dist/apps/relay/Sponsorships.js.map +1 -1
  213. package/dist/db/Db.d.ts +20 -0
  214. package/dist/db/Db.d.ts.map +1 -1
  215. package/dist/db/Db.js +342 -0
  216. package/dist/db/Db.js.map +1 -1
  217. package/dist/db/Schema.d.ts +921 -1
  218. package/dist/db/Schema.d.ts.map +1 -1
  219. package/dist/db/Schema.js +269 -1
  220. package/dist/db/Schema.js.map +1 -1
  221. package/dist/db/tables/earnVaults.d.ts +68 -0
  222. package/dist/db/tables/earnVaults.d.ts.map +1 -0
  223. package/dist/db/tables/earnVaults.js +72 -0
  224. package/dist/db/tables/earnVaults.js.map +1 -0
  225. package/dist/db/tables/fundingCatalog.d.ts +56 -0
  226. package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
  227. package/dist/db/tables/fundingCatalog.js +85 -0
  228. package/dist/db/tables/fundingCatalog.js.map +1 -0
  229. package/dist/db/tables/fundingDepositAddresses.d.ts +159 -0
  230. package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
  231. package/dist/db/tables/fundingDepositAddresses.js +206 -0
  232. package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
  233. package/dist/db/tables/fundingDeposits.d.ts +115 -0
  234. package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
  235. package/dist/db/tables/fundingDeposits.js +100 -0
  236. package/dist/db/tables/fundingDeposits.js.map +1 -0
  237. package/dist/db/tables/fundingIdempotency.d.ts +91 -0
  238. package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
  239. package/dist/db/tables/fundingIdempotency.js +103 -0
  240. package/dist/db/tables/fundingIdempotency.js.map +1 -0
  241. package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
  242. package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
  243. package/dist/db/tables/fundingTransferEvents.js +18 -0
  244. package/dist/db/tables/fundingTransferEvents.js.map +1 -0
  245. package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
  246. package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
  247. package/dist/db/tables/fundingTransferTransactions.js +27 -0
  248. package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
  249. package/dist/db/tables/fundingTransfers.d.ts +82 -0
  250. package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
  251. package/dist/db/tables/fundingTransfers.js +89 -0
  252. package/dist/db/tables/fundingTransfers.js.map +1 -0
  253. package/dist/db/tables/organizations.d.ts +8 -0
  254. package/dist/db/tables/organizations.d.ts.map +1 -1
  255. package/dist/db/tables/organizations.js +35 -0
  256. package/dist/db/tables/organizations.js.map +1 -1
  257. package/dist/db/tables/projects.d.ts +8 -0
  258. package/dist/db/tables/projects.d.ts.map +1 -1
  259. package/dist/db/tables/projects.js +16 -0
  260. package/dist/db/tables/projects.js.map +1 -1
  261. package/dist/db/tables/requestUsage.d.ts +13 -0
  262. package/dist/db/tables/requestUsage.d.ts.map +1 -1
  263. package/dist/db/tables/requestUsage.js +16 -0
  264. package/dist/db/tables/requestUsage.js.map +1 -1
  265. package/dist/db/tables/sponsoredTransactions.d.ts +4 -2
  266. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  267. package/dist/db/tables/sponsoredTransactions.js +14 -4
  268. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  269. package/dist/db/tables/users.d.ts +8 -0
  270. package/dist/db/tables/users.d.ts.map +1 -1
  271. package/dist/db/tables/users.js +16 -0
  272. package/dist/db/tables/users.js.map +1 -1
  273. package/dist/db/tables/verifiedTokens.d.ts +14 -7
  274. package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
  275. package/dist/db/tables/verifiedTokens.js +9 -7
  276. package/dist/db/tables/verifiedTokens.js.map +1 -1
  277. package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
  278. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  279. package/dist/db/tables/webhookSubscriptions.js +24 -3
  280. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  281. package/dist/handlers/relay.js +108 -108
  282. package/dist/handlers/relay.js.map +1 -1
  283. package/dist/internal/Auth.d.ts +26 -0
  284. package/dist/internal/Auth.d.ts.map +1 -1
  285. package/dist/internal/Auth.js +35 -2
  286. package/dist/internal/Auth.js.map +1 -1
  287. package/dist/internal/Cache.d.ts.map +1 -1
  288. package/dist/internal/Cache.js +16 -10
  289. package/dist/internal/Cache.js.map +1 -1
  290. package/dist/internal/Cursor.js +1 -1
  291. package/dist/internal/Cursor.js.map +1 -1
  292. package/dist/internal/EarnRates.d.ts +89 -0
  293. package/dist/internal/EarnRates.d.ts.map +1 -0
  294. package/dist/internal/EarnRates.js +266 -0
  295. package/dist/internal/EarnRates.js.map +1 -0
  296. package/dist/internal/EarnVaults.d.ts +171 -0
  297. package/dist/internal/EarnVaults.d.ts.map +1 -0
  298. package/dist/internal/EarnVaults.js +547 -0
  299. package/dist/internal/EarnVaults.js.map +1 -0
  300. package/dist/internal/EdgeCache.d.ts +9 -2
  301. package/dist/internal/EdgeCache.d.ts.map +1 -1
  302. package/dist/internal/EdgeCache.js +36 -9
  303. package/dist/internal/EdgeCache.js.map +1 -1
  304. package/dist/internal/Id.d.ts +11 -0
  305. package/dist/internal/Id.d.ts.map +1 -1
  306. package/dist/internal/Id.js +13 -0
  307. package/dist/internal/Id.js.map +1 -1
  308. package/dist/internal/Idempotency.d.ts +83 -0
  309. package/dist/internal/Idempotency.d.ts.map +1 -0
  310. package/dist/internal/Idempotency.js +113 -0
  311. package/dist/internal/Idempotency.js.map +1 -0
  312. package/dist/internal/Log.d.ts +64 -9
  313. package/dist/internal/Log.d.ts.map +1 -1
  314. package/dist/internal/Log.js +29 -7
  315. package/dist/internal/Log.js.map +1 -1
  316. package/dist/internal/MetricSink.d.ts.map +1 -1
  317. package/dist/internal/MetricSink.js +47 -1
  318. package/dist/internal/MetricSink.js.map +1 -1
  319. package/dist/internal/OpenApi.d.ts +1 -1
  320. package/dist/internal/OpenApi.d.ts.map +1 -1
  321. package/dist/internal/OpenApi.js +3 -0
  322. package/dist/internal/OpenApi.js.map +1 -1
  323. package/dist/internal/Provider.d.ts +14 -0
  324. package/dist/internal/Provider.d.ts.map +1 -0
  325. package/dist/internal/Provider.js +5 -0
  326. package/dist/internal/Provider.js.map +1 -0
  327. package/dist/internal/Schema.d.ts +8 -3
  328. package/dist/internal/Schema.d.ts.map +1 -1
  329. package/dist/internal/Schema.js +24 -13
  330. package/dist/internal/Schema.js.map +1 -1
  331. package/dist/internal/Store.d.ts +6 -0
  332. package/dist/internal/Store.d.ts.map +1 -1
  333. package/dist/internal/Store.js +35 -0
  334. package/dist/internal/Store.js.map +1 -1
  335. package/dist/internal/Tidx.d.ts +43 -24
  336. package/dist/internal/Tidx.d.ts.map +1 -1
  337. package/dist/internal/Tidx.js +79 -11
  338. package/dist/internal/Tidx.js.map +1 -1
  339. package/dist/internal/Viem.d.ts +82 -65
  340. package/dist/internal/Viem.d.ts.map +1 -1
  341. package/dist/internal/Viem.js +83 -12
  342. package/dist/internal/Viem.js.map +1 -1
  343. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  344. package/dist/internal/WebhookDestination.js +34 -28
  345. package/dist/internal/WebhookDestination.js.map +1 -1
  346. package/dist/internal/Webhooks.d.ts +9 -0
  347. package/dist/internal/Webhooks.d.ts.map +1 -1
  348. package/dist/internal/Webhooks.js +15 -10
  349. package/dist/internal/Webhooks.js.map +1 -1
  350. package/dist/internal/exchange/Provider.d.ts +219 -0
  351. package/dist/internal/exchange/Provider.d.ts.map +1 -0
  352. package/dist/internal/exchange/Provider.js +117 -0
  353. package/dist/internal/exchange/Provider.js.map +1 -0
  354. package/dist/internal/exchange/index.d.ts +2 -0
  355. package/dist/internal/exchange/index.d.ts.map +1 -0
  356. package/dist/internal/exchange/index.js +2 -0
  357. package/dist/internal/exchange/index.js.map +1 -0
  358. package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
  359. package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
  360. package/dist/internal/exchange/providers/uniswap.js +553 -0
  361. package/dist/internal/exchange/providers/uniswap.js.map +1 -0
  362. package/dist/internal/funding/Action.d.ts +55 -0
  363. package/dist/internal/funding/Action.d.ts.map +1 -0
  364. package/dist/internal/funding/Action.js +74 -0
  365. package/dist/internal/funding/Action.js.map +1 -0
  366. package/dist/internal/funding/Catalog.d.ts +107 -0
  367. package/dist/internal/funding/Catalog.d.ts.map +1 -0
  368. package/dist/internal/funding/Catalog.js +270 -0
  369. package/dist/internal/funding/Catalog.js.map +1 -0
  370. package/dist/internal/funding/Chain.d.ts +76 -0
  371. package/dist/internal/funding/Chain.d.ts.map +1 -0
  372. package/dist/internal/funding/Chain.js +38 -0
  373. package/dist/internal/funding/Chain.js.map +1 -0
  374. package/dist/internal/funding/Deposit.d.ts +366 -0
  375. package/dist/internal/funding/Deposit.d.ts.map +1 -0
  376. package/dist/internal/funding/Deposit.js +286 -0
  377. package/dist/internal/funding/Deposit.js.map +1 -0
  378. package/dist/internal/funding/DepositAddress.d.ts +345 -0
  379. package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
  380. package/dist/internal/funding/DepositAddress.js +189 -0
  381. package/dist/internal/funding/DepositAddress.js.map +1 -0
  382. package/dist/internal/funding/Evidence.d.ts +52 -0
  383. package/dist/internal/funding/Evidence.d.ts.map +1 -0
  384. package/dist/internal/funding/Evidence.js +314 -0
  385. package/dist/internal/funding/Evidence.js.map +1 -0
  386. package/dist/internal/funding/Provider.d.ts +1186 -0
  387. package/dist/internal/funding/Provider.d.ts.map +1 -0
  388. package/dist/internal/funding/Provider.js +1081 -0
  389. package/dist/internal/funding/Provider.js.map +1 -0
  390. package/dist/internal/funding/Reconciliation.d.ts +113 -0
  391. package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
  392. package/dist/internal/funding/Reconciliation.js +676 -0
  393. package/dist/internal/funding/Reconciliation.js.map +1 -0
  394. package/dist/internal/funding/Route.d.ts +21 -0
  395. package/dist/internal/funding/Route.d.ts.map +1 -0
  396. package/dist/internal/funding/Route.js +5 -0
  397. package/dist/internal/funding/Route.js.map +1 -0
  398. package/dist/internal/funding/Subsidy.d.ts +113 -0
  399. package/dist/internal/funding/Subsidy.d.ts.map +1 -0
  400. package/dist/internal/funding/Subsidy.js +138 -0
  401. package/dist/internal/funding/Subsidy.js.map +1 -0
  402. package/dist/internal/funding/Token.d.ts +41 -0
  403. package/dist/internal/funding/Token.d.ts.map +1 -0
  404. package/dist/internal/funding/Token.js +22 -0
  405. package/dist/internal/funding/Token.js.map +1 -0
  406. package/dist/internal/funding/Transfer.d.ts +643 -0
  407. package/dist/internal/funding/Transfer.d.ts.map +1 -0
  408. package/dist/internal/funding/Transfer.js +332 -0
  409. package/dist/internal/funding/Transfer.js.map +1 -0
  410. package/dist/internal/funding/index.d.ts +13 -0
  411. package/dist/internal/funding/index.d.ts.map +1 -0
  412. package/dist/internal/funding/index.js +13 -0
  413. package/dist/internal/funding/index.js.map +1 -0
  414. package/dist/internal/funding/providers/across.d.ts +21 -0
  415. package/dist/internal/funding/providers/across.d.ts.map +1 -0
  416. package/dist/internal/funding/providers/across.js +117 -0
  417. package/dist/internal/funding/providers/across.js.map +1 -0
  418. package/dist/internal/funding/providers/relay.d.ts +46 -0
  419. package/dist/internal/funding/providers/relay.d.ts.map +1 -0
  420. package/dist/internal/funding/providers/relay.js +464 -0
  421. package/dist/internal/funding/providers/relay.js.map +1 -0
  422. package/dist/internal/funding/providers/rhino.d.ts +15 -0
  423. package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
  424. package/dist/internal/funding/providers/rhino.js +116 -0
  425. package/dist/internal/funding/providers/rhino.js.map +1 -0
  426. package/dist/internal/funding/providers/squid.d.ts +19 -0
  427. package/dist/internal/funding/providers/squid.d.ts.map +1 -0
  428. package/dist/internal/funding/providers/squid.js +120 -0
  429. package/dist/internal/funding/providers/squid.js.map +1 -0
  430. package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
  431. package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
  432. package/dist/internal/funding/providers/symbiosis.js +176 -0
  433. package/dist/internal/funding/providers/symbiosis.js.map +1 -0
  434. package/dist/internal/index.d.ts +5 -1
  435. package/dist/internal/index.d.ts.map +1 -1
  436. package/dist/internal/index.js +5 -1
  437. package/dist/internal/index.js.map +1 -1
  438. package/dist/internal/webhookDestinations/url.js +61 -57
  439. package/dist/internal/webhookDestinations/url.js.map +1 -1
  440. package/dist/providers/index.d.ts +43 -0
  441. package/dist/providers/index.d.ts.map +1 -0
  442. package/dist/providers/index.js +19 -0
  443. package/dist/providers/index.js.map +1 -0
  444. package/package.json +9 -4
  445. package/src/ApiKeys.test.ts +11 -7
  446. package/src/ApiKeys.ts +37 -9
  447. package/src/App.test.ts +85 -10
  448. package/src/App.ts +224 -137
  449. package/src/Assets.ts +29 -4
  450. package/src/Client.test-d.ts +650 -30
  451. package/src/Scope.test.ts +19 -0
  452. package/src/Scope.ts +28 -11
  453. package/src/Webhooks.test.ts +25 -0
  454. package/src/Webhooks.ts +1 -1
  455. package/src/admin/App.test.ts +9 -2
  456. package/src/admin/App.ts +32 -9
  457. package/src/admin/apps/api-keys.test.ts +167 -23
  458. package/src/admin/apps/api-keys.ts +166 -28
  459. package/src/admin/apps/earn-vaults.test.ts +338 -0
  460. package/src/admin/apps/earn-vaults.ts +572 -0
  461. package/src/admin/apps/scopes.test.ts +16 -1
  462. package/src/admin/ui/plugin.ts +2 -2
  463. package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
  464. package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
  465. package/src/admin/ui/src/components/Page.tsx +1 -1
  466. package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
  467. package/src/admin/ui/src/lib/api-keys.ts +37 -7
  468. package/src/admin/ui/src/lib/client.ts +1 -1
  469. package/src/admin/ui/src/lib/config.ts +1 -1
  470. package/src/admin/ui/src/lib/early-access.ts +8 -9
  471. package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
  472. package/src/admin/ui/src/lib/format.ts +13 -0
  473. package/src/admin/ui/src/lib/organizations.test.ts +14 -4
  474. package/src/admin/ui/src/lib/organizations.ts +7 -1
  475. package/src/admin/ui/src/lib/response.ts +22 -0
  476. package/src/admin/ui/src/lib/scopes.test.ts +19 -11
  477. package/src/admin/ui/src/lib/scopes.ts +28 -7
  478. package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
  479. package/src/admin/ui/src/routeTree.gen.ts +70 -7
  480. package/src/admin/ui/src/router.tsx +2 -2
  481. package/src/admin/ui/src/routes/__root.tsx +9 -8
  482. package/src/admin/ui/src/routes/api-keys.tsx +475 -64
  483. package/src/admin/ui/src/routes/early-access.tsx +5 -12
  484. package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
  485. package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
  486. package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
  487. package/src/admin/ui/src/routes/organizations.tsx +4 -7
  488. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
  489. package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
  490. package/src/admin/ui/vite.config.ts +4 -1
  491. package/src/admin/ui.generated.ts +189 -95
  492. package/src/analytics/Analytics.test.ts +69 -10
  493. package/src/analytics/Analytics.ts +20 -1
  494. package/src/analytics/tables/requestEvents.ts +79 -37
  495. package/src/apps/Zones.test.ts +33 -0
  496. package/src/apps/Zones.ts +40 -0
  497. package/src/apps/composition.test.ts +84 -1
  498. package/src/apps/data/App.test.ts +38 -9
  499. package/src/apps/data/App.ts +96 -33
  500. package/src/apps/data/FxOracle.ts +1 -1
  501. package/src/apps/data/index.ts +0 -1
  502. package/src/apps/data/routes/activities.test.ts +82 -6
  503. package/src/apps/data/routes/activities.ts +131 -71
  504. package/src/apps/data/routes/balances.test.ts +50 -37
  505. package/src/apps/data/routes/balances.ts +5 -5
  506. package/src/apps/data/routes/blocks.test.ts +2 -0
  507. package/src/apps/data/routes/coingecko.test.ts +22 -0
  508. package/src/apps/data/routes/coingecko.ts +84 -48
  509. package/src/apps/data/routes/earn.test.ts +1108 -0
  510. package/src/apps/data/routes/earn.ts +1391 -0
  511. package/src/apps/data/routes/exchanges.test.ts +82 -33
  512. package/src/apps/data/routes/exchanges.ts +842 -227
  513. package/src/apps/data/routes/fee-amm.test.ts +4 -6
  514. package/src/apps/data/routes/fee-amm.ts +69 -12
  515. package/src/apps/data/routes/funding.test.ts +2712 -221
  516. package/src/apps/data/routes/funding.ts +1604 -387
  517. package/src/apps/data/routes/indexer.test.ts +43 -34
  518. package/src/apps/data/routes/indexer.ts +19 -2
  519. package/src/apps/data/routes/receipts.test.ts +5 -3
  520. package/src/apps/data/routes/receipts.ts +13 -11
  521. package/src/apps/data/routes/rpc.test.ts +446 -28
  522. package/src/apps/data/routes/rpc.ts +243 -25
  523. package/src/apps/data/routes/tokenlist.test.ts +15 -0
  524. package/src/apps/data/routes/tokenlist.ts +88 -22
  525. package/src/apps/data/routes/tokens.ts +262 -86
  526. package/src/apps/data/routes/transactions.test.ts +2 -0
  527. package/src/apps/data/routes/transactions.ts +77 -42
  528. package/src/apps/data/routes/transfers.test.ts +166 -4
  529. package/src/apps/data/routes/transfers.ts +216 -78
  530. package/src/apps/data/routes/valuation.test.ts +62 -9
  531. package/src/apps/data/routes/valuation.ts +2 -2
  532. package/src/apps/data/routes/verified-tokens.test.ts +51 -0
  533. package/src/apps/data/routes/verified-tokens.ts +52 -15
  534. package/src/apps/data/routes/webhooks.test.ts +432 -33
  535. package/src/apps/data/routes/webhooks.ts +189 -79
  536. package/src/apps/data/routes/zones.test.ts +473 -0
  537. package/src/apps/data/routes/zones.ts +338 -0
  538. package/src/apps/docs/reference.ts +8 -6
  539. package/src/apps/index.ts +2 -1
  540. package/src/apps/management/Billing.test.ts +29 -0
  541. package/src/apps/management/Billing.ts +23 -0
  542. package/src/apps/management/Error.ts +12 -0
  543. package/src/apps/management/routes/api-keys.test.ts +5 -3
  544. package/src/apps/management/routes/api-keys.ts +2 -9
  545. package/src/apps/management/routes/invitations.ts +4 -11
  546. package/src/apps/management/routes/orgs.ts +2 -9
  547. package/src/apps/management/routes/scopes.test.ts +7 -2
  548. package/src/apps/management/routes/scopes.ts +2 -2
  549. package/src/apps/management/routes/webhooks.test.ts +6 -1
  550. package/src/apps/management/routes/webhooks.ts +15 -3
  551. package/src/apps/mpp/App.ts +276 -29
  552. package/src/apps/mpp/Mpp.test.ts +631 -26
  553. package/src/apps/mpp/Mpp.ts +0 -42
  554. package/src/apps/mpp/internal/Adapter.ts +108 -3
  555. package/src/apps/mpp/internal/Error.test.ts +33 -0
  556. package/src/apps/mpp/internal/Error.ts +44 -6
  557. package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
  558. package/src/apps/mpp/internal/Idempotency.ts +59 -5
  559. package/src/apps/mpp/internal/Policy.test.ts +122 -0
  560. package/src/apps/mpp/internal/Policy.ts +98 -0
  561. package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
  562. package/src/apps/mpp/internal/ScreenManager.ts +41 -0
  563. package/src/apps/mpp/internal/Screening.ts +40 -3
  564. package/src/apps/mpp/internal/Sponsorship.ts +144 -0
  565. package/src/apps/mpp/internal/Utils.ts +30 -0
  566. package/src/apps/relay/App.test.ts +495 -64
  567. package/src/apps/relay/App.ts +234 -24
  568. package/src/apps/relay/Sponsorships.test.ts +51 -0
  569. package/src/apps/relay/Sponsorships.ts +19 -7
  570. package/src/db/Db.ts +439 -0
  571. package/src/db/Schema.ts +325 -2
  572. package/src/db/tables/earnVaults.test.ts +185 -0
  573. package/src/db/tables/earnVaults.ts +151 -0
  574. package/src/db/tables/fundingCatalog.test.ts +108 -0
  575. package/src/db/tables/fundingCatalog.ts +157 -0
  576. package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
  577. package/src/db/tables/fundingDepositAddresses.ts +376 -0
  578. package/src/db/tables/fundingDeposits.test.ts +261 -0
  579. package/src/db/tables/fundingDeposits.ts +229 -0
  580. package/src/db/tables/fundingIdempotency.test.ts +182 -0
  581. package/src/db/tables/fundingIdempotency.ts +180 -0
  582. package/src/db/tables/fundingTransferEvents.ts +28 -0
  583. package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
  584. package/src/db/tables/fundingTransferTransactions.ts +37 -0
  585. package/src/db/tables/fundingTransfers.test.ts +89 -0
  586. package/src/db/tables/fundingTransfers.ts +153 -0
  587. package/src/db/tables/organizations.test.ts +88 -0
  588. package/src/db/tables/organizations.ts +42 -1
  589. package/src/db/tables/projects.ts +16 -0
  590. package/src/db/tables/requestUsage.ts +23 -0
  591. package/src/db/tables/sponsoredTransactions.test.ts +52 -2
  592. package/src/db/tables/sponsoredTransactions.ts +18 -6
  593. package/src/db/tables/users.ts +16 -0
  594. package/src/db/tables/verifiedTokens.ts +19 -14
  595. package/src/db/tables/webhookSubscriptions.ts +58 -3
  596. package/src/handlers/relay.test.ts +2 -0
  597. package/src/handlers/relay.ts +95 -99
  598. package/src/internal/Auth.test.ts +48 -0
  599. package/src/internal/Auth.ts +61 -2
  600. package/src/internal/Cache.ts +13 -9
  601. package/src/internal/Cursor.test.ts +2 -2
  602. package/src/internal/Cursor.ts +1 -1
  603. package/src/internal/EarnRates.test.ts +125 -0
  604. package/src/internal/EarnRates.ts +409 -0
  605. package/src/internal/EarnVaults.test.ts +195 -0
  606. package/src/internal/EarnVaults.ts +876 -0
  607. package/src/internal/EdgeCache.test.ts +37 -5
  608. package/src/internal/EdgeCache.ts +39 -7
  609. package/src/internal/Id.ts +14 -0
  610. package/src/internal/Idempotency.test.ts +109 -0
  611. package/src/internal/Idempotency.ts +237 -0
  612. package/src/internal/Log.test-d.ts +41 -8
  613. package/src/internal/Log.test.ts +189 -8
  614. package/src/internal/Log.ts +124 -17
  615. package/src/internal/MetricSink.test.ts +244 -4
  616. package/src/internal/MetricSink.ts +51 -1
  617. package/src/internal/OpenApi.ts +3 -0
  618. package/src/internal/Provider.test.ts +17 -0
  619. package/src/internal/Provider.ts +17 -0
  620. package/src/internal/Schema.test.ts +13 -0
  621. package/src/internal/Schema.ts +41 -24
  622. package/src/internal/Store.test.ts +25 -0
  623. package/src/internal/Store.ts +46 -0
  624. package/src/internal/Tidx.local.test.ts +78 -3
  625. package/src/internal/Tidx.test.ts +212 -18
  626. package/src/internal/Tidx.ts +112 -32
  627. package/src/internal/VerifiedTokens.test.ts +15 -0
  628. package/src/internal/Viem.test.ts +170 -17
  629. package/src/internal/Viem.ts +111 -28
  630. package/src/internal/WebhookDestination.ts +25 -23
  631. package/src/internal/Webhooks.test.ts +59 -0
  632. package/src/internal/Webhooks.ts +34 -10
  633. package/src/internal/exchange/Provider.test.ts +216 -0
  634. package/src/internal/exchange/Provider.ts +326 -0
  635. package/src/internal/exchange/index.test.ts +6 -0
  636. package/src/internal/exchange/index.ts +1 -0
  637. package/src/internal/exchange/providers/uniswap.test.ts +122 -0
  638. package/src/internal/exchange/providers/uniswap.ts +682 -0
  639. package/src/internal/funding/Action.test.ts +138 -0
  640. package/src/internal/funding/Action.ts +117 -0
  641. package/src/internal/funding/Catalog.test.ts +311 -0
  642. package/src/internal/funding/Catalog.ts +347 -0
  643. package/src/internal/funding/Chain.test.ts +79 -0
  644. package/src/internal/funding/Chain.ts +120 -0
  645. package/src/internal/funding/Deposit.test.ts +26 -0
  646. package/src/internal/funding/Deposit.ts +453 -0
  647. package/src/internal/funding/DepositAddress.test.ts +18 -0
  648. package/src/internal/funding/DepositAddress.ts +312 -0
  649. package/src/internal/funding/Evidence.test.ts +297 -0
  650. package/src/internal/funding/Evidence.ts +430 -0
  651. package/src/internal/funding/Provider.test.ts +1328 -0
  652. package/src/internal/funding/Provider.ts +1796 -0
  653. package/src/internal/funding/Reconciliation.local.test.ts +504 -0
  654. package/src/internal/funding/Reconciliation.test.ts +2020 -0
  655. package/src/internal/funding/Reconciliation.ts +930 -0
  656. package/src/internal/funding/Route.test.ts +66 -0
  657. package/src/internal/funding/Route.ts +29 -0
  658. package/src/internal/funding/Subsidy.local.test.ts +152 -0
  659. package/src/internal/funding/Subsidy.test.ts +75 -0
  660. package/src/internal/funding/Subsidy.ts +260 -0
  661. package/src/internal/funding/Token.test.ts +47 -0
  662. package/src/internal/funding/Token.ts +59 -0
  663. package/src/internal/funding/Transfer.test.ts +369 -0
  664. package/src/internal/funding/Transfer.ts +522 -0
  665. package/src/internal/funding/index.test.ts +20 -0
  666. package/src/internal/funding/index.ts +12 -0
  667. package/src/internal/funding/providers/across.ts +149 -0
  668. package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
  669. package/src/internal/funding/providers/relay.test.ts +474 -0
  670. package/src/internal/funding/providers/relay.ts +559 -0
  671. package/src/internal/funding/providers/rhino.ts +139 -0
  672. package/src/internal/funding/providers/squid.ts +151 -0
  673. package/src/internal/funding/providers/symbiosis.ts +221 -0
  674. package/src/internal/index.test.ts +5 -1
  675. package/src/internal/index.ts +5 -1
  676. package/src/internal/webhookDestinations/url.ts +49 -45
  677. package/src/providers/index.test.ts +14 -0
  678. package/src/providers/index.ts +54 -0
  679. package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
  680. package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
  681. package/dist/apps/data/FundingQuoteProviders.js +0 -775
  682. package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
  683. package/dist/internal/FundingQuotes.d.ts +0 -864
  684. package/dist/internal/FundingQuotes.d.ts.map +0 -1
  685. package/dist/internal/FundingQuotes.js +0 -672
  686. package/dist/internal/FundingQuotes.js.map +0 -1
  687. package/src/apps/data/FundingQuoteProviders.ts +0 -1043
  688. package/src/internal/FundingQuotes.test.ts +0 -456
  689. package/src/internal/FundingQuotes.ts +0 -944
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokens.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAmfrB;AAED,iBAAe,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAc7E;AAED,OAAO,WAAW,QAAQ,CAAC;IACzB,KAAK,OAAO,GAAG;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QACvD,iFAAiF;QACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;QAC/E,kDAAkD;QAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QACzD,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;QACzE,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC9C,wDAAwD;QACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;KAC5E,CAAA;CACF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC3B,OAAO,EAAE,YAAY,CAAC,OAAO,GAC5B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAoEpD;AAED,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,KAAK,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO;;;;;;;GAoB9F;AAED,OAAO,WAAW,gBAAgB,CAAC;IACjC,KAAK,OAAO,GAAG;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACzC,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,+BAW5F;AAED,OAAO,WAAW,YAAY,CAAC;IAC7B,KAAK,OAAO,GAAG;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACzC,CAAA;CACF;AAgUD,iBAAS,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO;;;;UA6CvF;AAED,OAAO,WAAW,gBAAgB,CAAC;IACjC,uFAAuF;IACvF,KAAK,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,CAAA;IAC3F,KAAK,OAAO,GAAG;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACzC,CAAA;CACF;AAkKD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC3B,OAAO,EAAE,0BAA0B,CAAC,OAAO,GAC1C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyDjC;AASD,MAAM,CAAC,OAAO,WAAW,0BAA0B,CAAC;IAClD,KAAK,OAAO,GAAG;QACb,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QACrD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACzC,CAAA;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAe,wBAAwB,CACrC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAC3B,OAAO,EAAE,wBAAwB,CAAC,OAAO,GACxC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CA6E3D;AASD,OAAO,WAAW,wBAAwB,CAAC;IACzC,wDAAwD;IACxD,KAAK,OAAO,GAAG;QACb,yDAAyD;QACzD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACtC,2CAA2C;QAC3C,SAAS,EAAE,MAAM,CAAA;QACjB,yDAAyD;QACzD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KAC5C,CAAA;IACD,KAAK,OAAO,GAAG;QACb,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;QACrD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;KACzC,CAAA;CACF"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAIzC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAM3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AAMrD,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAA;AA6BrE,+CAA+C;AAC/C,yBAAiB,MAAM,CAAC;IACtB,0CAA0C;IAC1C,UAAiB,QAAQ,CAAC;QACxB,mDAAmD;QAC5C,MAAM,MAAM;;yBAIyD,CAAA;QAE5E,qEAAqE;QAC9D,MAAM,OAAO;;;;;;UAIjB,CAAA;QAEH;;;;;WAKG;QACI,MAAM,YAAY;;;;;;YAGxB,CAAA;QAED,oDAAoD;QAC7C,MAAM,KAAK;;;;;;;;;;;;yBAK2D,CAAA;QAE7E,yDAAyD;QAClD,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;yBAqIpB,CAAA;KACF;IAED;;;;;OAKG;IACI,MAAM,KAAK;;;;;;;;;qBAYjB,CAAA;IAED,8EAA8E;IACvE,MAAM,cAAc;;;;;;;;qBAG1B,CAAA;IAED,kDAAkD;IAClD,UAAiB,gBAAgB,CAAC;QAChC,qDAAqD;QAG9C,MAAM,YAAY,gCAAgC,CAAA;QAIzD,0DAA0D;QACnD,MAAM,MAAM;;yBAU+D,CAAA;KACnF;IAED,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,qDAAqD;QAC9C,MAAM,MAAM;;yBAIqD,CAAA;QAExE,sDAAsD;QAC/C,MAAM,KAAK;;;;;yBAIuD,CAAA;KAC1E;IAED,2CAA2C;IAC3C,UAAiB,SAAS,CAAC;QACzB,gDAAgD;QACzC,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;0BA4DyE,CAAA;QAE3F,6BAA6B;QACtB,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;yBAKoC,CAAA;KAC1D;IAED,iDAAiD;IACjD,UAAiB,eAAe,CAAC;QAC/B,iDAAiD;QAC1C,MAAM,MAAM;;yBAImD,CAAA;QAEtE,sEAAsE;QAC/D,MAAM,OAAO;;;UAE2E,CAAA;QAE/F;;;;WAIG;QACI,MAAM,YAAY;;;YAGxB,CAAA;QAED,kDAAkD;QAC3C,MAAM,KAAK;;;;;;;;;;;;0BAQ6E,CAAA;QAE/F,oCAAoC;QAC7B,MAAM,MAAM;;;;yBAmBiE,CAAA;QAEpF,kDAAkD;QAC3C,MAAM,IAAI;;;;;;;;;;;;;yBAsB0E,CAAA;QAE3F,mEAAmE;QAC5D,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;yBAUgD,CAAA;KACtE;IAED,sDAAsD;IACtD,UAAiB,oBAAoB,CAAC;QACpC,sDAAsD;QAC/C,MAAM,MAAM;;yBAI4E,CAAA;QAE/F,oFAAoF;QAC7E,MAAM,OAAO;;;;;UAE2E,CAAA;QAE/F;;;;WAIG;QACI,MAAM,YAAY;;;;;YAGxB,CAAA;QAED,uDAAuD;QAChD,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;0BA0Bf,CAAA;QAEH,kDAAkD;QAC3C,MAAM,IAAI;;;;;;;;;;;;;yBAsB0E,CAAA;QAE3F;;;;;;;;WAQG;QACI,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAQiE,CAAA;KACvF;CACF;AAED,8BAA8B;AAC9B,wBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAmfrB;AAED,iBAAe,QAAQ,CAAC,CAAC,EAAE,OAAO,CA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"}
@@ -1,6 +1,7 @@
1
1
  import { Hono } from 'hono';
2
2
  import { AbiEvent, AbiParameters } from 'ox';
3
3
  import { ContractFunctionExecutionError } from 'viem';
4
+ import { Abis } from 'viem/tempo';
4
5
  import * as z from 'zod/mini';
5
6
  import * as Auth from '../../../internal/Auth.js';
6
7
  import * as Cache from '../../../internal/Cache.js';
@@ -882,6 +883,86 @@ export async function resolveToken(c, options) {
882
883
  verified: snapshot.byAddress.has(address),
883
884
  });
884
885
  }
886
+ /** Resolves unique token addresses with RPC metadata and requested curated fields. */
887
+ export async function resolveTokens(c, options) {
888
+ const { chainId } = options;
889
+ const addresses = Array.from(new Set(options.addresses.map((address) => Schema.Address.parse(address.toLowerCase()))));
890
+ if (addresses.length === 0)
891
+ return new Map();
892
+ const includeLogoUri = options.include.includes('token.logoUri');
893
+ const includeVerified = options.include.includes('token.verified');
894
+ const resolveMetadata = () => Promise.all(addresses.map(async (address) => {
895
+ const metadata = options.metadata?.get(address);
896
+ if (metadata)
897
+ return [address, metadata];
898
+ try {
899
+ return [address, await getTokenMetadata(c, { address, chainId })];
900
+ }
901
+ catch {
902
+ return [address, undefined];
903
+ }
904
+ }));
905
+ const [snapshot, metadataByAddress, logoByAddress] = await Promise.all([
906
+ options.snapshot ??
907
+ (includeLogoUri || includeVerified
908
+ ? VerifiedTokens.snapshot(c, chainId).catch(() => undefined)
909
+ : undefined),
910
+ addresses.every((address) => options.metadata?.has(address))
911
+ ? resolveMetadata()
912
+ : Timing.time(c, 'token_metadata', resolveMetadata),
913
+ includeLogoUri
914
+ ? Timing.time(c, 'token_logo', () => Promise.all(addresses.map(async (address) => [
915
+ address,
916
+ await getTokenLogo(c, { address, chainId }).catch(() => undefined),
917
+ ])))
918
+ : [],
919
+ ]);
920
+ const logos = new Map(logoByAddress);
921
+ const metadataMap = new Map(metadataByAddress);
922
+ const onchainLogos = new Map(includeLogoUri
923
+ ? await Timing.time(c, 'token_logo_uri', () => Promise.all(addresses
924
+ .filter((address) => !logos.get(address) &&
925
+ !snapshot?.byAddress.get(address)?.logoUri &&
926
+ !metadataMap.get(address)?.logoUri)
927
+ .map(async (address) => [
928
+ address,
929
+ await getTokenLogoUri(c, { address, chainId }).catch(() => undefined),
930
+ ])))
931
+ : []);
932
+ const tokens = new Map();
933
+ for (const [address, metadata] of metadataByAddress) {
934
+ if (!metadata)
935
+ continue;
936
+ tokens.set(address, {
937
+ address,
938
+ currency: metadata.currency,
939
+ decimals: metadata.decimals,
940
+ id: address,
941
+ logoUri: includeLogoUri
942
+ ? (logos.get(address) ??
943
+ snapshot?.byAddress.get(address)?.logoUri ??
944
+ metadata.logoUri ??
945
+ onchainLogos.get(address))
946
+ : undefined,
947
+ name: metadata.name,
948
+ symbol: metadata.symbol,
949
+ verified: includeVerified ? snapshot?.byAddress.has(address) : undefined,
950
+ });
951
+ }
952
+ return tokens;
953
+ }
954
+ function getTokenLogoUri(c, options) {
955
+ const { address, chainId } = options;
956
+ return Store.memoize(async () => (await c.get('getClient')(chainId).readContract({
957
+ abi: Abis.tip20,
958
+ address,
959
+ functionName: 'logoURI',
960
+ })) || null, {
961
+ key: `token:v1:${chainId}:${address}:logo-uri`,
962
+ store: c.get('store'),
963
+ ttl: Ttl.minutes(1),
964
+ }).then((logoUri) => logoUri ?? undefined);
965
+ }
885
966
  /**
886
967
  * Resolves a token's on-chain metadata (`name`/`symbol`/`decimals`/`currency`/
887
968
  * `totalSupply`) via a single `token.getMetadata` RPC, memoized under the shared
@@ -894,7 +975,6 @@ export function getTokenMetadata(c, options) {
894
975
  const getClient = c.get('getClient');
895
976
  const store = c.get('store');
896
977
  return Store.memoize(async () => {
897
- // TODO(viem): Flatten concurrent metadata multicalls before encoding aggregate3 calldata.
898
978
  const fresh = await getClient(chainId).token.getMetadata({ token: address });
899
979
  return {
900
980
  currency: fresh.currency,
@@ -985,7 +1065,8 @@ async function fetchExternalLogo(uri) {
985
1065
  return undefined;
986
1066
  if (url.protocol !== 'http:' && url.protocol !== 'https:' && url.protocol !== 'data:')
987
1067
  return undefined;
988
- if ((url.protocol === 'http:' || url.protocol === 'https:') && isBlockedHost(url.hostname))
1068
+ if ((url.protocol === 'http:' || url.protocol === 'https:') &&
1069
+ ExternalLogo.isBlockedHost(url.hostname))
989
1070
  return undefined;
990
1071
  const response = await fetch(url, {
991
1072
  headers: { accept: 'image/png,image/jpeg,image/webp,image/gif,image/avif,image/*;q=0.8' },
@@ -1043,35 +1124,39 @@ async function readBodyWithLimit(body, limit) {
1043
1124
  }
1044
1125
  return buffer;
1045
1126
  }
1046
- // Blocks hosts that resolve to loopback/private/link-local space, including the
1047
- // cloud metadata IP. Hostnames that are not literal IPs are allowed (we cannot
1048
- // resolve DNS here); the `redirect: 'manual'` policy in `fetchExternalLogo`
1049
- // prevents a public host from bouncing us into private space.
1050
- function isBlockedHost(hostname) {
1051
- const host = hostname.toLowerCase().replace(/^\[|\]$/g, '');
1052
- if (host === '' || host === 'localhost' || host.endsWith('.localhost'))
1053
- return true;
1054
- if (host === '::1' || host === '::')
1055
- return true;
1056
- if (host.startsWith('fc') || host.startsWith('fd') || host.startsWith('fe80:'))
1057
- return true;
1058
- const ipv4 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(host);
1059
- if (ipv4) {
1060
- const a = Number(ipv4[1]);
1061
- const b = Number(ipv4[2]);
1062
- if (a === 0 || a === 10 || a === 127)
1063
- return true;
1064
- if (a === 169 && b === 254)
1065
- return true;
1066
- if (a === 172 && b >= 16 && b <= 31)
1127
+ var ExternalLogo;
1128
+ (function (ExternalLogo) {
1129
+ // Blocks hosts that resolve to loopback/private/link-local space, including the
1130
+ // cloud metadata IP. Hostnames that are not literal IPs are allowed (we cannot
1131
+ // resolve DNS here); `redirect: 'manual'` prevents a public host from bouncing
1132
+ // into private space.
1133
+ function isBlockedHost(hostname) {
1134
+ const host = hostname.toLowerCase().replace(/^\[|\]$/g, '');
1135
+ if (host === '' || host === 'localhost' || host.endsWith('.localhost'))
1067
1136
  return true;
1068
- if (a === 192 && b === 168)
1137
+ if (host === '::1' || host === '::')
1069
1138
  return true;
1070
- if (a === 100 && b >= 64 && b <= 127)
1139
+ if (host.startsWith('fc') || host.startsWith('fd') || host.startsWith('fe80:'))
1071
1140
  return true;
1141
+ const ipv4 = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(host);
1142
+ if (ipv4) {
1143
+ const a = Number(ipv4[1]);
1144
+ const b = Number(ipv4[2]);
1145
+ if (a === 0 || a === 10 || a === 127)
1146
+ return true;
1147
+ if (a === 169 && b === 254)
1148
+ return true;
1149
+ if (a === 172 && b >= 16 && b <= 31)
1150
+ return true;
1151
+ if (a === 192 && b === 168)
1152
+ return true;
1153
+ if (a === 100 && b >= 64 && b <= 127)
1154
+ return true;
1155
+ }
1156
+ return false;
1072
1157
  }
1073
- return false;
1074
- }
1158
+ ExternalLogo.isBlockedHost = isBlockedHost;
1159
+ })(ExternalLogo || (ExternalLogo = {}));
1075
1160
  async function getTokenLogosByAddress(c, options) {
1076
1161
  const { addresses, chainId } = options;
1077
1162
  // Curated R2 icons take precedence (our override for tokens that have no
@@ -1198,45 +1283,46 @@ function getTransferStats(c, options) {
1198
1283
  const store = c.get('store');
1199
1284
  const tidx = c.get('getTidx')(chainId);
1200
1285
  return Store.memoize(async () => {
1201
- try {
1202
- // Lifetime `Transfer` statistics for the token, aggregated over the
1203
- // raw `logs` event stream by emitting contract. The inline query is
1204
- // cast to `string` so TIDX treats it as a dynamic ClickHouse query
1205
- // that needs no event signature for the `logs` table.
1206
- const result = await tidx.fetch({
1207
- chainId,
1208
- engine: 'clickhouse',
1209
- query: `
1210
- SELECT count() AS transfer_count, min(block_timestamp) AS first_at, max(block_timestamp) AS last_at
1211
- FROM logs
1212
- WHERE address = '${address}' AND selector = '${transferTopic}'
1213
- `,
1214
- });
1215
- const row = result.rows[0];
1216
- // Persist `null` (not `undefined`) so "no transfer data" survives the
1217
- // cache round-trip without being mistaken for a miss.
1218
- const count = Value.toNumber(row?.['transfer_count']);
1219
- if (count === undefined)
1220
- return null;
1221
- // A zero count comes back with ClickHouse epoch-default (1970)
1222
- // `min`/`max` aggregates; report explicit nulls instead.
1223
- if (count === 0)
1224
- return { count: 0, firstAt: null, lastAt: null };
1225
- // ClickHouse formats timestamps as naive-UTC `YYYY-MM-DD HH:MM:SS.sss`;
1226
- // `Value.toIsoDateTime` normalizes them to strict ISO 8601 UTC.
1227
- return {
1228
- count,
1229
- firstAt: Value.toIsoDateTime(row?.['first_at']) ?? null,
1230
- lastAt: Value.toIsoDateTime(row?.['last_at']) ?? null,
1231
- };
1232
- }
1233
- catch {
1234
- // Degrade gracefully when transfer data is unavailable (e.g. the
1235
- // indexer cannot answer the aggregation, or the request is rate
1236
- // limited) so token metadata still resolves.
1237
- return null;
1238
- }
1239
- }, { key: `token:v1:${chainId}:${address}:transfer_stats`, store, ttl: Ttl.minutes(5) });
1286
+ // Lifetime `Transfer` statistics as three primary-key probes instead of
1287
+ // one full aggregation: `count()` is index-counted and first/last read
1288
+ // in `block_num` order, keeping high-volume tokens under the indexer's
1289
+ // execution cap. The inline query is cast to `string` so TIDX treats it
1290
+ // as a dynamic ClickHouse query that needs no event signature for the
1291
+ // `logs` table.
1292
+ const result = await tidx.fetch({
1293
+ chainId,
1294
+ engine: 'clickhouse',
1295
+ query: `
1296
+ SELECT
1297
+ (SELECT count() FROM logs WHERE address = '${address}' AND selector = '${transferTopic}') AS transfer_count,
1298
+ (SELECT block_timestamp FROM logs WHERE address = '${address}' AND selector = '${transferTopic}' ORDER BY block_num ASC LIMIT 1) AS first_at,
1299
+ (SELECT block_timestamp FROM logs WHERE address = '${address}' AND selector = '${transferTopic}' ORDER BY block_num DESC LIMIT 1) AS last_at
1300
+ `,
1301
+ });
1302
+ const row = result.rows[0];
1303
+ const count = Value.toNumber(row?.['transfer_count']);
1304
+ // A malformed row is an upstream failure; degrade like any other error
1305
+ // rather than caching a bogus value.
1306
+ if (count === undefined)
1307
+ throw new Error('malformed transfer stats row');
1308
+ // Empty first/last probes can render as epoch defaults depending on
1309
+ // engine settings; pin the documented shape for zero-transfer tokens.
1310
+ if (count === 0)
1311
+ return { count: 0, firstAt: null, lastAt: null };
1312
+ // ClickHouse formats timestamps as naive-UTC `YYYY-MM-DD HH:MM:SS.sss`;
1313
+ // `Value.toIsoDateTime` normalizes them to strict ISO 8601 UTC.
1314
+ return {
1315
+ count,
1316
+ firstAt: Value.toIsoDateTime(row?.['first_at']) ?? null,
1317
+ lastAt: Value.toIsoDateTime(row?.['last_at']) ?? null,
1318
+ };
1319
+ }, { key: `token:v1:${chainId}:${address}:transfer_stats`, store, ttl: Ttl.minutes(5) }).catch(() => {
1320
+ // Degrade gracefully so token metadata still resolves. Failures are not
1321
+ // memoized and the degraded response stays out of the response cache, so
1322
+ // the next request retries instead of seeing a blank field for the TTL.
1323
+ Cache.setPolicy(c, Cache.policies.noStore);
1324
+ return null;
1325
+ });
1240
1326
  }
1241
1327
  async function getTransferStatsByAddress(c, options) {
1242
1328
  const addresses = Array.from(new Set(options.addresses.map((address) => address.toLowerCase())))
@@ -1247,42 +1333,58 @@ async function getTransferStatsByAddress(c, options) {
1247
1333
  if (addresses.length === 0)
1248
1334
  return {};
1249
1335
  return Store.memoize(async () => {
1250
- try {
1251
- // Batched form of `getTransferStats` for a page of tokens: one grouped
1252
- // aggregation over the raw `logs` stream instead of N per-token scans.
1253
- // Tokens with no `Transfer` events emit no group and are omitted.
1254
- const result = await tidx.fetch({
1336
+ // Batched form of `getTransferStats`: the same three primary-key probes
1337
+ // per token, stitched with UNION ALL in chunks of three (the TIDX proxy
1338
+ // rejects deeper subquery nesting). Zero-transfer tokens surface
1339
+ // `(0, null, null)` rather than dropping out.
1340
+ const chunks = [];
1341
+ for (let i = 0; i < addresses.length; i += 3)
1342
+ chunks.push(addresses.slice(i, i + 3));
1343
+ const statsByAddress = {};
1344
+ // Waves of four chunks in flight: the indexer rejects wide bursts of
1345
+ // concurrent queries, and a 200-token page would otherwise fan out ~67
1346
+ // requests at once.
1347
+ for (let i = 0; i < chunks.length; i += 4) {
1348
+ const results = await Promise.all(chunks.slice(i, i + 4).map((group) => tidx.fetch({
1255
1349
  chainId: options.chainId,
1256
1350
  engine: 'clickhouse',
1257
- query: `
1258
- SELECT address, count() AS transfer_count, min(block_timestamp) AS first_at, max(block_timestamp) AS last_at
1259
- FROM logs
1260
- WHERE selector = '${transferTopic}' AND address IN (${addresses.map((address) => `'${address}'`).join(', ')})
1261
- GROUP BY address
1262
- `,
1263
- });
1264
- const statsByAddress = {};
1265
- for (const row of result.rows) {
1351
+ query: group
1352
+ .map((address) => `
1353
+ SELECT
1354
+ '${address}' AS address,
1355
+ (SELECT count() FROM logs WHERE address = '${address}' AND selector = '${transferTopic}') AS transfer_count,
1356
+ (SELECT block_timestamp FROM logs WHERE address = '${address}' AND selector = '${transferTopic}' ORDER BY block_num ASC LIMIT 1) AS first_at,
1357
+ (SELECT block_timestamp FROM logs WHERE address = '${address}' AND selector = '${transferTopic}' ORDER BY block_num DESC LIMIT 1) AS last_at`)
1358
+ .join('\n UNION ALL'),
1359
+ })));
1360
+ for (const row of results.flatMap((result) => result.rows)) {
1266
1361
  const address = Schema.Address.safeParse(row['address']);
1267
1362
  const count = Value.toNumber(row['transfer_count']);
1268
1363
  if (!address.success || count === undefined)
1269
1364
  continue;
1270
- statsByAddress[address.data] = {
1271
- count,
1272
- firstAt: Value.toIsoDateTime(row['first_at']) ?? null,
1273
- lastAt: Value.toIsoDateTime(row['last_at']) ?? null,
1274
- };
1365
+ // Empty first/last probes can render as epoch defaults depending on
1366
+ // engine settings; pin the documented shape for zero-transfer tokens.
1367
+ statsByAddress[address.data] =
1368
+ count === 0
1369
+ ? { count: 0, firstAt: null, lastAt: null }
1370
+ : {
1371
+ count,
1372
+ firstAt: Value.toIsoDateTime(row['first_at']) ?? null,
1373
+ lastAt: Value.toIsoDateTime(row['last_at']) ?? null,
1374
+ };
1275
1375
  }
1276
- return statsByAddress;
1277
- }
1278
- catch {
1279
- // Degrade gracefully so the token page still resolves without stats.
1280
- return {};
1281
1376
  }
1377
+ return statsByAddress;
1282
1378
  }, {
1283
1379
  key: `token:v1:${options.chainId}:transfer_stats:${addresses.join(',')}`,
1284
1380
  store,
1285
1381
  ttl: Ttl.minutes(5),
1382
+ }).catch(() => {
1383
+ // Degrade gracefully so the token page still resolves without stats.
1384
+ // Failures are not memoized and the degraded response stays out of the
1385
+ // response cache, so the next request retries.
1386
+ Cache.setPolicy(c, Cache.policies.noStore);
1387
+ return {};
1286
1388
  });
1287
1389
  }
1288
1390
  function getTokenHolders(c, options) {
@@ -1402,6 +1504,8 @@ export async function getTokenCreatedAtByAddress(c, options) {
1402
1504
  try {
1403
1505
  const result = await tidx.fetch({
1404
1506
  chainId: options.chainId,
1507
+ // TODO: Remove the explicit engine after TIDX 1.0 is released.
1508
+ engine: 'clickhouse',
1405
1509
  query: `
1406
1510
  SELECT token, block_timestamp
1407
1511
  FROM tokencreated
@@ -1487,6 +1591,8 @@ async function getTokenCreatedByAddress(c, options) {
1487
1591
  // needs no event signature for the `logs` table.
1488
1592
  const result = await tidx.fetch({
1489
1593
  chainId: options.chainId,
1594
+ // TODO: Remove the explicit engine after TIDX 1.0 is released.
1595
+ engine: 'clickhouse',
1490
1596
  query: `
1491
1597
  SELECT topic1, data, block_timestamp
1492
1598
  FROM logs
@@ -1781,7 +1887,8 @@ async function getTokens(c, options) {
1781
1887
  nextCursor: chunk.nextCursor,
1782
1888
  };
1783
1889
  }
1784
- function isTokenNotFound(cause) {
1890
+ /** Matches metadata-read failures for addresses that are not TIP-20 tokens. */
1891
+ export function isTokenNotFound(cause) {
1785
1892
  if (cause instanceof ContractFunctionExecutionError)
1786
1893
  return true;
1787
1894
  if (cause instanceof Error && cause.message.includes('invalid tip20 address'))