tapimo 0.7.1 → 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 (681) 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 +99 -43
  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 +12125 -7913
  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 +1625 -718
  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 +108 -108
  78. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  79. package/dist/apps/data/routes/fee-amm.js +59 -8
  80. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  81. package/dist/apps/data/routes/funding.d.ts +4092 -387
  82. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  83. package/dist/apps/data/routes/funding.js +1403 -256
  84. package/dist/apps/data/routes/funding.js.map +1 -1
  85. package/dist/apps/data/routes/indexer.d.ts +30 -30
  86. package/dist/apps/data/routes/indexer.d.ts.map +1 -1
  87. package/dist/apps/data/routes/indexer.js +19 -2
  88. package/dist/apps/data/routes/indexer.js.map +1 -1
  89. package/dist/apps/data/routes/receipts.d.ts +263 -263
  90. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  91. package/dist/apps/data/routes/receipts.js +11 -11
  92. package/dist/apps/data/routes/receipts.js.map +1 -1
  93. package/dist/apps/data/routes/rpc.d.ts +5 -5
  94. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  95. package/dist/apps/data/routes/rpc.js +211 -22
  96. package/dist/apps/data/routes/rpc.js.map +1 -1
  97. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  98. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
  99. package/dist/apps/data/routes/tokenlist.js +39 -8
  100. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  101. package/dist/apps/data/routes/tokens.d.ts +114 -86
  102. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  103. package/dist/apps/data/routes/tokens.js +194 -91
  104. package/dist/apps/data/routes/tokens.js.map +1 -1
  105. package/dist/apps/data/routes/transactions.d.ts +53 -53
  106. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  107. package/dist/apps/data/routes/transactions.js +78 -39
  108. package/dist/apps/data/routes/transactions.js.map +1 -1
  109. package/dist/apps/data/routes/transfers.d.ts +76 -27
  110. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  111. package/dist/apps/data/routes/transfers.js +165 -67
  112. package/dist/apps/data/routes/transfers.js.map +1 -1
  113. package/dist/apps/data/routes/valuation.d.ts +42 -42
  114. package/dist/apps/data/routes/valuation.js +2 -2
  115. package/dist/apps/data/routes/valuation.js.map +1 -1
  116. package/dist/apps/data/routes/webhooks.d.ts +369 -367
  117. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  118. package/dist/apps/data/routes/webhooks.js +161 -59
  119. package/dist/apps/data/routes/webhooks.js.map +1 -1
  120. package/dist/apps/data/routes/zones.d.ts +281 -0
  121. package/dist/apps/data/routes/zones.d.ts.map +1 -0
  122. package/dist/apps/data/routes/zones.js +252 -0
  123. package/dist/apps/data/routes/zones.js.map +1 -0
  124. package/dist/apps/docs/reference.js +6 -5
  125. package/dist/apps/docs/reference.js.map +1 -1
  126. package/dist/apps/index.d.ts +2 -1
  127. package/dist/apps/index.d.ts.map +1 -1
  128. package/dist/apps/index.js +2 -1
  129. package/dist/apps/index.js.map +1 -1
  130. package/dist/apps/management/App.d.ts +670 -670
  131. package/dist/apps/management/Billing.d.ts +8 -0
  132. package/dist/apps/management/Billing.d.ts.map +1 -1
  133. package/dist/apps/management/Billing.js +12 -0
  134. package/dist/apps/management/Billing.js.map +1 -1
  135. package/dist/apps/management/Error.d.ts +12 -0
  136. package/dist/apps/management/Error.d.ts.map +1 -0
  137. package/dist/apps/management/Error.js +10 -0
  138. package/dist/apps/management/Error.js.map +1 -0
  139. package/dist/apps/management/routes/api-keys.d.ts +5 -5
  140. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  141. package/dist/apps/management/routes/api-keys.js +2 -8
  142. package/dist/apps/management/routes/api-keys.js.map +1 -1
  143. package/dist/apps/management/routes/billing.d.ts +119 -119
  144. package/dist/apps/management/routes/faucet.d.ts +2 -2
  145. package/dist/apps/management/routes/invitations.d.ts +62 -62
  146. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  147. package/dist/apps/management/routes/invitations.js +4 -10
  148. package/dist/apps/management/routes/invitations.js.map +1 -1
  149. package/dist/apps/management/routes/invite-links.d.ts +30 -30
  150. package/dist/apps/management/routes/me.d.ts +6 -6
  151. package/dist/apps/management/routes/members.d.ts +2 -2
  152. package/dist/apps/management/routes/orgs.d.ts +48 -48
  153. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  154. package/dist/apps/management/routes/orgs.js +2 -8
  155. package/dist/apps/management/routes/orgs.js.map +1 -1
  156. package/dist/apps/management/routes/projects.d.ts +9 -9
  157. package/dist/apps/management/routes/scopes.js +2 -2
  158. package/dist/apps/management/routes/scopes.js.map +1 -1
  159. package/dist/apps/management/routes/verified-token-requests.d.ts +36 -36
  160. package/dist/apps/management/routes/webhooks.d.ts +50 -50
  161. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  162. package/dist/apps/management/routes/webhooks.js +15 -3
  163. package/dist/apps/management/routes/webhooks.js.map +1 -1
  164. package/dist/apps/mpp/App.d.ts +55 -56
  165. package/dist/apps/mpp/App.d.ts.map +1 -1
  166. package/dist/apps/mpp/App.js +192 -27
  167. package/dist/apps/mpp/App.js.map +1 -1
  168. package/dist/apps/mpp/Mpp.d.ts +0 -20
  169. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  170. package/dist/apps/mpp/Mpp.js +0 -24
  171. package/dist/apps/mpp/Mpp.js.map +1 -1
  172. package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
  173. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
  174. package/dist/apps/mpp/internal/Adapter.js +66 -0
  175. package/dist/apps/mpp/internal/Adapter.js.map +1 -0
  176. package/dist/apps/mpp/internal/Error.d.ts +4 -0
  177. package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
  178. package/dist/apps/mpp/internal/Error.js +41 -0
  179. package/dist/apps/mpp/internal/Error.js.map +1 -0
  180. package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
  181. package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
  182. package/dist/apps/mpp/internal/Idempotency.js +28 -0
  183. package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
  184. package/dist/apps/mpp/internal/Policy.d.ts +46 -0
  185. package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
  186. package/dist/apps/mpp/internal/Policy.js +57 -0
  187. package/dist/apps/mpp/internal/Policy.js.map +1 -0
  188. package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
  189. package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
  190. package/dist/apps/mpp/internal/ScreenManager.js +18 -0
  191. package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
  192. package/dist/apps/mpp/internal/Screening.d.ts +35 -0
  193. package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
  194. package/dist/apps/mpp/internal/Screening.js +20 -0
  195. package/dist/apps/mpp/internal/Screening.js.map +1 -0
  196. package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
  197. package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
  198. package/dist/apps/mpp/internal/Sponsorship.js +103 -0
  199. package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
  200. package/dist/apps/mpp/internal/Utils.d.ts +7 -0
  201. package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
  202. package/dist/apps/mpp/internal/Utils.js +24 -0
  203. package/dist/apps/mpp/internal/Utils.js.map +1 -0
  204. package/dist/apps/relay/App.js +183 -23
  205. package/dist/apps/relay/App.js.map +1 -1
  206. package/dist/apps/relay/Sponsorships.d.ts +4 -0
  207. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  208. package/dist/apps/relay/Sponsorships.js +15 -6
  209. package/dist/apps/relay/Sponsorships.js.map +1 -1
  210. package/dist/db/Db.d.ts +20 -0
  211. package/dist/db/Db.d.ts.map +1 -1
  212. package/dist/db/Db.js +342 -0
  213. package/dist/db/Db.js.map +1 -1
  214. package/dist/db/Schema.d.ts +921 -1
  215. package/dist/db/Schema.d.ts.map +1 -1
  216. package/dist/db/Schema.js +269 -1
  217. package/dist/db/Schema.js.map +1 -1
  218. package/dist/db/tables/earnVaults.d.ts +68 -0
  219. package/dist/db/tables/earnVaults.d.ts.map +1 -0
  220. package/dist/db/tables/earnVaults.js +72 -0
  221. package/dist/db/tables/earnVaults.js.map +1 -0
  222. package/dist/db/tables/fundingCatalog.d.ts +56 -0
  223. package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
  224. package/dist/db/tables/fundingCatalog.js +85 -0
  225. package/dist/db/tables/fundingCatalog.js.map +1 -0
  226. package/dist/db/tables/fundingDepositAddresses.d.ts +159 -0
  227. package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
  228. package/dist/db/tables/fundingDepositAddresses.js +206 -0
  229. package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
  230. package/dist/db/tables/fundingDeposits.d.ts +115 -0
  231. package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
  232. package/dist/db/tables/fundingDeposits.js +100 -0
  233. package/dist/db/tables/fundingDeposits.js.map +1 -0
  234. package/dist/db/tables/fundingIdempotency.d.ts +91 -0
  235. package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
  236. package/dist/db/tables/fundingIdempotency.js +103 -0
  237. package/dist/db/tables/fundingIdempotency.js.map +1 -0
  238. package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
  239. package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
  240. package/dist/db/tables/fundingTransferEvents.js +18 -0
  241. package/dist/db/tables/fundingTransferEvents.js.map +1 -0
  242. package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
  243. package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
  244. package/dist/db/tables/fundingTransferTransactions.js +27 -0
  245. package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
  246. package/dist/db/tables/fundingTransfers.d.ts +82 -0
  247. package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
  248. package/dist/db/tables/fundingTransfers.js +89 -0
  249. package/dist/db/tables/fundingTransfers.js.map +1 -0
  250. package/dist/db/tables/organizations.d.ts +8 -0
  251. package/dist/db/tables/organizations.d.ts.map +1 -1
  252. package/dist/db/tables/organizations.js +16 -0
  253. package/dist/db/tables/organizations.js.map +1 -1
  254. package/dist/db/tables/projects.d.ts +8 -0
  255. package/dist/db/tables/projects.d.ts.map +1 -1
  256. package/dist/db/tables/projects.js +16 -0
  257. package/dist/db/tables/projects.js.map +1 -1
  258. package/dist/db/tables/requestUsage.d.ts +13 -0
  259. package/dist/db/tables/requestUsage.d.ts.map +1 -1
  260. package/dist/db/tables/requestUsage.js +16 -0
  261. package/dist/db/tables/requestUsage.js.map +1 -1
  262. package/dist/db/tables/sponsoredTransactions.d.ts +2 -2
  263. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  264. package/dist/db/tables/sponsoredTransactions.js +1 -1
  265. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  266. package/dist/db/tables/users.d.ts +8 -0
  267. package/dist/db/tables/users.d.ts.map +1 -1
  268. package/dist/db/tables/users.js +16 -0
  269. package/dist/db/tables/users.js.map +1 -1
  270. package/dist/db/tables/verifiedTokens.d.ts +14 -7
  271. package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
  272. package/dist/db/tables/verifiedTokens.js +9 -7
  273. package/dist/db/tables/verifiedTokens.js.map +1 -1
  274. package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
  275. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  276. package/dist/db/tables/webhookSubscriptions.js +24 -3
  277. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  278. package/dist/handlers/relay.js +108 -108
  279. package/dist/handlers/relay.js.map +1 -1
  280. package/dist/internal/Auth.d.ts +26 -0
  281. package/dist/internal/Auth.d.ts.map +1 -1
  282. package/dist/internal/Auth.js +35 -2
  283. package/dist/internal/Auth.js.map +1 -1
  284. package/dist/internal/Cache.d.ts.map +1 -1
  285. package/dist/internal/Cache.js +16 -10
  286. package/dist/internal/Cache.js.map +1 -1
  287. package/dist/internal/Cursor.js +1 -1
  288. package/dist/internal/Cursor.js.map +1 -1
  289. package/dist/internal/EarnRates.d.ts +89 -0
  290. package/dist/internal/EarnRates.d.ts.map +1 -0
  291. package/dist/internal/EarnRates.js +266 -0
  292. package/dist/internal/EarnRates.js.map +1 -0
  293. package/dist/internal/EarnVaults.d.ts +171 -0
  294. package/dist/internal/EarnVaults.d.ts.map +1 -0
  295. package/dist/internal/EarnVaults.js +547 -0
  296. package/dist/internal/EarnVaults.js.map +1 -0
  297. package/dist/internal/EdgeCache.d.ts +8 -1
  298. package/dist/internal/EdgeCache.d.ts.map +1 -1
  299. package/dist/internal/EdgeCache.js +33 -7
  300. package/dist/internal/EdgeCache.js.map +1 -1
  301. package/dist/internal/Id.d.ts +11 -0
  302. package/dist/internal/Id.d.ts.map +1 -1
  303. package/dist/internal/Id.js +13 -0
  304. package/dist/internal/Id.js.map +1 -1
  305. package/dist/internal/Idempotency.d.ts +83 -0
  306. package/dist/internal/Idempotency.d.ts.map +1 -0
  307. package/dist/internal/Idempotency.js +113 -0
  308. package/dist/internal/Idempotency.js.map +1 -0
  309. package/dist/internal/Log.d.ts +64 -9
  310. package/dist/internal/Log.d.ts.map +1 -1
  311. package/dist/internal/Log.js +29 -7
  312. package/dist/internal/Log.js.map +1 -1
  313. package/dist/internal/MetricSink.d.ts.map +1 -1
  314. package/dist/internal/MetricSink.js +47 -1
  315. package/dist/internal/MetricSink.js.map +1 -1
  316. package/dist/internal/OpenApi.d.ts +1 -1
  317. package/dist/internal/OpenApi.d.ts.map +1 -1
  318. package/dist/internal/OpenApi.js +3 -0
  319. package/dist/internal/OpenApi.js.map +1 -1
  320. package/dist/internal/Provider.d.ts +14 -0
  321. package/dist/internal/Provider.d.ts.map +1 -0
  322. package/dist/internal/Provider.js +5 -0
  323. package/dist/internal/Provider.js.map +1 -0
  324. package/dist/internal/Schema.d.ts +6 -1
  325. package/dist/internal/Schema.d.ts.map +1 -1
  326. package/dist/internal/Schema.js +20 -11
  327. package/dist/internal/Schema.js.map +1 -1
  328. package/dist/internal/Store.d.ts +6 -0
  329. package/dist/internal/Store.d.ts.map +1 -1
  330. package/dist/internal/Store.js +35 -0
  331. package/dist/internal/Store.js.map +1 -1
  332. package/dist/internal/Tidx.d.ts +43 -24
  333. package/dist/internal/Tidx.d.ts.map +1 -1
  334. package/dist/internal/Tidx.js +79 -11
  335. package/dist/internal/Tidx.js.map +1 -1
  336. package/dist/internal/Viem.d.ts +82 -65
  337. package/dist/internal/Viem.d.ts.map +1 -1
  338. package/dist/internal/Viem.js +83 -12
  339. package/dist/internal/Viem.js.map +1 -1
  340. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  341. package/dist/internal/WebhookDestination.js +34 -28
  342. package/dist/internal/WebhookDestination.js.map +1 -1
  343. package/dist/internal/Webhooks.d.ts +9 -0
  344. package/dist/internal/Webhooks.d.ts.map +1 -1
  345. package/dist/internal/Webhooks.js +15 -10
  346. package/dist/internal/Webhooks.js.map +1 -1
  347. package/dist/internal/exchange/Provider.d.ts +219 -0
  348. package/dist/internal/exchange/Provider.d.ts.map +1 -0
  349. package/dist/internal/exchange/Provider.js +117 -0
  350. package/dist/internal/exchange/Provider.js.map +1 -0
  351. package/dist/internal/exchange/index.d.ts +2 -0
  352. package/dist/internal/exchange/index.d.ts.map +1 -0
  353. package/dist/internal/exchange/index.js +2 -0
  354. package/dist/internal/exchange/index.js.map +1 -0
  355. package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
  356. package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
  357. package/dist/internal/exchange/providers/uniswap.js +553 -0
  358. package/dist/internal/exchange/providers/uniswap.js.map +1 -0
  359. package/dist/internal/funding/Action.d.ts +55 -0
  360. package/dist/internal/funding/Action.d.ts.map +1 -0
  361. package/dist/internal/funding/Action.js +74 -0
  362. package/dist/internal/funding/Action.js.map +1 -0
  363. package/dist/internal/funding/Catalog.d.ts +107 -0
  364. package/dist/internal/funding/Catalog.d.ts.map +1 -0
  365. package/dist/internal/funding/Catalog.js +270 -0
  366. package/dist/internal/funding/Catalog.js.map +1 -0
  367. package/dist/internal/funding/Chain.d.ts +76 -0
  368. package/dist/internal/funding/Chain.d.ts.map +1 -0
  369. package/dist/internal/funding/Chain.js +38 -0
  370. package/dist/internal/funding/Chain.js.map +1 -0
  371. package/dist/internal/funding/Deposit.d.ts +366 -0
  372. package/dist/internal/funding/Deposit.d.ts.map +1 -0
  373. package/dist/internal/funding/Deposit.js +286 -0
  374. package/dist/internal/funding/Deposit.js.map +1 -0
  375. package/dist/internal/funding/DepositAddress.d.ts +345 -0
  376. package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
  377. package/dist/internal/funding/DepositAddress.js +189 -0
  378. package/dist/internal/funding/DepositAddress.js.map +1 -0
  379. package/dist/internal/funding/Evidence.d.ts +52 -0
  380. package/dist/internal/funding/Evidence.d.ts.map +1 -0
  381. package/dist/internal/funding/Evidence.js +314 -0
  382. package/dist/internal/funding/Evidence.js.map +1 -0
  383. package/dist/internal/funding/Provider.d.ts +1186 -0
  384. package/dist/internal/funding/Provider.d.ts.map +1 -0
  385. package/dist/internal/funding/Provider.js +1081 -0
  386. package/dist/internal/funding/Provider.js.map +1 -0
  387. package/dist/internal/funding/Reconciliation.d.ts +113 -0
  388. package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
  389. package/dist/internal/funding/Reconciliation.js +676 -0
  390. package/dist/internal/funding/Reconciliation.js.map +1 -0
  391. package/dist/internal/funding/Route.d.ts +21 -0
  392. package/dist/internal/funding/Route.d.ts.map +1 -0
  393. package/dist/internal/funding/Route.js +5 -0
  394. package/dist/internal/funding/Route.js.map +1 -0
  395. package/dist/internal/funding/Subsidy.d.ts +113 -0
  396. package/dist/internal/funding/Subsidy.d.ts.map +1 -0
  397. package/dist/internal/funding/Subsidy.js +138 -0
  398. package/dist/internal/funding/Subsidy.js.map +1 -0
  399. package/dist/internal/funding/Token.d.ts +41 -0
  400. package/dist/internal/funding/Token.d.ts.map +1 -0
  401. package/dist/internal/funding/Token.js +22 -0
  402. package/dist/internal/funding/Token.js.map +1 -0
  403. package/dist/internal/funding/Transfer.d.ts +643 -0
  404. package/dist/internal/funding/Transfer.d.ts.map +1 -0
  405. package/dist/internal/funding/Transfer.js +332 -0
  406. package/dist/internal/funding/Transfer.js.map +1 -0
  407. package/dist/internal/funding/index.d.ts +13 -0
  408. package/dist/internal/funding/index.d.ts.map +1 -0
  409. package/dist/internal/funding/index.js +13 -0
  410. package/dist/internal/funding/index.js.map +1 -0
  411. package/dist/internal/funding/providers/across.d.ts +21 -0
  412. package/dist/internal/funding/providers/across.d.ts.map +1 -0
  413. package/dist/internal/funding/providers/across.js +117 -0
  414. package/dist/internal/funding/providers/across.js.map +1 -0
  415. package/dist/internal/funding/providers/relay.d.ts +46 -0
  416. package/dist/internal/funding/providers/relay.d.ts.map +1 -0
  417. package/dist/internal/funding/providers/relay.js +464 -0
  418. package/dist/internal/funding/providers/relay.js.map +1 -0
  419. package/dist/internal/funding/providers/rhino.d.ts +15 -0
  420. package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
  421. package/dist/internal/funding/providers/rhino.js +116 -0
  422. package/dist/internal/funding/providers/rhino.js.map +1 -0
  423. package/dist/internal/funding/providers/squid.d.ts +19 -0
  424. package/dist/internal/funding/providers/squid.d.ts.map +1 -0
  425. package/dist/internal/funding/providers/squid.js +120 -0
  426. package/dist/internal/funding/providers/squid.js.map +1 -0
  427. package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
  428. package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
  429. package/dist/internal/funding/providers/symbiosis.js +176 -0
  430. package/dist/internal/funding/providers/symbiosis.js.map +1 -0
  431. package/dist/internal/index.d.ts +5 -1
  432. package/dist/internal/index.d.ts.map +1 -1
  433. package/dist/internal/index.js +5 -1
  434. package/dist/internal/index.js.map +1 -1
  435. package/dist/internal/webhookDestinations/url.js +61 -57
  436. package/dist/internal/webhookDestinations/url.js.map +1 -1
  437. package/dist/providers/index.d.ts +43 -0
  438. package/dist/providers/index.d.ts.map +1 -0
  439. package/dist/providers/index.js +19 -0
  440. package/dist/providers/index.js.map +1 -0
  441. package/package.json +9 -4
  442. package/src/ApiKeys.test.ts +11 -7
  443. package/src/ApiKeys.ts +37 -9
  444. package/src/App.test.ts +85 -10
  445. package/src/App.ts +224 -137
  446. package/src/Assets.ts +29 -4
  447. package/src/Client.test-d.ts +650 -30
  448. package/src/Scope.test.ts +19 -0
  449. package/src/Scope.ts +28 -11
  450. package/src/Webhooks.test.ts +25 -0
  451. package/src/Webhooks.ts +1 -1
  452. package/src/admin/App.test.ts +9 -2
  453. package/src/admin/App.ts +32 -9
  454. package/src/admin/apps/api-keys.test.ts +167 -23
  455. package/src/admin/apps/api-keys.ts +166 -28
  456. package/src/admin/apps/earn-vaults.test.ts +338 -0
  457. package/src/admin/apps/earn-vaults.ts +572 -0
  458. package/src/admin/apps/scopes.test.ts +16 -1
  459. package/src/admin/ui/plugin.ts +2 -2
  460. package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
  461. package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
  462. package/src/admin/ui/src/components/Page.tsx +1 -1
  463. package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
  464. package/src/admin/ui/src/lib/api-keys.ts +37 -7
  465. package/src/admin/ui/src/lib/client.ts +1 -1
  466. package/src/admin/ui/src/lib/config.ts +1 -1
  467. package/src/admin/ui/src/lib/early-access.ts +8 -9
  468. package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
  469. package/src/admin/ui/src/lib/format.ts +13 -0
  470. package/src/admin/ui/src/lib/organizations.test.ts +14 -4
  471. package/src/admin/ui/src/lib/organizations.ts +7 -1
  472. package/src/admin/ui/src/lib/response.ts +22 -0
  473. package/src/admin/ui/src/lib/scopes.test.ts +19 -11
  474. package/src/admin/ui/src/lib/scopes.ts +28 -7
  475. package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
  476. package/src/admin/ui/src/routeTree.gen.ts +70 -7
  477. package/src/admin/ui/src/router.tsx +2 -2
  478. package/src/admin/ui/src/routes/__root.tsx +9 -8
  479. package/src/admin/ui/src/routes/api-keys.tsx +475 -64
  480. package/src/admin/ui/src/routes/early-access.tsx +5 -12
  481. package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
  482. package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
  483. package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
  484. package/src/admin/ui/src/routes/organizations.tsx +4 -7
  485. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
  486. package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
  487. package/src/admin/ui/vite.config.ts +4 -1
  488. package/src/admin/ui.generated.ts +113 -43
  489. package/src/analytics/Analytics.test.ts +69 -10
  490. package/src/analytics/Analytics.ts +20 -1
  491. package/src/analytics/tables/requestEvents.ts +79 -37
  492. package/src/apps/Zones.test.ts +33 -0
  493. package/src/apps/Zones.ts +40 -0
  494. package/src/apps/composition.test.ts +84 -1
  495. package/src/apps/data/App.test.ts +28 -11
  496. package/src/apps/data/App.ts +96 -33
  497. package/src/apps/data/FxOracle.ts +1 -1
  498. package/src/apps/data/index.ts +0 -1
  499. package/src/apps/data/routes/activities.test.ts +82 -6
  500. package/src/apps/data/routes/activities.ts +131 -71
  501. package/src/apps/data/routes/balances.test.ts +50 -37
  502. package/src/apps/data/routes/balances.ts +5 -5
  503. package/src/apps/data/routes/blocks.test.ts +2 -0
  504. package/src/apps/data/routes/coingecko.test.ts +22 -0
  505. package/src/apps/data/routes/coingecko.ts +84 -48
  506. package/src/apps/data/routes/earn.test.ts +1108 -0
  507. package/src/apps/data/routes/earn.ts +1391 -0
  508. package/src/apps/data/routes/exchanges.test.ts +82 -33
  509. package/src/apps/data/routes/exchanges.ts +842 -227
  510. package/src/apps/data/routes/fee-amm.test.ts +4 -6
  511. package/src/apps/data/routes/fee-amm.ts +69 -12
  512. package/src/apps/data/routes/funding.test.ts +2712 -221
  513. package/src/apps/data/routes/funding.ts +1604 -387
  514. package/src/apps/data/routes/indexer.test.ts +43 -34
  515. package/src/apps/data/routes/indexer.ts +19 -2
  516. package/src/apps/data/routes/receipts.test.ts +5 -3
  517. package/src/apps/data/routes/receipts.ts +13 -11
  518. package/src/apps/data/routes/rpc.test.ts +446 -28
  519. package/src/apps/data/routes/rpc.ts +243 -25
  520. package/src/apps/data/routes/tokenlist.ts +72 -19
  521. package/src/apps/data/routes/tokens.ts +258 -86
  522. package/src/apps/data/routes/transactions.test.ts +2 -0
  523. package/src/apps/data/routes/transactions.ts +77 -42
  524. package/src/apps/data/routes/transfers.test.ts +166 -4
  525. package/src/apps/data/routes/transfers.ts +216 -78
  526. package/src/apps/data/routes/valuation.test.ts +62 -9
  527. package/src/apps/data/routes/valuation.ts +2 -2
  528. package/src/apps/data/routes/webhooks.test.ts +386 -43
  529. package/src/apps/data/routes/webhooks.ts +172 -71
  530. package/src/apps/data/routes/zones.test.ts +473 -0
  531. package/src/apps/data/routes/zones.ts +338 -0
  532. package/src/apps/docs/reference.ts +8 -6
  533. package/src/apps/index.ts +2 -1
  534. package/src/apps/management/Billing.test.ts +29 -0
  535. package/src/apps/management/Billing.ts +23 -0
  536. package/src/apps/management/Error.ts +12 -0
  537. package/src/apps/management/routes/api-keys.test.ts +5 -3
  538. package/src/apps/management/routes/api-keys.ts +2 -9
  539. package/src/apps/management/routes/invitations.ts +4 -11
  540. package/src/apps/management/routes/orgs.ts +2 -9
  541. package/src/apps/management/routes/scopes.test.ts +7 -2
  542. package/src/apps/management/routes/scopes.ts +2 -2
  543. package/src/apps/management/routes/webhooks.test.ts +6 -1
  544. package/src/apps/management/routes/webhooks.ts +15 -3
  545. package/src/apps/mpp/App.ts +276 -29
  546. package/src/apps/mpp/Mpp.test.ts +631 -26
  547. package/src/apps/mpp/Mpp.ts +0 -42
  548. package/src/apps/mpp/internal/Adapter.ts +108 -3
  549. package/src/apps/mpp/internal/Error.test.ts +33 -0
  550. package/src/apps/mpp/internal/Error.ts +44 -6
  551. package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
  552. package/src/apps/mpp/internal/Idempotency.ts +59 -5
  553. package/src/apps/mpp/internal/Policy.test.ts +122 -0
  554. package/src/apps/mpp/internal/Policy.ts +98 -0
  555. package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
  556. package/src/apps/mpp/internal/ScreenManager.ts +41 -0
  557. package/src/apps/mpp/internal/Screening.ts +40 -3
  558. package/src/apps/mpp/internal/Sponsorship.ts +144 -0
  559. package/src/apps/mpp/internal/Utils.ts +30 -0
  560. package/src/apps/relay/App.test.ts +493 -62
  561. package/src/apps/relay/App.ts +233 -23
  562. package/src/apps/relay/Sponsorships.test.ts +49 -0
  563. package/src/apps/relay/Sponsorships.ts +18 -6
  564. package/src/db/Db.ts +439 -0
  565. package/src/db/Schema.ts +325 -2
  566. package/src/db/tables/earnVaults.test.ts +185 -0
  567. package/src/db/tables/earnVaults.ts +151 -0
  568. package/src/db/tables/fundingCatalog.test.ts +108 -0
  569. package/src/db/tables/fundingCatalog.ts +157 -0
  570. package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
  571. package/src/db/tables/fundingDepositAddresses.ts +376 -0
  572. package/src/db/tables/fundingDeposits.test.ts +261 -0
  573. package/src/db/tables/fundingDeposits.ts +229 -0
  574. package/src/db/tables/fundingIdempotency.test.ts +182 -0
  575. package/src/db/tables/fundingIdempotency.ts +180 -0
  576. package/src/db/tables/fundingTransferEvents.ts +28 -0
  577. package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
  578. package/src/db/tables/fundingTransferTransactions.ts +37 -0
  579. package/src/db/tables/fundingTransfers.test.ts +89 -0
  580. package/src/db/tables/fundingTransfers.ts +153 -0
  581. package/src/db/tables/organizations.ts +16 -0
  582. package/src/db/tables/projects.ts +16 -0
  583. package/src/db/tables/requestUsage.ts +23 -0
  584. package/src/db/tables/sponsoredTransactions.test.ts +11 -0
  585. package/src/db/tables/sponsoredTransactions.ts +3 -3
  586. package/src/db/tables/users.ts +16 -0
  587. package/src/db/tables/verifiedTokens.ts +19 -14
  588. package/src/db/tables/webhookSubscriptions.ts +58 -3
  589. package/src/handlers/relay.test.ts +2 -0
  590. package/src/handlers/relay.ts +95 -99
  591. package/src/internal/Auth.test.ts +48 -0
  592. package/src/internal/Auth.ts +61 -2
  593. package/src/internal/Cache.ts +13 -9
  594. package/src/internal/Cursor.test.ts +2 -2
  595. package/src/internal/Cursor.ts +1 -1
  596. package/src/internal/EarnRates.test.ts +125 -0
  597. package/src/internal/EarnRates.ts +409 -0
  598. package/src/internal/EarnVaults.test.ts +195 -0
  599. package/src/internal/EarnVaults.ts +876 -0
  600. package/src/internal/EdgeCache.test.ts +19 -0
  601. package/src/internal/EdgeCache.ts +35 -5
  602. package/src/internal/Id.ts +14 -0
  603. package/src/internal/Idempotency.test.ts +109 -0
  604. package/src/internal/Idempotency.ts +237 -0
  605. package/src/internal/Log.test-d.ts +41 -8
  606. package/src/internal/Log.test.ts +189 -8
  607. package/src/internal/Log.ts +124 -17
  608. package/src/internal/MetricSink.test.ts +244 -4
  609. package/src/internal/MetricSink.ts +51 -1
  610. package/src/internal/OpenApi.ts +3 -0
  611. package/src/internal/Provider.test.ts +17 -0
  612. package/src/internal/Provider.ts +17 -0
  613. package/src/internal/Schema.ts +27 -17
  614. package/src/internal/Store.test.ts +25 -0
  615. package/src/internal/Store.ts +46 -0
  616. package/src/internal/Tidx.local.test.ts +78 -3
  617. package/src/internal/Tidx.test.ts +212 -18
  618. package/src/internal/Tidx.ts +112 -32
  619. package/src/internal/VerifiedTokens.test.ts +15 -0
  620. package/src/internal/Viem.test.ts +170 -17
  621. package/src/internal/Viem.ts +111 -28
  622. package/src/internal/WebhookDestination.ts +25 -23
  623. package/src/internal/Webhooks.test.ts +59 -0
  624. package/src/internal/Webhooks.ts +34 -10
  625. package/src/internal/exchange/Provider.test.ts +216 -0
  626. package/src/internal/exchange/Provider.ts +326 -0
  627. package/src/internal/exchange/index.test.ts +6 -0
  628. package/src/internal/exchange/index.ts +1 -0
  629. package/src/internal/exchange/providers/uniswap.test.ts +122 -0
  630. package/src/internal/exchange/providers/uniswap.ts +682 -0
  631. package/src/internal/funding/Action.test.ts +138 -0
  632. package/src/internal/funding/Action.ts +117 -0
  633. package/src/internal/funding/Catalog.test.ts +311 -0
  634. package/src/internal/funding/Catalog.ts +347 -0
  635. package/src/internal/funding/Chain.test.ts +79 -0
  636. package/src/internal/funding/Chain.ts +120 -0
  637. package/src/internal/funding/Deposit.test.ts +26 -0
  638. package/src/internal/funding/Deposit.ts +453 -0
  639. package/src/internal/funding/DepositAddress.test.ts +18 -0
  640. package/src/internal/funding/DepositAddress.ts +312 -0
  641. package/src/internal/funding/Evidence.test.ts +297 -0
  642. package/src/internal/funding/Evidence.ts +430 -0
  643. package/src/internal/funding/Provider.test.ts +1328 -0
  644. package/src/internal/funding/Provider.ts +1796 -0
  645. package/src/internal/funding/Reconciliation.local.test.ts +504 -0
  646. package/src/internal/funding/Reconciliation.test.ts +2020 -0
  647. package/src/internal/funding/Reconciliation.ts +930 -0
  648. package/src/internal/funding/Route.test.ts +66 -0
  649. package/src/internal/funding/Route.ts +29 -0
  650. package/src/internal/funding/Subsidy.local.test.ts +152 -0
  651. package/src/internal/funding/Subsidy.test.ts +75 -0
  652. package/src/internal/funding/Subsidy.ts +260 -0
  653. package/src/internal/funding/Token.test.ts +47 -0
  654. package/src/internal/funding/Token.ts +59 -0
  655. package/src/internal/funding/Transfer.test.ts +369 -0
  656. package/src/internal/funding/Transfer.ts +522 -0
  657. package/src/internal/funding/index.test.ts +20 -0
  658. package/src/internal/funding/index.ts +12 -0
  659. package/src/internal/funding/providers/across.ts +149 -0
  660. package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
  661. package/src/internal/funding/providers/relay.test.ts +474 -0
  662. package/src/internal/funding/providers/relay.ts +559 -0
  663. package/src/internal/funding/providers/rhino.ts +139 -0
  664. package/src/internal/funding/providers/squid.ts +151 -0
  665. package/src/internal/funding/providers/symbiosis.ts +221 -0
  666. package/src/internal/index.test.ts +5 -1
  667. package/src/internal/index.ts +5 -1
  668. package/src/internal/webhookDestinations/url.ts +49 -45
  669. package/src/providers/index.test.ts +14 -0
  670. package/src/providers/index.ts +54 -0
  671. package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
  672. package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
  673. package/dist/apps/data/FundingQuoteProviders.js +0 -775
  674. package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
  675. package/dist/internal/FundingQuotes.d.ts +0 -864
  676. package/dist/internal/FundingQuotes.d.ts.map +0 -1
  677. package/dist/internal/FundingQuotes.js +0 -672
  678. package/dist/internal/FundingQuotes.js.map +0 -1
  679. package/src/apps/data/FundingQuoteProviders.ts +0 -1043
  680. package/src/internal/FundingQuotes.test.ts +0 -456
  681. package/src/internal/FundingQuotes.ts +0 -944
@@ -1,7 +1,9 @@
1
1
  import { Hono } from 'hono';
2
2
  import { ZoneRpcAuthentication } from 'ox/tempo';
3
3
  import * as z from 'zod/mini';
4
+ import * as Scope from '../../../Scope.js';
4
5
  import * as Auth from '../../../internal/Auth.js';
6
+ import * as Log from '../../../internal/Log.js';
5
7
  import * as OpenApi from '../../../internal/OpenApi.js';
6
8
  import * as Response from '../../../internal/Response.js';
7
9
  import * as Schema from '../../../internal/Schema.js';
@@ -62,7 +64,13 @@ const zoneReadMethods = new Set([
62
64
  'net_version',
63
65
  'web3_clientVersion',
64
66
  'web3_sha3',
67
+ 'zone_getEncryptionKey',
68
+ 'zone_getZoneInfo',
65
69
  ]);
70
+ // Zone write scopes broadcast caller-signed transactions only. Node-managed
71
+ // accounts, signing, faucet, admin, and debug methods remain inaccessible.
72
+ const zoneWriteMethods = new Set(['eth_sendRawTransaction', 'eth_sendRawTransactionSync']);
73
+ const maxRpcInspectionBytes = 64 * 1_024;
66
74
  /** Never reached; carries typed passthrough response variants into Hono client inference. */
67
75
  const narrowPassthrough = false;
68
76
  /** Zod schemas owned by the raw RPC passthrough. */
@@ -105,28 +113,28 @@ export var schema;
105
113
  error: z
106
114
  .optional(schema.Error)
107
115
  .check(z.describe('JSON-RPC error object returned when a method fails.')),
108
- id: z
109
- .optional(schema.Id)
110
- .check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.')),
116
+ id: schema.Id.check(z.describe('Client-supplied JSON-RPC request id used to match responses to requests.')),
111
117
  jsonrpc: z.literal('2.0').check(z.describe('JSON-RPC protocol version; Tempo uses `2.0`.')),
112
118
  result: z
113
119
  .optional(z.unknown())
114
120
  .check(z.describe('Result returned by the upstream RPC method.')),
115
121
  })
116
- .check(z.describe('One JSON-RPC response returned by Tempo.'));
122
+ .check(z.refine((response) => (response.error === undefined) !== (response.result === undefined), {
123
+ error: 'A JSON-RPC response must contain exactly one of result or error.',
124
+ }), z.describe('One JSON-RPC response returned by Tempo.'));
117
125
  /** JSON-RPC request or batch request payload. */
118
126
  schema.RequestBody = z
119
127
  .union([schema.Request, z.array(schema.Request)])
120
128
  .check(z.describe('A single JSON-RPC request or an array of requests for batch calls.'));
121
129
  /** JSON-RPC response or batch response payload. */
122
130
  schema.ResponseBody = z
123
- .union([schema.Response, z.array(schema.Response)])
131
+ .union([schema.Response, z.array(schema.Response).check(z.minLength(1))])
124
132
  .check(z.describe('A single JSON-RPC response or an array of responses for batch calls.'));
125
133
  })(schema || (schema = {}));
126
134
  /** Creates the raw Tempo RPC passthrough handler. */
127
135
  export function rpc() {
128
136
  return new Hono().post('/rpc/:chain{(mainnet|testnet|[0-9]+)}?', Auth.policy({ apiKey: { scopes: ['data:read'] }, public: true }), OpenApi.describeRoute({
129
- description: 'Sends a single or batch Ethereum JSON-RPC request directly to Tempo. Use `/rpc/testnet`, `/rpc/mainnet`, or `/rpc/:chain` to choose a chain. Zone-scoped API keys may call read-only methods. A Zone token in `X-Authorization-Token` is forwarded to the authenticated Zone RPC. This passthrough is not part of the stable API contract and is supported on a best-effort basis only. It has no compatibility, latency, availability, or data-freshness guarantees, and breaking changes may happen with limited notice.',
137
+ description: 'Sends a single or batch Ethereum JSON-RPC request directly to Tempo. Use `/rpc/testnet`, `/rpc/mainnet`, or `/rpc/:chain` to choose a chain. Zone read scopes permit read-only methods; Zone write scopes also permit signed transaction broadcasts. A Zone token in `X-Authorization-Token` is forwarded to the authenticated Zone RPC. This passthrough is not part of the stable API contract and is supported on a best-effort basis only. It has no compatibility, latency, availability, or data-freshness guarantees, and breaking changes may happen with limited notice.',
130
138
  operationId: 'rpcRequest',
131
139
  parameters: [
132
140
  {
@@ -188,15 +196,24 @@ export function rpc() {
188
196
  message: 'Missing API key',
189
197
  status: 401,
190
198
  });
191
- if (zone && !zoneToken && !isZoneReadRequest(body))
192
- return Response.error(c, {
193
- code: 'api_key_forbidden',
194
- message: 'Zone API keys may only call read-only RPC methods. Pass a Zone token via `X-Authorization-Token` for other methods.',
195
- status: 403,
196
- });
199
+ if (zone && !zoneToken) {
200
+ const requests = Array.isArray(body) ? body : [body];
201
+ const allowed = requests.length > 0 &&
202
+ requests.every((request) => isZoneReadMethod(request) ||
203
+ (isZoneWriteMethod(request) && hasZoneWriteScope(c, chainId)));
204
+ if (!allowed)
205
+ return Response.error(c, {
206
+ code: 'api_key_forbidden',
207
+ message: 'Zone API keys may call read-only RPC methods. A matching Zone write scope also permits signed transaction broadcasts; pass a Zone token for other methods.',
208
+ status: 403,
209
+ });
210
+ }
197
211
  if (narrowPassthrough)
198
- return c.json(Response.validated(schema.ResponseBody, { jsonrpc: '2.0' }), 200);
199
- return passthrough(c, chainId);
212
+ return c.json(Response.validated(schema.ResponseBody, { id: null, jsonrpc: '2.0', result: null }), 200);
213
+ const notificationOnly = inspectBody
214
+ ? isNotificationOnly(body)
215
+ : await inspectNotificationOnly(c.req.raw);
216
+ return passthrough(c, chainId, { notificationOnly });
200
217
  });
201
218
  }
202
219
  function requiresApiKey(c) {
@@ -219,9 +236,56 @@ function isPublicMethod(request) {
219
236
  const method = request['method'];
220
237
  return typeof method === 'string' && method.startsWith('eth_');
221
238
  }
222
- function isZoneReadRequest(body) {
223
- const requests = Array.isArray(body) ? body : [body];
224
- return requests.length > 0 && requests.every((request) => isZoneReadMethod(request));
239
+ function isNotificationOnly(body) {
240
+ const parsed = schema.RequestBody.safeParse(body);
241
+ if (!parsed.success)
242
+ return false;
243
+ const requests = Array.isArray(parsed.data) ? parsed.data : [parsed.data];
244
+ return requests.length > 0 && requests.every((request) => request.id === undefined);
245
+ }
246
+ async function inspectNotificationOnly(request) {
247
+ const contentLength = Number(request.headers.get('content-length'));
248
+ if (Number.isFinite(contentLength) && contentLength > maxRpcInspectionBytes)
249
+ return false;
250
+ const body = request.clone().body;
251
+ if (!body)
252
+ return false;
253
+ const reader = body.getReader();
254
+ const chunks = [];
255
+ let size = 0;
256
+ let complete = false;
257
+ while (size <= maxRpcInspectionBytes) {
258
+ const read = await reader.read();
259
+ if (read.done) {
260
+ complete = true;
261
+ break;
262
+ }
263
+ chunks.push(read.value);
264
+ size += read.value.byteLength;
265
+ }
266
+ if (!complete || size > maxRpcInspectionBytes) {
267
+ void reader.cancel();
268
+ return false;
269
+ }
270
+ const bytes = new Uint8Array(size);
271
+ let offset = 0;
272
+ for (const chunk of chunks) {
273
+ bytes.set(chunk, offset);
274
+ offset += chunk.byteLength;
275
+ }
276
+ try {
277
+ return isNotificationOnly(JSON.parse(new TextDecoder().decode(bytes)));
278
+ }
279
+ catch {
280
+ return false;
281
+ }
282
+ }
283
+ function hasZoneWriteScope(c, chainId) {
284
+ const principal = Auth.getPrincipal(c);
285
+ if (principal?.type !== 'api_key')
286
+ return false;
287
+ const scopes = principal.apiKey.scopes;
288
+ return scopes.includes(Scope.wildcard) || scopes.includes(`zone:${chainId}:write`);
225
289
  }
226
290
  function isZoneReadMethod(request) {
227
291
  if (!request || typeof request !== 'object')
@@ -229,15 +293,26 @@ function isZoneReadMethod(request) {
229
293
  const method = request['method'];
230
294
  return typeof method === 'string' && zoneReadMethods.has(method);
231
295
  }
232
- async function passthrough(c, chainId) {
296
+ function isZoneWriteMethod(request) {
297
+ if (!request || typeof request !== 'object')
298
+ return false;
299
+ const method = request['method'];
300
+ return typeof method === 'string' && zoneWriteMethods.has(method);
301
+ }
302
+ async function passthrough(c, chainId, options) {
303
+ // Keep caller-selected values out of metric dimensions even if an upstream
304
+ // resolver accepts a chain the deployment did not declare.
305
+ const alertChainId = c.get('supportedChainIds').has(chainId) ? chainId : 0;
233
306
  const zone = c.get('zones').get(chainId);
234
307
  const zoneToken = getZoneToken(c);
235
- const rpc = zone && zoneToken ? { url: () => zone.forwardRpcUrl } : c.get('rpc');
308
+ const rpc = c.get('rpc');
236
309
  const principal = Auth.getPrincipal(c);
237
310
  const upstream_rpc = !zone && principal?.type === 'public' && typeof rpc !== 'function' ? undefined : rpc;
238
311
  // Anonymous callers use the built-in public RPC unless a resolver chooses a
239
312
  // different public upstream.
240
- const { basicAuth, url } = Viem.resolve(upstream_rpc, { chainId, principal });
313
+ const { basicAuth, bearerAuth, publicZoneUrl, url: resolvedUrl, } = Viem.resolveRpc(upstream_rpc, { chainId, principal, zone });
314
+ const usePublicZoneUrl = Boolean(zone && zoneToken);
315
+ const url = usePublicZoneUrl ? publicZoneUrl : resolvedUrl;
241
316
  // The chain id is syntactically valid but this deployment has no RPC upstream
242
317
  // configured for it (no `rpc` config and no built-in default).
243
318
  if (!url)
@@ -251,8 +326,11 @@ async function passthrough(c, chainId) {
251
326
  for (const [name, value] of c.req.raw.headers)
252
327
  if (!strippedHeaders.has(name.toLowerCase()))
253
328
  headers.set(name, value);
254
- if (basicAuth)
329
+ // Public Zone endpoints authenticate with the caller's token, never internal RPC credentials.
330
+ if (!usePublicZoneUrl && basicAuth)
255
331
  headers.set('authorization', `Basic ${btoa(basicAuth)}`);
332
+ else if (!usePublicZoneUrl && bearerAuth)
333
+ headers.set('authorization', `Bearer ${bearerAuth}`);
256
334
  if (zone && zoneToken)
257
335
  headers.set(ZoneRpcAuthentication.headerName, zoneToken);
258
336
  // `duplex` is required when streaming a request body, but is not yet in
@@ -269,16 +347,127 @@ async function passthrough(c, chainId) {
269
347
  }
270
348
  try {
271
349
  const response = await fetch(new Request(upstream, init));
350
+ let body = response.body;
351
+ if (!response.ok) {
352
+ // Malformed requests and public Zone authentication failures are caused
353
+ // by caller input, not by the RPC provider.
354
+ if (!isCallerRpcFailure(response.status, usePublicZoneUrl))
355
+ c.set('providerFailure', rpcProviderFailure(response, alertChainId));
356
+ }
357
+ else if (response.status === 200) {
358
+ const inspection = await inspectRpcResponse(response);
359
+ body = inspection.body;
360
+ if (inspection.result?.ok === false && !(inspection.result.empty && options.notificationOnly))
361
+ c.set('providerFailure', {
362
+ chainId: alertChainId,
363
+ failure: 'payload',
364
+ id: 'rpc',
365
+ operation: 'request',
366
+ });
367
+ else if (inspection.result?.ok) {
368
+ const parsed = schema.ResponseBody.safeParse(inspection.result.value);
369
+ if (!parsed.success)
370
+ c.set('providerFailure', {
371
+ chainId: alertChainId,
372
+ failure: 'payload',
373
+ id: 'rpc',
374
+ operation: 'request',
375
+ });
376
+ else {
377
+ const rpc = Log.rpcErrors(parsed.data);
378
+ if (rpc)
379
+ c.set('rpcResponse', rpc);
380
+ }
381
+ }
382
+ }
272
383
  // Stream the upstream response back verbatim so JSON-RPC bodies, status
273
384
  // codes, and headers survive exactly as clients expect.
274
- return c.newResponse(response.body, response);
385
+ return c.newResponse(body, response);
275
386
  }
276
387
  catch (cause) {
277
388
  // Timeouts and network failures become the standard 502 envelope instead
278
389
  // of an unhandled 500.
390
+ c.set('providerFailure', rpcProviderFailure(cause, alertChainId));
279
391
  return Response.upstream(c, cause);
280
392
  }
281
393
  }
394
+ function isCallerRpcFailure(status, usePublicZoneUrl) {
395
+ return (status === 400 ||
396
+ status === 413 ||
397
+ status === 415 ||
398
+ status === 422 ||
399
+ (usePublicZoneUrl && (status === 401 || status === 403)));
400
+ }
401
+ async function inspectRpcResponse(response) {
402
+ const contentLength = Number(response.headers.get('content-length'));
403
+ if (Number.isFinite(contentLength) && contentLength > maxRpcInspectionBytes)
404
+ return { body: response.body, result: undefined };
405
+ if (!response.body)
406
+ return { body: null, result: { empty: true, ok: false } };
407
+ const reader = response.body.getReader();
408
+ const chunks = [];
409
+ let size = 0;
410
+ let complete = false;
411
+ while (size <= maxRpcInspectionBytes) {
412
+ const read = await reader.read();
413
+ if (read.done) {
414
+ complete = true;
415
+ break;
416
+ }
417
+ chunks.push(read.value);
418
+ size += read.value.byteLength;
419
+ }
420
+ let index = 0;
421
+ const body = new ReadableStream({
422
+ cancel: (reason) => reader.cancel(reason),
423
+ async pull(controller) {
424
+ const chunk = chunks[index];
425
+ if (chunk) {
426
+ index += 1;
427
+ controller.enqueue(chunk);
428
+ return;
429
+ }
430
+ const read = await reader.read();
431
+ if (read.done)
432
+ controller.close();
433
+ else
434
+ controller.enqueue(read.value);
435
+ },
436
+ });
437
+ if (!complete || size > maxRpcInspectionBytes)
438
+ return { body, result: undefined };
439
+ const bytes = new Uint8Array(size);
440
+ let offset = 0;
441
+ for (const chunk of chunks) {
442
+ bytes.set(chunk, offset);
443
+ offset += chunk.byteLength;
444
+ }
445
+ const result = (() => {
446
+ try {
447
+ return { ok: true, value: JSON.parse(new TextDecoder().decode(bytes)) };
448
+ }
449
+ catch {
450
+ return { empty: size === 0, ok: false };
451
+ }
452
+ })();
453
+ return { body, result };
454
+ }
455
+ function rpcProviderFailure(cause, chainId) {
456
+ const base = { chainId, id: 'rpc', operation: 'request' };
457
+ if (cause instanceof DOMException &&
458
+ (cause.name === 'AbortError' || cause.name === 'TimeoutError'))
459
+ return { ...base, failure: 'timeout' };
460
+ if (cause instanceof globalThis.Response) {
461
+ if (cause.status === 408)
462
+ return { ...base, failure: 'timeout', status: cause.status };
463
+ if (cause.status === 429)
464
+ return { ...base, failure: 'rate_limit', status: cause.status };
465
+ return { ...base, failure: 'http', status: cause.status };
466
+ }
467
+ if (cause instanceof TypeError)
468
+ return { ...base, failure: 'network' };
469
+ return { ...base, failure: 'unknown' };
470
+ }
282
471
  function resolveChainId(c) {
283
472
  const parameter = c.req.param('chain');
284
473
  if (parameter === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoC,MAAM,MAAM,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEjD,+EAA+E;AAC/E,kFAAkF;AAClF,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,eAAe;IACf,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,qBAAqB;IACrB,IAAI;IACJ,eAAe;IACf,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE;CAC/C,CAAC,CAAA;AAEF,8EAA8E;AAC9E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,iBAAiB;IACjB,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,oCAAoC;IACpC,sCAAsC;IACtC,aAAa;IACb,aAAa;IACb,cAAc;IACd,6BAA6B;IAC7B,kBAAkB;IAClB,uCAAuC;IACvC,yCAAyC;IACzC,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,iCAAiC;IACjC,mCAAmC;IACnC,8BAA8B;IAC9B,gCAAgC;IAChC,0BAA0B;IAC1B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,eAAe;IACf,aAAa;IACb,oBAAoB;IACpB,WAAW;CACZ,CAAC,CAAA;AAEF,6FAA6F;AAC7F,MAAM,iBAAiB,GAAG,KAAgB,CAAA;AAE1C,oDAAoD;AACpD,MAAM,KAAW,MAAM,CAmEtB;AAnED,WAAiB,MAAM;IACrB,mCAAmC;IACtB,SAAE,GAAG,CAAC;SAChB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CAAC,CAAA;IAEhG,8BAA8B;IACjB,YAAK,GAAG,CAAC;SACnB,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,KAAK,CACJ,CAAC,CAAC,GAAG,EAAE,EACP,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC,CAC/E;QACH,IAAI,EAAE,CAAC;aACJ,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC,CAAC;QACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;KAChF,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC,CAAA;IAE3E,gCAAgC;IACnB,cAAO,GAAG,CAAC;SACrB,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,QAAQ,CAAC,SAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CACvF;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC,CAAC;QACpF,MAAM,EAAE,CAAC;aACN,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;KAC9E,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC,CAAA;IAEvE,iCAAiC;IACpB,eAAQ,GAAG,CAAC;SACtB,MAAM,CAAC;QACN,KAAK,EAAE,CAAC;aACL,QAAQ,CAAC,YAAK,CAAC;aACf,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC;QAC3E,EAAE,EAAE,CAAC;aACF,QAAQ,CAAC,SAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CACvF;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;KACpE,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAA;IAEhE,iDAAiD;IACpC,kBAAW,GAAG,CAAC;SACzB,KAAK,CAAC,CAAC,cAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CAAC,CAAA;IAE1F,mDAAmD;IACtC,mBAAY,GAAG,CAAC;SAC1B,KAAK,CAAC,CAAC,eAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,eAAQ,CAAC,CAAC,CAAC;SACpC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,sEAAsE,CAAC,CAAC,CAAA;AAC9F,CAAC,EAnEgB,MAAM,KAAN,MAAM,QAmEtB;AAED,qDAAqD;AACrD,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAmB,CAAC,IAAI,CACrC,wCAAwC,EACxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAChE,OAAO,CAAC,aAAa,CAAC;QACpB,WAAW,EACT,4fAA4f;QAC9f,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE;YACV;gBACE,WAAW,EACT,2GAA2G;gBAC7G,OAAO,EAAE,SAAS;gBAClB,EAAE,EAAE,MAAe;gBACnB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,QAAiB,EAAE;aAC3E;SACF;QACD,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC1E;aACF;YACD,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;YAC3B,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,WAAW,EAAE,qEAAqE;oBAClF,KAAK,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;iBACpD;gBACD,GAAG,EAAE,iEAAiE;aACvE;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,gEAAgE;gBAC7E,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;gBACrD,MAAM,EAAE,MAAM,CAAC,YAAY;aAC5B;SACF,CAAC;QACF,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,CAAC,KAAK,CAAC;KACd,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,cAAc,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,WAAW;YACtB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG;iBACZ,KAAK,EAAE;iBACP,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,cAAc,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QACJ,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAChD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACL,qHAAqH;gBACvH,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QAEJ,IAAI,iBAAiB;YACnB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACjF,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC,CACF,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAA2B;IACjD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,OAAO,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,SAAS,EAAE,IAAI,KAAK,aAAa,CAAA;AAC3E,CAAC;AAED,SAAS,YAAY,CAAC,CAA2B;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,MAAM,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AACtF,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,MAAM,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,CAA2B,EAC3B,OAAwC;IAExC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,YAAY,GAChB,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;IACtF,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7E,8EAA8E;IAC9E,+DAA+D;IAC/D,IAAI,CAAC,GAAG;QACN,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,sBAAsB;YAC/B,MAAM,EAAE,GAAG;SACZ,CAAU,CAAA;IACb,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACvE,IAAI,IAAI,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAE/E,wEAAwE;IACxE,8BAA8B;IAC9B,MAAM,IAAI,GAAsC;QAC9C,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAA;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAEzD,wEAAwE;QACxE,wDAAwD;QACxD,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CACR,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,uBAAuB;QACvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAU,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAA2B;IACjD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoC,MAAM,MAAM,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEjD,+EAA+E;AAC/E,kFAAkF;AAClF,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,eAAe;IACf,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,YAAY;IACZ,qBAAqB;IACrB,IAAI;IACJ,eAAe;IACf,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE;CAC/C,CAAC,CAAA;AAEF,8EAA8E;AAC9E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,iBAAiB;IACjB,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,oCAAoC;IACpC,sCAAsC;IACtC,aAAa;IACb,aAAa;IACb,cAAc;IACd,6BAA6B;IAC7B,kBAAkB;IAClB,uCAAuC;IACvC,yCAAyC;IACzC,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,iCAAiC;IACjC,mCAAmC;IACnC,8BAA8B;IAC9B,gCAAgC;IAChC,0BAA0B;IAC1B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,eAAe;IACf,aAAa;IACb,oBAAoB;IACpB,WAAW;IACX,uBAAuB;IACvB,kBAAkB;CACnB,CAAC,CAAA;AAEF,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,wBAAwB,EAAE,4BAA4B,CAAC,CAAC,CAAA;AAE1F,MAAM,qBAAqB,GAAG,EAAE,GAAG,KAAK,CAAA;AAExC,6FAA6F;AAC7F,MAAM,iBAAiB,GAAG,KAAgB,CAAA;AAO1C,oDAAoD;AACpD,MAAM,KAAW,MAAM,CAsEtB;AAtED,WAAiB,MAAM;IACrB,mCAAmC;IACtB,SAAE,GAAG,CAAC;SAChB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CAAC,CAAA;IAEhG,8BAA8B;IACjB,YAAK,GAAG,CAAC;SACnB,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,KAAK,CACJ,CAAC,CAAC,GAAG,EAAE,EACP,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC,CAC/E;QACH,IAAI,EAAE,CAAC;aACJ,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC,CAAC;QACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;KAChF,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC,CAAA;IAE3E,gCAAgC;IACnB,cAAO,GAAG,CAAC;SACrB,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,QAAQ,CAAC,SAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CACvF;QACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC,CAAC;QACpF,MAAM,EAAE,CAAC;aACN,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;KAC9E,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC,CAAA;IAEvE,iCAAiC;IACpB,eAAQ,GAAG,CAAC;SACtB,MAAM,CAAC;QACN,KAAK,EAAE,CAAC;aACL,QAAQ,CAAC,YAAK,CAAC;aACf,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC,CAAC;QAC3E,EAAE,EAAE,SAAE,CAAC,KAAK,CACV,CAAC,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CACvF;QACD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;KACpE,CAAC;SACD,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;QACzF,KAAK,EAAE,kEAAkE;KAC1E,CAAC,EACF,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CACvD,CAAA;IAEH,iDAAiD;IACpC,kBAAW,GAAG,CAAC;SACzB,KAAK,CAAC,CAAC,cAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CAAC,CAAA;IAE1F,mDAAmD;IACtC,mBAAY,GAAG,CAAC;SAC1B,KAAK,CAAC,CAAC,eAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,eAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,sEAAsE,CAAC,CAAC,CAAA;AAC9F,CAAC,EAtEgB,MAAM,KAAN,MAAM,QAsEtB;AAED,qDAAqD;AACrD,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAmB,CAAC,IAAI,CACrC,wCAAwC,EACxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAChE,OAAO,CAAC,aAAa,CAAC;QACpB,WAAW,EACT,mjBAAmjB;QACrjB,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE;YACV;gBACE,WAAW,EACT,2GAA2G;gBAC7G,OAAO,EAAE,SAAS;gBAClB,EAAE,EAAE,MAAe;gBACnB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,QAAiB,EAAE;aAC3E;SACF;QACD,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC1E;aACF;YACD,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;YAC3B,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,WAAW,EAAE,qEAAqE;oBAClF,KAAK,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;iBACpD;gBACD,GAAG,EAAE,iEAAiE;aACvE;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,gEAAgE;gBAC7E,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;gBACrD,MAAM,EAAE,MAAM,CAAC,YAAY;aAC5B;SACF,CAAC;QACF,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,CAAC,KAAK,CAAC;KACd,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,cAAc,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,WAAW;YACtB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG;iBACZ,KAAK,EAAE;iBACP,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,cAAc,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAA;QACJ,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACnB,QAAQ,CAAC,KAAK,CACZ,CAAC,OAAO,EAAE,EAAE,CACV,gBAAgB,CAAC,OAAO,CAAC;oBACzB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAChE,CAAA;YACH,IAAI,CAAC,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;oBACvB,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EACL,4JAA4J;oBAC9J,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAA;QACN,CAAC;QAED,IAAI,iBAAiB;YACnB,OAAO,CAAC,CAAC,IAAI,CACX,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EACnF,GAAG,CACJ,CAAA;QACH,MAAM,gBAAgB,GAAG,WAAW;YAClC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,MAAM,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5C,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAA;IACtD,CAAC,CACF,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,CAA2B;IACjD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,OAAO,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,SAAS,EAAE,IAAI,KAAK,aAAa,CAAA;AAC3E,CAAC;AAED,SAAS,YAAY,CAAC,CAA2B;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,MAAM,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;AACrF,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAAgB;IACrD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,qBAAqB;QAAE,OAAO,KAAK,CAAA;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;IAC/B,MAAM,MAAM,GAA8B,EAAE,CAAA;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,OAAO,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,MAAK;QACP,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC/B,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,MAAM,EAAE,CAAA;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAY,CAAC,CAAA;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,CAA2B,EAAE,OAAe;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAA;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,OAAO,QAAQ,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,MAAM,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,MAAM,MAAM,GAAI,OAAmC,CAAC,QAAQ,CAAC,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACnE,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,CAA2B,EAC3B,OAAwC,EACxC,OAA4B;IAE5B,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,YAAY,GAChB,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;IACtF,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,EACJ,SAAS,EACT,UAAU,EACV,aAAa,EACb,GAAG,EAAE,WAAW,GACjB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAA;IAC1D,8EAA8E;IAC9E,+DAA+D;IAC/D,IAAI,CAAC,GAAG;QACN,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACvB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,sBAAsB;YAC/B,MAAM,EAAE,GAAG;SACZ,CAAU,CAAA;IACb,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,8FAA8F;IAC9F,IAAI,CAAC,gBAAgB,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;SACvF,IAAI,CAAC,gBAAgB,IAAI,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,UAAU,EAAE,CAAC,CAAA;IAC9F,IAAI,IAAI,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAE/E,wEAAwE;IACxE,8BAA8B;IAC9B,MAAM,IAAI,GAAsC;QAC9C,OAAO;QACP,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAA;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QACzD,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,wEAAwE;YACxE,4CAA4C;YAC5C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBACxD,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;QACxE,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YACrD,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;YACtB,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC;gBAC3F,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACvB,OAAO,EAAE,YAAY;oBACrB,OAAO,EAAE,SAAS;oBAClB,EAAE,EAAE,KAAK;oBACT,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAA;iBACC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACrE,IAAI,CAAC,MAAM,CAAC,OAAO;oBACjB,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE;wBACvB,OAAO,EAAE,YAAY;wBACrB,OAAO,EAAE,SAAS;wBAClB,EAAE,EAAE,KAAK;wBACT,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAA;qBACC,CAAC;oBACJ,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;oBACtC,IAAI,GAAG;wBAAE,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,wDAAwD;QACxD,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAA6D,CAAA;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,uBAAuB;QACvB,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;QACjE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAU,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,gBAAyB;IACnE,OAAO,CACL,MAAM,KAAK,GAAG;QACd,MAAM,KAAK,GAAG;QACd,MAAM,KAAK,GAAG;QACd,MAAM,KAAK,GAAG;QACd,CAAC,gBAAgB,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CACzD,CAAA;AACH,CAAC;AAUD,KAAK,UAAU,kBAAkB,CAAC,QAA6B;IAC7D,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,qBAAqB;QACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IACnD,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAA;IAE7E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,MAAM,MAAM,GAA8B,EAAE,CAAA;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,OAAO,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,MAAK;QACP,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,IAAI,GAAG,IAAI,cAAc,CAA0B;QACvD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,IAAI,CAAC,CAAA;gBACV,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACzB,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAChC,IAAI,IAAI,CAAC,IAAI;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAA;;gBAC5B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;KACF,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,qBAAqB;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAEjF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAY,EAAE,CAAA;QAC7F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,CAAA;QAClD,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,OAAe;IACzD,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAW,CAAA;IAClE,IACE,KAAK,YAAY,YAAY;QAC7B,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;QAE9D,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IACxC,IAAI,KAAK,YAAY,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;QACtF,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;QACzF,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC3D,CAAC;IACD,IAAI,KAAK,YAAY,SAAS;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IACtE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,CAA2B;IACjD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC"}
@@ -57,9 +57,25 @@ export declare namespace schema {
57
57
  export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Environment, {
58
58
  "/v1/tokenlist": {
59
59
  $get: {
60
- output: null;
61
- outputFormat: "body";
62
- status: 402;
60
+ output: {
61
+ name: string;
62
+ timestamp: string;
63
+ version: {
64
+ major: number;
65
+ minor: number;
66
+ patch: number;
67
+ };
68
+ tokens: {
69
+ chainId: number;
70
+ address: `0x${string}`;
71
+ name: string;
72
+ symbol: string;
73
+ decimals: number;
74
+ logoURI?: string | undefined;
75
+ }[];
76
+ };
77
+ outputFormat: "json";
78
+ status: 200;
63
79
  input: {
64
80
  query?: {
65
81
  chainId?: string | string[];
@@ -84,14 +100,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
84
100
  } | {
85
101
  output: {
86
102
  error: {
87
- code: "api_key_invalid" | "api_key_missing";
103
+ code: "query_invalid";
88
104
  details?: readonly Response.error.Detail[] | undefined;
89
105
  message: string;
90
106
  };
91
107
  requestId: string;
92
108
  };
93
109
  outputFormat: "json";
94
- status: 401;
110
+ status: 400;
95
111
  input: {
96
112
  query?: {
97
113
  chainId?: string | string[];
@@ -100,30 +116,23 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
100
116
  } | {
101
117
  output: {
102
118
  error: {
103
- code: "api_key_forbidden";
119
+ code: "api_key_invalid" | "api_key_missing";
104
120
  details?: readonly Response.error.Detail[] | undefined;
105
121
  message: string;
106
122
  };
107
123
  requestId: string;
108
124
  };
109
125
  outputFormat: "json";
110
- status: 403;
126
+ status: 401;
111
127
  input: {
112
128
  query?: {
113
129
  chainId?: string | string[];
114
130
  } | undefined;
115
131
  };
116
132
  } | {
117
- output: {
118
- error: {
119
- code: "payment_required" | "rate_limit_exceeded";
120
- details?: readonly Response.error.Detail[] | undefined;
121
- message: string;
122
- };
123
- requestId: string;
124
- };
125
- outputFormat: "json";
126
- status: 429;
133
+ output: null;
134
+ outputFormat: "body";
135
+ status: 402;
127
136
  input: {
128
137
  query?: {
129
138
  chainId?: string | string[];
@@ -132,14 +141,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
132
141
  } | {
133
142
  output: {
134
143
  error: {
135
- code: "query_invalid";
144
+ code: "api_key_forbidden";
136
145
  details?: readonly Response.error.Detail[] | undefined;
137
146
  message: string;
138
147
  };
139
148
  requestId: string;
140
149
  };
141
150
  outputFormat: "json";
142
- status: 400;
151
+ status: 403;
143
152
  input: {
144
153
  query?: {
145
154
  chainId?: string | string[];
@@ -148,14 +157,14 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
148
157
  } | {
149
158
  output: {
150
159
  error: {
151
- code: "upstream_error";
160
+ code: "payment_required" | "rate_limit_exceeded";
152
161
  details?: readonly Response.error.Detail[] | undefined;
153
162
  message: string;
154
163
  };
155
164
  requestId: string;
156
165
  };
157
166
  outputFormat: "json";
158
- status: 502;
167
+ status: 429;
159
168
  input: {
160
169
  query?: {
161
170
  chainId?: string | string[];
@@ -163,24 +172,15 @@ export declare function tokenlist(): import("hono/hono-base").HonoBase<App.Envir
163
172
  };
164
173
  } | {
165
174
  output: {
166
- name: string;
167
- timestamp: string;
168
- version: {
169
- major: number;
170
- minor: number;
171
- patch: number;
175
+ error: {
176
+ code: "upstream_error";
177
+ details?: readonly Response.error.Detail[] | undefined;
178
+ message: string;
172
179
  };
173
- tokens: {
174
- chainId: number;
175
- address: `0x${string}`;
176
- name: string;
177
- symbol: string;
178
- decimals: number;
179
- logoURI?: string | undefined;
180
- }[];
180
+ requestId: string;
181
181
  };
182
182
  outputFormat: "json";
183
- status: 200;
183
+ status: 502;
184
184
  input: {
185
185
  query?: {
186
186
  chainId?: string | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlist.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokenlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAK3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAMzD,mDAAmD;AACnD,yBAAiB,MAAM,CAAC;IACtB,gFAAgF;IACzE,MAAM,KAAK;;;;;;;qBAwCiE,CAAA;IAEnF,iEAAiE;IAC1D,MAAM,OAAO;;;;qBA2BsC,CAAA;IAE1D,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,2CAA2C;QACpC,MAAM,KAAK;;;;;0BAE4D,CAAA;QAE9E,yEAAyE;QAClE,MAAM,QAAQ;;;;;;;;;;;;;;;;yBAiB2E,CAAA;KACjG;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA8FxB"}
1
+ {"version":3,"file":"tokenlist.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/tokenlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAK3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAOzD,mDAAmD;AACnD,yBAAiB,MAAM,CAAC;IACtB,gFAAgF;IACzE,MAAM,KAAK;;;;;;;qBAwCiE,CAAA;IAEnF,iEAAiE;IAC1D,MAAM,OAAO;;;;qBA2BsC,CAAA;IAE1D,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,2CAA2C;QACpC,MAAM,KAAK;;;;;0BAE4D,CAAA;QAE9E,yEAAyE;QAClE,MAAM,QAAQ;;;;;;;;;;;;;;;;yBAiB2E,CAAA;KACjG;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA2FxB"}
@@ -6,6 +6,7 @@ import * as EdgeCache from '../../../internal/EdgeCache.js';
6
6
  import * as OpenApi from '../../../internal/OpenApi.js';
7
7
  import * as Response from '../../../internal/Response.js';
8
8
  import * as Schema from '../../../internal/Schema.js';
9
+ import * as Timing from '../../../internal/Timing.js';
9
10
  import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
10
11
  import * as Viem from '../../../internal/Viem.js';
11
12
  import { getTokenLogo } from './tokens.js';
@@ -109,7 +110,8 @@ export function tokenlist() {
109
110
  summary: 'Get token list',
110
111
  tags: ['Verified Tokens'],
111
112
  }),
112
- // The shared edge cache is URL-keyed and cannot include the snapshot version.
113
+ // Anonymous callers accept the route's five-minute freshness window.
114
+ // Credentialed reads keep snapshot-version invalidation.
113
115
  EdgeCache.setEligibility(Cache.response({
114
116
  cacheControl: Cache.policies.stable,
115
117
  name: 'tempo-api:tokenlist:v1',
@@ -120,7 +122,7 @@ export function tokenlist() {
120
122
  const { version } = await VerifiedTokens.snapshot(c, chainId);
121
123
  return `${base}:v:${version}`;
122
124
  },
123
- }), () => false), async (c) => {
125
+ }), anonymousEdgeCache), async (c) => {
124
126
  if (Auth.narrowAccess)
125
127
  return Auth.paidAccessError(c);
126
128
  if (OpenApi.narrowValidation)
@@ -132,11 +134,9 @@ export function tokenlist() {
132
134
  const chainId = query.chainId ?? c.get('chainId');
133
135
  try {
134
136
  const snapshot = await VerifiedTokens.snapshot(c, chainId);
135
- const tokens = await Promise.all(snapshot.list.map(async (token) => {
136
- // Prefer the curated icon asset (served by the API), falling back to
137
- // the verified entry's stored `logoUri`. Most verified tokens carry
138
- // no stored `logoUri` — their logo lives in the asset store.
139
- const logoURI = (await getTokenLogo(c, { address: token.address, chainId })) ?? token.logoUri; // prettier-ignore
137
+ const logos = await getTokenLogos(c, { chainId, tokens: snapshot.list });
138
+ const tokens = snapshot.list.map((token) => {
139
+ const logoURI = logos.get(token.address) ?? token.logoUri;
140
140
  return {
141
141
  chainId,
142
142
  address: token.address,
@@ -145,7 +145,7 @@ export function tokenlist() {
145
145
  decimals: token.decimals,
146
146
  ...(logoURI === undefined ? {} : { logoURI }),
147
147
  };
148
- }));
148
+ });
149
149
  const list = {
150
150
  name: Viem.chains.find((chain) => chain.id === chainId)?.name ?? `Tempo ${chainId}`,
151
151
  timestamp: snapshot.updatedAt,
@@ -159,4 +159,35 @@ export function tokenlist() {
159
159
  }
160
160
  });
161
161
  }
162
+ function anonymousEdgeCache(c) {
163
+ return (!c.req.header('authorization') &&
164
+ !c.req.header('cookie') &&
165
+ !c.req.header('tempo-api-key') &&
166
+ !c.req.header('x-api-key'));
167
+ }
168
+ async function getTokenLogos(c, options) {
169
+ return Timing.time(c, 'token_logos', async () => {
170
+ const getAsset = c.get('getAsset');
171
+ const listAssets = getAsset.list;
172
+ if (!listAssets) {
173
+ const entries = await Promise.all(options.tokens.map(async (token) => [
174
+ token.address,
175
+ await getTokenLogo(c, { address: token.address, chainId: options.chainId }).catch(() => undefined),
176
+ ]));
177
+ const logos = new Map();
178
+ for (const [address, uri] of entries)
179
+ if (uri)
180
+ logos.set(address, uri);
181
+ return logos;
182
+ }
183
+ // Logos are optional metadata; an asset-store outage must not hide the
184
+ // verified token list itself. Snapshot logo URIs remain available below.
185
+ const assets = await listAssets(options.chainId, 'icons/').catch(() => []);
186
+ const uris = new Map(assets.map((asset) => [asset.key, asset.uri]));
187
+ return new Map(options.tokens.flatMap((token) => {
188
+ const uri = uris.get(`${options.chainId}/icons/${token.address}`);
189
+ return uri ? [[token.address, uri]] : [];
190
+ }));
191
+ });
192
+ }
162
193
  //# sourceMappingURL=tokenlist.js.map