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 @@
1
+ {"version":3,"file":"Idempotency.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AAEpE,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AAErC;;;;;GAKG;AAEH,qEAAqE;AACrE,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;AAYhD,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,UAE9C;AAED,iEAAiE;AACjE,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAEnE;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,2DAA2D;IAC3D,KAAK,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAElE,qDAAqD;IACrD,KAAK,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAA;CAC9C;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,mEAAmE;IACnE,KAAK,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CACxE;AAED,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,wDAAwD;IACxD,KAAK,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAA;CAChD"}
@@ -0,0 +1,28 @@
1
+ import * as core_Idempotency from '../../../internal/Idempotency.js';
2
+ import * as Ttl from '../../../internal/Ttl.js';
3
+ const broadcast = core_Idempotency.create({
4
+ namespace: 'mpp:relay:v1',
5
+ // Covers the confirmation wait after a credential has passed its
6
+ // five-second validity window.
7
+ pendingTtl: Ttl.minutes(1),
8
+ // Retains a successful settlement receipt for client recovery after
9
+ // transport failures.
10
+ receiptTtl: Ttl.days(1),
11
+ });
12
+ /** Returns a stable digest without retaining credential contents in durable state. */
13
+ export function inputHash(input) {
14
+ return core_Idempotency.inputHash(input);
15
+ }
16
+ /** Claims a broadcast request or returns its current outcome. */
17
+ export function claim(options) {
18
+ return broadcast.claim(options);
19
+ }
20
+ /** Persists a successful response for an owned request claim. */
21
+ export function complete(options) {
22
+ return broadcast.complete(options);
23
+ }
24
+ /** Releases an owned retryable request claim. */
25
+ export function release(options) {
26
+ return broadcast.release(options);
27
+ }
28
+ //# sourceMappingURL=Idempotency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Idempotency.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAa/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAwB;IAC/D,SAAS,EAAE,cAAc;IACzB,iEAAiE;IACjE,+BAA+B;IAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,oEAAoE;IACpE,sBAAsB;IACtB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CACxB,CAAC,CAAA;AAEF,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,KAAK,CAAC,OAAsB;IAC1C,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAUD,iEAAiE;AACjE,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAOD,iDAAiD;AACjD,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC9C,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { LocalAccount } from 'viem/accounts';
2
+ import type * as Auth from '../../../internal/Auth.js';
3
+ import type * as Db from '../../../db/Db.js';
4
+ import type * as Mpp from '../Mpp.js';
5
+ /** Resolves the chain declared by a Tempo charge challenge. */
6
+ export declare function chainId(input: Mpp.RelayInput): number | undefined;
7
+ /** Whether a Tempo charge credential requests platform fee sponsorship. */
8
+ export declare function requiresFeePayer(input: Mpp.RelayInput): boolean;
9
+ /** Refuses credentials outside the chains served by this API deployment. */
10
+ export declare function assertSupportedChain(options: assertSupportedChain.Options): void;
11
+ export declare namespace assertSupportedChain {
12
+ /** Chain-selection inputs. */
13
+ type Options = {
14
+ /** Resolved credential chain. */
15
+ chainId: number;
16
+ /** Chains served by this API deployment. */
17
+ supportedChainIds: ReadonlySet<number>;
18
+ };
19
+ }
20
+ /** Authorizes managed fee sponsorship for one broadcast request. */
21
+ export declare function authorizeFeePayer(options: authorizeFeePayer.Options): Promise<LocalAccount | undefined>;
22
+ export declare namespace authorizeFeePayer {
23
+ /** Dependencies used to authorize managed fee sponsorship. */
24
+ type Options = {
25
+ /** Credential chain. */
26
+ chainId: number;
27
+ /** Primary database for authoritative billing enforcement. */
28
+ db: Db.Db;
29
+ /** Managed fee-payer account, when configured. */
30
+ feePayer?: LocalAccount | undefined;
31
+ /** MPP credential being broadcast. */
32
+ input: Mpp.RelayInput;
33
+ /** Authenticated request principal. */
34
+ principal?: Auth.Principal | undefined;
35
+ };
36
+ }
37
+ /** Raised when an MPP credential selects a chain this deployment does not serve. */
38
+ export declare class UnsupportedChainError extends Error {
39
+ name: string;
40
+ constructor(chainId: number);
41
+ }
42
+ /** Raised when a caller is not eligible for managed fee sponsorship. */
43
+ export declare class PolicyDeniedError extends Error {
44
+ name: string;
45
+ }
46
+ //# sourceMappingURL=Policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Policy.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AAErC,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,WAGrD;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,QAGzE;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,8BAA8B;IAC9B,KAAK,OAAO,GAAG;QACb,iCAAiC;QACjC,OAAO,EAAE,MAAM,CAAA;QACf,4CAA4C;QAC5C,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KACvC,CAAA;CACF;AAED,oEAAoE;AACpE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,CAAC,OAAO,GACjC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAiBnC;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,wBAAwB;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,8DAA8D;QAC9D,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACT,kDAAkD;QAClD,QAAQ,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACnC,sCAAsC;QACtC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAA;QACrB,uCAAuC;QACvC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;KACvC,CAAA;CACF;AAYD,oFAAoF;AACpF,qBAAa,qBAAsB,SAAQ,KAAK;IACrC,IAAI,SAAqC;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED,wEAAwE;AACxE,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAiC;CAC/C"}
@@ -0,0 +1,57 @@
1
+ import * as Viem from '../../../internal/Viem.js';
2
+ import * as Billing from '../../management/Billing.js';
3
+ /** Resolves the chain declared by a Tempo charge challenge. */
4
+ export function chainId(input) {
5
+ const request = input.challenge.request;
6
+ const details = record(request['methodDetails']);
7
+ return number(details?.['chainId']) ?? number(request['chainId']);
8
+ }
9
+ /** Whether a Tempo charge credential requests platform fee sponsorship. */
10
+ export function requiresFeePayer(input) {
11
+ const request = input.challenge.request;
12
+ return record(request['methodDetails'])?.['feePayer'] === true && request['feePayer'] !== false;
13
+ }
14
+ /** Refuses credentials outside the chains served by this API deployment. */
15
+ export function assertSupportedChain(options) {
16
+ const { chainId, supportedChainIds } = options;
17
+ if (!supportedChainIds.has(chainId))
18
+ throw new UnsupportedChainError(chainId);
19
+ }
20
+ /** Authorizes managed fee sponsorship for one broadcast request. */
21
+ export async function authorizeFeePayer(options) {
22
+ const { chainId, db, feePayer, input, principal } = options;
23
+ if (!feePayer || !requiresFeePayer(input))
24
+ return feePayer;
25
+ if (principal?.type !== 'api_key')
26
+ throw new PolicyDeniedError('Fee sponsorship requires an API key.');
27
+ if (!Viem.isMainnet(chainId))
28
+ return feePayer;
29
+ if (principal.environment !== 'production')
30
+ throw new PolicyDeniedError('Mainnet fee sponsorship requires a production API key.');
31
+ const status = await Billing.status(db, principal.orgId);
32
+ if (status !== 'active')
33
+ throw new PolicyDeniedError(status === 'past_due'
34
+ ? 'Billing is past due.'
35
+ : 'Active billing is required for mainnet fee sponsorship.');
36
+ return feePayer;
37
+ }
38
+ function record(value) {
39
+ return value && typeof value === 'object' && !Array.isArray(value)
40
+ ? value
41
+ : undefined;
42
+ }
43
+ function number(value) {
44
+ return typeof value === 'number' && Number.isSafeInteger(value) ? value : undefined;
45
+ }
46
+ /** Raised when an MPP credential selects a chain this deployment does not serve. */
47
+ export class UnsupportedChainError extends Error {
48
+ name = 'Mpp.Policy.UnsupportedChainError';
49
+ constructor(chainId) {
50
+ super(`Unsupported chain id ${chainId}.`);
51
+ }
52
+ }
53
+ /** Raised when a caller is not eligible for managed fee sponsorship. */
54
+ export class PolicyDeniedError extends Error {
55
+ name = 'Mpp.Policy.PolicyDeniedError';
56
+ }
57
+ //# sourceMappingURL=Policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Policy.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAGtD,+DAA+D;AAC/D,MAAM,UAAU,OAAO,CAAC,KAAqB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,KAAK,CAAA;AACjG,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,OAAqC;IACxE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC/E,CAAC;AAYD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAkC;IAElC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC3D,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC1D,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS;QAC/B,MAAM,IAAI,iBAAiB,CAAC,sCAAsC,CAAC,CAAA;IACrE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC7C,IAAI,SAAS,CAAC,WAAW,KAAK,YAAY;QACxC,MAAM,IAAI,iBAAiB,CAAC,wDAAwD,CAAC,CAAA;IAEvF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,MAAM,KAAK,QAAQ;QACrB,MAAM,IAAI,iBAAiB,CACzB,MAAM,KAAK,UAAU;YACnB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,yDAAyD,CAC9D,CAAA;IACH,OAAO,QAAQ,CAAA;AACjB,CAAC;AAkBD,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACrF,CAAC;AAED,oFAAoF;AACpF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,kCAAkC,CAAA;IAElD,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,OAAO,GAAG,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,8BAA8B,CAAA;CAC/C"}
@@ -0,0 +1,27 @@
1
+ import * as Store from '../../../internal/Store.js';
2
+ import * as Screening from './Screening.js';
3
+ /** Coordinates concurrent cached screening before credential processing. */
4
+ export type Manager = {
5
+ /** Rejects when any payment participant fails screening. */
6
+ screen(addresses: readonly string[]): Promise<void>;
7
+ };
8
+ /** Creates a cached address-screening manager. */
9
+ export declare function create(options: create.Options): Manager;
10
+ export declare namespace create {
11
+ /** Dependencies for cached address screening. */
12
+ type Options = {
13
+ /** Tempo chain that owns the screened addresses. */
14
+ chainId: number;
15
+ /** Address-screening provider. */
16
+ provider?: Screening.Provider | undefined;
17
+ /** Cache used for screening results. */
18
+ store: Store.Store;
19
+ /** Cache duration. @default `Ttl.days(1)` */
20
+ ttl?: number | undefined;
21
+ };
22
+ }
23
+ /** Indicates that an address-screening provider rejected a participant. */
24
+ export declare class RejectedError extends Error {
25
+ name: string;
26
+ }
27
+ //# sourceMappingURL=ScreenManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenManager.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/ScreenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG;IACpB,4DAA4D;IAC5D,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,kDAAkD;AAClD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAWvD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,iDAAiD;IACjD,KAAK,OAAO,GAAG;QACb,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAA;QACf,kCAAkC;QAClC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzC,wCAAwC;QACxC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,6CAA6C;QAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,2EAA2E;AAC3E,qBAAa,aAAc,SAAQ,KAAK;IAC7B,IAAI,SAAoC;CAClD"}
@@ -0,0 +1,18 @@
1
+ import * as Store from '../../../internal/Store.js';
2
+ import * as Screening from './Screening.js';
3
+ /** Creates a cached address-screening manager. */
4
+ export function create(options) {
5
+ const { chainId, provider = Screening.allowAll, store, ttl = Screening.defaultTtl } = options;
6
+ return {
7
+ async screen(addresses) {
8
+ const results = await Promise.all(addresses.map((address) => Screening.screen({ address, chainId, provider, store, ttl })));
9
+ if (results.some((result) => !result.allowed))
10
+ throw new RejectedError();
11
+ },
12
+ };
13
+ }
14
+ /** Indicates that an address-screening provider rejected a participant. */
15
+ export class RejectedError extends Error {
16
+ name = 'Mpp.ScreenManager.RejectedError';
17
+ }
18
+ //# sourceMappingURL=ScreenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenManager.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/ScreenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAQ3C,kDAAkD;AAClD,MAAM,UAAU,MAAM,CAAC,OAAuB;IAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO,CAAA;IAE7F,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,SAAS;YACpB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CACzF,CAAA;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,aAAa,EAAE,CAAA;QAC1E,CAAC;KACF,CAAA;AACH,CAAC;AAgBD,2EAA2E;AAC3E,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,GAAG,iCAAiC,CAAA;CAClD"}
@@ -0,0 +1,35 @@
1
+ import * as Store from '../../../internal/Store.js';
2
+ /** Address-screening result. */
3
+ export type Result = {
4
+ allowed: boolean;
5
+ };
6
+ /** Address-screening provider. */
7
+ export type Provider = {
8
+ /** Screens one normalized account address on a Tempo chain. */
9
+ screen(options: {
10
+ address: string;
11
+ chainId: number;
12
+ }): Promise<Result>;
13
+ };
14
+ /** Allows every address while the external screening provider is unconfigured. */
15
+ export declare const allowAll: Provider;
16
+ /** Screens one address, caching the provider result by chain and normalized address. */
17
+ export declare function screen(options: screen.Options): Promise<Result>;
18
+ export declare namespace screen {
19
+ /** Dependencies used to screen an address. */
20
+ type Options = {
21
+ /** Normalized account address. */
22
+ address: string;
23
+ /** Tempo chain identifier. */
24
+ chainId: number;
25
+ /** Address-screening provider. */
26
+ provider: Provider;
27
+ /** Cache used for provider results. */
28
+ store: Store.Store;
29
+ /** Cache duration. @default `Ttl.days(1)` */
30
+ ttl?: number | undefined;
31
+ };
32
+ }
33
+ /** Default address-screening cache lifetime (24 hours). */
34
+ export declare const defaultTtl: number;
35
+ //# sourceMappingURL=Screening.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Screening.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Screening.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAGnD,gCAAgC;AAChC,MAAM,MAAM,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAEzC,kCAAkC;AAClC,MAAM,MAAM,QAAQ,GAAG;IACrB,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvE,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAA;AAED,wFAAwF;AACxF,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,KAAK,OAAO,GAAG;QACb,kCAAkC;QAClC,OAAO,EAAE,MAAM,CAAA;QACf,8BAA8B;QAC9B,OAAO,EAAE,MAAM,CAAA;QACf,kCAAkC;QAClC,QAAQ,EAAE,QAAQ,CAAA;QAClB,uCAAuC;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,6CAA6C;QAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,2DAA2D;AAC3D,eAAO,MAAM,UAAU,QAAc,CAAA"}
@@ -0,0 +1,20 @@
1
+ import * as Store from '../../../internal/Store.js';
2
+ import * as Ttl from '../../../internal/Ttl.js';
3
+ /** Allows every address while the external screening provider is unconfigured. */
4
+ export const allowAll = {
5
+ async screen() {
6
+ return { allowed: true };
7
+ },
8
+ };
9
+ /** Screens one address, caching the provider result by chain and normalized address. */
10
+ export async function screen(options) {
11
+ const { address, chainId, provider, store, ttl = defaultTtl } = options;
12
+ return Store.memoize(() => provider.screen({ address, chainId }), {
13
+ key: `mpp:screen:v1:${chainId}:${address.toLowerCase()}`,
14
+ store,
15
+ ttl,
16
+ });
17
+ }
18
+ /** Default address-screening cache lifetime (24 hours). */
19
+ export const defaultTtl = Ttl.days(1);
20
+ //# sourceMappingURL=Screening.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Screening.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Screening.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAW/C,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAuB;IAClD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,OAAO,CAAA;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;QAChE,GAAG,EAAE,iBAAiB,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE;QACxD,KAAK;QACL,GAAG;KACJ,CAAC,CAAA;AACJ,CAAC;AAkBD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,36 @@
1
+ import type { LocalAccount } from 'viem/accounts';
2
+ import type * as Auth from '../../../internal/Auth.js';
3
+ import type * as Db from '../../../db/Db.js';
4
+ /** Wraps a managed fee payer to record its signed transaction before broadcast. */
5
+ export declare function decorate(options: decorate.Options): LocalAccount;
6
+ export declare namespace decorate {
7
+ /** Dependencies used to record one MPP-sponsored transaction. */
8
+ type Options = {
9
+ /** Account that MPPX uses to add the fee-payer signature. */
10
+ account: LocalAccount;
11
+ /** Records the signed transaction before it can reach the network. */
12
+ onSigned: (options: {
13
+ serializedTransaction: `0x${string}`;
14
+ }) => Promise<void>;
15
+ };
16
+ }
17
+ /** Records a sponsorship and atomically enforces its billing limits. */
18
+ export declare function record(options: record.Options): Promise<void>;
19
+ export declare namespace record {
20
+ /** Dependencies used to persist one MPP sponsorship. */
21
+ type Options = {
22
+ /** Primary database for billing enforcement and sponsorship state. */
23
+ db: Db.Db;
24
+ /** Cached database used for verified-token reads. */
25
+ dbCached: Db.Db;
26
+ /** API key that requested sponsorship. */
27
+ principal: Extract<Auth.Principal, {
28
+ type: 'api_key';
29
+ }>;
30
+ /** Final fee-payer-signed transaction, before broadcast. */
31
+ serializedTransaction: `0x${string}`;
32
+ /** Platform per-transaction cap in fee-token base units. */
33
+ txFeeLimit: bigint;
34
+ };
35
+ }
36
+ //# sourceMappingURL=Sponsorship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sponsorship.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Sponsorship.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEtD,OAAO,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAQ5C,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAchE;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,iEAAiE;IACjE,KAAK,OAAO,GAAG;QACb,6DAA6D;QAC7D,OAAO,EAAE,YAAY,CAAA;QACrB,sEAAsE;QACtE,QAAQ,EAAE,CAAC,OAAO,EAAE;YAAE,qBAAqB,EAAE,KAAK,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC/E,CAAA;CACF;AAUD,wEAAwE;AACxE,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EnE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,wDAAwD;IACxD,KAAK,OAAO,GAAG;QACb,sEAAsE;QACtE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACT,qDAAqD;QACrD,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAA;QACf,0CAA0C;QAC1C,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,IAAI,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;QACvD,4DAA4D;QAC5D,qBAAqB,EAAE,KAAK,MAAM,EAAE,CAAA;QACpC,4DAA4D;QAC5D,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
@@ -0,0 +1,103 @@
1
+ import { Hash } from 'ox';
2
+ import { TxEnvelopeTempo } from 'ox/tempo';
3
+ import { TokenId, Transaction } from 'viem/tempo';
4
+ import * as BillingSettings from '../../../db/tables/billingSettings.js';
5
+ import * as SponsoredTransactions from '../../../db/tables/sponsoredTransactions.js';
6
+ import * as Fees from '../../../internal/Fees.js';
7
+ import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
8
+ import * as Viem from '../../../internal/Viem.js';
9
+ import * as Billing from '../../management/Billing.js';
10
+ import * as Policy from './Policy.js';
11
+ /** Wraps a managed fee payer to record its signed transaction before broadcast. */
12
+ export function decorate(options) {
13
+ const { account, onSigned } = options;
14
+ const signTransaction = account.signTransaction.bind(account);
15
+ return new Proxy(account, {
16
+ get(target, property, receiver) {
17
+ if (property !== 'signTransaction')
18
+ return Reflect.get(target, property, receiver);
19
+ return async (...parameters) => {
20
+ const serializedTransaction = await signTransaction(...parameters);
21
+ await onSigned({ serializedTransaction });
22
+ return serializedTransaction;
23
+ };
24
+ },
25
+ });
26
+ }
27
+ /** Records a sponsorship and atomically enforces its billing limits. */
28
+ export async function record(options) {
29
+ const { db, dbCached, principal, serializedTransaction, txFeeLimit } = options;
30
+ const transaction = Transaction.deserialize(serializedTransaction);
31
+ if (!transaction.from)
32
+ throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a sender.');
33
+ if (typeof transaction.chainId !== 'number')
34
+ throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a chain id.');
35
+ const chainId = transaction.chainId;
36
+ const feeMax = Fees.maxOf(transaction);
37
+ if (feeMax === undefined)
38
+ throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a fee limit.');
39
+ const feeToken = (() => {
40
+ try {
41
+ return transaction.feeToken === undefined
42
+ ? undefined
43
+ : TokenId.toAddress(transaction.feeToken);
44
+ }
45
+ catch {
46
+ throw new Policy.PolicyDeniedError('Fee-sponsored transaction uses an invalid fee token.');
47
+ }
48
+ })();
49
+ const mainnet = Viem.isMainnet(chainId);
50
+ const settings = mainnet ? await BillingSettings.get(db, principal.orgId) : undefined;
51
+ let currency;
52
+ if (mainnet) {
53
+ const verified = feeToken
54
+ ? (await VerifiedTokens.read(dbCached, chainId))?.byAddress.get(feeToken.toLowerCase())
55
+ : undefined;
56
+ if (!verified ||
57
+ verified.currency.toLowerCase() !== 'usd' ||
58
+ verified.decimals !== Fees.tokenDecimals)
59
+ throw new Policy.PolicyDeniedError('Fee-sponsored transaction uses an unsupported fee token.');
60
+ currency = verified.currency.toLowerCase();
61
+ const cap = (() => {
62
+ if (settings?.txFeeLimit == null)
63
+ return txFeeLimit;
64
+ const org = Billing.toBaseUnits(settings.txFeeLimit);
65
+ return org < txFeeLimit ? org : txFeeLimit;
66
+ })();
67
+ if (feeMax > cap)
68
+ throw new Policy.PolicyDeniedError('Transaction fee limit exceeded.');
69
+ }
70
+ const envelope = TxEnvelopeTempo.deserialize(serializedTransaction);
71
+ const signPayload = TxEnvelopeTempo.getFeePayerSignPayload(envelope, { sender: transaction.from });
72
+ const input = {
73
+ apiKeyId: principal.id,
74
+ billable: mainnet && principal.environment === 'production',
75
+ chainId,
76
+ ...(currency ? { currency } : {}),
77
+ environment: principal.environment,
78
+ feeMax: feeMax.toString(),
79
+ ...(feeToken ? { feeToken } : {}),
80
+ orgId: principal.orgId,
81
+ ...(principal.projectId === undefined ? {} : { projectId: principal.projectId }),
82
+ signPayload,
83
+ transaction: serializedTransaction,
84
+ transactionHash: Hash.keccak256(serializedTransaction),
85
+ };
86
+ if (settings?.spendLimit == null) {
87
+ await SponsoredTransactions.upsert(db, input);
88
+ return;
89
+ }
90
+ try {
91
+ await SponsoredTransactions.reserve(db, input, {
92
+ chainIds: [Viem.chainId.mainnet],
93
+ max: Billing.toBaseUnits(settings.spendLimit),
94
+ since: Billing.periodStart(settings.period),
95
+ });
96
+ }
97
+ catch (cause) {
98
+ if (cause instanceof SponsoredTransactions.PeriodSpendLimitError)
99
+ throw new Policy.PolicyDeniedError('Spend limit exceeded.');
100
+ throw cause;
101
+ }
102
+ }
103
+ //# sourceMappingURL=Sponsorship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sponsorship.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Sponsorship.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as Mppx from 'mppx';
2
+ import * as Store from '../../../internal/Store.js';
3
+ /** Returns the normalized Tempo sender and recipients in a validated credential. */
4
+ export declare function addresses(result: Awaited<ReturnType<typeof Mppx.Method.validateCredential>>): string[];
5
+ /** Adapts Tempo API durable state to MPPX's atomic Cloudflare store contract. */
6
+ export declare function mppxStore(state: Store.State): Mppx.Store.AtomicStore;
7
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAEnD,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,YAS3F;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAYpE"}
@@ -0,0 +1,24 @@
1
+ import * as Mppx from 'mppx';
2
+ import * as Store from '../../../internal/Store.js';
3
+ /** Returns the normalized Tempo sender and recipients in a validated credential. */
4
+ export function addresses(result) {
5
+ const details = result.details;
6
+ return [details.sender, ...(details.transfers?.map(({ recipient }) => recipient) ?? [])]
7
+ .filter((address) => address !== undefined)
8
+ .map((address) => address.toLowerCase())
9
+ .filter((address, index, values) => values.indexOf(address) === index);
10
+ }
11
+ /** Adapts Tempo API durable state to MPPX's atomic Cloudflare store contract. */
12
+ export function mppxStore(state) {
13
+ return Mppx.Store.cloudflare({
14
+ delete: (key) => state.delete(key),
15
+ get: (key) => state.get(key),
16
+ put: (key, value) => state.put(key, value),
17
+ update: (key, change) => Store.change(state, key, (current) => {
18
+ const next = change(current);
19
+ // MPPX's Cloudflare adapter represents a missing value with JSON null.
20
+ return next.op === 'delete' ? { ...next, op: 'set', value: 'null' } : next;
21
+ }),
22
+ });
23
+ }
24
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAEnD,oFAAoF;AACpF,MAAM,UAAU,SAAS,CAAC,MAAkE;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,OAGtB,CAAA;IACD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;SACrF,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;SAC7D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SACvC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAA;AAC1E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAClC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;QAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CACtB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAC5B,uEAAuE;YACvE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACrF,CAAC,CAAC;KACL,CAAC,CAAA;AACJ,CAAC"}