tapimo 0.5.3 → 0.7.0

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 (376) hide show
  1. package/dist/App.d.ts +15830 -7220
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +9 -1
  4. package/dist/App.js.map +1 -1
  5. package/dist/Scope.d.ts +4 -0
  6. package/dist/Scope.d.ts.map +1 -1
  7. package/dist/Scope.js +5 -0
  8. package/dist/Scope.js.map +1 -1
  9. package/dist/admin/App.d.ts +1011 -412
  10. package/dist/admin/App.d.ts.map +1 -1
  11. package/dist/admin/App.js +4 -0
  12. package/dist/admin/App.js.map +1 -1
  13. package/dist/admin/apps/api-keys.d.ts +2 -1
  14. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  15. package/dist/admin/apps/early-access.d.ts +148 -0
  16. package/dist/admin/apps/early-access.d.ts.map +1 -0
  17. package/dist/admin/apps/early-access.js +133 -0
  18. package/dist/admin/apps/early-access.js.map +1 -0
  19. package/dist/admin/apps/organizations.d.ts +124 -1
  20. package/dist/admin/apps/organizations.d.ts.map +1 -1
  21. package/dist/admin/apps/organizations.js +97 -6
  22. package/dist/admin/apps/organizations.js.map +1 -1
  23. package/dist/admin/apps/verified-tokens.d.ts +526 -1
  24. package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
  25. package/dist/admin/apps/verified-tokens.js +214 -1
  26. package/dist/admin/apps/verified-tokens.js.map +1 -1
  27. package/dist/admin/ui.generated.d.ts +1 -1
  28. package/dist/admin/ui.generated.d.ts.map +1 -1
  29. package/dist/admin/ui.generated.js +95 -75
  30. package/dist/admin/ui.generated.js.map +1 -1
  31. package/dist/analytics/Analytics.d.ts.map +1 -1
  32. package/dist/analytics/Analytics.js +20 -0
  33. package/dist/analytics/Analytics.js.map +1 -1
  34. package/dist/analytics/tables/requestEvents.d.ts +18 -0
  35. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  36. package/dist/analytics/tables/requestEvents.js +36 -7
  37. package/dist/analytics/tables/requestEvents.js.map +1 -1
  38. package/dist/apps/data/App.d.ts +6260 -4924
  39. package/dist/apps/data/App.d.ts.map +1 -1
  40. package/dist/apps/data/App.js +11 -6
  41. package/dist/apps/data/App.js.map +1 -1
  42. package/dist/apps/data/FundingQuoteProviders.d.ts +34 -1
  43. package/dist/apps/data/FundingQuoteProviders.d.ts.map +1 -1
  44. package/dist/apps/data/FundingQuoteProviders.js +194 -16
  45. package/dist/apps/data/FundingQuoteProviders.js.map +1 -1
  46. package/dist/apps/data/FxOracle.d.ts +71 -0
  47. package/dist/apps/data/FxOracle.d.ts.map +1 -0
  48. package/dist/apps/data/FxOracle.js +97 -0
  49. package/dist/apps/data/FxOracle.js.map +1 -0
  50. package/dist/apps/data/index.d.ts +1 -0
  51. package/dist/apps/data/index.d.ts.map +1 -1
  52. package/dist/apps/data/index.js +1 -0
  53. package/dist/apps/data/index.js.map +1 -1
  54. package/dist/apps/data/routes/activities.d.ts +3599 -1382
  55. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  56. package/dist/apps/data/routes/activities.js +250 -88
  57. package/dist/apps/data/routes/activities.js.map +1 -1
  58. package/dist/apps/data/routes/addresses.d.ts +872 -251
  59. package/dist/apps/data/routes/addresses.d.ts.map +1 -1
  60. package/dist/apps/data/routes/addresses.js +11 -9
  61. package/dist/apps/data/routes/addresses.js.map +1 -1
  62. package/dist/apps/data/routes/balances.d.ts +77 -26
  63. package/dist/apps/data/routes/balances.d.ts.map +1 -1
  64. package/dist/apps/data/routes/balances.js +88 -45
  65. package/dist/apps/data/routes/balances.js.map +1 -1
  66. package/dist/apps/data/routes/blocks.d.ts +39 -39
  67. package/dist/apps/data/routes/coingecko.d.ts +54 -54
  68. package/dist/apps/data/routes/exchanges.d.ts +856 -105
  69. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  70. package/dist/apps/data/routes/exchanges.js +518 -76
  71. package/dist/apps/data/routes/exchanges.js.map +1 -1
  72. package/dist/apps/data/routes/fee-amm.d.ts +81 -67
  73. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  74. package/dist/apps/data/routes/fee-amm.js +76 -91
  75. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  76. package/dist/apps/data/routes/funding.d.ts +80 -36
  77. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  78. package/dist/apps/data/routes/funding.js +65 -31
  79. package/dist/apps/data/routes/funding.js.map +1 -1
  80. package/dist/apps/data/routes/receipts.d.ts +392 -315
  81. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  82. package/dist/apps/data/routes/receipts.js +152 -77
  83. package/dist/apps/data/routes/receipts.js.map +1 -1
  84. package/dist/apps/data/routes/tokens.d.ts +167 -174
  85. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  86. package/dist/apps/data/routes/tokens.js +15 -13
  87. package/dist/apps/data/routes/tokens.js.map +1 -1
  88. package/dist/apps/data/routes/transactions.d.ts +277 -536
  89. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  90. package/dist/apps/data/routes/transactions.js +96 -77
  91. package/dist/apps/data/routes/transactions.js.map +1 -1
  92. package/dist/apps/data/routes/transfers.d.ts +157 -81
  93. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  94. package/dist/apps/data/routes/transfers.js +272 -130
  95. package/dist/apps/data/routes/transfers.js.map +1 -1
  96. package/dist/apps/data/routes/valuation.d.ts +307 -0
  97. package/dist/apps/data/routes/valuation.d.ts.map +1 -0
  98. package/dist/apps/data/routes/valuation.js +292 -0
  99. package/dist/apps/data/routes/valuation.js.map +1 -0
  100. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  101. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
  102. package/dist/apps/data/routes/verified-tokens.js +7 -5
  103. package/dist/apps/data/routes/verified-tokens.js.map +1 -1
  104. package/dist/apps/data/routes/webhooks.d.ts +103 -123
  105. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  106. package/dist/apps/data/routes/webhooks.js +124 -25
  107. package/dist/apps/data/routes/webhooks.js.map +1 -1
  108. package/dist/apps/index.d.ts +2 -1
  109. package/dist/apps/index.d.ts.map +1 -1
  110. package/dist/apps/index.js +2 -1
  111. package/dist/apps/index.js.map +1 -1
  112. package/dist/apps/management/App.d.ts +8554 -1692
  113. package/dist/apps/management/App.d.ts.map +1 -1
  114. package/dist/apps/management/App.js +12 -1
  115. package/dist/apps/management/App.js.map +1 -1
  116. package/dist/apps/management/routes/api-keys.d.ts +7 -0
  117. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  118. package/dist/apps/management/routes/api-keys.js +17 -3
  119. package/dist/apps/management/routes/api-keys.js.map +1 -1
  120. package/dist/apps/management/routes/billing.d.ts +157 -162
  121. package/dist/apps/management/routes/billing.d.ts.map +1 -1
  122. package/dist/apps/management/routes/billing.js +31 -23
  123. package/dist/apps/management/routes/billing.js.map +1 -1
  124. package/dist/apps/management/routes/faucet.d.ts +232 -0
  125. package/dist/apps/management/routes/faucet.d.ts.map +1 -0
  126. package/dist/apps/management/routes/faucet.js +154 -0
  127. package/dist/apps/management/routes/faucet.js.map +1 -0
  128. package/dist/apps/management/routes/invitations.d.ts +60 -60
  129. package/dist/apps/management/routes/invite-links.d.ts +49 -20
  130. package/dist/apps/management/routes/invite-links.d.ts.map +1 -1
  131. package/dist/apps/management/routes/invite-links.js +26 -1
  132. package/dist/apps/management/routes/invite-links.js.map +1 -1
  133. package/dist/apps/management/routes/me.d.ts +6 -6
  134. package/dist/apps/management/routes/members.d.ts +6 -6
  135. package/dist/apps/management/routes/orgs.d.ts +42 -42
  136. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  137. package/dist/apps/management/routes/orgs.js +5 -0
  138. package/dist/apps/management/routes/orgs.js.map +1 -1
  139. package/dist/apps/management/routes/projects.d.ts +44 -44
  140. package/dist/apps/management/routes/usage.d.ts +3 -0
  141. package/dist/apps/management/routes/usage.d.ts.map +1 -1
  142. package/dist/apps/management/routes/usage.js +4 -0
  143. package/dist/apps/management/routes/usage.js.map +1 -1
  144. package/dist/apps/management/routes/verified-token-requests.d.ts +697 -0
  145. package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -0
  146. package/dist/apps/management/routes/verified-token-requests.js +271 -0
  147. package/dist/apps/management/routes/verified-token-requests.js.map +1 -0
  148. package/dist/apps/management/routes/webhooks.d.ts +6977 -0
  149. package/dist/apps/management/routes/webhooks.d.ts.map +1 -0
  150. package/dist/apps/management/routes/webhooks.js +573 -0
  151. package/dist/apps/management/routes/webhooks.js.map +1 -0
  152. package/dist/apps/mpp/App.d.ts +363 -0
  153. package/dist/apps/mpp/App.d.ts.map +1 -0
  154. package/dist/apps/mpp/App.js +72 -0
  155. package/dist/apps/mpp/App.js.map +1 -0
  156. package/dist/apps/mpp/Mpp.d.ts +178 -0
  157. package/dist/apps/mpp/Mpp.d.ts.map +1 -0
  158. package/dist/apps/mpp/Mpp.js +183 -0
  159. package/dist/apps/mpp/Mpp.js.map +1 -0
  160. package/dist/apps/mpp/index.d.ts +3 -0
  161. package/dist/apps/mpp/index.d.ts.map +1 -0
  162. package/dist/apps/mpp/index.js +3 -0
  163. package/dist/apps/mpp/index.js.map +1 -0
  164. package/dist/apps/relay/App.d.ts.map +1 -1
  165. package/dist/apps/relay/App.js +56 -9
  166. package/dist/apps/relay/App.js.map +1 -1
  167. package/dist/db/Db.d.ts +6 -0
  168. package/dist/db/Db.d.ts.map +1 -1
  169. package/dist/db/Db.js +110 -0
  170. package/dist/db/Db.js.map +1 -1
  171. package/dist/db/Schema.d.ts +53 -0
  172. package/dist/db/Schema.d.ts.map +1 -1
  173. package/dist/db/Schema.js +56 -0
  174. package/dist/db/Schema.js.map +1 -1
  175. package/dist/db/tables/earlyAccess.d.ts +50 -0
  176. package/dist/db/tables/earlyAccess.d.ts.map +1 -0
  177. package/dist/db/tables/earlyAccess.js +63 -0
  178. package/dist/db/tables/earlyAccess.js.map +1 -0
  179. package/dist/db/tables/enabledBillingSources.d.ts +73 -0
  180. package/dist/db/tables/enabledBillingSources.d.ts.map +1 -0
  181. package/dist/db/tables/enabledBillingSources.js +69 -0
  182. package/dist/db/tables/enabledBillingSources.js.map +1 -0
  183. package/dist/db/tables/invitations.d.ts.map +1 -1
  184. package/dist/db/tables/invitations.js +3 -0
  185. package/dist/db/tables/invitations.js.map +1 -1
  186. package/dist/db/tables/inviteLinks.d.ts +10 -2
  187. package/dist/db/tables/inviteLinks.d.ts.map +1 -1
  188. package/dist/db/tables/inviteLinks.js +10 -1
  189. package/dist/db/tables/inviteLinks.js.map +1 -1
  190. package/dist/db/tables/organizations.d.ts +5 -2
  191. package/dist/db/tables/organizations.d.ts.map +1 -1
  192. package/dist/db/tables/organizations.js +13 -2
  193. package/dist/db/tables/organizations.js.map +1 -1
  194. package/dist/db/tables/sponsoredTransactions.d.ts +2 -0
  195. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  196. package/dist/db/tables/sponsoredTransactions.js +2 -0
  197. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  198. package/dist/db/tables/verifiedTokenRequests.d.ts +94 -0
  199. package/dist/db/tables/verifiedTokenRequests.d.ts.map +1 -0
  200. package/dist/db/tables/verifiedTokenRequests.js +120 -0
  201. package/dist/db/tables/verifiedTokenRequests.js.map +1 -0
  202. package/dist/db/tables/webhookSubscriptions.d.ts +14 -0
  203. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  204. package/dist/db/tables/webhookSubscriptions.js +16 -0
  205. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  206. package/dist/handlers/internal/utils.d.ts +1 -16
  207. package/dist/handlers/internal/utils.d.ts.map +1 -1
  208. package/dist/handlers/internal/utils.js +17 -6
  209. package/dist/handlers/internal/utils.js.map +1 -1
  210. package/dist/handlers/relay.d.ts.map +1 -1
  211. package/dist/handlers/relay.js +37 -5
  212. package/dist/handlers/relay.js.map +1 -1
  213. package/dist/internal/Auth.d.ts +11 -2
  214. package/dist/internal/Auth.d.ts.map +1 -1
  215. package/dist/internal/Auth.js +14 -47
  216. package/dist/internal/Auth.js.map +1 -1
  217. package/dist/internal/FundingQuotes.d.ts +147 -47
  218. package/dist/internal/FundingQuotes.d.ts.map +1 -1
  219. package/dist/internal/FundingQuotes.js +119 -33
  220. package/dist/internal/FundingQuotes.js.map +1 -1
  221. package/dist/internal/Log.d.ts +37 -5
  222. package/dist/internal/Log.d.ts.map +1 -1
  223. package/dist/internal/Log.js +52 -3
  224. package/dist/internal/Log.js.map +1 -1
  225. package/dist/internal/MetricSink.d.ts.map +1 -1
  226. package/dist/internal/MetricSink.js +24 -0
  227. package/dist/internal/MetricSink.js.map +1 -1
  228. package/dist/internal/OpenApi.d.ts +2 -2
  229. package/dist/internal/OpenApi.d.ts.map +1 -1
  230. package/dist/internal/OpenApi.js +3 -0
  231. package/dist/internal/OpenApi.js.map +1 -1
  232. package/dist/internal/Response.d.ts +2 -2
  233. package/dist/internal/Response.d.ts.map +1 -1
  234. package/dist/internal/Response.js +12 -4
  235. package/dist/internal/Response.js.map +1 -1
  236. package/dist/internal/Schema.d.ts +14 -5
  237. package/dist/internal/Schema.d.ts.map +1 -1
  238. package/dist/internal/Schema.js +23 -5
  239. package/dist/internal/Schema.js.map +1 -1
  240. package/dist/internal/Value.d.ts +18 -0
  241. package/dist/internal/Value.d.ts.map +1 -1
  242. package/dist/internal/Value.js +11 -1
  243. package/dist/internal/Value.js.map +1 -1
  244. package/dist/internal/VerifiedTokens.d.ts.map +1 -1
  245. package/dist/internal/VerifiedTokens.js +10 -1
  246. package/dist/internal/VerifiedTokens.js.map +1 -1
  247. package/dist/internal/Webhooks.d.ts +24 -3
  248. package/dist/internal/Webhooks.d.ts.map +1 -1
  249. package/dist/internal/Webhooks.js +34 -8
  250. package/dist/internal/Webhooks.js.map +1 -1
  251. package/package.json +7 -2
  252. package/src/App.test.ts +9 -4
  253. package/src/App.ts +23 -3
  254. package/src/Client.test-d.ts +733 -20
  255. package/src/Scope.ts +5 -0
  256. package/src/admin/App.test.ts +4 -0
  257. package/src/admin/App.ts +4 -0
  258. package/src/admin/apps/early-access.test.ts +125 -0
  259. package/src/admin/apps/early-access.ts +176 -0
  260. package/src/admin/apps/organizations.test.ts +86 -2
  261. package/src/admin/apps/organizations.ts +155 -31
  262. package/src/admin/apps/scopes.test.ts +5 -0
  263. package/src/admin/apps/verified-tokens.test.ts +201 -0
  264. package/src/admin/apps/verified-tokens.ts +532 -286
  265. package/src/admin/ui/plugin.ts +2 -1
  266. package/src/admin/ui/src/lib/early-access.ts +63 -0
  267. package/src/admin/ui/src/lib/organizations.test.ts +81 -1
  268. package/src/admin/ui/src/lib/organizations.ts +92 -0
  269. package/src/admin/ui/src/lib/verified-tokens.ts +79 -0
  270. package/src/admin/ui/src/routeTree.gen.ts +33 -2
  271. package/src/admin/ui/src/routes/__root.tsx +2 -1
  272. package/src/admin/ui/src/routes/api-keys.tsx +1 -1
  273. package/src/admin/ui/src/routes/early-access.tsx +162 -0
  274. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +103 -0
  275. package/src/admin/ui/src/routes/verified-tokens.tsx +230 -19
  276. package/src/admin/ui.generated.ts +95 -94
  277. package/src/analytics/Analytics.test.ts +83 -0
  278. package/src/analytics/Analytics.ts +20 -0
  279. package/src/analytics/tables/requestEvents.ts +60 -7
  280. package/src/apps/composition.test.ts +11 -2
  281. package/src/apps/data/App.test.ts +1 -1
  282. package/src/apps/data/App.ts +22 -14
  283. package/src/apps/data/FundingQuoteProviders.test.ts +297 -4
  284. package/src/apps/data/FundingQuoteProviders.ts +255 -29
  285. package/src/apps/data/FxOracle.test.ts +118 -0
  286. package/src/apps/data/FxOracle.ts +153 -0
  287. package/src/apps/data/index.ts +1 -0
  288. package/src/apps/data/routes/activities.test.ts +177 -3
  289. package/src/apps/data/routes/activities.ts +441 -132
  290. package/src/apps/data/routes/addresses.ts +19 -9
  291. package/src/apps/data/routes/balances.test.ts +148 -11
  292. package/src/apps/data/routes/balances.ts +140 -51
  293. package/src/apps/data/routes/exchanges.test.ts +544 -9
  294. package/src/apps/data/routes/exchanges.ts +690 -103
  295. package/src/apps/data/routes/fee-amm.test.ts +47 -23
  296. package/src/apps/data/routes/fee-amm.ts +98 -119
  297. package/src/apps/data/routes/funding.test.ts +113 -8
  298. package/src/apps/data/routes/funding.ts +77 -51
  299. package/src/apps/data/routes/receipts.test.ts +129 -23
  300. package/src/apps/data/routes/receipts.ts +205 -100
  301. package/src/apps/data/routes/tokens.test.ts +43 -0
  302. package/src/apps/data/routes/tokens.ts +28 -13
  303. package/src/apps/data/routes/transactions.test.ts +72 -19
  304. package/src/apps/data/routes/transactions.ts +162 -92
  305. package/src/apps/data/routes/transfers.test.ts +341 -31
  306. package/src/apps/data/routes/transfers.ts +358 -158
  307. package/src/apps/data/routes/valuation.test.ts +437 -0
  308. package/src/apps/data/routes/valuation.ts +423 -0
  309. package/src/apps/data/routes/verified-tokens.ts +14 -2
  310. package/src/apps/data/routes/webhooks.test.ts +56 -8
  311. package/src/apps/data/routes/webhooks.ts +144 -27
  312. package/src/apps/index.ts +2 -1
  313. package/src/apps/management/App.ts +13 -0
  314. package/src/apps/management/routes/api-keys.test.ts +14 -0
  315. package/src/apps/management/routes/api-keys.ts +27 -3
  316. package/src/apps/management/routes/billing.test.ts +152 -20
  317. package/src/apps/management/routes/billing.ts +34 -18
  318. package/src/apps/management/routes/faucet.test.ts +87 -0
  319. package/src/apps/management/routes/faucet.ts +201 -0
  320. package/src/apps/management/routes/invite-links.test.ts +117 -0
  321. package/src/apps/management/routes/invite-links.ts +43 -1
  322. package/src/apps/management/routes/me.test.ts +9 -99
  323. package/src/apps/management/routes/orgs.test.ts +45 -2
  324. package/src/apps/management/routes/orgs.ts +6 -0
  325. package/src/apps/management/routes/scopes.test.ts +1 -0
  326. package/src/apps/management/routes/usage.test.ts +6 -0
  327. package/src/apps/management/routes/usage.ts +7 -0
  328. package/src/apps/management/routes/verified-token-requests.test.ts +377 -0
  329. package/src/apps/management/routes/verified-token-requests.ts +397 -0
  330. package/src/apps/management/routes/webhooks.test.ts +426 -0
  331. package/src/apps/management/routes/webhooks.ts +672 -0
  332. package/src/apps/mpp/App.ts +86 -0
  333. package/src/apps/mpp/Mpp.test.ts +193 -0
  334. package/src/apps/mpp/Mpp.ts +353 -0
  335. package/src/apps/mpp/index.ts +2 -0
  336. package/src/apps/mpp/internal/Adapter.ts +11 -0
  337. package/src/apps/mpp/internal/Error.ts +9 -0
  338. package/src/apps/mpp/internal/Idempotency.ts +7 -0
  339. package/src/apps/mpp/internal/Screening.ts +10 -0
  340. package/src/apps/relay/App.test.ts +88 -6
  341. package/src/apps/relay/App.ts +61 -9
  342. package/src/db/Db.test.ts +19 -0
  343. package/src/db/Db.ts +125 -0
  344. package/src/db/Schema.ts +68 -0
  345. package/src/db/tables/earlyAccess.ts +86 -0
  346. package/src/db/tables/enabledBillingSources.test.ts +303 -0
  347. package/src/db/tables/enabledBillingSources.ts +118 -0
  348. package/src/db/tables/invitations.ts +3 -0
  349. package/src/db/tables/inviteLinks.ts +22 -3
  350. package/src/db/tables/organizations.test.ts +103 -0
  351. package/src/db/tables/organizations.ts +18 -2
  352. package/src/db/tables/sponsoredTransactions.ts +4 -0
  353. package/src/db/tables/verifiedTokenRequests.test.ts +200 -0
  354. package/src/db/tables/verifiedTokenRequests.ts +182 -0
  355. package/src/db/tables/webhookSubscriptions.ts +31 -0
  356. package/src/handlers/internal/utils.ts +22 -6
  357. package/src/handlers/relay.errors.test.ts +153 -0
  358. package/src/handlers/relay.ts +42 -7
  359. package/src/internal/Auth.test.ts +3 -3
  360. package/src/internal/Auth.ts +15 -47
  361. package/src/internal/FundingQuotes.test.ts +161 -6
  362. package/src/internal/FundingQuotes.ts +141 -39
  363. package/src/internal/Log.test-d.ts +21 -0
  364. package/src/internal/Log.test.ts +141 -0
  365. package/src/internal/Log.ts +93 -6
  366. package/src/internal/MetricSink.test.ts +215 -0
  367. package/src/internal/MetricSink.ts +24 -0
  368. package/src/internal/OpenApi.ts +3 -0
  369. package/src/internal/Response.test.ts +28 -0
  370. package/src/internal/Response.ts +12 -4
  371. package/src/internal/Schema.ts +50 -5
  372. package/src/internal/Value.test.ts +20 -0
  373. package/src/internal/Value.ts +24 -1
  374. package/src/internal/VerifiedTokens.ts +9 -1
  375. package/src/internal/Webhooks.test.ts +140 -0
  376. package/src/internal/Webhooks.ts +53 -9
@@ -0,0 +1,120 @@
1
+ import { sql } from 'kysely';
2
+ import * as Id from '../../internal/Id.js';
3
+ /**
4
+ * Inserts a pending request; `undefined` when a pending request for
5
+ * (chainId, address) already exists.
6
+ */
7
+ export function create(db, input) {
8
+ const now = new Date().toISOString();
9
+ return db.kysely
10
+ .insertInto('verified_token_requests')
11
+ .values({
12
+ address: input.address,
13
+ chainId: input.chainId,
14
+ createdAt: now,
15
+ currency: input.currency,
16
+ decimals: input.decimals,
17
+ id: Id.generate('vtr'),
18
+ logo: input.logo ?? null,
19
+ logoUri: input.logoUri ?? null,
20
+ name: input.name,
21
+ note: input.note ?? null,
22
+ orgId: input.orgId,
23
+ requestedBy: input.requestedBy,
24
+ reviewNote: null,
25
+ reviewedAt: null,
26
+ reviewedBy: null,
27
+ status: 'pending',
28
+ symbol: input.symbol,
29
+ updatedAt: now,
30
+ })
31
+ .onConflict((oc) => oc
32
+ .columns(['chainId', 'address'])
33
+ // `sql.lit` keeps the predicate literal; a bound parameter would
34
+ // defeat partial-index inference for the conflict target.
35
+ .where('status', '=', sql.lit('pending'))
36
+ .doNothing())
37
+ .returningAll()
38
+ .executeTakeFirst();
39
+ }
40
+ /** Lists an organization's requests, newest first. */
41
+ export function list(db, orgId) {
42
+ return db.kysely
43
+ .selectFrom('verified_token_requests')
44
+ .selectAll()
45
+ .where('orgId', '=', orgId)
46
+ .orderBy('createdAt', 'desc')
47
+ .execute();
48
+ }
49
+ /**
50
+ * Lists requests in one status globally, oldest first (review-queue order),
51
+ * with the requesting organization's current name when it still exists.
52
+ */
53
+ export function listByStatus(db, status) {
54
+ return db.kysely
55
+ .selectFrom('verified_token_requests')
56
+ .leftJoin('organizations', 'organizations.id', 'verified_token_requests.orgId')
57
+ .selectAll('verified_token_requests')
58
+ .select('organizations.name as orgName')
59
+ .where('status', '=', status)
60
+ .orderBy('verified_token_requests.createdAt', 'asc')
61
+ .execute();
62
+ }
63
+ /** Gets a request by id. */
64
+ export function get(db, id) {
65
+ return db.kysely
66
+ .selectFrom('verified_token_requests')
67
+ .selectAll()
68
+ .where('id', '=', id)
69
+ .executeTakeFirst();
70
+ }
71
+ /** Counts an organization's pending requests. */
72
+ export async function countPending(db, orgId) {
73
+ const row = await db.kysely
74
+ .selectFrom('verified_token_requests')
75
+ .select(({ fn }) => fn.countAll().as('count'))
76
+ .where('orgId', '=', orgId)
77
+ .where('status', '=', 'pending')
78
+ .executeTakeFirstOrThrow();
79
+ return Number(row.count);
80
+ }
81
+ /** Hard-deletes an org-scoped request while pending; `undefined` otherwise. */
82
+ export function remove(db, orgId, id) {
83
+ return db.kysely
84
+ .deleteFrom('verified_token_requests')
85
+ .where('id', '=', id)
86
+ .where('orgId', '=', orgId)
87
+ .where('status', '=', 'pending')
88
+ .returningAll()
89
+ .executeTakeFirst();
90
+ }
91
+ /**
92
+ * Marks a pending request approved or denied with reviewer identity;
93
+ * `undefined` when absent or already reviewed.
94
+ */
95
+ export function review(db, id, input) {
96
+ const now = new Date().toISOString();
97
+ return db.kysely
98
+ .updateTable('verified_token_requests')
99
+ .set({
100
+ reviewNote: input.reviewNote ?? null,
101
+ reviewedAt: now,
102
+ reviewedBy: input.reviewedBy,
103
+ status: input.status,
104
+ updatedAt: now,
105
+ })
106
+ .where('id', '=', id)
107
+ .where('status', '=', 'pending')
108
+ .returningAll()
109
+ .executeTakeFirst();
110
+ }
111
+ /** Maps a stored row to the wire shape (null `logo`/`logoUri` map to absent). */
112
+ export function toRequest(record) {
113
+ const { logo, logoUri, ...rest } = record;
114
+ return {
115
+ ...rest,
116
+ ...(logo === null ? {} : { logo }),
117
+ ...(logoUri === null ? {} : { logoUri }),
118
+ };
119
+ }
120
+ //# sourceMappingURL=verifiedTokenRequests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifiedTokenRequests.js","sourceRoot":"","sources":["../../../src/db/tables/verifiedTokenRequests.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,20 @@ export declare function toSubscription(row: Record): Webhooks.Subscription;
17
17
  * @param subscription - The subscription to insert.
18
18
  */
19
19
  export declare function insert(db: Db.Db, subscription: Webhooks.Subscription): Promise<void>;
20
+ /**
21
+ * Inserts a subscription when its owner remains below the configured cap.
22
+ * An owner-scoped transaction lock serializes the count and insert.
23
+ */
24
+ export declare function insertWithinLimit(db: Db.Db, subscription: Webhooks.Subscription, options: insertWithinLimit.Options): Promise<boolean>;
25
+ export declare namespace insertWithinLimit {
26
+ /** Options for an atomic capped insert. */
27
+ type Options = {
28
+ /** Maximum live subscriptions the owner may hold. */
29
+ maxPerOwner: number;
30
+ /** ISO timestamp used to exclude expired rows from the count. */
31
+ now: string;
32
+ };
33
+ }
20
34
  /**
21
35
  * Reads an owner's subscription by id; expired rows never match (query-time
22
36
  * expiry, same read semantics as the old store TTL).
@@ -1 +1 @@
1
- {"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { sql } from 'kysely';
2
+ const subscriptionLimitLockClass = 1464353612;
2
3
  /** Maps an owner union to its stored `ownerId` column value. */
3
4
  export function ownerId(owner) {
4
5
  return owner.type === 'api_key' ? owner.orgId : owner.payer;
@@ -53,6 +54,21 @@ export async function insert(db, subscription) {
53
54
  })
54
55
  .execute();
55
56
  }
57
+ /**
58
+ * Inserts a subscription when its owner remains below the configured cap.
59
+ * An owner-scoped transaction lock serializes the count and insert.
60
+ */
61
+ export async function insertWithinLimit(db, subscription, options) {
62
+ return db.transaction(async (tx) => {
63
+ const owner = `${subscription.owner.type}:${ownerId(subscription.owner)}`;
64
+ await sql `select pg_advisory_xact_lock(${subscriptionLimitLockClass}, hashtext(${owner}))`.execute(tx.kysely); // prettier-ignore
65
+ const existing = await count(tx, subscription.owner, options.now);
66
+ if (existing >= options.maxPerOwner)
67
+ return false;
68
+ await insert(tx, subscription);
69
+ return true;
70
+ });
71
+ }
56
72
  /**
57
73
  * Reads an owner's subscription by id; expired rows never match (query-time
58
74
  * expiry, same read semantics as the old store TTL).
@@ -1 +1 @@
1
- {"version":3,"file":"webhookSubscriptions.js","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhookSubscriptions.js","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -12,27 +12,12 @@ export declare function isSerializedTempoTransaction(value: unknown): value is `
12
12
  export declare function normalizeTempoTransaction(value: Record<string, unknown> | undefined): core_Transaction.Transaction<false, bigint, number>;
13
13
  /** Returns a raw JSON-RPC error response object (not wrapped in a `Response`). */
14
14
  export declare function rpcErrorJson(request: RpcRequest.RpcRequest, error: unknown): {
15
- readonly id: number;
16
- readonly jsonrpc: '2.0';
17
- readonly error: {
18
- readonly code: -32602 | -32004;
19
- readonly message: string;
20
- readonly data?: {} | null;
21
- };
22
- } | {
23
- readonly id: number;
24
- readonly jsonrpc: '2.0';
25
- readonly error: {
26
- code: -32602;
27
- message: string;
28
- };
29
- } | {
30
15
  readonly id: number;
31
16
  readonly jsonrpc: '2.0';
32
17
  readonly error: {
33
18
  readonly code: number;
34
19
  readonly message: string;
35
- readonly data?: {};
20
+ readonly data?: {} | null;
36
21
  };
37
22
  };
38
23
  export declare function rpcError(request: RpcRequest.RpcRequest, error: unknown): Response;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAe,MAAM,IAAI,CAAA;AACjD,OAAO,EAAoB,WAAW,IAAI,gBAAgB,EAAmB,MAAM,UAAU,CAAA;AAC7F,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,sBAS5C;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2BAI1F;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAmBhD;AAoBD,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,OAAO,MAAM,EAAE,GAAG,OAAO,MAAM,EAAE,CAO5C;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,uDAGnF;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;QAsBjE,IAAI;QACJ,OAAO;;;;;;;;;;EAgBhB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,YAEtE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,YAExE;AAED,eAAO,MAAM,WAAW,gHAA2D,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,UAAU,EAAe,MAAM,IAAI,CAAA;AACjD,OAAO,EAAoB,WAAW,IAAI,gBAAgB,EAAmB,MAAM,UAAU,CAAA;AAC7F,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,sBAS5C;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2BAI1F;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAmBhD;AAoBD,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,OAAO,MAAM,EAAE,GAAG,OAAO,MAAM,EAAE,CAO5C;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,uDAGnF;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO;;;;;;;;EAqD1E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,YAEtE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,YAExE;AAED,eAAO,MAAM,WAAW,gHAA2D,CAAA"}
@@ -2,6 +2,7 @@ import { Hex, RpcRequest, RpcResponse } from 'ox';
2
2
  import { KeyAuthorization, Transaction as core_Transaction, TxEnvelopeTempo } from 'ox/tempo';
3
3
  import { BaseError } from 'viem';
4
4
  import * as z from 'zod/mini';
5
+ import * as ApiResponse from '../../internal/Response.js';
5
6
  export function resolveChainId(value) {
6
7
  if (typeof value === 'number')
7
8
  return value;
@@ -87,19 +88,29 @@ export function rpcErrorJson(request, error) {
87
88
  ...(error.data !== undefined ? { data: error.data } : {}),
88
89
  },
89
90
  }, { request });
90
- if (error.name === 'ZodError')
91
+ if (error instanceof z.core.$ZodError)
91
92
  return RpcResponse.from({
92
93
  error: {
93
94
  code: RpcResponse.InvalidParamsError.code,
94
- message: error.message,
95
+ data: {
96
+ code: 'invalid_params',
97
+ issues: ApiResponse.validationDetails(error.issues.slice(0, 10)),
98
+ },
99
+ message: 'Invalid params.',
95
100
  },
96
101
  }, { request });
97
102
  const inner = resolveError(error);
98
- const message = inner.message ?? error.message;
99
- const code = inner.code ?? -32603;
100
- const data = inner.data;
103
+ if (inner.code === undefined || inner.message === undefined)
104
+ return RpcResponse.from({
105
+ error: {
106
+ code: RpcResponse.InternalError.code,
107
+ data: { code: 'internal_error' },
108
+ message: 'Internal error',
109
+ },
110
+ }, { request });
111
+ const { code, data, message } = inner;
101
112
  return RpcResponse.from({
102
- error: { code, message, ...(data ? { data } : {}) },
113
+ error: { code, message, ...(data === undefined ? {} : { data }) },
103
114
  }, { request });
104
115
  }
105
116
  export function rpcError(request, error) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/handlers/internal/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/handlers/internal/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,MAAM,EASZ,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQjD,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAKxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CAklB1D;AAmCD,yBAAiB,KAAK,CAAC;IACrB,KAAY,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QACnC;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B;;WAEG;QACH,QAAQ,CAAC,EACL,KAAK,GACL;YACE,yDAAyD;YACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC9B,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;QACtD;;;WAGG;QACH,QAAQ,CAAC,EACL;YACE,uCAAuC;YACvC,OAAO,EAAE,YAAY,CAAA;YACrB,4DAA4D;YAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC9B;;eAEG;YACH,WAAW,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YACrE;;;eAGG;YACH,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3C,gEAAgE;YAChE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACzB,uDAAuD;YACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACzB,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAA;QACvC;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QAC5B;;;;WAIG;QACH,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9C;;;WAGG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QAC/B,oDAAoD;QACpD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAC3E,gDAAgD;QAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB;;;WAGG;QACH,aAAa,CAAC,EACV,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,GACvE,SAAS,CAAA;KACd,CAAA;CACF"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,MAAM,EASZ,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQjD,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AAKxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CA4lB1D;AA4DD,yBAAiB,KAAK,CAAC;IACrB,KAAY,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QACnC;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B;;WAEG;QACH,QAAQ,CAAC,EACL,KAAK,GACL;YACE,yDAAyD;YACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC9B,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;QACtD;;;WAGG;QACH,QAAQ,CAAC,EACL;YACE,uCAAuC;YACvC,OAAO,EAAE,YAAY,CAAA;YACrB,4DAA4D;YAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;YAC9B;;eAEG;YACH,WAAW,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YACrE;;;eAGG;YACH,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3C,gEAAgE;YAChE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACzB,uDAAuD;YACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACzB,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAA;QACvC;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QAC5B;;;;WAIG;QACH,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9C;;;WAGG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QAC/B,oDAAoD;QACpD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAC3E,gDAAgD;QAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB;;;WAGG;QACH,aAAa,CAAC,EACV,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,GACvE,SAAS,CAAA;KACd,CAAA;CACF"}
@@ -549,21 +549,53 @@ export function relay(options = {}) {
549
549
  const router = from(rest);
550
550
  async function handlePost(c) {
551
551
  const chainId = Utils.resolveChainId(c.req.param('chainId'));
552
- const body = await c.req.raw.json();
552
+ const body = await c.req.raw.json().catch(() => undefined);
553
+ if (body === undefined)
554
+ return Response.json(rpcProtocolError('parse'));
553
555
  const isBatch = Array.isArray(body);
554
556
  if (!isBatch) {
557
+ if (!isRpcRequest(body))
558
+ return Response.json(rpcProtocolError('invalid_request'));
555
559
  const request = RpcRequest.from(body);
556
- return Response.json(await handleRequest(request, { chainId }));
560
+ const response = await handleRequest(request, { chainId }).catch((error) => Utils.rpcErrorJson(request, error));
561
+ return Response.json(response);
557
562
  }
558
- const responses = await Promise.all(body.map((item) => handleRequest(RpcRequest.from(item), {
559
- chainId,
560
- })));
563
+ if (body.length === 0)
564
+ return Response.json(rpcProtocolError('invalid_request'));
565
+ const responses = await Promise.all(body.map((item) => {
566
+ if (!isRpcRequest(item))
567
+ return Promise.resolve(rpcProtocolError('invalid_request'));
568
+ return handleRequest(RpcRequest.from(item), { chainId }).catch((error) => Utils.rpcErrorJson(item, error));
569
+ }));
561
570
  return Response.json(responses);
562
571
  }
563
572
  router.post(path, handlePost);
564
573
  router.post(`${path === '/' ? '' : path}/:chainId`, handlePost);
565
574
  return router;
566
575
  }
576
+ function isRpcRequest(value) {
577
+ if (!value || typeof value !== 'object' || Array.isArray(value))
578
+ return false;
579
+ const request = value;
580
+ if (request['jsonrpc'] !== '2.0' || typeof request['method'] !== 'string')
581
+ return false;
582
+ const id = request['id'];
583
+ if (id !== undefined && id !== null && typeof id !== 'number' && typeof id !== 'string')
584
+ return false;
585
+ const params = request['params'];
586
+ if (params === undefined || Array.isArray(params))
587
+ return true;
588
+ return Boolean(params) && typeof params === 'object';
589
+ }
590
+ function rpcProtocolError(type) {
591
+ return {
592
+ error: type === 'parse'
593
+ ? { code: RpcResponse.ParseError.code, message: 'Parse error' }
594
+ : { code: RpcResponse.InvalidRequestError.code, message: 'Invalid Request' },
595
+ id: null,
596
+ jsonrpc: '2.0',
597
+ };
598
+ }
567
599
  function defaultGetClient(options) {
568
600
  const clients = new Map();
569
601
  for (const chain of defaultChains) {