tapimo 0.7.1 → 0.8.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 (786) hide show
  1. package/README.md +10 -7
  2. package/dist/ApiKey.d.ts +3 -0
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +10 -0
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +29 -8
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +24 -5
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +20680 -15487
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +250 -129
  13. package/dist/App.js.map +1 -1
  14. package/dist/Assets.d.ts +10 -0
  15. package/dist/Assets.d.ts.map +1 -1
  16. package/dist/Assets.js +17 -4
  17. package/dist/Assets.js.map +1 -1
  18. package/dist/Scope.d.ts +19 -8
  19. package/dist/Scope.d.ts.map +1 -1
  20. package/dist/Scope.js +25 -9
  21. package/dist/Scope.js.map +1 -1
  22. package/dist/Webhooks.d.ts +1 -1
  23. package/dist/admin/App.d.ts +667 -76
  24. package/dist/admin/App.d.ts.map +1 -1
  25. package/dist/admin/App.js +12 -2
  26. package/dist/admin/App.js.map +1 -1
  27. package/dist/admin/apps/api-keys.d.ts +107 -11
  28. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  29. package/dist/admin/apps/api-keys.js +145 -32
  30. package/dist/admin/apps/api-keys.js.map +1 -1
  31. package/dist/admin/apps/earn-vaults.d.ts +1069 -0
  32. package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
  33. package/dist/admin/apps/earn-vaults.js +409 -0
  34. package/dist/admin/apps/earn-vaults.js.map +1 -0
  35. package/dist/admin/apps/organizations.d.ts +2 -0
  36. package/dist/admin/apps/organizations.d.ts.map +1 -1
  37. package/dist/admin/apps/verified-tokens.d.ts +74 -74
  38. package/dist/admin/ui.generated.d.ts +1 -1
  39. package/dist/admin/ui.generated.d.ts.map +1 -1
  40. package/dist/admin/ui.generated.js +99 -43
  41. package/dist/admin/ui.generated.js.map +1 -1
  42. package/dist/analytics/Analytics.d.ts +4 -0
  43. package/dist/analytics/Analytics.d.ts.map +1 -1
  44. package/dist/analytics/Analytics.js +21 -2
  45. package/dist/analytics/Analytics.js.map +1 -1
  46. package/dist/analytics/tables/requestEvents.d.ts +22 -1
  47. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  48. package/dist/analytics/tables/requestEvents.js +59 -39
  49. package/dist/analytics/tables/requestEvents.js.map +1 -1
  50. package/dist/apps/Zones.d.ts +8335 -0
  51. package/dist/apps/Zones.d.ts.map +1 -0
  52. package/dist/apps/Zones.js +38 -0
  53. package/dist/apps/Zones.js.map +1 -0
  54. package/dist/apps/data/App.d.ts +5666 -3934
  55. package/dist/apps/data/App.d.ts.map +1 -1
  56. package/dist/apps/data/App.js +90 -22
  57. package/dist/apps/data/App.js.map +1 -1
  58. package/dist/apps/data/FxOracle.d.ts +1 -1
  59. package/dist/apps/data/FxOracle.d.ts.map +1 -1
  60. package/dist/apps/data/index.d.ts +0 -1
  61. package/dist/apps/data/index.d.ts.map +1 -1
  62. package/dist/apps/data/index.js +0 -1
  63. package/dist/apps/data/index.js.map +1 -1
  64. package/dist/apps/data/routes/activities.d.ts +56 -56
  65. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  66. package/dist/apps/data/routes/activities.js +130 -65
  67. package/dist/apps/data/routes/activities.js.map +1 -1
  68. package/dist/apps/data/routes/addresses.d.ts +65 -65
  69. package/dist/apps/data/routes/balances.d.ts +14 -14
  70. package/dist/apps/data/routes/balances.js +5 -5
  71. package/dist/apps/data/routes/balances.js.map +1 -1
  72. package/dist/apps/data/routes/blocks.d.ts +39 -39
  73. package/dist/apps/data/routes/coingecko.d.ts +54 -54
  74. package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
  75. package/dist/apps/data/routes/coingecko.js +62 -35
  76. package/dist/apps/data/routes/coingecko.js.map +1 -1
  77. package/dist/apps/data/routes/earn.d.ts +2574 -0
  78. package/dist/apps/data/routes/earn.d.ts.map +1 -0
  79. package/dist/apps/data/routes/earn.js +1574 -0
  80. package/dist/apps/data/routes/earn.js.map +1 -0
  81. package/dist/apps/data/routes/exchanges.d.ts +1626 -719
  82. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  83. package/dist/apps/data/routes/exchanges.js +656 -193
  84. package/dist/apps/data/routes/exchanges.js.map +1 -1
  85. package/dist/apps/data/routes/fee-amm.d.ts +108 -108
  86. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  87. package/dist/apps/data/routes/fee-amm.js +59 -8
  88. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  89. package/dist/apps/data/routes/indexer.d.ts +35 -35
  90. package/dist/apps/data/routes/indexer.d.ts.map +1 -1
  91. package/dist/apps/data/routes/indexer.js +23 -3
  92. package/dist/apps/data/routes/indexer.js.map +1 -1
  93. package/dist/apps/data/routes/receipts.d.ts +33 -33
  94. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  95. package/dist/apps/data/routes/receipts.js +11 -11
  96. package/dist/apps/data/routes/receipts.js.map +1 -1
  97. package/dist/apps/data/routes/rpc.d.ts +6 -6
  98. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  99. package/dist/apps/data/routes/rpc.js +214 -22
  100. package/dist/apps/data/routes/rpc.js.map +1 -1
  101. package/dist/apps/data/routes/tokenlist.d.ts +1 -1
  102. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
  103. package/dist/apps/data/routes/tokenlist.js +39 -8
  104. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  105. package/dist/apps/data/routes/tokens.d.ts +115 -87
  106. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  107. package/dist/apps/data/routes/tokens.js +194 -91
  108. package/dist/apps/data/routes/tokens.js.map +1 -1
  109. package/dist/apps/data/routes/transactions.d.ts +54 -54
  110. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  111. package/dist/apps/data/routes/transactions.js +78 -39
  112. package/dist/apps/data/routes/transactions.js.map +1 -1
  113. package/dist/apps/data/routes/transfers.d.ts +76 -27
  114. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  115. package/dist/apps/data/routes/transfers.js +165 -67
  116. package/dist/apps/data/routes/transfers.js.map +1 -1
  117. package/dist/apps/data/routes/valuation.d.ts +42 -42
  118. package/dist/apps/data/routes/valuation.js +2 -2
  119. package/dist/apps/data/routes/valuation.js.map +1 -1
  120. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  121. package/dist/apps/data/routes/webhooks.d.ts +370 -368
  122. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  123. package/dist/apps/data/routes/webhooks.js +161 -59
  124. package/dist/apps/data/routes/webhooks.js.map +1 -1
  125. package/dist/apps/data/routes/zones.d.ts +281 -0
  126. package/dist/apps/data/routes/zones.d.ts.map +1 -0
  127. package/dist/apps/data/routes/zones.js +252 -0
  128. package/dist/apps/data/routes/zones.js.map +1 -0
  129. package/dist/apps/docs/reference.js +6 -5
  130. package/dist/apps/docs/reference.js.map +1 -1
  131. package/dist/apps/funding/Access.d.ts +16 -0
  132. package/dist/apps/funding/Access.d.ts.map +1 -0
  133. package/dist/apps/funding/Access.js +22 -0
  134. package/dist/apps/funding/Access.js.map +1 -0
  135. package/dist/apps/funding/App.d.ts +3183 -0
  136. package/dist/apps/funding/App.d.ts.map +1 -0
  137. package/dist/apps/funding/App.js +46 -0
  138. package/dist/apps/funding/App.js.map +1 -0
  139. package/dist/apps/funding/Inventory.d.ts +5 -0
  140. package/dist/apps/funding/Inventory.d.ts.map +1 -0
  141. package/dist/apps/funding/Inventory.js +25 -0
  142. package/dist/apps/funding/Inventory.js.map +1 -0
  143. package/dist/apps/funding/ProviderAttempts.d.ts +5 -0
  144. package/dist/apps/funding/ProviderAttempts.d.ts.map +1 -0
  145. package/dist/apps/funding/ProviderAttempts.js +24 -0
  146. package/dist/apps/funding/ProviderAttempts.js.map +1 -0
  147. package/dist/apps/funding/index.d.ts +2 -0
  148. package/dist/apps/funding/index.d.ts.map +1 -0
  149. package/dist/apps/funding/index.js +2 -0
  150. package/dist/apps/funding/index.js.map +1 -0
  151. package/dist/apps/funding/routes/chains.d.ts +169 -0
  152. package/dist/apps/funding/routes/chains.d.ts.map +1 -0
  153. package/dist/apps/funding/routes/chains.js +80 -0
  154. package/dist/apps/funding/routes/chains.js.map +1 -0
  155. package/dist/apps/funding/routes/deposit-addresses.d.ts +2388 -0
  156. package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -0
  157. package/dist/apps/funding/routes/deposit-addresses.js +860 -0
  158. package/dist/apps/funding/routes/deposit-addresses.js.map +1 -0
  159. package/dist/apps/funding/routes/providers.d.ts +91 -0
  160. package/dist/apps/funding/routes/providers.d.ts.map +1 -0
  161. package/dist/apps/funding/routes/providers.js +56 -0
  162. package/dist/apps/funding/routes/providers.js.map +1 -0
  163. package/dist/apps/{data/routes/funding.d.ts → funding/routes/quotes.d.ts} +26 -396
  164. package/dist/apps/funding/routes/quotes.d.ts.map +1 -0
  165. package/dist/apps/funding/routes/quotes.js +188 -0
  166. package/dist/apps/funding/routes/quotes.js.map +1 -0
  167. package/dist/apps/funding/routes/transfers.d.ts +1999 -0
  168. package/dist/apps/funding/routes/transfers.d.ts.map +1 -0
  169. package/dist/apps/funding/routes/transfers.js +614 -0
  170. package/dist/apps/funding/routes/transfers.js.map +1 -0
  171. package/dist/apps/index.d.ts +3 -1
  172. package/dist/apps/index.d.ts.map +1 -1
  173. package/dist/apps/index.js +3 -1
  174. package/dist/apps/index.js.map +1 -1
  175. package/dist/apps/management/App.d.ts +839 -574
  176. package/dist/apps/management/App.d.ts.map +1 -1
  177. package/dist/apps/management/Billing.d.ts +8 -0
  178. package/dist/apps/management/Billing.d.ts.map +1 -1
  179. package/dist/apps/management/Billing.js +12 -0
  180. package/dist/apps/management/Billing.js.map +1 -1
  181. package/dist/apps/management/Error.d.ts +12 -0
  182. package/dist/apps/management/Error.d.ts.map +1 -0
  183. package/dist/apps/management/Error.js +10 -0
  184. package/dist/apps/management/Error.js.map +1 -0
  185. package/dist/apps/management/routes/api-keys.d.ts +296 -19
  186. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  187. package/dist/apps/management/routes/api-keys.js +77 -9
  188. package/dist/apps/management/routes/api-keys.js.map +1 -1
  189. package/dist/apps/management/routes/billing.d.ts +119 -119
  190. package/dist/apps/management/routes/faucet.d.ts +35 -35
  191. package/dist/apps/management/routes/invitations.d.ts +17 -17
  192. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  193. package/dist/apps/management/routes/invitations.js +4 -10
  194. package/dist/apps/management/routes/invitations.js.map +1 -1
  195. package/dist/apps/management/routes/invite-links.d.ts +38 -38
  196. package/dist/apps/management/routes/me.d.ts +6 -6
  197. package/dist/apps/management/routes/members.d.ts +69 -69
  198. package/dist/apps/management/routes/orgs.d.ts +16 -16
  199. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  200. package/dist/apps/management/routes/orgs.js +2 -8
  201. package/dist/apps/management/routes/orgs.js.map +1 -1
  202. package/dist/apps/management/routes/projects.d.ts +19 -19
  203. package/dist/apps/management/routes/scopes.d.ts +1 -1
  204. package/dist/apps/management/routes/scopes.js +2 -2
  205. package/dist/apps/management/routes/scopes.js.map +1 -1
  206. package/dist/apps/management/routes/usage.d.ts +72 -72
  207. package/dist/apps/management/routes/verified-token-requests.d.ts +18 -18
  208. package/dist/apps/management/routes/webhooks.d.ts +122 -122
  209. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  210. package/dist/apps/management/routes/webhooks.js +15 -3
  211. package/dist/apps/management/routes/webhooks.js.map +1 -1
  212. package/dist/apps/mcp.d.ts +2 -3
  213. package/dist/apps/mcp.d.ts.map +1 -1
  214. package/dist/apps/mcp.js +16 -14
  215. package/dist/apps/mcp.js.map +1 -1
  216. package/dist/apps/metadata.d.ts +4 -0
  217. package/dist/apps/metadata.d.ts.map +1 -1
  218. package/dist/apps/metadata.js +10 -0
  219. package/dist/apps/metadata.js.map +1 -1
  220. package/dist/apps/mpp/App.d.ts +57 -58
  221. package/dist/apps/mpp/App.d.ts.map +1 -1
  222. package/dist/apps/mpp/App.js +192 -27
  223. package/dist/apps/mpp/App.js.map +1 -1
  224. package/dist/apps/mpp/Mpp.d.ts +0 -20
  225. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  226. package/dist/apps/mpp/Mpp.js +0 -24
  227. package/dist/apps/mpp/Mpp.js.map +1 -1
  228. package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
  229. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
  230. package/dist/apps/mpp/internal/Adapter.js +66 -0
  231. package/dist/apps/mpp/internal/Adapter.js.map +1 -0
  232. package/dist/apps/mpp/internal/Error.d.ts +4 -0
  233. package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
  234. package/dist/apps/mpp/internal/Error.js +41 -0
  235. package/dist/apps/mpp/internal/Error.js.map +1 -0
  236. package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
  237. package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
  238. package/dist/apps/mpp/internal/Idempotency.js +28 -0
  239. package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
  240. package/dist/apps/mpp/internal/Policy.d.ts +46 -0
  241. package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
  242. package/dist/apps/mpp/internal/Policy.js +57 -0
  243. package/dist/apps/mpp/internal/Policy.js.map +1 -0
  244. package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
  245. package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
  246. package/dist/apps/mpp/internal/ScreenManager.js +18 -0
  247. package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
  248. package/dist/apps/mpp/internal/Screening.d.ts +35 -0
  249. package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
  250. package/dist/apps/mpp/internal/Screening.js +20 -0
  251. package/dist/apps/mpp/internal/Screening.js.map +1 -0
  252. package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
  253. package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
  254. package/dist/apps/mpp/internal/Sponsorship.js +103 -0
  255. package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
  256. package/dist/apps/mpp/internal/Utils.d.ts +7 -0
  257. package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
  258. package/dist/apps/mpp/internal/Utils.js +24 -0
  259. package/dist/apps/mpp/internal/Utils.js.map +1 -0
  260. package/dist/apps/relay/App.js +183 -23
  261. package/dist/apps/relay/App.js.map +1 -1
  262. package/dist/apps/relay/Sponsorships.d.ts +4 -0
  263. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  264. package/dist/apps/relay/Sponsorships.js +15 -6
  265. package/dist/apps/relay/Sponsorships.js.map +1 -1
  266. package/dist/cloudflare.d.ts +50 -0
  267. package/dist/cloudflare.d.ts.map +1 -1
  268. package/dist/cloudflare.js +178 -0
  269. package/dist/cloudflare.js.map +1 -1
  270. package/dist/db/Db.d.ts +22 -0
  271. package/dist/db/Db.d.ts.map +1 -1
  272. package/dist/db/Db.js +379 -0
  273. package/dist/db/Db.js.map +1 -1
  274. package/dist/db/Schema.d.ts +933 -1
  275. package/dist/db/Schema.d.ts.map +1 -1
  276. package/dist/db/Schema.js +289 -1
  277. package/dist/db/Schema.js.map +1 -1
  278. package/dist/db/tables/earnVaults.d.ts +68 -0
  279. package/dist/db/tables/earnVaults.d.ts.map +1 -0
  280. package/dist/db/tables/earnVaults.js +72 -0
  281. package/dist/db/tables/earnVaults.js.map +1 -0
  282. package/dist/db/tables/fundingCatalog.d.ts +56 -0
  283. package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
  284. package/dist/db/tables/fundingCatalog.js +85 -0
  285. package/dist/db/tables/fundingCatalog.js.map +1 -0
  286. package/dist/db/tables/fundingDepositAddresses.d.ts +172 -0
  287. package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
  288. package/dist/db/tables/fundingDepositAddresses.js +218 -0
  289. package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
  290. package/dist/db/tables/fundingDepositRequestObservations.d.ts +45 -0
  291. package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +1 -0
  292. package/dist/db/tables/fundingDepositRequestObservations.js +46 -0
  293. package/dist/db/tables/fundingDepositRequestObservations.js.map +1 -0
  294. package/dist/db/tables/fundingDeposits.d.ts +171 -0
  295. package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
  296. package/dist/db/tables/fundingDeposits.js +182 -0
  297. package/dist/db/tables/fundingDeposits.js.map +1 -0
  298. package/dist/db/tables/fundingIdempotency.d.ts +91 -0
  299. package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
  300. package/dist/db/tables/fundingIdempotency.js +103 -0
  301. package/dist/db/tables/fundingIdempotency.js.map +1 -0
  302. package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
  303. package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
  304. package/dist/db/tables/fundingTransferEvents.js +18 -0
  305. package/dist/db/tables/fundingTransferEvents.js.map +1 -0
  306. package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
  307. package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
  308. package/dist/db/tables/fundingTransferTransactions.js +27 -0
  309. package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
  310. package/dist/db/tables/fundingTransfers.d.ts +82 -0
  311. package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
  312. package/dist/db/tables/fundingTransfers.js +89 -0
  313. package/dist/db/tables/fundingTransfers.js.map +1 -0
  314. package/dist/db/tables/organizations.d.ts +8 -0
  315. package/dist/db/tables/organizations.d.ts.map +1 -1
  316. package/dist/db/tables/organizations.js +16 -0
  317. package/dist/db/tables/organizations.js.map +1 -1
  318. package/dist/db/tables/projects.d.ts +8 -0
  319. package/dist/db/tables/projects.d.ts.map +1 -1
  320. package/dist/db/tables/projects.js +16 -0
  321. package/dist/db/tables/projects.js.map +1 -1
  322. package/dist/db/tables/requestUsage.d.ts +13 -0
  323. package/dist/db/tables/requestUsage.d.ts.map +1 -1
  324. package/dist/db/tables/requestUsage.js +16 -0
  325. package/dist/db/tables/requestUsage.js.map +1 -1
  326. package/dist/db/tables/sponsoredTransactions.d.ts +2 -2
  327. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  328. package/dist/db/tables/sponsoredTransactions.js +1 -1
  329. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  330. package/dist/db/tables/users.d.ts +8 -0
  331. package/dist/db/tables/users.d.ts.map +1 -1
  332. package/dist/db/tables/users.js +16 -0
  333. package/dist/db/tables/users.js.map +1 -1
  334. package/dist/db/tables/verifiedTokens.d.ts +14 -7
  335. package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
  336. package/dist/db/tables/verifiedTokens.js +9 -7
  337. package/dist/db/tables/verifiedTokens.js.map +1 -1
  338. package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
  339. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  340. package/dist/db/tables/webhookSubscriptions.js +24 -3
  341. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  342. package/dist/handlers/relay.js +108 -108
  343. package/dist/handlers/relay.js.map +1 -1
  344. package/dist/internal/Auth.d.ts +37 -11
  345. package/dist/internal/Auth.d.ts.map +1 -1
  346. package/dist/internal/Auth.js +75 -16
  347. package/dist/internal/Auth.js.map +1 -1
  348. package/dist/internal/Cache.d.ts.map +1 -1
  349. package/dist/internal/Cache.js +17 -11
  350. package/dist/internal/Cache.js.map +1 -1
  351. package/dist/internal/Cursor.js +1 -1
  352. package/dist/internal/Cursor.js.map +1 -1
  353. package/dist/internal/EarnRates.d.ts +89 -0
  354. package/dist/internal/EarnRates.d.ts.map +1 -0
  355. package/dist/internal/EarnRates.js +266 -0
  356. package/dist/internal/EarnRates.js.map +1 -0
  357. package/dist/internal/EarnVaults.d.ts +171 -0
  358. package/dist/internal/EarnVaults.d.ts.map +1 -0
  359. package/dist/internal/EarnVaults.js +547 -0
  360. package/dist/internal/EarnVaults.js.map +1 -0
  361. package/dist/internal/EdgeCache.d.ts +10 -3
  362. package/dist/internal/EdgeCache.d.ts.map +1 -1
  363. package/dist/internal/EdgeCache.js +43 -11
  364. package/dist/internal/EdgeCache.js.map +1 -1
  365. package/dist/internal/Id.d.ts +11 -0
  366. package/dist/internal/Id.d.ts.map +1 -1
  367. package/dist/internal/Id.js +13 -0
  368. package/dist/internal/Id.js.map +1 -1
  369. package/dist/internal/Idempotency.d.ts +83 -0
  370. package/dist/internal/Idempotency.d.ts.map +1 -0
  371. package/dist/internal/Idempotency.js +113 -0
  372. package/dist/internal/Idempotency.js.map +1 -0
  373. package/dist/internal/IpAllowlist.d.ts +15 -0
  374. package/dist/internal/IpAllowlist.d.ts.map +1 -0
  375. package/dist/internal/IpAllowlist.js +27 -0
  376. package/dist/internal/IpAllowlist.js.map +1 -0
  377. package/dist/internal/Log.d.ts +64 -9
  378. package/dist/internal/Log.d.ts.map +1 -1
  379. package/dist/internal/Log.js +29 -7
  380. package/dist/internal/Log.js.map +1 -1
  381. package/dist/internal/MetricSink.d.ts.map +1 -1
  382. package/dist/internal/MetricSink.js +47 -1
  383. package/dist/internal/MetricSink.js.map +1 -1
  384. package/dist/internal/OpenApi.d.ts +2 -2
  385. package/dist/internal/OpenApi.d.ts.map +1 -1
  386. package/dist/internal/OpenApi.js +4 -1
  387. package/dist/internal/OpenApi.js.map +1 -1
  388. package/dist/internal/Provider.d.ts +14 -0
  389. package/dist/internal/Provider.d.ts.map +1 -0
  390. package/dist/internal/Provider.js +5 -0
  391. package/dist/internal/Provider.js.map +1 -0
  392. package/dist/internal/Schema.d.ts +6 -1
  393. package/dist/internal/Schema.d.ts.map +1 -1
  394. package/dist/internal/Schema.js +20 -11
  395. package/dist/internal/Schema.js.map +1 -1
  396. package/dist/internal/Store.d.ts +6 -0
  397. package/dist/internal/Store.d.ts.map +1 -1
  398. package/dist/internal/Store.js +35 -0
  399. package/dist/internal/Store.js.map +1 -1
  400. package/dist/internal/Tidx.d.ts +49 -24
  401. package/dist/internal/Tidx.d.ts.map +1 -1
  402. package/dist/internal/Tidx.js +90 -12
  403. package/dist/internal/Tidx.js.map +1 -1
  404. package/dist/internal/Viem.d.ts +90 -65
  405. package/dist/internal/Viem.d.ts.map +1 -1
  406. package/dist/internal/Viem.js +90 -12
  407. package/dist/internal/Viem.js.map +1 -1
  408. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  409. package/dist/internal/WebhookDestination.js +34 -28
  410. package/dist/internal/WebhookDestination.js.map +1 -1
  411. package/dist/internal/Webhooks.d.ts +9 -0
  412. package/dist/internal/Webhooks.d.ts.map +1 -1
  413. package/dist/internal/Webhooks.js +15 -10
  414. package/dist/internal/Webhooks.js.map +1 -1
  415. package/dist/internal/exchange/Provider.d.ts +219 -0
  416. package/dist/internal/exchange/Provider.d.ts.map +1 -0
  417. package/dist/internal/exchange/Provider.js +117 -0
  418. package/dist/internal/exchange/Provider.js.map +1 -0
  419. package/dist/internal/exchange/index.d.ts +2 -0
  420. package/dist/internal/exchange/index.d.ts.map +1 -0
  421. package/dist/internal/exchange/index.js +2 -0
  422. package/dist/internal/exchange/index.js.map +1 -0
  423. package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
  424. package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
  425. package/dist/internal/exchange/providers/uniswap.js +553 -0
  426. package/dist/internal/exchange/providers/uniswap.js.map +1 -0
  427. package/dist/internal/funding/Action.d.ts +55 -0
  428. package/dist/internal/funding/Action.d.ts.map +1 -0
  429. package/dist/internal/funding/Action.js +74 -0
  430. package/dist/internal/funding/Action.js.map +1 -0
  431. package/dist/internal/funding/Catalog.d.ts +107 -0
  432. package/dist/internal/funding/Catalog.d.ts.map +1 -0
  433. package/dist/internal/funding/Catalog.js +270 -0
  434. package/dist/internal/funding/Catalog.js.map +1 -0
  435. package/dist/internal/funding/Chain.d.ts +76 -0
  436. package/dist/internal/funding/Chain.d.ts.map +1 -0
  437. package/dist/internal/funding/Chain.js +38 -0
  438. package/dist/internal/funding/Chain.js.map +1 -0
  439. package/dist/internal/funding/Deposit.d.ts +408 -0
  440. package/dist/internal/funding/Deposit.d.ts.map +1 -0
  441. package/dist/internal/funding/Deposit.js +318 -0
  442. package/dist/internal/funding/Deposit.js.map +1 -0
  443. package/dist/internal/funding/DepositAddress.d.ts +345 -0
  444. package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
  445. package/dist/internal/funding/DepositAddress.js +189 -0
  446. package/dist/internal/funding/DepositAddress.js.map +1 -0
  447. package/dist/internal/funding/Evidence.d.ts +48 -0
  448. package/dist/internal/funding/Evidence.d.ts.map +1 -0
  449. package/dist/internal/funding/Evidence.js +315 -0
  450. package/dist/internal/funding/Evidence.js.map +1 -0
  451. package/dist/internal/funding/Provider.d.ts +1288 -0
  452. package/dist/internal/funding/Provider.d.ts.map +1 -0
  453. package/dist/internal/funding/Provider.js +1086 -0
  454. package/dist/internal/funding/Provider.js.map +1 -0
  455. package/dist/internal/funding/Reconciliation.d.ts +127 -0
  456. package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
  457. package/dist/internal/funding/Reconciliation.js +885 -0
  458. package/dist/internal/funding/Reconciliation.js.map +1 -0
  459. package/dist/internal/funding/Route.d.ts +21 -0
  460. package/dist/internal/funding/Route.d.ts.map +1 -0
  461. package/dist/internal/funding/Route.js +5 -0
  462. package/dist/internal/funding/Route.js.map +1 -0
  463. package/dist/internal/funding/SourceObservation.d.ts +108 -0
  464. package/dist/internal/funding/SourceObservation.d.ts.map +1 -0
  465. package/dist/internal/funding/SourceObservation.js +143 -0
  466. package/dist/internal/funding/SourceObservation.js.map +1 -0
  467. package/dist/internal/funding/Subsidy.d.ts +113 -0
  468. package/dist/internal/funding/Subsidy.d.ts.map +1 -0
  469. package/dist/internal/funding/Subsidy.js +138 -0
  470. package/dist/internal/funding/Subsidy.js.map +1 -0
  471. package/dist/internal/funding/Token.d.ts +41 -0
  472. package/dist/internal/funding/Token.d.ts.map +1 -0
  473. package/dist/internal/funding/Token.js +22 -0
  474. package/dist/internal/funding/Token.js.map +1 -0
  475. package/dist/internal/funding/Transfer.d.ts +643 -0
  476. package/dist/internal/funding/Transfer.d.ts.map +1 -0
  477. package/dist/internal/funding/Transfer.js +332 -0
  478. package/dist/internal/funding/Transfer.js.map +1 -0
  479. package/dist/internal/funding/index.d.ts +14 -0
  480. package/dist/internal/funding/index.d.ts.map +1 -0
  481. package/dist/internal/funding/index.js +14 -0
  482. package/dist/internal/funding/index.js.map +1 -0
  483. package/dist/internal/funding/providers/across.d.ts +21 -0
  484. package/dist/internal/funding/providers/across.d.ts.map +1 -0
  485. package/dist/internal/funding/providers/across.js +117 -0
  486. package/dist/internal/funding/providers/across.js.map +1 -0
  487. package/dist/internal/funding/providers/relay.d.ts +88 -0
  488. package/dist/internal/funding/providers/relay.d.ts.map +1 -0
  489. package/dist/internal/funding/providers/relay.js +871 -0
  490. package/dist/internal/funding/providers/relay.js.map +1 -0
  491. package/dist/internal/funding/providers/rhino.d.ts +15 -0
  492. package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
  493. package/dist/internal/funding/providers/rhino.js +116 -0
  494. package/dist/internal/funding/providers/rhino.js.map +1 -0
  495. package/dist/internal/funding/providers/squid.d.ts +19 -0
  496. package/dist/internal/funding/providers/squid.d.ts.map +1 -0
  497. package/dist/internal/funding/providers/squid.js +120 -0
  498. package/dist/internal/funding/providers/squid.js.map +1 -0
  499. package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
  500. package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
  501. package/dist/internal/funding/providers/symbiosis.js +176 -0
  502. package/dist/internal/funding/providers/symbiosis.js.map +1 -0
  503. package/dist/internal/index.d.ts +5 -1
  504. package/dist/internal/index.d.ts.map +1 -1
  505. package/dist/internal/index.js +5 -1
  506. package/dist/internal/index.js.map +1 -1
  507. package/dist/internal/webhookDestinations/url.js +61 -57
  508. package/dist/internal/webhookDestinations/url.js.map +1 -1
  509. package/dist/providers/index.d.ts +43 -0
  510. package/dist/providers/index.d.ts.map +1 -0
  511. package/dist/providers/index.js +19 -0
  512. package/dist/providers/index.js.map +1 -0
  513. package/package.json +10 -5
  514. package/src/ApiKey.test.ts +35 -0
  515. package/src/ApiKey.ts +27 -0
  516. package/src/ApiKeys.test.ts +40 -7
  517. package/src/ApiKeys.ts +46 -10
  518. package/src/App.test.ts +108 -15
  519. package/src/App.ts +296 -138
  520. package/src/Assets.ts +29 -4
  521. package/src/Client.test-d.ts +809 -37
  522. package/src/Scope.test.ts +19 -0
  523. package/src/Scope.ts +28 -11
  524. package/src/Webhooks.test.ts +25 -0
  525. package/src/Webhooks.ts +1 -1
  526. package/src/admin/App.test.ts +9 -2
  527. package/src/admin/App.ts +32 -9
  528. package/src/admin/apps/api-keys.test.ts +190 -22
  529. package/src/admin/apps/api-keys.ts +170 -28
  530. package/src/admin/apps/earn-vaults.test.ts +338 -0
  531. package/src/admin/apps/earn-vaults.ts +572 -0
  532. package/src/admin/apps/scopes.test.ts +16 -1
  533. package/src/admin/ui/plugin.ts +2 -2
  534. package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
  535. package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
  536. package/src/admin/ui/src/components/Page.tsx +1 -1
  537. package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
  538. package/src/admin/ui/src/lib/api-keys.ts +37 -7
  539. package/src/admin/ui/src/lib/client.ts +1 -1
  540. package/src/admin/ui/src/lib/config.ts +1 -1
  541. package/src/admin/ui/src/lib/early-access.ts +8 -9
  542. package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
  543. package/src/admin/ui/src/lib/format.ts +13 -0
  544. package/src/admin/ui/src/lib/organizations.test.ts +14 -4
  545. package/src/admin/ui/src/lib/organizations.ts +7 -1
  546. package/src/admin/ui/src/lib/response.ts +22 -0
  547. package/src/admin/ui/src/lib/scopes.test.ts +19 -11
  548. package/src/admin/ui/src/lib/scopes.ts +28 -7
  549. package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
  550. package/src/admin/ui/src/routeTree.gen.ts +70 -7
  551. package/src/admin/ui/src/router.tsx +2 -2
  552. package/src/admin/ui/src/routes/__root.tsx +9 -8
  553. package/src/admin/ui/src/routes/api-keys.tsx +475 -64
  554. package/src/admin/ui/src/routes/early-access.tsx +5 -12
  555. package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
  556. package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
  557. package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
  558. package/src/admin/ui/src/routes/organizations.tsx +4 -7
  559. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
  560. package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
  561. package/src/admin/ui/vite.config.ts +4 -1
  562. package/src/admin/ui.generated.ts +113 -43
  563. package/src/analytics/Analytics.test.ts +69 -10
  564. package/src/analytics/Analytics.ts +24 -1
  565. package/src/analytics/tables/requestEvents.ts +79 -37
  566. package/src/apps/Zones.test.ts +33 -0
  567. package/src/apps/Zones.ts +40 -0
  568. package/src/apps/composition.test.ts +184 -3
  569. package/src/apps/data/App.test.ts +28 -23
  570. package/src/apps/data/App.ts +95 -36
  571. package/src/apps/data/FxOracle.ts +1 -1
  572. package/src/apps/data/index.ts +0 -1
  573. package/src/apps/data/routes/activities.test.ts +82 -6
  574. package/src/apps/data/routes/activities.ts +131 -71
  575. package/src/apps/data/routes/balances.test.ts +50 -37
  576. package/src/apps/data/routes/balances.ts +5 -5
  577. package/src/apps/data/routes/blocks.test.ts +2 -0
  578. package/src/apps/data/routes/coingecko.test.ts +22 -0
  579. package/src/apps/data/routes/coingecko.ts +84 -48
  580. package/src/apps/data/routes/earn.test.ts +1391 -0
  581. package/src/apps/data/routes/earn.ts +2188 -0
  582. package/src/apps/data/routes/exchanges.test.ts +82 -33
  583. package/src/apps/data/routes/exchanges.ts +842 -227
  584. package/src/apps/data/routes/fee-amm.test.ts +4 -6
  585. package/src/apps/data/routes/fee-amm.ts +69 -12
  586. package/src/apps/data/routes/indexer.test.ts +43 -34
  587. package/src/apps/data/routes/indexer.ts +21 -3
  588. package/src/apps/data/routes/receipts.test.ts +5 -3
  589. package/src/apps/data/routes/receipts.ts +13 -11
  590. package/src/apps/data/routes/rpc.test.ts +446 -28
  591. package/src/apps/data/routes/rpc.ts +245 -25
  592. package/src/apps/data/routes/tokenlist.ts +72 -19
  593. package/src/apps/data/routes/tokens.test.ts +6 -8
  594. package/src/apps/data/routes/tokens.ts +258 -86
  595. package/src/apps/data/routes/transactions.test.ts +2 -0
  596. package/src/apps/data/routes/transactions.ts +77 -42
  597. package/src/apps/data/routes/transfers.test.ts +166 -4
  598. package/src/apps/data/routes/transfers.ts +216 -78
  599. package/src/apps/data/routes/valuation.test.ts +62 -9
  600. package/src/apps/data/routes/valuation.ts +2 -2
  601. package/src/apps/data/routes/webhooks.test.ts +386 -43
  602. package/src/apps/data/routes/webhooks.ts +172 -71
  603. package/src/apps/data/routes/zones.test.ts +473 -0
  604. package/src/apps/data/routes/zones.ts +338 -0
  605. package/src/apps/docs/reference.ts +8 -6
  606. package/src/apps/funding/Access.ts +26 -0
  607. package/src/apps/funding/App.test.ts +78 -0
  608. package/src/apps/funding/App.ts +63 -0
  609. package/src/apps/funding/Inventory.ts +30 -0
  610. package/src/apps/funding/ProviderAttempts.ts +26 -0
  611. package/src/apps/funding/index.ts +1 -0
  612. package/src/apps/funding/routes/chains.test.ts +78 -0
  613. package/src/apps/funding/routes/chains.ts +101 -0
  614. package/src/apps/funding/routes/deposit-addresses.test.ts +1628 -0
  615. package/src/apps/funding/routes/deposit-addresses.ts +1015 -0
  616. package/src/apps/funding/routes/providers.test.ts +165 -0
  617. package/src/apps/funding/routes/providers.ts +73 -0
  618. package/src/apps/funding/routes/quotes.test.ts +511 -0
  619. package/src/apps/funding/routes/quotes.ts +205 -0
  620. package/src/apps/funding/routes/transfers.test.ts +1255 -0
  621. package/src/apps/funding/routes/transfers.ts +704 -0
  622. package/src/apps/index.ts +3 -1
  623. package/src/apps/management/Billing.test.ts +29 -0
  624. package/src/apps/management/Billing.ts +23 -0
  625. package/src/apps/management/Error.ts +12 -0
  626. package/src/apps/management/routes/api-keys.test.ts +103 -3
  627. package/src/apps/management/routes/api-keys.ts +98 -10
  628. package/src/apps/management/routes/invitations.ts +4 -11
  629. package/src/apps/management/routes/orgs.ts +2 -9
  630. package/src/apps/management/routes/scopes.test.ts +7 -2
  631. package/src/apps/management/routes/scopes.ts +2 -2
  632. package/src/apps/management/routes/webhooks.test.ts +6 -1
  633. package/src/apps/management/routes/webhooks.ts +15 -3
  634. package/src/apps/mcp.test.ts +17 -2
  635. package/src/apps/mcp.ts +18 -13
  636. package/src/apps/metadata.ts +12 -0
  637. package/src/apps/mpp/App.ts +276 -29
  638. package/src/apps/mpp/Mpp.test.ts +631 -26
  639. package/src/apps/mpp/Mpp.ts +0 -42
  640. package/src/apps/mpp/internal/Adapter.ts +108 -3
  641. package/src/apps/mpp/internal/Error.test.ts +33 -0
  642. package/src/apps/mpp/internal/Error.ts +44 -6
  643. package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
  644. package/src/apps/mpp/internal/Idempotency.ts +59 -5
  645. package/src/apps/mpp/internal/Policy.test.ts +128 -0
  646. package/src/apps/mpp/internal/Policy.ts +98 -0
  647. package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
  648. package/src/apps/mpp/internal/ScreenManager.ts +41 -0
  649. package/src/apps/mpp/internal/Screening.ts +40 -3
  650. package/src/apps/mpp/internal/Sponsorship.ts +144 -0
  651. package/src/apps/mpp/internal/Utils.ts +30 -0
  652. package/src/apps/relay/App.test.ts +493 -62
  653. package/src/apps/relay/App.ts +233 -23
  654. package/src/apps/relay/Sponsorships.test.ts +49 -0
  655. package/src/apps/relay/Sponsorships.ts +18 -6
  656. package/src/cloudflare.ts +279 -0
  657. package/src/db/Db.ts +501 -0
  658. package/src/db/Schema.ts +349 -2
  659. package/src/db/tables/earnVaults.test.ts +185 -0
  660. package/src/db/tables/earnVaults.ts +151 -0
  661. package/src/db/tables/fundingCatalog.test.ts +108 -0
  662. package/src/db/tables/fundingCatalog.ts +157 -0
  663. package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
  664. package/src/db/tables/fundingDepositAddresses.ts +404 -0
  665. package/src/db/tables/fundingDepositRequestObservations.test.ts +106 -0
  666. package/src/db/tables/fundingDepositRequestObservations.ts +99 -0
  667. package/src/db/tables/fundingDeposits.test.ts +399 -0
  668. package/src/db/tables/fundingDeposits.ts +373 -0
  669. package/src/db/tables/fundingIdempotency.test.ts +182 -0
  670. package/src/db/tables/fundingIdempotency.ts +180 -0
  671. package/src/db/tables/fundingTransferEvents.ts +28 -0
  672. package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
  673. package/src/db/tables/fundingTransferTransactions.ts +37 -0
  674. package/src/db/tables/fundingTransfers.test.ts +89 -0
  675. package/src/db/tables/fundingTransfers.ts +153 -0
  676. package/src/db/tables/organizations.ts +16 -0
  677. package/src/db/tables/projects.ts +16 -0
  678. package/src/db/tables/requestUsage.ts +23 -0
  679. package/src/db/tables/sponsoredTransactions.test.ts +11 -0
  680. package/src/db/tables/sponsoredTransactions.ts +3 -3
  681. package/src/db/tables/users.ts +16 -0
  682. package/src/db/tables/verifiedTokens.ts +19 -14
  683. package/src/db/tables/webhookSubscriptions.ts +58 -3
  684. package/src/handlers/relay.test.ts +2 -0
  685. package/src/handlers/relay.ts +95 -99
  686. package/src/internal/Auth.test.ts +225 -5
  687. package/src/internal/Auth.ts +109 -20
  688. package/src/internal/Cache.test.ts +37 -3
  689. package/src/internal/Cache.ts +14 -10
  690. package/src/internal/Cursor.test.ts +2 -2
  691. package/src/internal/Cursor.ts +1 -1
  692. package/src/internal/EarnRates.test.ts +125 -0
  693. package/src/internal/EarnRates.ts +409 -0
  694. package/src/internal/EarnVaults.test.ts +195 -0
  695. package/src/internal/EarnVaults.ts +876 -0
  696. package/src/internal/EdgeCache.test.ts +26 -7
  697. package/src/internal/EdgeCache.ts +48 -9
  698. package/src/internal/Id.ts +14 -0
  699. package/src/internal/Idempotency.test.ts +109 -0
  700. package/src/internal/Idempotency.ts +237 -0
  701. package/src/internal/IpAllowlist.test.ts +52 -0
  702. package/src/internal/IpAllowlist.ts +39 -0
  703. package/src/internal/Log.test-d.ts +41 -8
  704. package/src/internal/Log.test.ts +196 -9
  705. package/src/internal/Log.ts +124 -17
  706. package/src/internal/MetricSink.test.ts +244 -4
  707. package/src/internal/MetricSink.ts +51 -1
  708. package/src/internal/OpenApi.ts +4 -1
  709. package/src/internal/Provider.test.ts +17 -0
  710. package/src/internal/Provider.ts +17 -0
  711. package/src/internal/Schema.ts +27 -17
  712. package/src/internal/Store.test.ts +25 -0
  713. package/src/internal/Store.ts +46 -0
  714. package/src/internal/Tidx.local.test.ts +78 -3
  715. package/src/internal/Tidx.test.ts +240 -18
  716. package/src/internal/Tidx.ts +129 -33
  717. package/src/internal/VerifiedTokens.test.ts +15 -0
  718. package/src/internal/Viem.test.ts +198 -17
  719. package/src/internal/Viem.ts +127 -28
  720. package/src/internal/WebhookDestination.ts +25 -23
  721. package/src/internal/Webhooks.test.ts +59 -0
  722. package/src/internal/Webhooks.ts +34 -10
  723. package/src/internal/exchange/Provider.test.ts +216 -0
  724. package/src/internal/exchange/Provider.ts +326 -0
  725. package/src/internal/exchange/index.test.ts +6 -0
  726. package/src/internal/exchange/index.ts +1 -0
  727. package/src/internal/exchange/providers/uniswap.test.ts +122 -0
  728. package/src/internal/exchange/providers/uniswap.ts +682 -0
  729. package/src/internal/funding/Action.test.ts +138 -0
  730. package/src/internal/funding/Action.ts +117 -0
  731. package/src/internal/funding/Catalog.test.ts +311 -0
  732. package/src/internal/funding/Catalog.ts +347 -0
  733. package/src/internal/funding/Chain.test.ts +79 -0
  734. package/src/internal/funding/Chain.ts +120 -0
  735. package/src/internal/funding/Deposit.test.ts +26 -0
  736. package/src/internal/funding/Deposit.ts +522 -0
  737. package/src/internal/funding/DepositAddress.test.ts +18 -0
  738. package/src/internal/funding/DepositAddress.ts +312 -0
  739. package/src/internal/funding/Evidence.test.ts +297 -0
  740. package/src/internal/funding/Evidence.ts +425 -0
  741. package/src/internal/funding/Provider.test.ts +1328 -0
  742. package/src/internal/funding/Provider.ts +1911 -0
  743. package/src/internal/funding/Reconciliation.local.test.ts +511 -0
  744. package/src/internal/funding/Reconciliation.test.ts +3037 -0
  745. package/src/internal/funding/Reconciliation.ts +1202 -0
  746. package/src/internal/funding/Route.test.ts +66 -0
  747. package/src/internal/funding/Route.ts +29 -0
  748. package/src/internal/funding/SourceObservation.test.ts +301 -0
  749. package/src/internal/funding/SourceObservation.ts +267 -0
  750. package/src/internal/funding/Subsidy.local.test.ts +152 -0
  751. package/src/internal/funding/Subsidy.test.ts +75 -0
  752. package/src/internal/funding/Subsidy.ts +260 -0
  753. package/src/internal/funding/Token.test.ts +47 -0
  754. package/src/internal/funding/Token.ts +59 -0
  755. package/src/internal/funding/Transfer.test.ts +369 -0
  756. package/src/internal/funding/Transfer.ts +522 -0
  757. package/src/internal/funding/index.test.ts +21 -0
  758. package/src/internal/funding/index.ts +13 -0
  759. package/src/internal/funding/providers/across.ts +149 -0
  760. package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
  761. package/src/internal/funding/providers/relay.test.ts +564 -0
  762. package/src/internal/funding/providers/relay.ts +1060 -0
  763. package/src/internal/funding/providers/rhino.ts +139 -0
  764. package/src/internal/funding/providers/squid.ts +151 -0
  765. package/src/internal/funding/providers/symbiosis.ts +221 -0
  766. package/src/internal/index.test.ts +5 -1
  767. package/src/internal/index.ts +5 -1
  768. package/src/internal/webhookDestinations/url.ts +49 -45
  769. package/src/providers/index.test.ts +14 -0
  770. package/src/providers/index.ts +54 -0
  771. package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
  772. package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
  773. package/dist/apps/data/FundingQuoteProviders.js +0 -775
  774. package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
  775. package/dist/apps/data/routes/funding.d.ts.map +0 -1
  776. package/dist/apps/data/routes/funding.js +0 -410
  777. package/dist/apps/data/routes/funding.js.map +0 -1
  778. package/dist/internal/FundingQuotes.d.ts +0 -864
  779. package/dist/internal/FundingQuotes.d.ts.map +0 -1
  780. package/dist/internal/FundingQuotes.js +0 -672
  781. package/dist/internal/FundingQuotes.js.map +0 -1
  782. package/src/apps/data/FundingQuoteProviders.ts +0 -1043
  783. package/src/apps/data/routes/funding.test.ts +0 -503
  784. package/src/apps/data/routes/funding.ts +0 -604
  785. package/src/internal/FundingQuotes.test.ts +0 -456
  786. package/src/internal/FundingQuotes.ts +0 -944
@@ -23,8 +23,8 @@ const volatileHeaders = [
23
23
  /**
24
24
  * Serves GET responses from the edge cache store BEFORE auth and rate-limiting
25
25
  * run, so cache hits skip the per-request store round-trips that dominate
26
- * latency for every caller, authenticated or not. Place this ahead of the
27
- * auth middleware.
26
+ * latency. Credential-bearing requests bypass this layer so per-key policy
27
+ * enforcement always runs. Place this ahead of the auth middleware.
28
28
  *
29
29
  * Only 2xx responses from routes that opted into caching (via `Cache.response`,
30
30
  * which publishes the `edgeCache` policy) are stored, and the policy is only
@@ -56,10 +56,16 @@ export function middleware(options = {}) {
56
56
  const eligible = store !== undefined &&
57
57
  c.req.method === 'GET' &&
58
58
  !c.req.raw.headers.has('range') &&
59
- // Query credentials must reach auth and never enter cache keys.
60
- !new URL(c.req.url).searchParams.has('key') &&
59
+ // Credential-bearing requests must reach auth for per-key policy enforcement.
60
+ !hasCredential(c.req.raw) &&
61
61
  isCacheableRoute(c);
62
- const key = eligible ? cacheKey(c.req.url) : undefined;
62
+ const key = eligible
63
+ ? await routeCacheKey(c).catch(() => {
64
+ // Key generators may parse request input before route validation runs.
65
+ // Bypass caching so the validation middleware can return its response.
66
+ return undefined;
67
+ })
68
+ : undefined;
63
69
  // Honor the standard request `Cache-Control` directives so a caller can
64
70
  // refresh a stale entry on the colo serving them without any out-of-band
65
71
  // purge: `no-cache` skips the stored hit but still re-stores the fresh
@@ -110,16 +116,25 @@ export function middleware(options = {}) {
110
116
  return;
111
117
  };
112
118
  }
119
+ function hasCredential(request) {
120
+ return (request.headers.has('tempo-api-key') ||
121
+ request.headers.has('x-api-key') ||
122
+ request.headers.has('authorization') ||
123
+ new URL(request.url).searchParams.has('key'));
124
+ }
113
125
  // Marks handlers whose route publishes an edge-cache policy; the middleware
114
126
  // pays the store lookup only when a matched handler carries it.
115
127
  const cacheableSymbol = Symbol('tempoApi.edgeCacheable');
116
128
  const eligibility = new WeakMap();
129
+ const keys = new WeakMap();
117
130
  /**
118
131
  * Marks a route handler/middleware as publishing an edge-cache policy, so
119
132
  * {@link middleware} looks its route up in the edge cache. `Cache.response`
120
133
  * applies it; routes composed any other way never enter the shared cache.
121
134
  */
122
- export function markCacheable(handler) {
135
+ export function markCacheable(handler, options = {}) {
136
+ if (options.key)
137
+ keys.set(handler, options.key);
123
138
  return Object.assign(handler, { [cacheableSymbol]: true });
124
139
  }
125
140
  /** Adds a request eligibility check; every check must permit caching. */
@@ -141,6 +156,17 @@ function isCacheableRoute(c) {
141
156
  }
142
157
  return cacheable;
143
158
  }
159
+ async function routeCacheKey(c) {
160
+ let requestUrl = c.req.url;
161
+ for (const route of matchedRoutes(c)) {
162
+ if (!(cacheableSymbol in route.handler))
163
+ continue;
164
+ const key = keys.get(route.handler);
165
+ if (key)
166
+ requestUrl = await key(c);
167
+ }
168
+ return cacheKey(requestUrl);
169
+ }
144
170
  // Consumes `response` (callers pass a dedicated clone; the client streams the
145
171
  // original).
146
172
  async function serialize(response, policy) {
@@ -167,7 +193,7 @@ function serveHit(ifNoneMatch, value) {
167
193
  const { body, encoding, headers, status } = JSON.parse(value);
168
194
  const responseHeaders = new Headers(headers);
169
195
  const etag = responseHeaders.get('etag');
170
- if (etag && ifNoneMatch && etagMatches(etag, ifNoneMatch)) {
196
+ if (Etag.matches(etag, ifNoneMatch)) {
171
197
  const notModified = new Headers();
172
198
  for (const name of ['Cache-Control', 'ETag', 'Vary']) {
173
199
  const header = responseHeaders.get(name);
@@ -213,10 +239,16 @@ function getWaitUntil(c) {
213
239
  return undefined;
214
240
  }
215
241
  }
216
- function etagMatches(etag, ifNoneMatch) {
217
- const strip = (tag) => tag.trim().replace(/^W\//, '');
218
- return ifNoneMatch.split(',').some((tag) => strip(tag) === strip(etag));
219
- }
242
+ var Etag;
243
+ (function (Etag) {
244
+ function matches(etag, ifNoneMatch) {
245
+ if (!etag || !ifNoneMatch)
246
+ return false;
247
+ const strip = (tag) => tag.trim().replace(/^W\//, '');
248
+ return ifNoneMatch.split(',').some((tag) => strip(tag) === strip(etag));
249
+ }
250
+ Etag.matches = matches;
251
+ })(Etag || (Etag = {}));
220
252
  /**
221
253
  * Builds the shared-cache `Cache-Control` value for a stored copy: `public`
222
254
  * with `max-age`/`s-maxage` bound to the policy plus an optional
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,15 @@ export declare function generate(prefix: string): string;
12
12
  * @returns The generated segment.
13
13
  */
14
14
  export declare function random(): string;
15
+ /**
16
+ * Generates a time-prefixed resource id (`{prefix}_{epoch ms}_{24 base62
17
+ * chars}`). The epoch-ms is zero-padded to 15 digits (headroom past the year
18
+ * 5138) so lexical id order is chronological, letting newest-first lists page
19
+ * by keyset on the id alone.
20
+ *
21
+ * @param prefix - The resource-type prefix (e.g. `wh`, `ftr`).
22
+ * @param now - The timestamp to embed.
23
+ * @returns The generated id.
24
+ */
25
+ export declare function generateSortable(prefix: string, now?: Date): string;
15
26
  //# sourceMappingURL=Id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B"}
1
+ {"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAE/E"}
@@ -19,4 +19,17 @@ export function generate(prefix) {
19
19
  export function random() {
20
20
  return segment();
21
21
  }
22
+ /**
23
+ * Generates a time-prefixed resource id (`{prefix}_{epoch ms}_{24 base62
24
+ * chars}`). The epoch-ms is zero-padded to 15 digits (headroom past the year
25
+ * 5138) so lexical id order is chronological, letting newest-first lists page
26
+ * by keyset on the id alone.
27
+ *
28
+ * @param prefix - The resource-type prefix (e.g. `wh`, `ftr`).
29
+ * @param now - The timestamp to embed.
30
+ * @returns The generated id.
31
+ */
32
+ export function generateSortable(prefix, now = new Date()) {
33
+ return `${prefix}_${now.getTime().toString().padStart(15, '0')}_${random()}`;
34
+ }
22
35
  //# sourceMappingURL=Id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,uFAAuF;AACvF,MAAM,OAAO,GAAG,cAAc,CAAC,gEAAgE,EAAE,EAAE,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,uFAAuF;AACvF,MAAM,OAAO,GAAG,cAAc,CAAC,gEAAgE,EAAE,EAAE,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAG,GAAS,IAAI,IAAI,EAAE;IACrE,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,CAAA;AAC9E,CAAC"}
@@ -0,0 +1,83 @@
1
+ import * as Store from './Store.js';
2
+ /**
3
+ * API-level retry coordination for idempotent write endpoints, letting a
4
+ * caller recover a successful response after a transport timeout.
5
+ *
6
+ * A key moves from missing to pending to complete. Only the claim token may
7
+ * finish or release pending state, preventing an older request from
8
+ * overwriting a newer owner.
9
+ */
10
+ /** Identity for one caller-supplied idempotent request. */
11
+ export type Identity = {
12
+ /** API key that submitted the request. */
13
+ apiKeyId: string;
14
+ /** Opaque caller-supplied idempotency key. */
15
+ idempotencyKey: string;
16
+ /** Hash of the request content bound to this idempotency key. */
17
+ inputHash: string;
18
+ };
19
+ /** Returns a stable digest without retaining request contents in durable state. */
20
+ export declare function inputHash(input: unknown): string;
21
+ /** Creates an idempotency coordinator over one durable-store key namespace. */
22
+ export declare function create<response>(options: create.Options): {
23
+ claim: (options: claim.Options) => Promise<claim.Result<response>>;
24
+ complete: (options: complete.Options<response>) => Promise<void>;
25
+ release: (options: release.Options) => Promise<void>;
26
+ };
27
+ export declare namespace create {
28
+ /** Coordinator configuration bound at creation. */
29
+ type Options = {
30
+ /** Durable-store key namespace (e.g. `mpp:relay:v1`). */
31
+ namespace: string;
32
+ /** How long a pending claim blocks equivalent requests, in milliseconds. */
33
+ pendingTtl: number;
34
+ /** How long a completed response replays, in milliseconds. */
35
+ receiptTtl: number;
36
+ };
37
+ }
38
+ export declare namespace claim {
39
+ /** Dependencies for claiming one idempotency key. */
40
+ type Options = {
41
+ /** API-key-scoped idempotency identity. */
42
+ identity: Identity;
43
+ /** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
44
+ state: Store.State;
45
+ };
46
+ /** Outcome from attempting to claim an idempotency key. */
47
+ type Result<response> = {
48
+ token: string;
49
+ type: 'claimed';
50
+ } | {
51
+ type: 'mismatch';
52
+ } | {
53
+ response: response;
54
+ type: 'replay';
55
+ } | {
56
+ type: 'pending';
57
+ };
58
+ }
59
+ export declare namespace complete {
60
+ /** Dependencies for persisting one terminal response. */
61
+ type Options<response> = {
62
+ /** API-key-scoped idempotency identity. */
63
+ identity: Identity;
64
+ /** Terminal successful response to replay. */
65
+ response: response;
66
+ /** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
67
+ state: Store.State;
68
+ /** Token returned by the successful claim. */
69
+ token: string;
70
+ };
71
+ }
72
+ export declare namespace release {
73
+ /** Dependencies for releasing one idempotency claim. */
74
+ type Options = {
75
+ /** API-key-scoped idempotency identity. */
76
+ identity: Identity;
77
+ /** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
78
+ state: Store.State;
79
+ /** Token returned by the successful claim. */
80
+ token: string;
81
+ };
82
+ }
83
+ //# sourceMappingURL=Idempotency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Idempotency.d.ts","sourceRoot":"","sources":["../../src/internal/Idempotency.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;qBAYxB,KAAK,CAAC,OAAO,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBA8B5C,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;uBA4B3C,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;EAkBhE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,mDAAmD;IACnD,KAAK,OAAO,GAAG;QACb,yDAAyD;QACzD,SAAS,EAAE,MAAM,CAAA;QACjB,4EAA4E;QAC5E,UAAU,EAAE,MAAM,CAAA;QAClB,8DAA8D;QAC9D,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,qDAAqD;IACrD,KAAK,OAAO,GAAG;QACb,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;KACnB,CAAA;IAED,2DAA2D;IAC3D,KAAK,MAAM,CAAC,QAAQ,IAChB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAClC;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GACpB;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,yDAAyD;IACzD,KAAK,OAAO,CAAC,QAAQ,IAAI;QACvB,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,8CAA8C;QAC9C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,8CAA8C;QAC9C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,wDAAwD;IACxD,KAAK,OAAO,GAAG;QACb,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,8CAA8C;QAC9C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
@@ -0,0 +1,113 @@
1
+ import { Hash, Hex } from 'ox';
2
+ import * as Store from './Store.js';
3
+ /** Returns a stable digest without retaining request contents in durable state. */
4
+ export function inputHash(input) {
5
+ return Hash.sha256(Hex.fromString(canonicalJson(input)));
6
+ }
7
+ /** Creates an idempotency coordinator over one durable-store key namespace. */
8
+ export function create(options) {
9
+ const { namespace, pendingTtl, receiptTtl } = options;
10
+ function keyFor(identity) {
11
+ // Scope keys to the authenticated API key so different tenants can reuse
12
+ // the same client-generated value. Hashing keeps that opaque value out of
13
+ // durable-store key names and enumeration output.
14
+ const digest = Hash.sha256(Hex.fromString(identity.idempotencyKey)).slice(2);
15
+ return `${namespace}:${identity.apiKeyId}:${digest}`;
16
+ }
17
+ /** Claims a request or returns its current outcome. */
18
+ async function claim(options) {
19
+ const { identity, state } = options;
20
+ const token = crypto.randomUUID();
21
+ return Store.change(state, keyFor(identity), (current) => {
22
+ const currentRecord = record(current);
23
+ // A completed request is the only cacheable terminal outcome. Failed
24
+ // attempts must be retried with the same input. Legacy records lack
25
+ // an input hash, so cannot be safely replayed.
26
+ if (currentRecord && currentRecord.inputHash !== identity.inputHash)
27
+ return { op: 'noop', result: { type: 'mismatch' } };
28
+ if (currentRecord?.type === 'complete')
29
+ return { op: 'noop', result: { response: currentRecord.response, type: 'replay' } };
30
+ // A parallel request must not settle the same caller operation while
31
+ // the first request still owns its pending claim.
32
+ if (currentRecord?.type === 'pending')
33
+ return { op: 'noop', result: { type: 'pending' } };
34
+ return {
35
+ op: 'set',
36
+ result: { token, type: 'claimed' },
37
+ value: encode({ inputHash: identity.inputHash, token, type: 'pending' }),
38
+ };
39
+ }, { ttl: pendingTtl });
40
+ }
41
+ /** Persists a successful response for an owned request claim. */
42
+ async function complete(options) {
43
+ const { identity, response, state, token } = options;
44
+ await Store.change(state, keyFor(identity), (current) => {
45
+ const currentRecord = record(current);
46
+ // Claim tokens fence delayed requests: a request cannot complete a
47
+ // claim it no longer owns after expiry or a later retry.
48
+ if (currentRecord?.type !== 'pending' ||
49
+ currentRecord.inputHash !== identity.inputHash ||
50
+ currentRecord.token !== token)
51
+ return { op: 'noop', result: undefined };
52
+ canonicalJson(response, 'Idempotency responses must be JSON values.');
53
+ return {
54
+ op: 'set',
55
+ result: undefined,
56
+ value: encode({ inputHash: identity.inputHash, response, type: 'complete' }),
57
+ };
58
+ }, { ttl: receiptTtl });
59
+ }
60
+ /** Releases an owned retryable request claim. */
61
+ async function release(options) {
62
+ const { identity, state, token } = options;
63
+ await Store.change(state, keyFor(identity), (current) => {
64
+ const currentRecord = record(current);
65
+ // Never delete a newer pending claim after this request has lost
66
+ // ownership through expiry and another caller has retried.
67
+ if (currentRecord?.type !== 'pending' ||
68
+ currentRecord.inputHash !== identity.inputHash ||
69
+ currentRecord.token !== token)
70
+ return { op: 'noop', result: undefined };
71
+ return { op: 'delete', result: undefined };
72
+ });
73
+ }
74
+ return { claim, complete, release };
75
+ }
76
+ function encode(record) {
77
+ return JSON.stringify(record);
78
+ }
79
+ function canonicalJson(value, errorMessage = 'Idempotency inputs must be JSON values.') {
80
+ if (value === null)
81
+ return 'null';
82
+ if (typeof value === 'number' && !Number.isFinite(value))
83
+ throw new Error(errorMessage);
84
+ if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string')
85
+ return JSON.stringify(value);
86
+ if (Array.isArray(value))
87
+ return `[${value.map((item) => canonicalJson(item, errorMessage)).join(',')}]`;
88
+ if (typeof value === 'object') {
89
+ const record = value;
90
+ return `{${Object.keys(record)
91
+ .sort()
92
+ .map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key], errorMessage)}`)
93
+ .join(',')}}`;
94
+ }
95
+ throw new Error(errorMessage);
96
+ }
97
+ function record(value) {
98
+ if (value === null)
99
+ return undefined;
100
+ try {
101
+ const parsed = JSON.parse(value);
102
+ if (!parsed || typeof parsed !== 'object')
103
+ return undefined;
104
+ const candidate = parsed;
105
+ if (candidate.type === 'pending' && typeof candidate.token === 'string')
106
+ return candidate;
107
+ if (candidate.type === 'complete' && candidate.response !== undefined)
108
+ return candidate;
109
+ }
110
+ catch { }
111
+ return undefined;
112
+ }
113
+ //# sourceMappingURL=Idempotency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Idempotency.js","sourceRoot":"","sources":["../../src/internal/Idempotency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Context } from 'hono';
2
+ /** Returns whether a value is an IPv4/IPv6 address or CIDR range. */
3
+ export declare function isRule(value: string): boolean;
4
+ /** Returns whether the client address matches at least one allowlist rule. */
5
+ export declare function allows(c: Context, options: allows.Options): Promise<boolean>;
6
+ export declare namespace allows {
7
+ /** Inputs used to check a client address. */
8
+ type Options = {
9
+ /** Trusted client IP address. */
10
+ address?: string | undefined;
11
+ /** Exact IP and CIDR rules to match. */
12
+ rules: readonly string[];
13
+ };
14
+ }
15
+ //# sourceMappingURL=IpAllowlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpAllowlist.d.ts","sourceRoot":"","sources":["../../src/internal/IpAllowlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,qEAAqE;AACrE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ7C;AAED,8EAA8E;AAC9E,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAalF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,KAAK,OAAO,GAAG;QACb,iCAAiC;QACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,wCAAwC;QACxC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,CAAA;CACF"}
@@ -0,0 +1,27 @@
1
+ import { ipRestriction } from 'hono/ip-restriction';
2
+ /** Returns whether a value is an IPv4/IPv6 address or CIDR range. */
3
+ export function isRule(value) {
4
+ if (value === '*' || value.trim() !== value || value.split('/').length > 2)
5
+ return false;
6
+ try {
7
+ ipRestriction(() => '', { allowList: [value] });
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ /** Returns whether the client address matches at least one allowlist rule. */
15
+ export async function allows(c, options) {
16
+ const { address, rules } = options;
17
+ if (!address)
18
+ return false;
19
+ try {
20
+ const denied = await ipRestriction(() => address, { allowList: [...rules] }, () => new Response(null, { status: 403 }))(c, async () => { });
21
+ return denied === undefined;
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ //# sourceMappingURL=IpAllowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IpAllowlist.js","sourceRoot":"","sources":["../../src/internal/IpAllowlist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,qEAAqE;AACrE,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACxF,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAAU,EAAE,OAAuB;IAC9D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,GAAG,EAAE,CAAC,OAAO,EACb,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,EACzB,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAC1C,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAA;QACpB,OAAO,MAAM,KAAK,SAAS,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1,22 +1,31 @@
1
1
  import type { MiddlewareHandler } from 'hono';
2
2
  import type { RequestIdVariables } from 'hono/request-id';
3
+ import type { Hex } from 'ox';
3
4
  import * as ApiKey from '../ApiKey.js';
4
5
  import type * as Auth from './Auth.js';
5
6
  import type * as EdgeCache from './EdgeCache.js';
6
- import type * as FundingQuotes from './FundingQuotes.js';
7
+ import type * as FundingProvider from './funding/Provider.js';
7
8
  import type * as Timing from './Timing.js';
8
9
  /** Hono variables read by the request logger and written by other layers. */
9
10
  export type Variables = {
11
+ /** Whether the original request exception was already reported. */
12
+ errorCaptured?: boolean | undefined;
10
13
  /** Stable error code recorded by `Response.error` for the request log entry. */
11
14
  errorCode?: string | undefined;
15
+ /** Bounded MPP relay outcome emitted by the credential routes. */
16
+ mpp?: Entry['mpp'] | undefined;
12
17
  /** Bounded outcomes for funding providers attempted by the request. */
13
18
  fundingProviderAttempts?: Entry['fundingProviderAttempts'] | undefined;
14
- /** Redacted provider failure details recorded by an upstream adapter. */
19
+ /** Whether the optional funding transfer count query failed. */
20
+ fundingTransferCountFailed?: true | undefined;
21
+ /** Redacted provider failure details recorded by an upstream provider. */
15
22
  providerFailure?: Entry['provider'] | undefined;
16
- /** Redacted provider failures when multiple upstream adapters fail. */
23
+ /** Redacted provider failures when multiple upstream providers fail. */
17
24
  providerFailures?: Entry['providerFailures'] | undefined;
18
25
  /** Bounded JSON-RPC failure metadata recorded by a composed RPC handler. */
19
26
  rpcResponse?: Entry['rpc'] | undefined;
27
+ /** Bounded sponsorship rejection details recorded by the relay app. */
28
+ sponsorship?: Sponsorship | undefined;
20
29
  };
21
30
  /** Hono environment shape used by the request logger. */
22
31
  export type Environment = {
@@ -29,10 +38,12 @@ export type Environment = {
29
38
  export type Level = 'error' | 'info' | 'warn';
30
39
  /** Redacted upstream provider failure details. */
31
40
  export type ProviderFailure = {
41
+ /** Chain whose upstream request failed, when the request selected one. */
42
+ chainId?: number | undefined;
32
43
  /** Stable provider error code, when one is safe to retain. */
33
44
  code?: string | undefined;
34
45
  /** Failure boundary that rejected the provider request. */
35
- failure: 'http' | 'network' | 'payload' | 'rate_limit' | 'timeout' | 'unknown';
46
+ failure: 'http' | 'network' | 'payload' | 'query' | 'rate_limit' | 'timeout' | 'unknown';
36
47
  /** Provider identifier. */
37
48
  id: string;
38
49
  /** Provider operation identifier. */
@@ -47,22 +58,47 @@ export type FundingProviderAttempt = {
47
58
  /** Failure class, present only when the provider attempt failed. */
48
59
  failure?: ProviderFailure['failure'] | undefined;
49
60
  /** Provider identifier. */
50
- id: FundingQuotes.ProviderId;
61
+ id: FundingProvider.ProviderId;
51
62
  /** Stable upstream operation identifier. */
52
- operation: string;
63
+ operation: FundingProvider.ProviderOperation;
53
64
  /** Provider attempt outcome. */
54
65
  outcome: 'available' | 'failed' | 'thin' | 'unavailable';
55
66
  };
67
+ /** JSON-RPC methods that can request managed sponsorship. */
68
+ export type SponsorshipMethod = 'eth_fillTransaction' | 'eth_sendRawTransaction' | 'eth_sendRawTransactionSync' | 'eth_signRawTransaction';
69
+ /** Stable client error codes for sponsorship rejections. */
70
+ export type SponsorshipReason = 'api_key_forbidden' | 'api_key_required' | 'billing_past_due' | 'billing_required' | 'chain_id_unsupported' | 'fee_token_unsupported' | 'internal_error' | 'production_api_key_required' | 'spend_limit_exceeded' | 'tx_fee_limit_exceeded';
71
+ /** Bounded diagnostics for sponsorship rejections in one JSON-RPC request. */
72
+ export type Sponsorship = {
73
+ /** Common target chain, absent when rejected batch items disagree or are invalid. */
74
+ chainId?: number | undefined;
75
+ /** Number of internal sponsorship failures, capped at 65,535; absent when zero. */
76
+ internalErrors?: number | undefined;
77
+ /** Common sponsorship method, absent when rejected batch items use different methods. */
78
+ method?: SponsorshipMethod | undefined;
79
+ /** Sponsorship request outcome. */
80
+ outcome: 'rejected';
81
+ /** Keccak256 of the caller's raw transaction, present only for a single-request body. */
82
+ payloadHash?: Hex.Hex | undefined;
83
+ /** Common client error code, absent when rejected batch items have different codes. */
84
+ reason?: SponsorshipReason | undefined;
85
+ /** Number of sponsorship policy rejections, capped at 65,535. */
86
+ rejections: number;
87
+ };
56
88
  /** One canonical request log entry. */
57
89
  export type Entry = {
58
90
  /** `'hit'` when the edge response cache served the request without reaching the origin handlers. */
59
91
  cache?: 'hit' | undefined;
60
92
  /** Total request duration in milliseconds. */
61
93
  duration: number;
94
+ /** Whether the original request exception was already reported. */
95
+ errorCaptured?: boolean | undefined;
62
96
  /** Stable error code when the response is a JSON error envelope (e.g. `not_found`, `api_key_invalid`). */
63
97
  errorCode?: string | undefined;
64
98
  /** Bounded funding provider attempts made while serving the request. */
65
99
  fundingProviderAttempts?: readonly FundingProviderAttempt[] | undefined;
100
+ /** Whether the optional funding transfer count query failed. */
101
+ fundingTransferCountFailed?: true | undefined;
66
102
  /** Log level: 5xx `error`; 4xx or JSON-RPC failure `warn`; otherwise `info`. */
67
103
  level: Level;
68
104
  /** Request method. */
@@ -71,6 +107,21 @@ export type Entry = {
71
107
  path: string;
72
108
  /** MPP payment reason when the request was paid per call. */
73
109
  payment?: Auth.Payment['reason'] | undefined;
110
+ /** Bounded outcome for an MPP relay operation. */
111
+ mpp?: {
112
+ /** Resolved Tempo chain selected by the credential. */
113
+ chainId: number;
114
+ /** Stable relay failure code, absent when the operation succeeded. */
115
+ errorCode?: string | undefined;
116
+ /** Idempotency claim outcome for broadcast operations. */
117
+ idempotency?: 'claimed' | 'pending' | 'replay' | undefined;
118
+ /** Whether a fee payer was supplied for the credential. */
119
+ feePayer: boolean;
120
+ /** Relay route operation. */
121
+ operation: 'broadcast' | 'verify';
122
+ /** Relay operation outcome, independent of the HTTP status. */
123
+ outcome: 'failure' | 'success';
124
+ };
74
125
  /** Caller identity. Raw API-key tokens and the super admin secret are never logged. */
75
126
  principal?: {
76
127
  /** Attributed super admin identity for super admin callers. */
@@ -88,9 +139,9 @@ export type Entry = {
88
139
  /** Principal kind. */
89
140
  type: 'api_key' | 'public' | 'session' | 'super_admin';
90
141
  } | undefined;
91
- /** Redacted upstream provider failure details, when an adapter request fails. */
142
+ /** Redacted upstream provider failure details, when a provider request fails. */
92
143
  provider?: ProviderFailure | undefined;
93
- /** Redacted failures for every provider when multiple adapters fail. */
144
+ /** Redacted failures for every provider when multiple providers fail. */
94
145
  providerFailures?: readonly ProviderFailure[] | undefined;
95
146
  /** Raw query string (no leading `?`) with API-key tokens redacted, when present. */
96
147
  query?: string | undefined;
@@ -117,10 +168,14 @@ export type Entry = {
117
168
  dataCode?: string | undefined;
118
169
  /** Number of failed responses in the single or batch JSON-RPC response. */
119
170
  errors: number;
171
+ /** Number of JSON-RPC server errors, capped at 65,535; absent when zero. */
172
+ serverErrors?: number | undefined;
120
173
  };
174
+ /** Bounded sponsorship rejection diagnostics, without request or response bodies. */
175
+ sponsorship?: Sponsorship | undefined;
121
176
  /** HTTP response status code. JSON-RPC failures retain their protocol-native `200`. */
122
177
  status: number;
123
- /** Upstream operation durations in milliseconds, from the request's Server-Timing metrics (e.g. RPC and TIDX calls). */
178
+ /** Longest upstream operation duration per Server-Timing name, in milliseconds (e.g. RPC and TIDX calls). */
124
179
  timings?: Record<string, number> | undefined;
125
180
  };
126
181
  /** Sink receiving one {@link Entry} per request. */
@@ -1 +1 @@
1
- {"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"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"}