tapimo 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (689) hide show
  1. package/dist/ApiKeys.d.ts +24 -7
  2. package/dist/ApiKeys.d.ts.map +1 -1
  3. package/dist/ApiKeys.js +17 -5
  4. package/dist/ApiKeys.js.map +1 -1
  5. package/dist/App.d.ts +12104 -7861
  6. package/dist/App.d.ts.map +1 -1
  7. package/dist/App.js +191 -128
  8. package/dist/App.js.map +1 -1
  9. package/dist/Assets.d.ts +10 -0
  10. package/dist/Assets.d.ts.map +1 -1
  11. package/dist/Assets.js +17 -4
  12. package/dist/Assets.js.map +1 -1
  13. package/dist/Scope.d.ts +19 -8
  14. package/dist/Scope.d.ts.map +1 -1
  15. package/dist/Scope.js +25 -9
  16. package/dist/Scope.js.map +1 -1
  17. package/dist/Webhooks.d.ts +1 -1
  18. package/dist/admin/App.d.ts +601 -20
  19. package/dist/admin/App.d.ts.map +1 -1
  20. package/dist/admin/App.js +12 -2
  21. package/dist/admin/App.js.map +1 -1
  22. package/dist/admin/apps/api-keys.d.ts +94 -11
  23. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  24. package/dist/admin/apps/api-keys.js +141 -32
  25. package/dist/admin/apps/api-keys.js.map +1 -1
  26. package/dist/admin/apps/earn-vaults.d.ts +1069 -0
  27. package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
  28. package/dist/admin/apps/earn-vaults.js +409 -0
  29. package/dist/admin/apps/earn-vaults.js.map +1 -0
  30. package/dist/admin/apps/verified-tokens.d.ts +166 -166
  31. package/dist/admin/ui.generated.d.ts +1 -1
  32. package/dist/admin/ui.generated.d.ts.map +1 -1
  33. package/dist/admin/ui.generated.js +151 -95
  34. package/dist/admin/ui.generated.js.map +1 -1
  35. package/dist/analytics/Analytics.d.ts +2 -0
  36. package/dist/analytics/Analytics.d.ts.map +1 -1
  37. package/dist/analytics/Analytics.js +18 -2
  38. package/dist/analytics/Analytics.js.map +1 -1
  39. package/dist/analytics/tables/requestEvents.d.ts +22 -1
  40. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  41. package/dist/analytics/tables/requestEvents.js +59 -39
  42. package/dist/analytics/tables/requestEvents.js.map +1 -1
  43. package/dist/apps/Zones.d.ts +8335 -0
  44. package/dist/apps/Zones.d.ts.map +1 -0
  45. package/dist/apps/Zones.js +38 -0
  46. package/dist/apps/Zones.js.map +1 -0
  47. package/dist/apps/data/App.d.ts +14377 -10165
  48. package/dist/apps/data/App.d.ts.map +1 -1
  49. package/dist/apps/data/App.js +91 -19
  50. package/dist/apps/data/App.js.map +1 -1
  51. package/dist/apps/data/FxOracle.d.ts +1 -1
  52. package/dist/apps/data/FxOracle.d.ts.map +1 -1
  53. package/dist/apps/data/index.d.ts +0 -1
  54. package/dist/apps/data/index.d.ts.map +1 -1
  55. package/dist/apps/data/index.js +0 -1
  56. package/dist/apps/data/index.js.map +1 -1
  57. package/dist/apps/data/routes/activities.d.ts +32 -32
  58. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  59. package/dist/apps/data/routes/activities.js +130 -65
  60. package/dist/apps/data/routes/activities.js.map +1 -1
  61. package/dist/apps/data/routes/addresses.d.ts +312 -312
  62. package/dist/apps/data/routes/balances.d.ts +18 -18
  63. package/dist/apps/data/routes/balances.js +5 -5
  64. package/dist/apps/data/routes/balances.js.map +1 -1
  65. package/dist/apps/data/routes/coingecko.d.ts +176 -176
  66. package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
  67. package/dist/apps/data/routes/coingecko.js +62 -35
  68. package/dist/apps/data/routes/coingecko.js.map +1 -1
  69. package/dist/apps/data/routes/earn.d.ts +2144 -0
  70. package/dist/apps/data/routes/earn.d.ts.map +1 -0
  71. package/dist/apps/data/routes/earn.js +947 -0
  72. package/dist/apps/data/routes/earn.js.map +1 -0
  73. package/dist/apps/data/routes/exchanges.d.ts +1231 -324
  74. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  75. package/dist/apps/data/routes/exchanges.js +656 -193
  76. package/dist/apps/data/routes/exchanges.js.map +1 -1
  77. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  78. package/dist/apps/data/routes/fee-amm.js +59 -8
  79. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  80. package/dist/apps/data/routes/funding.d.ts +4092 -387
  81. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  82. package/dist/apps/data/routes/funding.js +1403 -256
  83. package/dist/apps/data/routes/funding.js.map +1 -1
  84. package/dist/apps/data/routes/indexer.d.ts +5 -5
  85. package/dist/apps/data/routes/indexer.d.ts.map +1 -1
  86. package/dist/apps/data/routes/indexer.js +19 -2
  87. package/dist/apps/data/routes/indexer.js.map +1 -1
  88. package/dist/apps/data/routes/receipts.d.ts +265 -265
  89. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  90. package/dist/apps/data/routes/receipts.js +11 -11
  91. package/dist/apps/data/routes/receipts.js.map +1 -1
  92. package/dist/apps/data/routes/rpc.d.ts +5 -5
  93. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  94. package/dist/apps/data/routes/rpc.js +211 -22
  95. package/dist/apps/data/routes/rpc.js.map +1 -1
  96. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  97. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
  98. package/dist/apps/data/routes/tokenlist.js +49 -9
  99. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  100. package/dist/apps/data/routes/tokens.d.ts +116 -88
  101. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  102. package/dist/apps/data/routes/tokens.js +198 -91
  103. package/dist/apps/data/routes/tokens.js.map +1 -1
  104. package/dist/apps/data/routes/transactions.d.ts +55 -55
  105. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  106. package/dist/apps/data/routes/transactions.js +78 -39
  107. package/dist/apps/data/routes/transactions.js.map +1 -1
  108. package/dist/apps/data/routes/transfers.d.ts +78 -29
  109. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  110. package/dist/apps/data/routes/transfers.js +165 -67
  111. package/dist/apps/data/routes/transfers.js.map +1 -1
  112. package/dist/apps/data/routes/valuation.d.ts +10 -10
  113. package/dist/apps/data/routes/valuation.js +2 -2
  114. package/dist/apps/data/routes/valuation.js.map +1 -1
  115. package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
  116. package/dist/apps/data/routes/verified-tokens.js +34 -9
  117. package/dist/apps/data/routes/verified-tokens.js.map +1 -1
  118. package/dist/apps/data/routes/webhooks.d.ts +5 -3
  119. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  120. package/dist/apps/data/routes/webhooks.js +175 -65
  121. package/dist/apps/data/routes/webhooks.js.map +1 -1
  122. package/dist/apps/data/routes/zones.d.ts +281 -0
  123. package/dist/apps/data/routes/zones.d.ts.map +1 -0
  124. package/dist/apps/data/routes/zones.js +252 -0
  125. package/dist/apps/data/routes/zones.js.map +1 -0
  126. package/dist/apps/docs/reference.js +6 -5
  127. package/dist/apps/docs/reference.js.map +1 -1
  128. package/dist/apps/index.d.ts +2 -1
  129. package/dist/apps/index.d.ts.map +1 -1
  130. package/dist/apps/index.js +2 -1
  131. package/dist/apps/index.js.map +1 -1
  132. package/dist/apps/management/App.d.ts +670 -670
  133. package/dist/apps/management/Billing.d.ts +8 -0
  134. package/dist/apps/management/Billing.d.ts.map +1 -1
  135. package/dist/apps/management/Billing.js +12 -0
  136. package/dist/apps/management/Billing.js.map +1 -1
  137. package/dist/apps/management/Error.d.ts +12 -0
  138. package/dist/apps/management/Error.d.ts.map +1 -0
  139. package/dist/apps/management/Error.js +10 -0
  140. package/dist/apps/management/Error.js.map +1 -0
  141. package/dist/apps/management/routes/api-keys.d.ts +5 -5
  142. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  143. package/dist/apps/management/routes/api-keys.js +2 -8
  144. package/dist/apps/management/routes/api-keys.js.map +1 -1
  145. package/dist/apps/management/routes/billing.d.ts +119 -119
  146. package/dist/apps/management/routes/faucet.d.ts +35 -35
  147. package/dist/apps/management/routes/invitations.d.ts +62 -62
  148. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  149. package/dist/apps/management/routes/invitations.js +4 -10
  150. package/dist/apps/management/routes/invitations.js.map +1 -1
  151. package/dist/apps/management/routes/invite-links.d.ts +30 -30
  152. package/dist/apps/management/routes/me.d.ts +6 -6
  153. package/dist/apps/management/routes/members.d.ts +78 -78
  154. package/dist/apps/management/routes/orgs.d.ts +48 -48
  155. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  156. package/dist/apps/management/routes/orgs.js +2 -8
  157. package/dist/apps/management/routes/orgs.js.map +1 -1
  158. package/dist/apps/management/routes/projects.d.ts +9 -9
  159. package/dist/apps/management/routes/scopes.js +2 -2
  160. package/dist/apps/management/routes/scopes.js.map +1 -1
  161. package/dist/apps/management/routes/usage.d.ts +80 -80
  162. package/dist/apps/management/routes/verified-token-requests.d.ts +36 -36
  163. package/dist/apps/management/routes/webhooks.d.ts +50 -50
  164. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  165. package/dist/apps/management/routes/webhooks.js +15 -3
  166. package/dist/apps/management/routes/webhooks.js.map +1 -1
  167. package/dist/apps/mpp/App.d.ts +55 -56
  168. package/dist/apps/mpp/App.d.ts.map +1 -1
  169. package/dist/apps/mpp/App.js +192 -27
  170. package/dist/apps/mpp/App.js.map +1 -1
  171. package/dist/apps/mpp/Mpp.d.ts +0 -20
  172. package/dist/apps/mpp/Mpp.d.ts.map +1 -1
  173. package/dist/apps/mpp/Mpp.js +0 -24
  174. package/dist/apps/mpp/Mpp.js.map +1 -1
  175. package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
  176. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
  177. package/dist/apps/mpp/internal/Adapter.js +66 -0
  178. package/dist/apps/mpp/internal/Adapter.js.map +1 -0
  179. package/dist/apps/mpp/internal/Error.d.ts +4 -0
  180. package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
  181. package/dist/apps/mpp/internal/Error.js +41 -0
  182. package/dist/apps/mpp/internal/Error.js.map +1 -0
  183. package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
  184. package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
  185. package/dist/apps/mpp/internal/Idempotency.js +28 -0
  186. package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
  187. package/dist/apps/mpp/internal/Policy.d.ts +46 -0
  188. package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
  189. package/dist/apps/mpp/internal/Policy.js +57 -0
  190. package/dist/apps/mpp/internal/Policy.js.map +1 -0
  191. package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
  192. package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
  193. package/dist/apps/mpp/internal/ScreenManager.js +18 -0
  194. package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
  195. package/dist/apps/mpp/internal/Screening.d.ts +35 -0
  196. package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
  197. package/dist/apps/mpp/internal/Screening.js +20 -0
  198. package/dist/apps/mpp/internal/Screening.js.map +1 -0
  199. package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
  200. package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
  201. package/dist/apps/mpp/internal/Sponsorship.js +103 -0
  202. package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
  203. package/dist/apps/mpp/internal/Utils.d.ts +7 -0
  204. package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
  205. package/dist/apps/mpp/internal/Utils.js +24 -0
  206. package/dist/apps/mpp/internal/Utils.js.map +1 -0
  207. package/dist/apps/relay/App.js +184 -24
  208. package/dist/apps/relay/App.js.map +1 -1
  209. package/dist/apps/relay/Sponsorships.d.ts +4 -0
  210. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  211. package/dist/apps/relay/Sponsorships.js +16 -7
  212. package/dist/apps/relay/Sponsorships.js.map +1 -1
  213. package/dist/db/Db.d.ts +20 -0
  214. package/dist/db/Db.d.ts.map +1 -1
  215. package/dist/db/Db.js +342 -0
  216. package/dist/db/Db.js.map +1 -1
  217. package/dist/db/Schema.d.ts +921 -1
  218. package/dist/db/Schema.d.ts.map +1 -1
  219. package/dist/db/Schema.js +269 -1
  220. package/dist/db/Schema.js.map +1 -1
  221. package/dist/db/tables/earnVaults.d.ts +68 -0
  222. package/dist/db/tables/earnVaults.d.ts.map +1 -0
  223. package/dist/db/tables/earnVaults.js +72 -0
  224. package/dist/db/tables/earnVaults.js.map +1 -0
  225. package/dist/db/tables/fundingCatalog.d.ts +56 -0
  226. package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
  227. package/dist/db/tables/fundingCatalog.js +85 -0
  228. package/dist/db/tables/fundingCatalog.js.map +1 -0
  229. package/dist/db/tables/fundingDepositAddresses.d.ts +159 -0
  230. package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
  231. package/dist/db/tables/fundingDepositAddresses.js +206 -0
  232. package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
  233. package/dist/db/tables/fundingDeposits.d.ts +115 -0
  234. package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
  235. package/dist/db/tables/fundingDeposits.js +100 -0
  236. package/dist/db/tables/fundingDeposits.js.map +1 -0
  237. package/dist/db/tables/fundingIdempotency.d.ts +91 -0
  238. package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
  239. package/dist/db/tables/fundingIdempotency.js +103 -0
  240. package/dist/db/tables/fundingIdempotency.js.map +1 -0
  241. package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
  242. package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
  243. package/dist/db/tables/fundingTransferEvents.js +18 -0
  244. package/dist/db/tables/fundingTransferEvents.js.map +1 -0
  245. package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
  246. package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
  247. package/dist/db/tables/fundingTransferTransactions.js +27 -0
  248. package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
  249. package/dist/db/tables/fundingTransfers.d.ts +82 -0
  250. package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
  251. package/dist/db/tables/fundingTransfers.js +89 -0
  252. package/dist/db/tables/fundingTransfers.js.map +1 -0
  253. package/dist/db/tables/organizations.d.ts +8 -0
  254. package/dist/db/tables/organizations.d.ts.map +1 -1
  255. package/dist/db/tables/organizations.js +35 -0
  256. package/dist/db/tables/organizations.js.map +1 -1
  257. package/dist/db/tables/projects.d.ts +8 -0
  258. package/dist/db/tables/projects.d.ts.map +1 -1
  259. package/dist/db/tables/projects.js +16 -0
  260. package/dist/db/tables/projects.js.map +1 -1
  261. package/dist/db/tables/requestUsage.d.ts +13 -0
  262. package/dist/db/tables/requestUsage.d.ts.map +1 -1
  263. package/dist/db/tables/requestUsage.js +16 -0
  264. package/dist/db/tables/requestUsage.js.map +1 -1
  265. package/dist/db/tables/sponsoredTransactions.d.ts +4 -2
  266. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  267. package/dist/db/tables/sponsoredTransactions.js +14 -4
  268. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  269. package/dist/db/tables/users.d.ts +8 -0
  270. package/dist/db/tables/users.d.ts.map +1 -1
  271. package/dist/db/tables/users.js +16 -0
  272. package/dist/db/tables/users.js.map +1 -1
  273. package/dist/db/tables/verifiedTokens.d.ts +14 -7
  274. package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
  275. package/dist/db/tables/verifiedTokens.js +9 -7
  276. package/dist/db/tables/verifiedTokens.js.map +1 -1
  277. package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
  278. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  279. package/dist/db/tables/webhookSubscriptions.js +24 -3
  280. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  281. package/dist/handlers/relay.js +108 -108
  282. package/dist/handlers/relay.js.map +1 -1
  283. package/dist/internal/Auth.d.ts +26 -0
  284. package/dist/internal/Auth.d.ts.map +1 -1
  285. package/dist/internal/Auth.js +35 -2
  286. package/dist/internal/Auth.js.map +1 -1
  287. package/dist/internal/Cache.d.ts.map +1 -1
  288. package/dist/internal/Cache.js +16 -10
  289. package/dist/internal/Cache.js.map +1 -1
  290. package/dist/internal/Cursor.js +1 -1
  291. package/dist/internal/Cursor.js.map +1 -1
  292. package/dist/internal/EarnRates.d.ts +89 -0
  293. package/dist/internal/EarnRates.d.ts.map +1 -0
  294. package/dist/internal/EarnRates.js +266 -0
  295. package/dist/internal/EarnRates.js.map +1 -0
  296. package/dist/internal/EarnVaults.d.ts +171 -0
  297. package/dist/internal/EarnVaults.d.ts.map +1 -0
  298. package/dist/internal/EarnVaults.js +547 -0
  299. package/dist/internal/EarnVaults.js.map +1 -0
  300. package/dist/internal/EdgeCache.d.ts +9 -2
  301. package/dist/internal/EdgeCache.d.ts.map +1 -1
  302. package/dist/internal/EdgeCache.js +36 -9
  303. package/dist/internal/EdgeCache.js.map +1 -1
  304. package/dist/internal/Id.d.ts +11 -0
  305. package/dist/internal/Id.d.ts.map +1 -1
  306. package/dist/internal/Id.js +13 -0
  307. package/dist/internal/Id.js.map +1 -1
  308. package/dist/internal/Idempotency.d.ts +83 -0
  309. package/dist/internal/Idempotency.d.ts.map +1 -0
  310. package/dist/internal/Idempotency.js +113 -0
  311. package/dist/internal/Idempotency.js.map +1 -0
  312. package/dist/internal/Log.d.ts +64 -9
  313. package/dist/internal/Log.d.ts.map +1 -1
  314. package/dist/internal/Log.js +29 -7
  315. package/dist/internal/Log.js.map +1 -1
  316. package/dist/internal/MetricSink.d.ts.map +1 -1
  317. package/dist/internal/MetricSink.js +47 -1
  318. package/dist/internal/MetricSink.js.map +1 -1
  319. package/dist/internal/OpenApi.d.ts +1 -1
  320. package/dist/internal/OpenApi.d.ts.map +1 -1
  321. package/dist/internal/OpenApi.js +3 -0
  322. package/dist/internal/OpenApi.js.map +1 -1
  323. package/dist/internal/Provider.d.ts +14 -0
  324. package/dist/internal/Provider.d.ts.map +1 -0
  325. package/dist/internal/Provider.js +5 -0
  326. package/dist/internal/Provider.js.map +1 -0
  327. package/dist/internal/Schema.d.ts +8 -3
  328. package/dist/internal/Schema.d.ts.map +1 -1
  329. package/dist/internal/Schema.js +24 -13
  330. package/dist/internal/Schema.js.map +1 -1
  331. package/dist/internal/Store.d.ts +6 -0
  332. package/dist/internal/Store.d.ts.map +1 -1
  333. package/dist/internal/Store.js +35 -0
  334. package/dist/internal/Store.js.map +1 -1
  335. package/dist/internal/Tidx.d.ts +43 -24
  336. package/dist/internal/Tidx.d.ts.map +1 -1
  337. package/dist/internal/Tidx.js +79 -11
  338. package/dist/internal/Tidx.js.map +1 -1
  339. package/dist/internal/Viem.d.ts +82 -65
  340. package/dist/internal/Viem.d.ts.map +1 -1
  341. package/dist/internal/Viem.js +83 -12
  342. package/dist/internal/Viem.js.map +1 -1
  343. package/dist/internal/WebhookDestination.d.ts.map +1 -1
  344. package/dist/internal/WebhookDestination.js +34 -28
  345. package/dist/internal/WebhookDestination.js.map +1 -1
  346. package/dist/internal/Webhooks.d.ts +9 -0
  347. package/dist/internal/Webhooks.d.ts.map +1 -1
  348. package/dist/internal/Webhooks.js +15 -10
  349. package/dist/internal/Webhooks.js.map +1 -1
  350. package/dist/internal/exchange/Provider.d.ts +219 -0
  351. package/dist/internal/exchange/Provider.d.ts.map +1 -0
  352. package/dist/internal/exchange/Provider.js +117 -0
  353. package/dist/internal/exchange/Provider.js.map +1 -0
  354. package/dist/internal/exchange/index.d.ts +2 -0
  355. package/dist/internal/exchange/index.d.ts.map +1 -0
  356. package/dist/internal/exchange/index.js +2 -0
  357. package/dist/internal/exchange/index.js.map +1 -0
  358. package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
  359. package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
  360. package/dist/internal/exchange/providers/uniswap.js +553 -0
  361. package/dist/internal/exchange/providers/uniswap.js.map +1 -0
  362. package/dist/internal/funding/Action.d.ts +55 -0
  363. package/dist/internal/funding/Action.d.ts.map +1 -0
  364. package/dist/internal/funding/Action.js +74 -0
  365. package/dist/internal/funding/Action.js.map +1 -0
  366. package/dist/internal/funding/Catalog.d.ts +107 -0
  367. package/dist/internal/funding/Catalog.d.ts.map +1 -0
  368. package/dist/internal/funding/Catalog.js +270 -0
  369. package/dist/internal/funding/Catalog.js.map +1 -0
  370. package/dist/internal/funding/Chain.d.ts +76 -0
  371. package/dist/internal/funding/Chain.d.ts.map +1 -0
  372. package/dist/internal/funding/Chain.js +38 -0
  373. package/dist/internal/funding/Chain.js.map +1 -0
  374. package/dist/internal/funding/Deposit.d.ts +366 -0
  375. package/dist/internal/funding/Deposit.d.ts.map +1 -0
  376. package/dist/internal/funding/Deposit.js +286 -0
  377. package/dist/internal/funding/Deposit.js.map +1 -0
  378. package/dist/internal/funding/DepositAddress.d.ts +345 -0
  379. package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
  380. package/dist/internal/funding/DepositAddress.js +189 -0
  381. package/dist/internal/funding/DepositAddress.js.map +1 -0
  382. package/dist/internal/funding/Evidence.d.ts +52 -0
  383. package/dist/internal/funding/Evidence.d.ts.map +1 -0
  384. package/dist/internal/funding/Evidence.js +314 -0
  385. package/dist/internal/funding/Evidence.js.map +1 -0
  386. package/dist/internal/funding/Provider.d.ts +1186 -0
  387. package/dist/internal/funding/Provider.d.ts.map +1 -0
  388. package/dist/internal/funding/Provider.js +1081 -0
  389. package/dist/internal/funding/Provider.js.map +1 -0
  390. package/dist/internal/funding/Reconciliation.d.ts +113 -0
  391. package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
  392. package/dist/internal/funding/Reconciliation.js +676 -0
  393. package/dist/internal/funding/Reconciliation.js.map +1 -0
  394. package/dist/internal/funding/Route.d.ts +21 -0
  395. package/dist/internal/funding/Route.d.ts.map +1 -0
  396. package/dist/internal/funding/Route.js +5 -0
  397. package/dist/internal/funding/Route.js.map +1 -0
  398. package/dist/internal/funding/Subsidy.d.ts +113 -0
  399. package/dist/internal/funding/Subsidy.d.ts.map +1 -0
  400. package/dist/internal/funding/Subsidy.js +138 -0
  401. package/dist/internal/funding/Subsidy.js.map +1 -0
  402. package/dist/internal/funding/Token.d.ts +41 -0
  403. package/dist/internal/funding/Token.d.ts.map +1 -0
  404. package/dist/internal/funding/Token.js +22 -0
  405. package/dist/internal/funding/Token.js.map +1 -0
  406. package/dist/internal/funding/Transfer.d.ts +643 -0
  407. package/dist/internal/funding/Transfer.d.ts.map +1 -0
  408. package/dist/internal/funding/Transfer.js +332 -0
  409. package/dist/internal/funding/Transfer.js.map +1 -0
  410. package/dist/internal/funding/index.d.ts +13 -0
  411. package/dist/internal/funding/index.d.ts.map +1 -0
  412. package/dist/internal/funding/index.js +13 -0
  413. package/dist/internal/funding/index.js.map +1 -0
  414. package/dist/internal/funding/providers/across.d.ts +21 -0
  415. package/dist/internal/funding/providers/across.d.ts.map +1 -0
  416. package/dist/internal/funding/providers/across.js +117 -0
  417. package/dist/internal/funding/providers/across.js.map +1 -0
  418. package/dist/internal/funding/providers/relay.d.ts +46 -0
  419. package/dist/internal/funding/providers/relay.d.ts.map +1 -0
  420. package/dist/internal/funding/providers/relay.js +464 -0
  421. package/dist/internal/funding/providers/relay.js.map +1 -0
  422. package/dist/internal/funding/providers/rhino.d.ts +15 -0
  423. package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
  424. package/dist/internal/funding/providers/rhino.js +116 -0
  425. package/dist/internal/funding/providers/rhino.js.map +1 -0
  426. package/dist/internal/funding/providers/squid.d.ts +19 -0
  427. package/dist/internal/funding/providers/squid.d.ts.map +1 -0
  428. package/dist/internal/funding/providers/squid.js +120 -0
  429. package/dist/internal/funding/providers/squid.js.map +1 -0
  430. package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
  431. package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
  432. package/dist/internal/funding/providers/symbiosis.js +176 -0
  433. package/dist/internal/funding/providers/symbiosis.js.map +1 -0
  434. package/dist/internal/index.d.ts +5 -1
  435. package/dist/internal/index.d.ts.map +1 -1
  436. package/dist/internal/index.js +5 -1
  437. package/dist/internal/index.js.map +1 -1
  438. package/dist/internal/webhookDestinations/url.js +61 -57
  439. package/dist/internal/webhookDestinations/url.js.map +1 -1
  440. package/dist/providers/index.d.ts +43 -0
  441. package/dist/providers/index.d.ts.map +1 -0
  442. package/dist/providers/index.js +19 -0
  443. package/dist/providers/index.js.map +1 -0
  444. package/package.json +9 -4
  445. package/src/ApiKeys.test.ts +11 -7
  446. package/src/ApiKeys.ts +37 -9
  447. package/src/App.test.ts +85 -10
  448. package/src/App.ts +224 -137
  449. package/src/Assets.ts +29 -4
  450. package/src/Client.test-d.ts +650 -30
  451. package/src/Scope.test.ts +19 -0
  452. package/src/Scope.ts +28 -11
  453. package/src/Webhooks.test.ts +25 -0
  454. package/src/Webhooks.ts +1 -1
  455. package/src/admin/App.test.ts +9 -2
  456. package/src/admin/App.ts +32 -9
  457. package/src/admin/apps/api-keys.test.ts +167 -23
  458. package/src/admin/apps/api-keys.ts +166 -28
  459. package/src/admin/apps/earn-vaults.test.ts +338 -0
  460. package/src/admin/apps/earn-vaults.ts +572 -0
  461. package/src/admin/apps/scopes.test.ts +16 -1
  462. package/src/admin/ui/plugin.ts +2 -2
  463. package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
  464. package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
  465. package/src/admin/ui/src/components/Page.tsx +1 -1
  466. package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
  467. package/src/admin/ui/src/lib/api-keys.ts +37 -7
  468. package/src/admin/ui/src/lib/client.ts +1 -1
  469. package/src/admin/ui/src/lib/config.ts +1 -1
  470. package/src/admin/ui/src/lib/early-access.ts +8 -9
  471. package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
  472. package/src/admin/ui/src/lib/format.ts +13 -0
  473. package/src/admin/ui/src/lib/organizations.test.ts +14 -4
  474. package/src/admin/ui/src/lib/organizations.ts +7 -1
  475. package/src/admin/ui/src/lib/response.ts +22 -0
  476. package/src/admin/ui/src/lib/scopes.test.ts +19 -11
  477. package/src/admin/ui/src/lib/scopes.ts +28 -7
  478. package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
  479. package/src/admin/ui/src/routeTree.gen.ts +70 -7
  480. package/src/admin/ui/src/router.tsx +2 -2
  481. package/src/admin/ui/src/routes/__root.tsx +9 -8
  482. package/src/admin/ui/src/routes/api-keys.tsx +475 -64
  483. package/src/admin/ui/src/routes/early-access.tsx +5 -12
  484. package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
  485. package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
  486. package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
  487. package/src/admin/ui/src/routes/organizations.tsx +4 -7
  488. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
  489. package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
  490. package/src/admin/ui/vite.config.ts +4 -1
  491. package/src/admin/ui.generated.ts +189 -95
  492. package/src/analytics/Analytics.test.ts +69 -10
  493. package/src/analytics/Analytics.ts +20 -1
  494. package/src/analytics/tables/requestEvents.ts +79 -37
  495. package/src/apps/Zones.test.ts +33 -0
  496. package/src/apps/Zones.ts +40 -0
  497. package/src/apps/composition.test.ts +84 -1
  498. package/src/apps/data/App.test.ts +38 -9
  499. package/src/apps/data/App.ts +96 -33
  500. package/src/apps/data/FxOracle.ts +1 -1
  501. package/src/apps/data/index.ts +0 -1
  502. package/src/apps/data/routes/activities.test.ts +82 -6
  503. package/src/apps/data/routes/activities.ts +131 -71
  504. package/src/apps/data/routes/balances.test.ts +50 -37
  505. package/src/apps/data/routes/balances.ts +5 -5
  506. package/src/apps/data/routes/blocks.test.ts +2 -0
  507. package/src/apps/data/routes/coingecko.test.ts +22 -0
  508. package/src/apps/data/routes/coingecko.ts +84 -48
  509. package/src/apps/data/routes/earn.test.ts +1108 -0
  510. package/src/apps/data/routes/earn.ts +1391 -0
  511. package/src/apps/data/routes/exchanges.test.ts +82 -33
  512. package/src/apps/data/routes/exchanges.ts +842 -227
  513. package/src/apps/data/routes/fee-amm.test.ts +4 -6
  514. package/src/apps/data/routes/fee-amm.ts +69 -12
  515. package/src/apps/data/routes/funding.test.ts +2712 -221
  516. package/src/apps/data/routes/funding.ts +1604 -387
  517. package/src/apps/data/routes/indexer.test.ts +43 -34
  518. package/src/apps/data/routes/indexer.ts +19 -2
  519. package/src/apps/data/routes/receipts.test.ts +5 -3
  520. package/src/apps/data/routes/receipts.ts +13 -11
  521. package/src/apps/data/routes/rpc.test.ts +446 -28
  522. package/src/apps/data/routes/rpc.ts +243 -25
  523. package/src/apps/data/routes/tokenlist.test.ts +15 -0
  524. package/src/apps/data/routes/tokenlist.ts +88 -22
  525. package/src/apps/data/routes/tokens.ts +262 -86
  526. package/src/apps/data/routes/transactions.test.ts +2 -0
  527. package/src/apps/data/routes/transactions.ts +77 -42
  528. package/src/apps/data/routes/transfers.test.ts +166 -4
  529. package/src/apps/data/routes/transfers.ts +216 -78
  530. package/src/apps/data/routes/valuation.test.ts +62 -9
  531. package/src/apps/data/routes/valuation.ts +2 -2
  532. package/src/apps/data/routes/verified-tokens.test.ts +51 -0
  533. package/src/apps/data/routes/verified-tokens.ts +52 -15
  534. package/src/apps/data/routes/webhooks.test.ts +432 -33
  535. package/src/apps/data/routes/webhooks.ts +189 -79
  536. package/src/apps/data/routes/zones.test.ts +473 -0
  537. package/src/apps/data/routes/zones.ts +338 -0
  538. package/src/apps/docs/reference.ts +8 -6
  539. package/src/apps/index.ts +2 -1
  540. package/src/apps/management/Billing.test.ts +29 -0
  541. package/src/apps/management/Billing.ts +23 -0
  542. package/src/apps/management/Error.ts +12 -0
  543. package/src/apps/management/routes/api-keys.test.ts +5 -3
  544. package/src/apps/management/routes/api-keys.ts +2 -9
  545. package/src/apps/management/routes/invitations.ts +4 -11
  546. package/src/apps/management/routes/orgs.ts +2 -9
  547. package/src/apps/management/routes/scopes.test.ts +7 -2
  548. package/src/apps/management/routes/scopes.ts +2 -2
  549. package/src/apps/management/routes/webhooks.test.ts +6 -1
  550. package/src/apps/management/routes/webhooks.ts +15 -3
  551. package/src/apps/mpp/App.ts +276 -29
  552. package/src/apps/mpp/Mpp.test.ts +631 -26
  553. package/src/apps/mpp/Mpp.ts +0 -42
  554. package/src/apps/mpp/internal/Adapter.ts +108 -3
  555. package/src/apps/mpp/internal/Error.test.ts +33 -0
  556. package/src/apps/mpp/internal/Error.ts +44 -6
  557. package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
  558. package/src/apps/mpp/internal/Idempotency.ts +59 -5
  559. package/src/apps/mpp/internal/Policy.test.ts +122 -0
  560. package/src/apps/mpp/internal/Policy.ts +98 -0
  561. package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
  562. package/src/apps/mpp/internal/ScreenManager.ts +41 -0
  563. package/src/apps/mpp/internal/Screening.ts +40 -3
  564. package/src/apps/mpp/internal/Sponsorship.ts +144 -0
  565. package/src/apps/mpp/internal/Utils.ts +30 -0
  566. package/src/apps/relay/App.test.ts +495 -64
  567. package/src/apps/relay/App.ts +234 -24
  568. package/src/apps/relay/Sponsorships.test.ts +51 -0
  569. package/src/apps/relay/Sponsorships.ts +19 -7
  570. package/src/db/Db.ts +439 -0
  571. package/src/db/Schema.ts +325 -2
  572. package/src/db/tables/earnVaults.test.ts +185 -0
  573. package/src/db/tables/earnVaults.ts +151 -0
  574. package/src/db/tables/fundingCatalog.test.ts +108 -0
  575. package/src/db/tables/fundingCatalog.ts +157 -0
  576. package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
  577. package/src/db/tables/fundingDepositAddresses.ts +376 -0
  578. package/src/db/tables/fundingDeposits.test.ts +261 -0
  579. package/src/db/tables/fundingDeposits.ts +229 -0
  580. package/src/db/tables/fundingIdempotency.test.ts +182 -0
  581. package/src/db/tables/fundingIdempotency.ts +180 -0
  582. package/src/db/tables/fundingTransferEvents.ts +28 -0
  583. package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
  584. package/src/db/tables/fundingTransferTransactions.ts +37 -0
  585. package/src/db/tables/fundingTransfers.test.ts +89 -0
  586. package/src/db/tables/fundingTransfers.ts +153 -0
  587. package/src/db/tables/organizations.test.ts +88 -0
  588. package/src/db/tables/organizations.ts +42 -1
  589. package/src/db/tables/projects.ts +16 -0
  590. package/src/db/tables/requestUsage.ts +23 -0
  591. package/src/db/tables/sponsoredTransactions.test.ts +52 -2
  592. package/src/db/tables/sponsoredTransactions.ts +18 -6
  593. package/src/db/tables/users.ts +16 -0
  594. package/src/db/tables/verifiedTokens.ts +19 -14
  595. package/src/db/tables/webhookSubscriptions.ts +58 -3
  596. package/src/handlers/relay.test.ts +2 -0
  597. package/src/handlers/relay.ts +95 -99
  598. package/src/internal/Auth.test.ts +48 -0
  599. package/src/internal/Auth.ts +61 -2
  600. package/src/internal/Cache.ts +13 -9
  601. package/src/internal/Cursor.test.ts +2 -2
  602. package/src/internal/Cursor.ts +1 -1
  603. package/src/internal/EarnRates.test.ts +125 -0
  604. package/src/internal/EarnRates.ts +409 -0
  605. package/src/internal/EarnVaults.test.ts +195 -0
  606. package/src/internal/EarnVaults.ts +876 -0
  607. package/src/internal/EdgeCache.test.ts +37 -5
  608. package/src/internal/EdgeCache.ts +39 -7
  609. package/src/internal/Id.ts +14 -0
  610. package/src/internal/Idempotency.test.ts +109 -0
  611. package/src/internal/Idempotency.ts +237 -0
  612. package/src/internal/Log.test-d.ts +41 -8
  613. package/src/internal/Log.test.ts +189 -8
  614. package/src/internal/Log.ts +124 -17
  615. package/src/internal/MetricSink.test.ts +244 -4
  616. package/src/internal/MetricSink.ts +51 -1
  617. package/src/internal/OpenApi.ts +3 -0
  618. package/src/internal/Provider.test.ts +17 -0
  619. package/src/internal/Provider.ts +17 -0
  620. package/src/internal/Schema.test.ts +13 -0
  621. package/src/internal/Schema.ts +41 -24
  622. package/src/internal/Store.test.ts +25 -0
  623. package/src/internal/Store.ts +46 -0
  624. package/src/internal/Tidx.local.test.ts +78 -3
  625. package/src/internal/Tidx.test.ts +212 -18
  626. package/src/internal/Tidx.ts +112 -32
  627. package/src/internal/VerifiedTokens.test.ts +15 -0
  628. package/src/internal/Viem.test.ts +170 -17
  629. package/src/internal/Viem.ts +111 -28
  630. package/src/internal/WebhookDestination.ts +25 -23
  631. package/src/internal/Webhooks.test.ts +59 -0
  632. package/src/internal/Webhooks.ts +34 -10
  633. package/src/internal/exchange/Provider.test.ts +216 -0
  634. package/src/internal/exchange/Provider.ts +326 -0
  635. package/src/internal/exchange/index.test.ts +6 -0
  636. package/src/internal/exchange/index.ts +1 -0
  637. package/src/internal/exchange/providers/uniswap.test.ts +122 -0
  638. package/src/internal/exchange/providers/uniswap.ts +682 -0
  639. package/src/internal/funding/Action.test.ts +138 -0
  640. package/src/internal/funding/Action.ts +117 -0
  641. package/src/internal/funding/Catalog.test.ts +311 -0
  642. package/src/internal/funding/Catalog.ts +347 -0
  643. package/src/internal/funding/Chain.test.ts +79 -0
  644. package/src/internal/funding/Chain.ts +120 -0
  645. package/src/internal/funding/Deposit.test.ts +26 -0
  646. package/src/internal/funding/Deposit.ts +453 -0
  647. package/src/internal/funding/DepositAddress.test.ts +18 -0
  648. package/src/internal/funding/DepositAddress.ts +312 -0
  649. package/src/internal/funding/Evidence.test.ts +297 -0
  650. package/src/internal/funding/Evidence.ts +430 -0
  651. package/src/internal/funding/Provider.test.ts +1328 -0
  652. package/src/internal/funding/Provider.ts +1796 -0
  653. package/src/internal/funding/Reconciliation.local.test.ts +504 -0
  654. package/src/internal/funding/Reconciliation.test.ts +2020 -0
  655. package/src/internal/funding/Reconciliation.ts +930 -0
  656. package/src/internal/funding/Route.test.ts +66 -0
  657. package/src/internal/funding/Route.ts +29 -0
  658. package/src/internal/funding/Subsidy.local.test.ts +152 -0
  659. package/src/internal/funding/Subsidy.test.ts +75 -0
  660. package/src/internal/funding/Subsidy.ts +260 -0
  661. package/src/internal/funding/Token.test.ts +47 -0
  662. package/src/internal/funding/Token.ts +59 -0
  663. package/src/internal/funding/Transfer.test.ts +369 -0
  664. package/src/internal/funding/Transfer.ts +522 -0
  665. package/src/internal/funding/index.test.ts +20 -0
  666. package/src/internal/funding/index.ts +12 -0
  667. package/src/internal/funding/providers/across.ts +149 -0
  668. package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
  669. package/src/internal/funding/providers/relay.test.ts +474 -0
  670. package/src/internal/funding/providers/relay.ts +559 -0
  671. package/src/internal/funding/providers/rhino.ts +139 -0
  672. package/src/internal/funding/providers/squid.ts +151 -0
  673. package/src/internal/funding/providers/symbiosis.ts +221 -0
  674. package/src/internal/index.test.ts +5 -1
  675. package/src/internal/index.ts +5 -1
  676. package/src/internal/webhookDestinations/url.ts +49 -45
  677. package/src/providers/index.test.ts +14 -0
  678. package/src/providers/index.ts +54 -0
  679. package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
  680. package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
  681. package/dist/apps/data/FundingQuoteProviders.js +0 -775
  682. package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
  683. package/dist/internal/FundingQuotes.d.ts +0 -864
  684. package/dist/internal/FundingQuotes.d.ts.map +0 -1
  685. package/dist/internal/FundingQuotes.js +0 -672
  686. package/dist/internal/FundingQuotes.js.map +0 -1
  687. package/src/apps/data/FundingQuoteProviders.ts +0 -1043
  688. package/src/internal/FundingQuotes.test.ts +0 -456
  689. package/src/internal/FundingQuotes.ts +0 -944
@@ -6,10 +6,13 @@ import * as Activities from './apps/data/routes/activities.js'
6
6
  import * as Balances from './apps/data/routes/balances.js'
7
7
  import * as Billing from './apps/management/routes/billing.js'
8
8
  import * as Blocks from './apps/data/routes/blocks.js'
9
+ import * as Earn from './apps/data/routes/earn.js'
10
+ import type * as EarnRates from './internal/EarnRates.js'
9
11
  import * as Exchanges from './apps/data/routes/exchanges.js'
10
12
  import * as Faucet from './apps/management/routes/faucet.js'
11
13
  import * as FeeAmm from './apps/data/routes/fee-amm.js'
12
14
  import * as Funding from './apps/data/routes/funding.js'
15
+ import type * as FundingDepositAddress from './internal/funding/DepositAddress.js'
13
16
  import * as Indexer from './apps/data/routes/indexer.js'
14
17
  import * as InviteLinks from './apps/management/routes/invite-links.js'
15
18
  import * as Me from './apps/management/routes/me.js'
@@ -26,10 +29,13 @@ import * as Valuation from './apps/data/routes/valuation.js'
26
29
  import * as VerifiedTokenRequests from './apps/management/routes/verified-token-requests.js'
27
30
  import * as VerifiedTokens from './apps/data/routes/verified-tokens.js'
28
31
  import * as Webhooks from './apps/data/routes/webhooks.js'
32
+ import * as Zones from './apps/data/routes/zones.js'
29
33
 
30
34
  type Access400<code extends string> = code | 'api_key_malformed'
31
35
  type PaidAccessStatus = PublicAccessStatus | 402
32
36
  type PublicAccessStatus = 400 | 401 | 403 | 429
37
+ /** Wire shape of a valued Earn vault field. */
38
+ type VaultValue = { amount: string; currency: string; decimals: number; formatted: string }
33
39
  const mppInput = {
34
40
  challenge: {
35
41
  description: 'Tempo API payment',
@@ -73,42 +79,30 @@ test('returns typed client', async () => {
73
79
  })
74
80
 
75
81
  describe('narrows responses by status', () => {
76
- test('POST /v1/mpp/verify', async () => {
82
+ test('POST /v1/mpp/validate', async () => {
77
83
  const client = Client.create()
78
- const res = await client.v1.mpp.verify.$post({ json: mppInput })
84
+ const res = await client.v1.mpp.validate.$post({ json: mppInput })
79
85
 
80
- expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 401 | 403 | 429 | 503>()
86
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 401 | 403 | 429>()
81
87
 
82
88
  if (res.status === 200) {
83
89
  const json = await res.json()
84
90
  expectTypeOf(json).toEqualTypeOf<Mpp.VerifyResponse>()
85
91
  return
86
92
  }
87
-
88
- if (res.status === 503) {
89
- const json = await res.json()
90
- expectTypeOf(json).toEqualTypeOf<Mpp.Unavailable>()
91
- return
92
- }
93
93
  })
94
94
 
95
95
  test('POST /v1/mpp/broadcast', async () => {
96
96
  const client = Client.create()
97
97
  const res = await client.v1.mpp.broadcast.$post({ json: mppInput })
98
98
 
99
- expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 401 | 403 | 429 | 503>()
99
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 401 | 403 | 429>()
100
100
 
101
101
  if (res.status === 200) {
102
102
  const json = await res.json()
103
103
  expectTypeOf(json).toEqualTypeOf<Mpp.BroadcastResponse>()
104
104
  return
105
105
  }
106
-
107
- if (res.status === 503) {
108
- const json = await res.json()
109
- expectTypeOf(json).toEqualTypeOf<Mpp.Unavailable>()
110
- return
111
- }
112
106
  })
113
107
 
114
108
  test('GET /v1/blocks', async () => {
@@ -169,6 +163,200 @@ describe('narrows responses by status', () => {
169
163
  }
170
164
  })
171
165
 
166
+ test('GET /v1/earn/vaults', async () => {
167
+ const client = Client.create()
168
+ const res = await client.v1.earn.vaults.$get({
169
+ query: {
170
+ 'apy.window': '24h',
171
+ capability: 'deposit',
172
+ 'engine.type': 'erc4626',
173
+ include: 'access,apy,capabilities,token.logoUri,tvl,zone',
174
+ },
175
+ })
176
+
177
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 502 | PaidAccessStatus>()
178
+
179
+ if (res.status === 200) {
180
+ const json = await res.json()
181
+ expectTypeOf(json).toEqualTypeOf<z.output<typeof Earn.schema.getEarnVaults.Response>>()
182
+ expectTypeOf(json.data[0]!.access?.status).toEqualTypeOf<'allowlisted' | 'open' | undefined>()
183
+ // `apy` and `tvl` are include-gated, so both are absent unless requested.
184
+ expectTypeOf(json.data[0]!.apy).toEqualTypeOf<EarnRates.Apy | null | undefined>()
185
+ expectTypeOf(json.data[0]!.apy?.methodology).toEqualTypeOf<
186
+ 'share-price-growth-annualized:v1' | undefined
187
+ >()
188
+ expectTypeOf(json.data[0]!.apy?.net).toEqualTypeOf<string | undefined>()
189
+ expectTypeOf(json.data[0]!.apy?.window).toEqualTypeOf<
190
+ '1h' | '1d' | '7d' | '30d' | undefined
191
+ >()
192
+ expectTypeOf(json.data[0]!.assetToken.address).toEqualTypeOf<`0x${string}`>()
193
+ expectTypeOf(json.data[0]!.capabilities?.deposit).toEqualTypeOf<boolean | undefined>()
194
+ expectTypeOf(json.data[0]!.engine.type).toEqualTypeOf<'erc4626' | 'veda' | null>()
195
+ expectTypeOf(json.data[0]!.instantLiquidity).toEqualTypeOf<string | null>()
196
+ expectTypeOf(json.data[0]!.sharePrice?.amount).toEqualTypeOf<string | undefined>()
197
+ expectTypeOf(json.data[0]!.slug).toEqualTypeOf<string | null>()
198
+ expectTypeOf(json.data[0]!.state.openRedeemRequestCount).toEqualTypeOf<number>()
199
+ expectTypeOf(json.data[0]!.state.totalAssets).toEqualTypeOf<string>()
200
+ expectTypeOf(json.data[0]!.tvl).toEqualTypeOf<VaultValue | null | undefined>()
201
+ expectTypeOf(json.data[0]!.tvl?.currency).toEqualTypeOf<string | undefined>()
202
+ expectTypeOf(json.data[0]!.vaultAddress).toEqualTypeOf<`0x${string}`>()
203
+ expectTypeOf(json.data[0]!.verified).toEqualTypeOf<boolean>()
204
+ expectTypeOf(json.data[0]!.zone?.chainId).toEqualTypeOf<number | undefined>()
205
+ expectTypeOf(json.meta?.valuation?.basis).toEqualTypeOf<'nominal' | undefined>()
206
+ void json
207
+ return
208
+ }
209
+ if (res.status === 400) {
210
+ const json = await res.json()
211
+ expectTypeOf(json.error.code).toEqualTypeOf<Access400<'query_invalid'>>()
212
+ void json
213
+ return
214
+ }
215
+ if (res.status === 502) {
216
+ const json = await res.json()
217
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
218
+ void json
219
+ return
220
+ }
221
+ })
222
+
223
+ test('GET /v1/earn/vaults/verified', async () => {
224
+ const client = Client.create()
225
+ const res = await client.v1.earn.vaults.verified.$get({
226
+ query: { 'apy.window': '7d', include: 'access,apy,capabilities,token.logoUri,tvl,zone' },
227
+ })
228
+
229
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 502 | PaidAccessStatus>()
230
+
231
+ if (res.status === 200) {
232
+ const json = await res.json()
233
+ expectTypeOf(json).toEqualTypeOf<
234
+ z.output<typeof Earn.schema.getVerifiedEarnVaults.Response>
235
+ >()
236
+ expectTypeOf(json.data[0]!.engine.type).toEqualTypeOf<'erc4626' | 'veda'>()
237
+ expectTypeOf(json.data[0]!.instantLiquidity).toEqualTypeOf<string | null>()
238
+ expectTypeOf(json.data[0]!.slug).toEqualTypeOf<string>()
239
+ expectTypeOf(json.data[0]!.state.feesActive).toEqualTypeOf<boolean>()
240
+ expectTypeOf(json.data[0]!.tvl).toEqualTypeOf<VaultValue | null | undefined>()
241
+ expectTypeOf(json.data[0]!.tvl?.formatted).toEqualTypeOf<string | undefined>()
242
+ expectTypeOf(json.data[0]!.verified).toEqualTypeOf<true>()
243
+ expectTypeOf(json.meta?.valuation?.source).toEqualTypeOf<string | undefined>()
244
+ void json
245
+ return
246
+ }
247
+ if (res.status === 400) {
248
+ const json = await res.json()
249
+ expectTypeOf(json.error.code).toEqualTypeOf<Access400<'query_invalid'>>()
250
+ void json
251
+ return
252
+ }
253
+ if (res.status === 502) {
254
+ const json = await res.json()
255
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
256
+ void json
257
+ return
258
+ }
259
+ })
260
+
261
+ test('GET /v1/earn/vaults/:vaultId', async () => {
262
+ const client = Client.create()
263
+ const res = await client.v1.earn.vaults[':vaultId'].$get({
264
+ param: { vaultId: `0x${'aa'.repeat(20)}` },
265
+ query: { 'apy.window': '1h', include: 'token.logoUri,tvl' },
266
+ })
267
+
268
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PaidAccessStatus>()
269
+
270
+ if (res.status === 200) {
271
+ const json = await res.json()
272
+ expectTypeOf(json).toEqualTypeOf<z.output<typeof Earn.schema.getEarnVault.Response>>()
273
+ // `apy` and `tvl` are include-gated, so both are absent unless requested.
274
+ expectTypeOf(json.apy).toEqualTypeOf<EarnRates.Apy | null | undefined>()
275
+ expectTypeOf(json.apy?.asOf).toEqualTypeOf<string | undefined>()
276
+ expectTypeOf(json.assetToken.address).toEqualTypeOf<`0x${string}`>()
277
+ expectTypeOf(json.engine.type).toEqualTypeOf<'erc4626' | 'veda' | null>()
278
+ expectTypeOf(json.instantLiquidity).toEqualTypeOf<string | null>()
279
+ expectTypeOf(json.label).toEqualTypeOf<string>()
280
+ expectTypeOf(json.meta?.valuation?.asOf).toEqualTypeOf<string | undefined>()
281
+ expectTypeOf(json.sharePrice?.decimals).toEqualTypeOf<number | undefined>()
282
+ expectTypeOf(json.slug).toEqualTypeOf<string | null>()
283
+ expectTypeOf(json.state.depositsPaused).toEqualTypeOf<boolean>()
284
+ expectTypeOf(json.tvl).toEqualTypeOf<VaultValue | null | undefined>()
285
+ expectTypeOf(json.tvl?.amount).toEqualTypeOf<string | undefined>()
286
+ expectTypeOf(json.vaultAddress).toEqualTypeOf<`0x${string}`>()
287
+ void json
288
+ return
289
+ }
290
+ if (res.status === 400) {
291
+ const json = await res.json()
292
+ expectTypeOf(json.error.code).toEqualTypeOf<Access400<'query_invalid' | 'vault_id_invalid'>>()
293
+ void json
294
+ return
295
+ }
296
+ if (res.status === 404) {
297
+ const json = await res.json()
298
+ expectTypeOf(json.error.code).toEqualTypeOf<'earn_vault_not_found'>()
299
+ void json
300
+ return
301
+ }
302
+ if (res.status === 502) {
303
+ const json = await res.json()
304
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
305
+ void json
306
+ return
307
+ }
308
+ })
309
+
310
+ test('GET /v1/earn/vaults/:vaultId/positions/:address', async () => {
311
+ const client = Client.create()
312
+ const res = await client.v1.earn.vaults[':vaultId'].positions[':address'].$get({
313
+ param: {
314
+ address: `0x${'bb'.repeat(20)}`,
315
+ vaultId: `0x${'aa'.repeat(20)}`,
316
+ },
317
+ })
318
+
319
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PaidAccessStatus>()
320
+
321
+ if (res.status === 200) {
322
+ const json = await res.json()
323
+ expectTypeOf(json).toEqualTypeOf<z.output<typeof Earn.schema.getEarnVaultPosition.Response>>()
324
+ expectTypeOf(json.account).toEqualTypeOf<`0x${string}`>()
325
+ expectTypeOf(json.assetAllowance).toEqualTypeOf<string>()
326
+ expectTypeOf(json.assetBalance).toEqualTypeOf<string>()
327
+ expectTypeOf(json.assetToken).toEqualTypeOf<`0x${string}`>()
328
+ expectTypeOf(json.id).toEqualTypeOf<`0x${string}`>()
329
+ expectTypeOf(json.shareAllowance).toEqualTypeOf<string>()
330
+ expectTypeOf(json.shareBalance).toEqualTypeOf<string>()
331
+ expectTypeOf(json.shareToken).toEqualTypeOf<`0x${string}`>()
332
+ expectTypeOf(json.value).toEqualTypeOf<string>()
333
+ void json
334
+ return
335
+ }
336
+ if (res.status === 400) {
337
+ const json = await res.json()
338
+ expectTypeOf(json.error.code).toEqualTypeOf<
339
+ Access400<
340
+ 'chain_id_invalid' | 'chain_id_unsupported' | 'position_invalid' | 'query_invalid'
341
+ >
342
+ >()
343
+ void json
344
+ return
345
+ }
346
+ if (res.status === 404) {
347
+ const json = await res.json()
348
+ expectTypeOf(json.error.code).toEqualTypeOf<'earn_vault_not_found'>()
349
+ void json
350
+ return
351
+ }
352
+ if (res.status === 502) {
353
+ const json = await res.json()
354
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
355
+ void json
356
+ return
357
+ }
358
+ })
359
+
172
360
  test('GET /v1/me', async () => {
173
361
  const client = Client.create()
174
362
  const res = await client.v1.me.$get()
@@ -1145,7 +1333,7 @@ describe('narrows responses by status', () => {
1145
1333
  expectTypeOf(json.feeToken).toEqualTypeOf<
1146
1334
  z.output<typeof Tokens.schema.TokenReference> | undefined
1147
1335
  >()
1148
- expectTypeOf(json.meta.pricing).toEqualTypeOf<
1336
+ expectTypeOf(json.meta.valuation).toEqualTypeOf<
1149
1337
  z.output<typeof Valuation.schema.Pricing> | undefined
1150
1338
  >()
1151
1339
  void json
@@ -1496,7 +1684,7 @@ describe('narrows responses by status', () => {
1496
1684
  const client = Client.create()
1497
1685
  const res = await client.v1.addresses[':address'].valuation.$get({
1498
1686
  param: { address: '0x0000000000000000000000000000000000000000' },
1499
- query: {},
1687
+ query: { currency: 'AUD' },
1500
1688
  })
1501
1689
 
1502
1690
  expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 502 | PaidAccessStatus>()
@@ -1628,10 +1816,14 @@ describe('narrows responses by status', () => {
1628
1816
  void json.data[0]!.sourceToken.amount
1629
1817
  // @ts-expect-error provider details no longer duplicate destination amounts
1630
1818
  void json.data[0]!.quote.outputAmount
1631
- expectTypeOf(json.data[0]!.provider.id).toEqualTypeOf<
1632
- 'across' | 'relay' | 'rhino' | 'squid' | 'symbiosis'
1633
- >()
1819
+ expectTypeOf(json.data[0]!.provider.id).toEqualTypeOf<string>()
1634
1820
  expectTypeOf(json.data[0]!.quote.expiresAt).toEqualTypeOf<string | undefined>()
1821
+ expectTypeOf(json.data[0]!.destinationChain.addressFormat).toEqualTypeOf<
1822
+ 'base58' | 'base58check' | 'hex'
1823
+ >()
1824
+ expectTypeOf(json.data[0]!.sourceChain.addressFormat).toEqualTypeOf<
1825
+ 'base58' | 'base58check' | 'hex'
1826
+ >()
1635
1827
  void json
1636
1828
  return
1637
1829
  }
@@ -1663,9 +1855,10 @@ describe('narrows responses by status', () => {
1663
1855
  const json = await res.json()
1664
1856
  expectTypeOf(json.data[0]!.tokens[0]!.symbol).toEqualTypeOf<
1665
1857
  z.output<
1666
- typeof Funding.schema.listFundingChains.Response
1858
+ typeof Funding.schema.getFundingChains.Response
1667
1859
  >['data'][number]['tokens'][number]['symbol']
1668
1860
  >()
1861
+ expectTypeOf(json.data[0]!.addressFormat).toEqualTypeOf<'base58' | 'base58check' | 'hex'>()
1669
1862
  void json
1670
1863
  return
1671
1864
  }
@@ -1688,15 +1881,329 @@ describe('narrows responses by status', () => {
1688
1881
  switch (res.status) {
1689
1882
  case 200: {
1690
1883
  const json = await res.json()
1884
+ expectTypeOf(json.data[0]!.id).toEqualTypeOf<string>()
1885
+ // @ts-expect-error providers no longer expose deployment configuration state
1886
+ void json.data[0]!.status
1887
+ void json
1888
+ return
1889
+ }
1890
+ case 400: {
1891
+ const json = await res.json()
1892
+ expectTypeOf(json.error.code).toEqualTypeOf<'api_key_malformed'>()
1893
+ expectTypeOf(json.error.message).toEqualTypeOf<string>()
1894
+ void json
1895
+ return
1896
+ }
1897
+ }
1898
+ })
1899
+
1900
+ test('POST /v1/funding/deposit-addresses', async () => {
1901
+ const client = Client.create()
1902
+ const json = {
1903
+ amount: '100000000',
1904
+ destinationToken: '0x20c00000000000000000000014f22ca97301eb73',
1905
+ recipient: `0x${'11'.repeat(20)}`,
1906
+ refundAddress: 'TJRabPrwbZy45sbavfcjinPJC18kjpRTv8',
1907
+ sourceChain: 'tron:0x2b6653dc',
1908
+ sourceToken: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
1909
+ } as const
1910
+ // @ts-expect-error `Idempotency-Key` is required for deposit-address creation.
1911
+ void client.v1.funding['deposit-addresses'].$post({ json })
1912
+ const res = await client.v1.funding['deposit-addresses'].$post({
1913
+ header: { 'idempotency-key': 'funding_01k1c5j8q8p0be6j5v9m6d1e4r' },
1914
+ json,
1915
+ })
1916
+
1917
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 409 | 502 | PublicAccessStatus>()
1918
+
1919
+ switch (res.status) {
1920
+ case 200: {
1921
+ const json = await res.json()
1922
+ expectTypeOf(json.id).toEqualTypeOf<string>()
1923
+ expectTypeOf(json.status).toEqualTypeOf<
1924
+ z.output<typeof Funding.schema.createFundingDepositAddress.Response>['status']
1925
+ >()
1926
+ expectTypeOf(json.subsidize).toEqualTypeOf<boolean>()
1927
+ if ('quote' in json) {
1928
+ expectTypeOf(json.destinationAmount.baseUnits).toEqualTypeOf<string>()
1929
+ expectTypeOf(json.fees).toEqualTypeOf<
1930
+ z.output<typeof FundingDepositAddress.schema.CreatedFundingDepositAddress>['fees']
1931
+ >()
1932
+ expectTypeOf(json.quote.sampledAt).toEqualTypeOf<string>()
1933
+ expectTypeOf(json.sourceAmount.baseUnits).toEqualTypeOf<string>()
1934
+ }
1935
+ void json
1936
+ return
1937
+ }
1938
+ case 404: {
1939
+ const json = await res.json()
1940
+ expectTypeOf(json.error.code).toEqualTypeOf<'deposit_address_not_available'>()
1941
+ void json
1942
+ return
1943
+ }
1944
+ case 409: {
1945
+ const json = await res.json()
1946
+ expectTypeOf(json.error.code).toEqualTypeOf<
1947
+ 'idempotency_conflict' | 'idempotency_in_progress'
1948
+ >()
1949
+ void json
1950
+ return
1951
+ }
1952
+ }
1953
+ })
1954
+
1955
+ test('GET /v1/funding/deposit-addresses/:id', async () => {
1956
+ const client = Client.create()
1957
+ const res = await client.v1.funding['deposit-addresses'][':id{fda_[A-Za-z0-9_-]+}'].$get({
1958
+ param: { id: 'fda_test' },
1959
+ })
1960
+
1961
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PublicAccessStatus>()
1962
+
1963
+ switch (res.status) {
1964
+ case 200: {
1965
+ const json = await res.json()
1966
+ expectTypeOf(json.status).toEqualTypeOf<
1967
+ z.output<typeof Funding.schema.DepositAddress>['status']
1968
+ >()
1969
+ expectTypeOf(json.sourceChain.kind).toEqualTypeOf<'evm' | 'solana' | 'tron'>()
1970
+ expectTypeOf(json.subsidize).toEqualTypeOf<boolean>()
1971
+ // @ts-expect-error provider routing remains private
1972
+ void json.providerOutputToken
1973
+ void json
1974
+ return
1975
+ }
1976
+ case 404: {
1977
+ const json = await res.json()
1978
+ expectTypeOf(json.error.code).toEqualTypeOf<'funding_deposit_address_not_found'>()
1979
+ void json
1980
+ return
1981
+ }
1982
+ }
1983
+ })
1984
+
1985
+ test('GET /v1/funding/deposit-addresses/:id/deposits', async () => {
1986
+ const client = Client.create()
1987
+ const res = await client.v1.funding['deposit-addresses'][
1988
+ ':id{fda_[A-Za-z0-9_-]+}'
1989
+ ].deposits.$get({ param: { id: 'fda_test' }, query: {} })
1990
+
1991
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PublicAccessStatus>()
1992
+
1993
+ switch (res.status) {
1994
+ case 200: {
1995
+ const json = await res.json()
1996
+ expectTypeOf(json.data[0]!.status).toEqualTypeOf<
1997
+ z.output<typeof Funding.schema.Deposit>['status']
1998
+ >()
1999
+ expectTypeOf(json.nextCursor).toEqualTypeOf<string | null>()
2000
+ void json
2001
+ return
2002
+ }
2003
+ case 404: {
2004
+ const json = await res.json()
2005
+ expectTypeOf(json.error.code).toEqualTypeOf<'funding_deposit_address_not_found'>()
2006
+ void json
2007
+ return
2008
+ }
2009
+ }
2010
+ })
2011
+
2012
+ test('GET /v1/funding/deposits/:id', async () => {
2013
+ const client = Client.create()
2014
+ const res = await client.v1.funding.deposits[':id{fdp_[A-Za-z0-9_-]+}'].$get({
2015
+ param: { id: 'fdp_001785792060000_2ZPE2gvateYEQ0dQslgvkhjx' },
2016
+ })
2017
+
2018
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PublicAccessStatus>()
2019
+
2020
+ switch (res.status) {
2021
+ case 200: {
2022
+ const json = await res.json()
2023
+ expectTypeOf(json.destinationAmountRequired).toEqualTypeOf<
2024
+ z.output<typeof Funding.schema.Deposit>['destinationAmountRequired']
2025
+ >()
2026
+ expectTypeOf(json.sourceTransferIndex).toEqualTypeOf<number | undefined>()
2027
+ expectTypeOf(json.statusReason).toEqualTypeOf<
2028
+ z.output<typeof Funding.schema.Deposit>['statusReason']
2029
+ >()
2030
+ // @ts-expect-error provider request identifiers remain private
2031
+ void json.providerRequestIds
2032
+ void json
2033
+ return
2034
+ }
2035
+ case 404: {
2036
+ const json = await res.json()
2037
+ expectTypeOf(json.error.code).toEqualTypeOf<'funding_deposit_not_found'>()
2038
+ void json
2039
+ return
2040
+ }
2041
+ }
2042
+ })
2043
+
2044
+ test('GET /v1/funding/transfers', async () => {
2045
+ const client = Client.create()
2046
+ const res = await client.v1.funding.transfers.$get({ query: {} })
2047
+
2048
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 502 | PublicAccessStatus>()
2049
+
2050
+ switch (res.status) {
2051
+ case 200: {
2052
+ const json = await res.json()
2053
+ expectTypeOf(json.data[0]!.id).toEqualTypeOf<string>()
1691
2054
  expectTypeOf(json.data[0]!.status).toEqualTypeOf<
1692
- z.output<typeof Funding.schema.listProviders.Response>['data'][number]['status']
2055
+ z.output<typeof Funding.schema.Transfer>['status']
2056
+ >()
2057
+ expectTypeOf(json.data[0]!.version).toEqualTypeOf<number>()
2058
+ // Transfer reads never expose the executable action.
2059
+ // @ts-expect-error `action` is a creation-only field
2060
+ void json.data[0]!.action
2061
+ // `meta` (opt-in `include=totalCount` count) is optional.
2062
+ expectTypeOf(json.meta).toEqualTypeOf<
2063
+ z.output<typeof Funding.schema.listFundingTransfers.Response>['meta']
1693
2064
  >()
2065
+ expectTypeOf(json.nextCursor).toEqualTypeOf<string | null>()
1694
2066
  void json
1695
2067
  return
1696
2068
  }
1697
2069
  case 400: {
1698
2070
  const json = await res.json()
1699
- expectTypeOf(json.error.code).toEqualTypeOf<'api_key_malformed'>()
2071
+ expectTypeOf(json.error.code).toEqualTypeOf<Access400<'query_invalid'>>()
2072
+ expectTypeOf(json.error.message).toEqualTypeOf<string>()
2073
+ void json
2074
+ return
2075
+ }
2076
+ }
2077
+ })
2078
+
2079
+ test('POST /v1/funding/transfers', async () => {
2080
+ const client = Client.create()
2081
+ const json = {
2082
+ amount: '1000000',
2083
+ destinationToken: '0x20c000000000000000000000b9537d11c60e8b50',
2084
+ mode: 'exactSource',
2085
+ recipient: `0x${'11'.repeat(20)}`,
2086
+ sender: `0x${'22'.repeat(20)}`,
2087
+ sourceChain: 'eip155:8453',
2088
+ sourceToken: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
2089
+ } as const
2090
+ // @ts-expect-error `Idempotency-Key` is required for funding transfer creation.
2091
+ void client.v1.funding.transfers.$post({ json })
2092
+ const res = await client.v1.funding.transfers.$post({
2093
+ header: { 'idempotency-key': 'funding_01k1c5j8q8p0be6j5v9m6d1e4r' },
2094
+ json,
2095
+ })
2096
+
2097
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 409 | 502 | PublicAccessStatus>()
2098
+
2099
+ switch (res.status) {
2100
+ case 200: {
2101
+ const json = await res.json()
2102
+ expectTypeOf(json.action.type).toEqualTypeOf<'evm:calls'>()
2103
+ expectTypeOf(json.id).toEqualTypeOf<string>()
2104
+ expectTypeOf(json.status).toEqualTypeOf<
2105
+ z.output<typeof Funding.schema.createFundingTransfer.Response>['status']
2106
+ >()
2107
+ void json
2108
+ return
2109
+ }
2110
+ case 404: {
2111
+ const json = await res.json()
2112
+ expectTypeOf(json.error.code).toEqualTypeOf<'quote_not_available'>()
2113
+ void json
2114
+ return
2115
+ }
2116
+ case 409: {
2117
+ const json = await res.json()
2118
+ expectTypeOf(json.error.code).toEqualTypeOf<
2119
+ 'idempotency_conflict' | 'idempotency_in_progress'
2120
+ >()
2121
+ void json
2122
+ return
2123
+ }
2124
+ }
2125
+ })
2126
+
2127
+ test('POST /v1/funding/transfers/vault', async () => {
2128
+ const client = Client.create()
2129
+ const json = {
2130
+ amount: '1000000',
2131
+ mode: 'exactSource',
2132
+ recipient: `0x${'11'.repeat(20)}`,
2133
+ sender: `0x${'22'.repeat(20)}`,
2134
+ sourceChain: 'eip155:8453',
2135
+ sourceToken: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
2136
+ vaultAddress: `0x${'f4'.repeat(20)}`,
2137
+ } as const
2138
+ // @ts-expect-error `Idempotency-Key` is required for vault transfer creation.
2139
+ void client.v1.funding.transfers.vault.$post({ json })
2140
+ const res = await client.v1.funding.transfers.vault.$post({
2141
+ header: { 'idempotency-key': 'funding_vault_01k1c5j8q8p0be6j5v9m6d1e4r' },
2142
+ json,
2143
+ })
2144
+
2145
+ expectTypeOf(res.status).toEqualTypeOf<400 | 501 | PublicAccessStatus>()
2146
+ if (res.status === 501) {
2147
+ const json = await res.json()
2148
+ expectTypeOf(json.error.code).toEqualTypeOf<'not_implemented'>()
2149
+ void json
2150
+ }
2151
+ })
2152
+
2153
+ test('POST /v1/funding/transfers/zone', async () => {
2154
+ const client = Client.create()
2155
+ const json = {
2156
+ amount: '1000000',
2157
+ destinationChain: 'eip155:421700001',
2158
+ destinationToken: '0x20c000000000000000000000b9537d11c60e8b50',
2159
+ mode: 'exactSource',
2160
+ recipient: `0x${'11'.repeat(20)}`,
2161
+ recipientFallback: `0x${'33'.repeat(20)}`,
2162
+ sender: `0x${'22'.repeat(20)}`,
2163
+ sourceChain: 'eip155:8453',
2164
+ sourceToken: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
2165
+ } as const
2166
+ // @ts-expect-error `Idempotency-Key` is required for Zone transfer creation.
2167
+ void client.v1.funding.transfers.zone.$post({ json })
2168
+ const res = await client.v1.funding.transfers.zone.$post({
2169
+ header: { 'idempotency-key': 'funding_zone_01k1c5j8q8p0be6j5v9m6d1e4r' },
2170
+ json,
2171
+ })
2172
+
2173
+ expectTypeOf(res.status).toEqualTypeOf<400 | 501 | PublicAccessStatus>()
2174
+ if (res.status === 501) {
2175
+ const json = await res.json()
2176
+ expectTypeOf(json.error.code).toEqualTypeOf<'not_implemented'>()
2177
+ void json
2178
+ }
2179
+ })
2180
+
2181
+ test('GET /v1/funding/transfers/:id', async () => {
2182
+ const client = Client.create()
2183
+ const res = await client.v1.funding.transfers[':id{ftr_[A-Za-z0-9_-]+}'].$get({
2184
+ param: { id: 'ftr_test' },
2185
+ })
2186
+
2187
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 404 | 502 | PublicAccessStatus>()
2188
+
2189
+ switch (res.status) {
2190
+ case 200: {
2191
+ const json = await res.json()
2192
+ expectTypeOf(json.id).toEqualTypeOf<string>()
2193
+ expectTypeOf(json.status).toEqualTypeOf<
2194
+ z.output<typeof Funding.schema.getFundingTransfer.Response>['status']
2195
+ >()
2196
+ expectTypeOf(json.statusReason).toEqualTypeOf<
2197
+ z.output<typeof Funding.schema.getFundingTransfer.Response>['statusReason']
2198
+ >()
2199
+ // @ts-expect-error `action` is a creation-only field
2200
+ void json.action
2201
+ void json
2202
+ return
2203
+ }
2204
+ case 404: {
2205
+ const json = await res.json()
2206
+ expectTypeOf(json.error.code).toEqualTypeOf<'funding_transfer_not_found'>()
1700
2207
  expectTypeOf(json.error.message).toEqualTypeOf<string>()
1701
2208
  void json
1702
2209
  return
@@ -1748,6 +2255,7 @@ describe('narrows responses by status', () => {
1748
2255
  const client = Client.create()
1749
2256
  const res = await client.v1.exchange.quotes.$post({
1750
2257
  json: {
2258
+ account: '0x1111111111111111111111111111111111111111',
1751
2259
  amount: '1000000',
1752
2260
  destinationToken: '0x20c000000000000000000000b9537d11c60e8b50',
1753
2261
  mode: 'exactSource',
@@ -1768,7 +2276,7 @@ describe('narrows responses by status', () => {
1768
2276
  expectTypeOf(json.destinationToken.logoUri).toEqualTypeOf<string | undefined>()
1769
2277
  expectTypeOf(json.destinationToken.symbol).toEqualTypeOf<string>()
1770
2278
  expectTypeOf(json.destinationToken.verified).toEqualTypeOf<boolean | undefined>()
1771
- expectTypeOf(json.meta?.pricing).toEqualTypeOf<
2279
+ expectTypeOf(json.meta?.valuation).toEqualTypeOf<
1772
2280
  z.output<typeof Valuation.schema.Pricing> | undefined
1773
2281
  >()
1774
2282
  expectTypeOf(json.sourceAmount).toEqualTypeOf<ValuedTokenAmount>()
@@ -1777,11 +2285,19 @@ describe('narrows responses by status', () => {
1777
2285
  expectTypeOf(json.sourceToken.logoUri).toEqualTypeOf<string | undefined>()
1778
2286
  expectTypeOf(json.sourceToken.symbol).toEqualTypeOf<string>()
1779
2287
  expectTypeOf(json.sourceToken.verified).toEqualTypeOf<boolean | undefined>()
1780
- expectTypeOf(json.transaction.calls[0]!.data).toEqualTypeOf<
1781
- z.output<
1782
- typeof Exchanges.schema.createQuote.Response
1783
- >['transaction']['calls'][number]['data']
1784
- >()
2288
+ expectTypeOf(json.gasEstimate).toEqualTypeOf<string>()
2289
+ if (json.status === 'approvalRequired')
2290
+ expectTypeOf(json.approval.calls[0]!.data).toEqualTypeOf<
2291
+ z.output<typeof Exchanges.schema.createQuote.Call>['data']
2292
+ >()
2293
+ if (json.status === 'signatureRequired') {
2294
+ expectTypeOf(json.continuation).toEqualTypeOf<string>()
2295
+ expectTypeOf(json.typedData.primaryType).toEqualTypeOf<string>()
2296
+ }
2297
+ if (json.status === 'ready')
2298
+ expectTypeOf(json.transaction.calls[0]!.data).toEqualTypeOf<
2299
+ z.output<typeof Exchanges.schema.createQuote.Call>['data']
2300
+ >()
1785
2301
  if (json.mode === 'exactSource') {
1786
2302
  expectTypeOf(json.destinationAmountMin).toEqualTypeOf<ValuedTokenAmount>()
1787
2303
  // @ts-expect-error slippage quantities live on destinationAmountMin
@@ -1828,6 +2344,45 @@ describe('narrows responses by status', () => {
1828
2344
  }
1829
2345
  })
1830
2346
 
2347
+ test('POST /v1/exchange/quotes/execute', async () => {
2348
+ const client = Client.create()
2349
+ const res = await client.v1.exchange.quotes.execute.$post({
2350
+ json: {
2351
+ account: '0x1111111111111111111111111111111111111111',
2352
+ continuation: 'eyJxdW90ZSI6e319',
2353
+ provider: 'uniswap',
2354
+ signature: `0x${'11'.repeat(65)}`,
2355
+ },
2356
+ })
2357
+
2358
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 502 | PaidAccessStatus>()
2359
+
2360
+ switch (res.status) {
2361
+ case 200: {
2362
+ const json = await res.json()
2363
+ expectTypeOf(json.provider).toEqualTypeOf<string>()
2364
+ expectTypeOf(json.transaction.calls[0]!.data).toEqualTypeOf<
2365
+ z.output<typeof Exchanges.schema.createQuote.Call>['data']
2366
+ >()
2367
+ return
2368
+ }
2369
+ case 400: {
2370
+ const json = await res.json()
2371
+ expectTypeOf(json.error.code).toEqualTypeOf<
2372
+ Access400<
2373
+ 'body_invalid' | 'query_invalid' | 'swap_continuation_invalid' | 'swap_provider_invalid'
2374
+ >
2375
+ >()
2376
+ return
2377
+ }
2378
+ case 502: {
2379
+ const json = await res.json()
2380
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
2381
+ return
2382
+ }
2383
+ }
2384
+ })
2385
+
1831
2386
  test('GET /v1/exchange/pairs', async () => {
1832
2387
  const client = Client.create()
1833
2388
  const res = await client.v1.exchange.pairs.$get()
@@ -2343,6 +2898,71 @@ describe('narrows responses by status', () => {
2343
2898
  }
2344
2899
  })
2345
2900
 
2901
+ test('GET /v1/zones/withdrawals/:senderTag', async () => {
2902
+ const client = Client.create()
2903
+ const res = await client.v1.zones.withdrawals[':senderTag'].$get({
2904
+ param: {
2905
+ senderTag: '0x61fc42a734cb44acef497ea0bed612c691195623244136e0739e1929569e2487',
2906
+ },
2907
+ query: { chainId: '421700001' },
2908
+ })
2909
+
2910
+ expectTypeOf(res.status).toEqualTypeOf<200 | 400 | 401 | 403 | 429 | 502>()
2911
+
2912
+ switch (res.status) {
2913
+ case 200: {
2914
+ const json = await res.json()
2915
+ expectTypeOf(json).toEqualTypeOf<
2916
+ z.output<typeof Zones.schema.listZoneWithdrawals.Response>
2917
+ >()
2918
+ const withdrawal = json.data[0]!
2919
+ expectTypeOf(withdrawal.blockNumber).toEqualTypeOf<number>()
2920
+ expectTypeOf(withdrawal.id).toEqualTypeOf<string>()
2921
+ expectTypeOf(withdrawal.logIndex).toEqualTypeOf<number>()
2922
+ expectTypeOf(withdrawal.status).toEqualTypeOf<'completed' | 'failed'>()
2923
+ expectTypeOf(withdrawal.transactionHash).toEqualTypeOf<`0x${string}`>()
2924
+ expectTypeOf(withdrawal.zoneStatus).toEqualTypeOf<'completed' | 'pending'>()
2925
+ void json
2926
+ return
2927
+ }
2928
+ case 400: {
2929
+ const json = await res.json()
2930
+ expectTypeOf(json.error.code).toEqualTypeOf<
2931
+ Access400<
2932
+ 'chain_id_invalid' | 'chain_id_unsupported' | 'query_invalid' | 'sender_tag_invalid'
2933
+ >
2934
+ >()
2935
+ expectTypeOf(json.error.message).toEqualTypeOf<string>()
2936
+ void json
2937
+ return
2938
+ }
2939
+ case 401: {
2940
+ const json = await res.json()
2941
+ expectTypeOf(json.error.code).toEqualTypeOf<'api_key_invalid' | 'api_key_missing'>()
2942
+ void json
2943
+ return
2944
+ }
2945
+ case 403: {
2946
+ const json = await res.json()
2947
+ expectTypeOf(json.error.code).toEqualTypeOf<'api_key_forbidden'>()
2948
+ void json
2949
+ return
2950
+ }
2951
+ case 429: {
2952
+ const json = await res.json()
2953
+ expectTypeOf(json.error.code).toEqualTypeOf<'payment_required' | 'rate_limit_exceeded'>()
2954
+ void json
2955
+ return
2956
+ }
2957
+ case 502: {
2958
+ const json = await res.json()
2959
+ expectTypeOf(json.error.code).toEqualTypeOf<'upstream_error'>()
2960
+ void json
2961
+ return
2962
+ }
2963
+ }
2964
+ })
2965
+
2346
2966
  test('POST /rpc/:chain', async () => {
2347
2967
  const client = Client.create()
2348
2968
  const res = await client.rpc[':chain{(mainnet|testnet|[0-9]+)}?'].$post({