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
@@ -0,0 +1,46 @@
1
+ import { sql } from 'kysely';
2
+ /** Gets observation timestamps for one provider request. */
3
+ export function get(db, options) {
4
+ return db.kysely
5
+ .selectFrom('funding_deposit_request_observations')
6
+ .selectAll()
7
+ .where('depositAddressId', '=', options.depositAddressId)
8
+ .where('providerRequestId', '=', options.providerRequestId)
9
+ .executeTakeFirst();
10
+ }
11
+ /** Records when polling first observed each provider request. */
12
+ export async function observePoll(db, options) {
13
+ const providerRequestIds = [...new Set(options.providerRequestIds)];
14
+ if (providerRequestIds.length === 0)
15
+ return [];
16
+ return db.kysely
17
+ .insertInto('funding_deposit_request_observations')
18
+ .values(providerRequestIds.map((providerRequestId) => ({
19
+ depositAddressId: options.depositAddressId,
20
+ pollObservedAt: options.observedAt,
21
+ providerRequestId,
22
+ webhookReceivedAt: null,
23
+ })))
24
+ .onConflict((oc) => oc.columns(['depositAddressId', 'providerRequestId']).doUpdateSet({
25
+ pollObservedAt: sql `LEAST(COALESCE(funding_deposit_request_observations.poll_observed_at, excluded.poll_observed_at), excluded.poll_observed_at)`,
26
+ }))
27
+ .returningAll()
28
+ .execute();
29
+ }
30
+ /** Records when Tempo first received an authenticated webhook for a provider request. */
31
+ export function observeWebhook(db, options) {
32
+ return db.kysely
33
+ .insertInto('funding_deposit_request_observations')
34
+ .values({
35
+ depositAddressId: options.depositAddressId,
36
+ pollObservedAt: null,
37
+ providerRequestId: options.providerRequestId,
38
+ webhookReceivedAt: options.receivedAt,
39
+ })
40
+ .onConflict((oc) => oc.columns(['depositAddressId', 'providerRequestId']).doUpdateSet({
41
+ webhookReceivedAt: sql `LEAST(COALESCE(funding_deposit_request_observations.webhook_received_at, excluded.webhook_received_at), excluded.webhook_received_at)`,
42
+ }))
43
+ .returningAll()
44
+ .executeTakeFirst();
45
+ }
46
+ //# sourceMappingURL=fundingDepositRequestObservations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundingDepositRequestObservations.js","sourceRoot":"","sources":["../../../src/db/tables/fundingDepositRequestObservations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,QAAQ,CAAA;AAW7C,4DAA4D;AAC5D,MAAM,UAAU,GAAG,CAAC,EAAS,EAAE,OAAoB;IACjD,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,sCAAsC,CAAC;SAClD,SAAS,EAAE;SACX,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC;SACxD,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC;SAC1D,gBAAgB,EAAE,CAAA;AACvB,CAAC;AAYD,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAS,EAAE,OAA4B;IACvE,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACnE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC9C,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,sCAAsC,CAAC;SAClD,MAAM,CACL,kBAAkB,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,cAAc,EAAE,OAAO,CAAC,UAAU;QAClC,iBAAiB;QACjB,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC,CACJ;SACA,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,cAAc,EAAE,GAAG,CAAQ,8HAA8H;KAC1J,CAAC,CACH;SACA,YAAY,EAAE;SACd,OAAO,EAAE,CAAA;AACd,CAAC;AAcD,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAC5B,EAAS,EACT,OAA+B;IAE/B,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,sCAAsC,CAAC;SAClD,MAAM,CAAC;QACN,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,iBAAiB,EAAE,OAAO,CAAC,UAAU;KACtC,CAAC;SACD,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,iBAAiB,EAAE,GAAG,CAAQ,uIAAuI;KACtK,CAAC,CACH;SACA,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;AACvB,CAAC"}
@@ -0,0 +1,171 @@
1
+ import { type JSONColumnType, type Selectable } from 'kysely';
2
+ import type * as Db from '../Db.js';
3
+ import type * as db_Schema from '../Schema.js';
4
+ /** Columns of the `funding_deposits` table. */
5
+ export type Table = Omit<db_Schema.FundingDeposit, 'providerRequestIds' | 'providerTransactionHashes'> & {
6
+ /** Private provider request identifiers stored as JSON. */
7
+ providerRequestIds: JSONColumnType<readonly string[], string, string>;
8
+ /** Private provider transaction references stored as JSON. */
9
+ providerTransactionHashes: JSONColumnType<readonly string[], string, string>;
10
+ };
11
+ /** A stored funding deposit. */
12
+ export type Record = Selectable<Table>;
13
+ /** Ownership filter inherited from the deposit address. */
14
+ export type Owner = {
15
+ /** Key environment. */
16
+ environment: Record['environment'];
17
+ /** Owning organization id (`org_…`). */
18
+ orgId: string;
19
+ /** Attributed project id for project-scoped API keys. */
20
+ projectId?: string | undefined;
21
+ };
22
+ /** Inserts one provider-observed source transfer as a funding deposit. */
23
+ export declare function insert(db: Db.Db, record: Record): Promise<Record>;
24
+ /** Inserts a chain-observed source transfer or returns its existing deposit. */
25
+ export declare function insertOrGetSource(db: Db.Db, record: Record & {
26
+ sourceTransferIndex: number;
27
+ }): Promise<insertOrGetSource.Result>;
28
+ export declare namespace insertOrGetSource {
29
+ /** Result of idempotently persisting one verified source transfer. */
30
+ type Result = {
31
+ record: Record;
32
+ type: 'created' | 'existing';
33
+ };
34
+ }
35
+ /** Serializes source attribution for one address and transaction. */
36
+ export declare function withSourceTransaction<const result>(db: Db.Db, options: withSourceTransaction.Options<result>): Promise<result>;
37
+ export declare namespace withSourceTransaction {
38
+ /** Source identity and transaction-scoped work protected by its advisory lock. */
39
+ type Options<result> = {
40
+ /** Funding deposit address that received the transfer. */
41
+ depositAddressId: string;
42
+ /** Database work serialized for the source transaction. */
43
+ fn: (db: Db.Db) => Promise<result>;
44
+ /** Source transaction whose deposit attribution must not race. */
45
+ sourceTransactionHash: string;
46
+ };
47
+ }
48
+ /** Gets deposits created from one provider-observed source transaction. */
49
+ export declare function listByProviderObservation(db: Db.Db, options: listByProviderObservation.Options): Promise<Record[]>;
50
+ export declare namespace listByProviderObservation {
51
+ /** Provider observation fields that identify one source transaction. */
52
+ type Options = {
53
+ /** Funding deposit address that received the transfer. */
54
+ depositAddressId: string;
55
+ /** Provider request that reported the transfer. */
56
+ providerRequestId: string;
57
+ /** Provider-observed source transaction reference. */
58
+ sourceTransactionHash: string;
59
+ };
60
+ }
61
+ /** Attaches first-observation timestamps to every deposit from one provider request. */
62
+ export declare function recordRequestObservation(db: Db.Db, options: recordRequestObservation.Options): Promise<Record[]>;
63
+ export declare namespace recordRequestObservation {
64
+ /** First observations associated with one provider request. */
65
+ type Options = {
66
+ /** Funding deposit address id (`fda_…`). */
67
+ depositAddressId: string;
68
+ /** When polling first observed the provider request. */
69
+ pollObservedAt?: string | undefined;
70
+ /** Provider request identifier. */
71
+ providerRequestId: string;
72
+ /** When Tempo first received an authenticated provider webhook. */
73
+ webhookReceivedAt?: string | undefined;
74
+ };
75
+ }
76
+ /** Gets deposits associated with one address and source transaction. */
77
+ export declare function listBySourceTransaction(db: Db.Db, options: listBySourceTransaction.Options): Promise<Record[]>;
78
+ export declare namespace listBySourceTransaction {
79
+ /** Source transaction fields scoped to one deposit address. */
80
+ type Options = {
81
+ /** Funding deposit address that received the transfer. */
82
+ depositAddressId: string;
83
+ /** Provider-observed source transaction reference. */
84
+ sourceTransactionHash: string;
85
+ };
86
+ }
87
+ /** Returns whether an address has a nonterminal source transfer awaiting provider attribution. */
88
+ export declare function hasUnattributed(db: Db.Db, depositAddressId: string): Promise<boolean>;
89
+ /** Gets a funding deposit without ownership scoping. */
90
+ export declare function get(db: Db.Db, id: string): Promise<Record | undefined>;
91
+ /** Gets an owner-visible funding deposit. */
92
+ export declare function getOwned(db: Db.Db, owner: Owner, id: string): Promise<Record | undefined>;
93
+ /** Lists one owner-visible address's deposits newest-first. */
94
+ export declare function listByAddress(db: Db.Db, owner: Owner, addressId: string, options: listByAddress.Options): Promise<Record[]>;
95
+ export declare namespace listByAddress {
96
+ /** Cursor fields for the last deposit returned by the previous page. */
97
+ type Cursor = {
98
+ /** Deposit creation time. */
99
+ createdAt: string;
100
+ /** Deposit id, used as a deterministic tie-breaker. */
101
+ id: string;
102
+ };
103
+ /** Paging options for one address's deposits. */
104
+ type Options = {
105
+ /** Exclusive lower bound from the previous page. */
106
+ cursor?: Cursor | undefined;
107
+ /** Maximum rows to return. */
108
+ limit: number;
109
+ };
110
+ }
111
+ /** Lists one recipient's owner-visible deposits newest-first. */
112
+ export declare function listByRecipient(db: Db.Db, options: listByRecipient.Options): Promise<Record[]>;
113
+ export declare namespace listByRecipient {
114
+ /** Recipient filter, ownership, and paging options. */
115
+ type Options = {
116
+ /** Exclusive lower bound from the previous page. */
117
+ cursor?: listByAddress.Cursor | undefined;
118
+ /** Maximum rows to return. */
119
+ limit: number;
120
+ /** Ownership filter derived from the authenticated API key. */
121
+ owner: Owner;
122
+ /** Tempo account that receives completed deposits. */
123
+ recipient: string;
124
+ };
125
+ }
126
+ /** Applies a version-guarded deposit update. */
127
+ export declare function update(db: Db.Db, options: update.Options): Promise<Record | undefined>;
128
+ export declare namespace update {
129
+ /** Guarded deposit update fields. */
130
+ type Options = {
131
+ /** Stored version required for the update. */
132
+ expectedVersion: number;
133
+ /** Funding deposit id (`fdp_…`). */
134
+ id: string;
135
+ /** Provider output amount confirmed on Tempo. */
136
+ providerOutputAmount: Record['providerOutputAmount'];
137
+ /** Provider request that first reported the deposit. */
138
+ providerRequestId: Record['providerRequestId'];
139
+ /** Private provider request identifiers. */
140
+ providerRequestIds: Record['providerRequestIds'];
141
+ /** Bounded private provider state. */
142
+ providerState: Record['providerState'];
143
+ /** Provider-leg transaction references. */
144
+ providerTransactionHashes: Record['providerTransactionHashes'];
145
+ /** Deposit position within the provider request. */
146
+ providerTransferIndex: Record['providerTransferIndex'];
147
+ /** Bounded private retry state. */
148
+ retryState: Record['retryState'];
149
+ /** Persisted settlement transaction bytes for exactly-once rebroadcast. */
150
+ settlementTransaction: Record['settlementTransaction'];
151
+ /** Persisted settlement transaction hash. */
152
+ settlementTransactionHash: Record['settlementTransactionHash'];
153
+ /** Replacement public snapshot. */
154
+ snapshot: Record['snapshot'];
155
+ /** Verified transfer position in the source transaction, or null. */
156
+ sourceTransferIndex: Record['sourceTransferIndex'];
157
+ /** Replacement lifecycle status. */
158
+ status: Record['status'];
159
+ /** Replacement customer-safe reason. */
160
+ statusReason: Record['statusReason'];
161
+ /** Destination token amount supplied by Tempo. */
162
+ subsidyAmount: Record['subsidyAmount'];
163
+ /** Tempo gas paid for settlement, in base units. */
164
+ tempoGasPaid: Record['tempoGasPaid'];
165
+ /** New material update time. */
166
+ updatedAt: string;
167
+ /** New material version. */
168
+ version: number;
169
+ };
170
+ }
171
+ //# sourceMappingURL=fundingDeposits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundingDeposits.d.ts","sourceRoot":"","sources":["../../../src/db/tables/fundingDeposits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ import { sql } from 'kysely';
2
+ /** Inserts one provider-observed source transfer as a funding deposit. */
3
+ export function insert(db, record) {
4
+ return db.kysely
5
+ .insertInto('funding_deposits')
6
+ .values({
7
+ ...record,
8
+ providerRequestIds: JSON.stringify(record.providerRequestIds),
9
+ providerTransactionHashes: JSON.stringify(record.providerTransactionHashes),
10
+ })
11
+ .returningAll()
12
+ .executeTakeFirstOrThrow();
13
+ }
14
+ /** Inserts a chain-observed source transfer or returns its existing deposit. */
15
+ export async function insertOrGetSource(db, record) {
16
+ const inserted = await db.kysely
17
+ .insertInto('funding_deposits')
18
+ .values({
19
+ ...record,
20
+ providerRequestIds: JSON.stringify(record.providerRequestIds),
21
+ providerTransactionHashes: JSON.stringify(record.providerTransactionHashes),
22
+ })
23
+ .onConflict((oc) => oc.columns(['depositAddressId', 'sourceTransactionHash', 'sourceTransferIndex']).doNothing())
24
+ .returningAll()
25
+ .executeTakeFirst();
26
+ if (inserted)
27
+ return { record: inserted, type: 'created' };
28
+ const existing = await db.kysely
29
+ .selectFrom('funding_deposits')
30
+ .selectAll()
31
+ .where('depositAddressId', '=', record.depositAddressId)
32
+ .where('sourceTransactionHash', '=', record.sourceTransactionHash)
33
+ .where('sourceTransferIndex', '=', record.sourceTransferIndex)
34
+ .executeTakeFirstOrThrow();
35
+ return { record: existing, type: 'existing' };
36
+ }
37
+ /** Serializes source attribution for one address and transaction. */
38
+ export function withSourceTransaction(db, options) {
39
+ return db.transaction(async (tx) => {
40
+ const key = `${options.depositAddressId}:${options.sourceTransactionHash.toLowerCase()}`;
41
+ await sql `SELECT pg_advisory_xact_lock(hashtextextended(${key}, 0))`.execute(tx.kysely);
42
+ return options.fn(tx);
43
+ });
44
+ }
45
+ /** Gets deposits created from one provider-observed source transaction. */
46
+ export function listByProviderObservation(db, options) {
47
+ return db.kysely
48
+ .selectFrom('funding_deposits')
49
+ .selectAll()
50
+ .where('depositAddressId', '=', options.depositAddressId)
51
+ .where('providerRequestId', '=', options.providerRequestId)
52
+ .where('sourceTransactionHash', '=', options.sourceTransactionHash)
53
+ .orderBy('providerTransferIndex', 'asc')
54
+ .execute();
55
+ }
56
+ /** Attaches first-observation timestamps to every deposit from one provider request. */
57
+ export function recordRequestObservation(db, options) {
58
+ return db.kysely
59
+ .updateTable('funding_deposits')
60
+ .set({
61
+ ...(options.pollObservedAt
62
+ ? {
63
+ pollObservedAt: sql `LEAST(COALESCE(poll_observed_at, ${options.pollObservedAt}), ${options.pollObservedAt})`,
64
+ }
65
+ : {}),
66
+ ...(options.webhookReceivedAt
67
+ ? {
68
+ webhookReceivedAt: sql `LEAST(COALESCE(webhook_received_at, ${options.webhookReceivedAt}), ${options.webhookReceivedAt})`,
69
+ }
70
+ : {}),
71
+ })
72
+ .where('depositAddressId', '=', options.depositAddressId)
73
+ .where('providerRequestId', '=', options.providerRequestId)
74
+ .returningAll()
75
+ .execute();
76
+ }
77
+ /** Gets deposits associated with one address and source transaction. */
78
+ export function listBySourceTransaction(db, options) {
79
+ return db.kysely
80
+ .selectFrom('funding_deposits')
81
+ .selectAll()
82
+ .where('depositAddressId', '=', options.depositAddressId)
83
+ .where('sourceTransactionHash', '=', options.sourceTransactionHash)
84
+ .orderBy('sourceTransferIndex', 'asc')
85
+ .execute();
86
+ }
87
+ /** Returns whether an address has a nonterminal source transfer awaiting provider attribution. */
88
+ export async function hasUnattributed(db, depositAddressId) {
89
+ return Boolean(await db.kysely
90
+ .selectFrom('funding_deposits')
91
+ .select('id')
92
+ .where('depositAddressId', '=', depositAddressId)
93
+ .where('providerRequestId', 'is', null)
94
+ .where('status', 'not in', ['completed', 'refunded'])
95
+ .limit(1)
96
+ .executeTakeFirst());
97
+ }
98
+ /** Gets a funding deposit without ownership scoping. */
99
+ export function get(db, id) {
100
+ return db.kysely
101
+ .selectFrom('funding_deposits')
102
+ .selectAll()
103
+ .where('id', '=', id)
104
+ .executeTakeFirst();
105
+ }
106
+ /** Gets an owner-visible funding deposit. */
107
+ export function getOwned(db, owner, id) {
108
+ let query = db.kysely
109
+ .selectFrom('funding_deposits')
110
+ .selectAll()
111
+ .where('environment', '=', owner.environment)
112
+ .where('id', '=', id)
113
+ .where('orgId', '=', owner.orgId);
114
+ if (owner.projectId !== undefined)
115
+ query = query.where('projectId', '=', owner.projectId);
116
+ return query.executeTakeFirst();
117
+ }
118
+ /** Lists one owner-visible address's deposits newest-first. */
119
+ export function listByAddress(db, owner, addressId, options) {
120
+ const { cursor, limit } = options;
121
+ let query = db.kysely
122
+ .selectFrom('funding_deposits')
123
+ .selectAll()
124
+ .where('depositAddressId', '=', addressId)
125
+ .where('environment', '=', owner.environment)
126
+ .where('orgId', '=', owner.orgId);
127
+ if (owner.projectId !== undefined)
128
+ query = query.where('projectId', '=', owner.projectId);
129
+ if (cursor)
130
+ query = query.where((eb) => eb.or([
131
+ eb('createdAt', '<', cursor.createdAt),
132
+ eb.and([eb('createdAt', '=', cursor.createdAt), eb('id', '<', cursor.id)]),
133
+ ]));
134
+ return query.orderBy('createdAt', 'desc').orderBy('id', 'desc').limit(limit).execute();
135
+ }
136
+ /** Lists one recipient's owner-visible deposits newest-first. */
137
+ export function listByRecipient(db, options) {
138
+ const { cursor, limit, owner, recipient } = options;
139
+ let query = db.kysely
140
+ .selectFrom('funding_deposits')
141
+ .selectAll()
142
+ .where('environment', '=', owner.environment)
143
+ .where('orgId', '=', owner.orgId)
144
+ .where(sql `lower(snapshot->>'recipient') = ${recipient.toLowerCase()}`);
145
+ if (owner.projectId !== undefined)
146
+ query = query.where('projectId', '=', owner.projectId);
147
+ if (cursor)
148
+ query = query.where((eb) => eb.or([
149
+ eb('createdAt', '<', cursor.createdAt),
150
+ eb.and([eb('createdAt', '=', cursor.createdAt), eb('id', '<', cursor.id)]),
151
+ ]));
152
+ return query.orderBy('createdAt', 'desc').orderBy('id', 'desc').limit(limit).execute();
153
+ }
154
+ /** Applies a version-guarded deposit update. */
155
+ export function update(db, options) {
156
+ return db.kysely
157
+ .updateTable('funding_deposits')
158
+ .set({
159
+ providerOutputAmount: options.providerOutputAmount,
160
+ providerRequestId: options.providerRequestId,
161
+ providerRequestIds: JSON.stringify(options.providerRequestIds),
162
+ providerState: options.providerState,
163
+ providerTransactionHashes: JSON.stringify(options.providerTransactionHashes),
164
+ providerTransferIndex: options.providerTransferIndex,
165
+ retryState: options.retryState,
166
+ settlementTransaction: options.settlementTransaction,
167
+ settlementTransactionHash: options.settlementTransactionHash,
168
+ snapshot: options.snapshot,
169
+ sourceTransferIndex: options.sourceTransferIndex,
170
+ status: options.status,
171
+ statusReason: options.statusReason,
172
+ subsidyAmount: options.subsidyAmount,
173
+ tempoGasPaid: options.tempoGasPaid,
174
+ updatedAt: options.updatedAt,
175
+ version: options.version,
176
+ })
177
+ .where('id', '=', options.id)
178
+ .where('version', '=', options.expectedVersion)
179
+ .returningAll()
180
+ .executeTakeFirst();
181
+ }
182
+ //# sourceMappingURL=fundingDeposits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundingDeposits.js","sourceRoot":"","sources":["../../../src/db/tables/fundingDeposits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import type { Selectable } from 'kysely';
2
+ import type * as Db from '../Db.js';
3
+ import type * as db_Schema from '../Schema.js';
4
+ /** Columns of the `funding_idempotency_requests` table. */
5
+ export type Table = db_Schema.FundingIdempotencyRequest;
6
+ /** A stored idempotency claim. */
7
+ export type Record = Selectable<Table>;
8
+ /**
9
+ * Claims `(apiKeyId, keyHash)` for one creation attempt. A live claim rejects
10
+ * mismatches, blocks pending work, resumes checkpoints, or replays completion.
11
+ */
12
+ export declare function claim(db: Db.Db, input: claim.Input): Promise<claim.Result>;
13
+ export declare namespace claim {
14
+ /** Claim identity and retention. */
15
+ type Input = {
16
+ /** API key id (`key_…`) the claim is scoped to. */
17
+ apiKeyId: string;
18
+ /** SHA-256 of the caller Idempotency-Key. */
19
+ keyHash: string;
20
+ /** SHA-256 fingerprint of the canonical validated request. */
21
+ requestHash: string;
22
+ /** Lease duration for the pending execution, in milliseconds. */
23
+ ttlMs: number;
24
+ };
25
+ /** Outcome of a claim attempt. */
26
+ type Result = {
27
+ createdAt: string;
28
+ type: 'claimed';
29
+ } | {
30
+ type: 'mismatch';
31
+ } | {
32
+ type: 'pending';
33
+ } | {
34
+ response: string;
35
+ type: 'replay';
36
+ } | {
37
+ createdAt: string;
38
+ response: string;
39
+ type: 'resume';
40
+ };
41
+ }
42
+ /** Stores a provider result before committing its API resource and replay response. */
43
+ export declare function checkpoint(db: Db.Db, input: checkpoint.Input): Promise<Record | undefined>;
44
+ export declare namespace checkpoint {
45
+ /** Provider result and owned claim required for durable recovery. */
46
+ type Input = {
47
+ /** API key id (`key_…`) the claim is scoped to. */
48
+ apiKeyId: string;
49
+ /** Creation time returned by the successful claim. */
50
+ createdAt: string;
51
+ /** SHA-256 of the caller Idempotency-Key. */
52
+ keyHash: string;
53
+ /** Recovery checkpoint retention in milliseconds. */
54
+ replayTtlMs: number;
55
+ /** Serialized provider result required to resume resource creation. */
56
+ response: string;
57
+ };
58
+ }
59
+ /** Completes an owned pending or provisioned claim with its replay response. */
60
+ export declare function complete(db: Db.Db, input: complete.Input): Promise<Record | undefined>;
61
+ export declare namespace complete {
62
+ /** Completion fields. */
63
+ type Input = {
64
+ /** API key id (`key_…`) the claim is scoped to. */
65
+ apiKeyId: string;
66
+ /** Creation time returned by the successful claim. */
67
+ createdAt: string;
68
+ /** SHA-256 of the caller Idempotency-Key. */
69
+ keyHash: string;
70
+ /** Successful-response replay retention from completion, in milliseconds. */
71
+ replayTtlMs: number;
72
+ /** Serialized success response replayed for the retention window. */
73
+ response: string;
74
+ /** Transfer id (`ftr_…`) when the request created a funding transfer. */
75
+ transferId?: string | undefined;
76
+ };
77
+ }
78
+ /** Releases a pending claim after a retryable failure. */
79
+ export declare function release(db: Db.Db, input: release.Input): Promise<void>;
80
+ export declare namespace release {
81
+ /** Pending claim identity. */
82
+ type Input = {
83
+ /** API key id (`key_…`) the claim is scoped to. */
84
+ apiKeyId: string;
85
+ /** Creation time returned by the successful claim. */
86
+ createdAt: string;
87
+ /** SHA-256 of the caller Idempotency-Key. */
88
+ keyHash: string;
89
+ };
90
+ }
91
+ //# sourceMappingURL=fundingIdempotency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundingIdempotency.d.ts","sourceRoot":"","sources":["../../../src/db/tables/fundingIdempotency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Claims `(apiKeyId, keyHash)` for one creation attempt. A live claim rejects
3
+ * mismatches, blocks pending work, resumes checkpoints, or replays completion.
4
+ */
5
+ export async function claim(db, input) {
6
+ const now = new Date();
7
+ const record = {
8
+ apiKeyId: input.apiKeyId,
9
+ createdAt: now.toISOString(),
10
+ expiresAt: new Date(now.getTime() + input.ttlMs).toISOString(),
11
+ keyHash: input.keyHash,
12
+ requestHash: input.requestHash,
13
+ response: null,
14
+ status: 'pending',
15
+ transferId: null,
16
+ };
17
+ const inserted = await db.kysely
18
+ .insertInto('funding_idempotency_requests')
19
+ .values(record)
20
+ .onConflict((oc) => oc.columns(['apiKeyId', 'keyHash']).doNothing())
21
+ .returningAll()
22
+ .executeTakeFirst();
23
+ if (inserted)
24
+ return { createdAt: inserted.createdAt, type: 'claimed' };
25
+ // Reclaim an expired row in place; the guard keeps two callers from both
26
+ // reclaiming (only one UPDATE matches the still-expired predicate).
27
+ const reclaimed = await db.kysely
28
+ .updateTable('funding_idempotency_requests')
29
+ .set(record)
30
+ .where('apiKeyId', '=', input.apiKeyId)
31
+ .where('keyHash', '=', input.keyHash)
32
+ .where('expiresAt', '<=', now.toISOString())
33
+ .returningAll()
34
+ .executeTakeFirst();
35
+ if (reclaimed)
36
+ return { createdAt: reclaimed.createdAt, type: 'claimed' };
37
+ const existing = await db.kysely
38
+ .selectFrom('funding_idempotency_requests')
39
+ .selectAll()
40
+ .where('apiKeyId', '=', input.apiKeyId)
41
+ .where('keyHash', '=', input.keyHash)
42
+ .executeTakeFirst();
43
+ // The row vanished between the insert and the read (released claim); retry.
44
+ if (!existing)
45
+ return claim(db, input);
46
+ if (existing.requestHash !== input.requestHash)
47
+ return { type: 'mismatch' };
48
+ if (existing.status === 'pending')
49
+ return { type: 'pending' };
50
+ if (existing.status === 'provisioned')
51
+ return {
52
+ createdAt: existing.createdAt,
53
+ response: existing.response ?? '',
54
+ type: 'resume',
55
+ };
56
+ return { response: existing.response ?? '', type: 'replay' };
57
+ }
58
+ /** Stores a provider result before committing its API resource and replay response. */
59
+ export function checkpoint(db, input) {
60
+ const now = new Date();
61
+ return db.kysely
62
+ .updateTable('funding_idempotency_requests')
63
+ .set({
64
+ expiresAt: new Date(now.getTime() + input.replayTtlMs).toISOString(),
65
+ response: input.response,
66
+ status: 'provisioned',
67
+ })
68
+ .where('apiKeyId', '=', input.apiKeyId)
69
+ .where('createdAt', '=', input.createdAt)
70
+ .where('keyHash', '=', input.keyHash)
71
+ .where('status', '=', 'pending')
72
+ .returningAll()
73
+ .executeTakeFirst();
74
+ }
75
+ /** Completes an owned pending or provisioned claim with its replay response. */
76
+ export function complete(db, input) {
77
+ const now = new Date();
78
+ return db.kysely
79
+ .updateTable('funding_idempotency_requests')
80
+ .set({
81
+ expiresAt: new Date(now.getTime() + input.replayTtlMs).toISOString(),
82
+ response: input.response,
83
+ status: 'completed',
84
+ transferId: input.transferId ?? null,
85
+ })
86
+ .where('apiKeyId', '=', input.apiKeyId)
87
+ .where('createdAt', '=', input.createdAt)
88
+ .where('keyHash', '=', input.keyHash)
89
+ .where('status', 'in', ['pending', 'provisioned'])
90
+ .returningAll()
91
+ .executeTakeFirst();
92
+ }
93
+ /** Releases a pending claim after a retryable failure. */
94
+ export async function release(db, input) {
95
+ await db.kysely
96
+ .deleteFrom('funding_idempotency_requests')
97
+ .where('apiKeyId', '=', input.apiKeyId)
98
+ .where('createdAt', '=', input.createdAt)
99
+ .where('keyHash', '=', input.keyHash)
100
+ .where('status', '=', 'pending')
101
+ .execute();
102
+ }
103
+ //# sourceMappingURL=fundingIdempotency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundingIdempotency.js","sourceRoot":"","sources":["../../../src/db/tables/fundingIdempotency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Selectable } from 'kysely';
2
+ import type * as Db from '../Db.js';
3
+ import type * as db_Schema from '../Schema.js';
4
+ /** Columns of the `funding_transfer_events` table. */
5
+ export type Table = db_Schema.FundingTransferEvent;
6
+ /** One immutable public snapshot at a material version. */
7
+ export type Record = Selectable<Table>;
8
+ /** Inserts an event row. Callers commit it with its transfer row in one transaction. */
9
+ export declare function insert(db: Db.Db, record: Record): Promise<Record>;
10
+ /** Lists a transfer's events, oldest version first. */
11
+ export declare function listByTransfer(db: Db.Db, transferId: string): Promise<Record[]>;
12
+ //# sourceMappingURL=fundingTransferEvents.d.ts.map