tapimo 0.10.2 → 0.12.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 (386) hide show
  1. package/dist/App.d.ts +4896 -2166
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +2 -2
  4. package/dist/App.js.map +1 -1
  5. package/dist/Assets.d.ts +15 -0
  6. package/dist/Assets.d.ts.map +1 -1
  7. package/dist/Assets.js +7 -0
  8. package/dist/Assets.js.map +1 -1
  9. package/dist/Webhooks.d.ts +0 -75
  10. package/dist/Webhooks.d.ts.map +1 -1
  11. package/dist/Webhooks.js +1 -143
  12. package/dist/Webhooks.js.map +1 -1
  13. package/dist/admin/App.d.ts +127 -78
  14. package/dist/admin/App.d.ts.map +1 -1
  15. package/dist/admin/apps/earn-vaults.d.ts +115 -1
  16. package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
  17. package/dist/admin/apps/earn-vaults.js +59 -6
  18. package/dist/admin/apps/earn-vaults.js.map +1 -1
  19. package/dist/admin/apps/organizations.d.ts +3 -3
  20. package/dist/admin/apps/organizations.d.ts.map +1 -1
  21. package/dist/admin/apps/organizations.js +4 -2
  22. package/dist/admin/apps/organizations.js.map +1 -1
  23. package/dist/admin/apps/verified-tokens.d.ts +83 -83
  24. package/dist/admin/ui.generated.d.ts +1 -1
  25. package/dist/admin/ui.generated.d.ts.map +1 -1
  26. package/dist/admin/ui.generated.js +151 -151
  27. package/dist/admin/ui.generated.js.map +1 -1
  28. package/dist/apps/data/App.d.ts +5924 -4310
  29. package/dist/apps/data/App.d.ts.map +1 -1
  30. package/dist/apps/data/App.js +61 -9
  31. package/dist/apps/data/App.js.map +1 -1
  32. package/dist/apps/data/ZoneSelection.d.ts +62 -0
  33. package/dist/apps/data/ZoneSelection.d.ts.map +1 -0
  34. package/dist/apps/data/ZoneSelection.js +44 -0
  35. package/dist/apps/data/ZoneSelection.js.map +1 -0
  36. package/dist/apps/data/routes/activities.d.ts +2368 -5
  37. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  38. package/dist/apps/data/routes/activities.js +423 -114
  39. package/dist/apps/data/routes/activities.js.map +1 -1
  40. package/dist/apps/data/routes/addresses.d.ts +131 -0
  41. package/dist/apps/data/routes/addresses.d.ts.map +1 -1
  42. package/dist/apps/data/routes/balances.d.ts +25 -25
  43. package/dist/apps/data/routes/balances.js +1 -1
  44. package/dist/apps/data/routes/balances.js.map +1 -1
  45. package/dist/apps/data/routes/blocks.d.ts +1 -1
  46. package/dist/apps/data/routes/blocks.js +1 -1
  47. package/dist/apps/data/routes/blocks.js.map +1 -1
  48. package/dist/apps/data/routes/earn.d.ts +135 -10
  49. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  50. package/dist/apps/data/routes/earn.js +157 -25
  51. package/dist/apps/data/routes/earn.js.map +1 -1
  52. package/dist/apps/data/routes/exchanges.d.ts +829 -123
  53. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  54. package/dist/apps/data/routes/exchanges.js +16 -13
  55. package/dist/apps/data/routes/exchanges.js.map +1 -1
  56. package/dist/apps/data/routes/fee-amm.d.ts +26 -26
  57. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  58. package/dist/apps/data/routes/fee-amm.js +9 -11
  59. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  60. package/dist/apps/data/routes/receipts.d.ts +54 -54
  61. package/dist/apps/data/routes/receipts.js +1 -1
  62. package/dist/apps/data/routes/receipts.js.map +1 -1
  63. package/dist/apps/data/routes/rpc.js +24 -10
  64. package/dist/apps/data/routes/rpc.js.map +1 -1
  65. package/dist/apps/data/routes/tokenlist.d.ts +12 -12
  66. package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
  67. package/dist/apps/data/routes/tokenlist.js +16 -15
  68. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  69. package/dist/apps/data/routes/tokens.d.ts +17 -3
  70. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  71. package/dist/apps/data/routes/tokens.js +34 -15
  72. package/dist/apps/data/routes/tokens.js.map +1 -1
  73. package/dist/apps/data/routes/transactions.d.ts +1 -1
  74. package/dist/apps/data/routes/transactions.js +1 -1
  75. package/dist/apps/data/routes/transactions.js.map +1 -1
  76. package/dist/apps/data/routes/transfers.d.ts +13 -13
  77. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  78. package/dist/apps/data/routes/transfers.js +7 -9
  79. package/dist/apps/data/routes/transfers.js.map +1 -1
  80. package/dist/apps/data/routes/valuation.d.ts +21 -21
  81. package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
  82. package/dist/apps/data/routes/webhooks.d.ts +1011 -151
  83. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  84. package/dist/apps/data/routes/webhooks.js +126 -739
  85. package/dist/apps/data/routes/webhooks.js.map +1 -1
  86. package/dist/apps/data/routes/zones.d.ts +15 -15
  87. package/dist/apps/funding/App.d.ts +27 -27
  88. package/dist/apps/funding/routes/chains.d.ts.map +1 -1
  89. package/dist/apps/funding/routes/chains.js +5 -4
  90. package/dist/apps/funding/routes/chains.js.map +1 -1
  91. package/dist/apps/funding/routes/deposit-addresses.d.ts +18 -18
  92. package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
  93. package/dist/apps/funding/routes/deposit-addresses.js +8 -8
  94. package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
  95. package/dist/apps/funding/routes/providers.d.ts.map +1 -1
  96. package/dist/apps/funding/routes/providers.js +3 -2
  97. package/dist/apps/funding/routes/providers.js.map +1 -1
  98. package/dist/apps/funding/routes/quotes.d.ts.map +1 -1
  99. package/dist/apps/funding/routes/quotes.js +2 -2
  100. package/dist/apps/funding/routes/quotes.js.map +1 -1
  101. package/dist/apps/funding/routes/transfers.d.ts +33 -33
  102. package/dist/apps/management/App.d.ts +1433 -322
  103. package/dist/apps/management/App.d.ts.map +1 -1
  104. package/dist/apps/management/Billing.d.ts.map +1 -1
  105. package/dist/apps/management/Billing.js +19 -6
  106. package/dist/apps/management/Billing.js.map +1 -1
  107. package/dist/apps/management/routes/api-keys.d.ts +154 -94
  108. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  109. package/dist/apps/management/routes/api-keys.js +76 -30
  110. package/dist/apps/management/routes/api-keys.js.map +1 -1
  111. package/dist/apps/management/routes/billing.d.ts +103 -30
  112. package/dist/apps/management/routes/billing.d.ts.map +1 -1
  113. package/dist/apps/management/routes/billing.js +91 -32
  114. package/dist/apps/management/routes/billing.js.map +1 -1
  115. package/dist/apps/management/routes/faucet.d.ts +12 -12
  116. package/dist/apps/management/routes/faucet.d.ts.map +1 -1
  117. package/dist/apps/management/routes/faucet.js +23 -12
  118. package/dist/apps/management/routes/faucet.js.map +1 -1
  119. package/dist/apps/management/routes/invitations.d.ts +46 -13
  120. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  121. package/dist/apps/management/routes/invitations.js +79 -29
  122. package/dist/apps/management/routes/invitations.js.map +1 -1
  123. package/dist/apps/management/routes/invite-links.d.ts +128 -83
  124. package/dist/apps/management/routes/invite-links.d.ts.map +1 -1
  125. package/dist/apps/management/routes/invite-links.js +100 -41
  126. package/dist/apps/management/routes/invite-links.js.map +1 -1
  127. package/dist/apps/management/routes/me.d.ts +5 -5
  128. package/dist/apps/management/routes/me.d.ts.map +1 -1
  129. package/dist/apps/management/routes/me.js +14 -10
  130. package/dist/apps/management/routes/me.js.map +1 -1
  131. package/dist/apps/management/routes/members.d.ts +68 -47
  132. package/dist/apps/management/routes/members.d.ts.map +1 -1
  133. package/dist/apps/management/routes/members.js +37 -18
  134. package/dist/apps/management/routes/members.js.map +1 -1
  135. package/dist/apps/management/routes/orgs.d.ts +48 -8
  136. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  137. package/dist/apps/management/routes/orgs.js +48 -19
  138. package/dist/apps/management/routes/orgs.js.map +1 -1
  139. package/dist/apps/management/routes/projects.d.ts +130 -68
  140. package/dist/apps/management/routes/projects.d.ts.map +1 -1
  141. package/dist/apps/management/routes/projects.js +72 -21
  142. package/dist/apps/management/routes/projects.js.map +1 -1
  143. package/dist/apps/management/routes/scopes.d.ts.map +1 -1
  144. package/dist/apps/management/routes/scopes.js +8 -5
  145. package/dist/apps/management/routes/scopes.js.map +1 -1
  146. package/dist/apps/management/routes/usage.d.ts +38 -38
  147. package/dist/apps/management/routes/usage.d.ts.map +1 -1
  148. package/dist/apps/management/routes/usage.js +41 -31
  149. package/dist/apps/management/routes/usage.js.map +1 -1
  150. package/dist/apps/management/routes/verified-token-requests.d.ts +34 -6
  151. package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -1
  152. package/dist/apps/management/routes/verified-token-requests.js +36 -17
  153. package/dist/apps/management/routes/verified-token-requests.js.map +1 -1
  154. package/dist/apps/management/routes/webhooks.d.ts +1186 -197
  155. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  156. package/dist/apps/management/routes/webhooks.js +106 -38
  157. package/dist/apps/management/routes/webhooks.js.map +1 -1
  158. package/dist/apps/mpp/internal/Adapter.d.ts +1 -1
  159. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
  160. package/dist/apps/mpp/internal/Adapter.js +12 -0
  161. package/dist/apps/mpp/internal/Adapter.js.map +1 -1
  162. package/dist/db/Db.d.ts +2 -0
  163. package/dist/db/Db.d.ts.map +1 -1
  164. package/dist/db/Db.js +61 -0
  165. package/dist/db/Db.js.map +1 -1
  166. package/dist/db/Schema.d.ts +30 -2
  167. package/dist/db/Schema.d.ts.map +1 -1
  168. package/dist/db/Schema.js +28 -3
  169. package/dist/db/Schema.js.map +1 -1
  170. package/dist/db/tables/earnVaults.d.ts +5 -1
  171. package/dist/db/tables/earnVaults.d.ts.map +1 -1
  172. package/dist/db/tables/earnVaults.js +5 -0
  173. package/dist/db/tables/earnVaults.js.map +1 -1
  174. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
  175. package/dist/db/tables/webhookDeliveries.js +10 -0
  176. package/dist/db/tables/webhookDeliveries.js.map +1 -1
  177. package/dist/db/tables/webhookQueueCompletions.d.ts +15 -0
  178. package/dist/db/tables/webhookQueueCompletions.d.ts.map +1 -0
  179. package/dist/db/tables/webhookQueueCompletions.js +32 -0
  180. package/dist/db/tables/webhookQueueCompletions.js.map +1 -0
  181. package/dist/db/tables/webhookQueueEvents.d.ts +16 -20
  182. package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
  183. package/dist/db/tables/webhookQueueEvents.js +68 -43
  184. package/dist/db/tables/webhookQueueEvents.js.map +1 -1
  185. package/dist/db/tables/webhookSubscriptions.d.ts +47 -72
  186. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  187. package/dist/db/tables/webhookSubscriptions.js +92 -105
  188. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  189. package/dist/internal/Auth.d.ts +8 -1
  190. package/dist/internal/Auth.d.ts.map +1 -1
  191. package/dist/internal/Auth.js +13 -3
  192. package/dist/internal/Auth.js.map +1 -1
  193. package/dist/internal/Cache.d.ts.map +1 -1
  194. package/dist/internal/Cache.js +11 -7
  195. package/dist/internal/Cache.js.map +1 -1
  196. package/dist/internal/EarnVaults.d.ts +41 -2
  197. package/dist/internal/EarnVaults.d.ts.map +1 -1
  198. package/dist/internal/EarnVaults.js +167 -0
  199. package/dist/internal/EarnVaults.js.map +1 -1
  200. package/dist/internal/MetricSink.d.ts +35 -125
  201. package/dist/internal/MetricSink.d.ts.map +1 -1
  202. package/dist/internal/MetricSink.js +50 -121
  203. package/dist/internal/MetricSink.js.map +1 -1
  204. package/dist/internal/OpenApi.d.ts +26 -22
  205. package/dist/internal/OpenApi.d.ts.map +1 -1
  206. package/dist/internal/OpenApi.js +128 -39
  207. package/dist/internal/OpenApi.js.map +1 -1
  208. package/dist/internal/Response.d.ts +13 -8
  209. package/dist/internal/Response.d.ts.map +1 -1
  210. package/dist/internal/Response.js +16 -5
  211. package/dist/internal/Response.js.map +1 -1
  212. package/dist/internal/Schema.d.ts +8 -8
  213. package/dist/internal/Schema.d.ts.map +1 -1
  214. package/dist/internal/Schema.js +10 -9
  215. package/dist/internal/Schema.js.map +1 -1
  216. package/dist/internal/Store.d.ts +15 -6
  217. package/dist/internal/Store.d.ts.map +1 -1
  218. package/dist/internal/Store.js +45 -15
  219. package/dist/internal/Store.js.map +1 -1
  220. package/dist/internal/Tidx.d.ts +2 -0
  221. package/dist/internal/Tidx.d.ts.map +1 -1
  222. package/dist/internal/Tidx.js +16 -4
  223. package/dist/internal/Tidx.js.map +1 -1
  224. package/dist/internal/WebhookTransfer.d.ts +1 -55
  225. package/dist/internal/WebhookTransfer.d.ts.map +1 -1
  226. package/dist/internal/WebhookTransfer.js +1 -239
  227. package/dist/internal/WebhookTransfer.js.map +1 -1
  228. package/dist/internal/Webhooks.d.ts +112 -56
  229. package/dist/internal/Webhooks.d.ts.map +1 -1
  230. package/dist/internal/Webhooks.js +124 -93
  231. package/dist/internal/Webhooks.js.map +1 -1
  232. package/dist/internal/funding/Deposit.d.ts +2 -2
  233. package/dist/internal/funding/Deposit.d.ts.map +1 -1
  234. package/dist/internal/funding/Deposit.js +9 -8
  235. package/dist/internal/funding/Deposit.js.map +1 -1
  236. package/dist/internal/funding/DepositAddress.d.ts +4 -4
  237. package/dist/internal/funding/DepositAddress.d.ts.map +1 -1
  238. package/dist/internal/funding/DepositAddress.js +9 -8
  239. package/dist/internal/funding/DepositAddress.js.map +1 -1
  240. package/dist/internal/funding/DepositWebhook.d.ts +25 -0
  241. package/dist/internal/funding/DepositWebhook.d.ts.map +1 -0
  242. package/dist/internal/funding/DepositWebhook.js +74 -0
  243. package/dist/internal/funding/DepositWebhook.js.map +1 -0
  244. package/dist/internal/funding/Provider.d.ts.map +1 -1
  245. package/dist/internal/funding/Provider.js +13 -12
  246. package/dist/internal/funding/Provider.js.map +1 -1
  247. package/dist/internal/funding/Reconciliation.d.ts +6 -0
  248. package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
  249. package/dist/internal/funding/Reconciliation.js +42 -10
  250. package/dist/internal/funding/Reconciliation.js.map +1 -1
  251. package/dist/internal/funding/index.d.ts +1 -0
  252. package/dist/internal/funding/index.d.ts.map +1 -1
  253. package/dist/internal/funding/index.js +1 -0
  254. package/dist/internal/funding/index.js.map +1 -1
  255. package/dist/internal/funding/providers/stargate.d.ts +19 -0
  256. package/dist/internal/funding/providers/stargate.d.ts.map +1 -0
  257. package/dist/internal/funding/providers/stargate.js +143 -0
  258. package/dist/internal/funding/providers/stargate.js.map +1 -0
  259. package/dist/internal/webhookDestinations/slack.d.ts.map +1 -1
  260. package/dist/internal/webhookDestinations/slack.js +16 -0
  261. package/dist/internal/webhookDestinations/slack.js.map +1 -1
  262. package/dist/providers/index.d.ts +7 -0
  263. package/dist/providers/index.d.ts.map +1 -1
  264. package/dist/providers/index.js +3 -0
  265. package/dist/providers/index.js.map +1 -1
  266. package/package.json +2 -2
  267. package/src/App.test.ts +48 -0
  268. package/src/App.ts +7 -2
  269. package/src/Assets.test.ts +18 -0
  270. package/src/Assets.ts +22 -0
  271. package/src/Client.test-d.ts +287 -17
  272. package/src/Webhooks.ts +1 -220
  273. package/src/admin/apps/earn-vaults.test.ts +143 -0
  274. package/src/admin/apps/earn-vaults.ts +83 -6
  275. package/src/admin/apps/organizations.ts +6 -2
  276. package/src/admin/ui/src/routes/api-keys.tsx +36 -0
  277. package/src/admin/ui.generated.ts +151 -189
  278. package/src/apps/data/App.test.ts +31 -0
  279. package/src/apps/data/App.ts +64 -10
  280. package/src/apps/data/ZoneSelection.test.ts +196 -0
  281. package/src/apps/data/ZoneSelection.ts +108 -0
  282. package/src/apps/data/routes/activities.test.ts +435 -12
  283. package/src/apps/data/routes/activities.ts +562 -125
  284. package/src/apps/data/routes/balances.ts +1 -1
  285. package/src/apps/data/routes/blocks.ts +1 -1
  286. package/src/apps/data/routes/earn.test.ts +183 -23
  287. package/src/apps/data/routes/earn.ts +225 -29
  288. package/src/apps/data/routes/earn.zone-access.test.ts +46 -0
  289. package/src/apps/data/routes/exchanges.test.ts +31 -1
  290. package/src/apps/data/routes/exchanges.ts +19 -15
  291. package/src/apps/data/routes/fee-amm.ts +18 -11
  292. package/src/apps/data/routes/receipts.ts +1 -1
  293. package/src/apps/data/routes/rpc.test.ts +75 -0
  294. package/src/apps/data/routes/rpc.ts +23 -9
  295. package/src/apps/data/routes/tokenlist.ts +21 -18
  296. package/src/apps/data/routes/tokens.test.ts +29 -0
  297. package/src/apps/data/routes/tokens.ts +38 -15
  298. package/src/apps/data/routes/transactions.ts +1 -1
  299. package/src/apps/data/routes/transfers.test.ts +3 -3
  300. package/src/apps/data/routes/transfers.ts +12 -9
  301. package/src/apps/data/routes/webhooks.test.ts +179 -1497
  302. package/src/apps/data/routes/webhooks.ts +156 -976
  303. package/src/apps/data/routes/zones.test.ts +19 -13
  304. package/src/apps/funding/routes/chains.test.ts +211 -7
  305. package/src/apps/funding/routes/chains.ts +19 -12
  306. package/src/apps/funding/routes/deposit-addresses.test.ts +394 -0
  307. package/src/apps/funding/routes/deposit-addresses.ts +84 -72
  308. package/src/apps/funding/routes/providers.ts +9 -5
  309. package/src/apps/funding/routes/quotes.test.ts +46 -0
  310. package/src/apps/funding/routes/quotes.ts +8 -5
  311. package/src/apps/funding/routes/transfers.test.ts +35 -32
  312. package/src/apps/management/Billing.test.ts +26 -0
  313. package/src/apps/management/Billing.ts +24 -7
  314. package/src/apps/management/routes/api-keys.test.ts +178 -0
  315. package/src/apps/management/routes/api-keys.ts +203 -144
  316. package/src/apps/management/routes/billing.test.ts +209 -0
  317. package/src/apps/management/routes/billing.ts +254 -177
  318. package/src/apps/management/routes/faucet.test.ts +39 -0
  319. package/src/apps/management/routes/faucet.ts +75 -41
  320. package/src/apps/management/routes/invitations.test.ts +216 -0
  321. package/src/apps/management/routes/invitations.ts +186 -109
  322. package/src/apps/management/routes/invite-links.test.ts +263 -1
  323. package/src/apps/management/routes/invite-links.ts +295 -214
  324. package/src/apps/management/routes/me.test.ts +49 -0
  325. package/src/apps/management/routes/me.ts +42 -32
  326. package/src/apps/management/routes/members.test.ts +124 -1
  327. package/src/apps/management/routes/members.ts +81 -51
  328. package/src/apps/management/routes/orgs.test.ts +176 -0
  329. package/src/apps/management/routes/orgs.ts +101 -59
  330. package/src/apps/management/routes/projects.test.ts +183 -0
  331. package/src/apps/management/routes/projects.ts +124 -60
  332. package/src/apps/management/routes/scopes.test.ts +44 -0
  333. package/src/apps/management/routes/scopes.ts +37 -28
  334. package/src/apps/management/routes/usage.test.ts +92 -0
  335. package/src/apps/management/routes/usage.ts +186 -151
  336. package/src/apps/management/routes/verified-token-requests.test.ts +114 -0
  337. package/src/apps/management/routes/verified-token-requests.ts +166 -133
  338. package/src/apps/management/routes/webhooks.test.ts +313 -1
  339. package/src/apps/management/routes/webhooks.ts +220 -71
  340. package/src/apps/mpp/internal/Adapter.ts +13 -1
  341. package/src/db/Db.test.ts +42 -5
  342. package/src/db/Db.ts +85 -0
  343. package/src/db/Schema.ts +41 -3
  344. package/src/db/tables/earnVaults.test.ts +22 -0
  345. package/src/db/tables/earnVaults.ts +11 -1
  346. package/src/db/tables/organizations.test.ts +5 -2
  347. package/src/db/tables/webhookDeliveries.ts +13 -0
  348. package/src/db/tables/webhookQueueCompletions.ts +55 -0
  349. package/src/db/tables/webhookQueueEvents.ts +97 -57
  350. package/src/db/tables/webhookSubscriptions.ts +134 -144
  351. package/src/internal/Auth.ts +23 -5
  352. package/src/internal/Cache.ts +14 -7
  353. package/src/internal/EarnVaults.capabilities.test.ts +33 -0
  354. package/src/internal/EarnVaults.test.ts +79 -0
  355. package/src/internal/EarnVaults.ts +277 -0
  356. package/src/internal/MetricSink.test.ts +41 -373
  357. package/src/internal/MetricSink.ts +92 -273
  358. package/src/internal/OpenApi.ts +165 -49
  359. package/src/internal/Response.test.ts +95 -0
  360. package/src/internal/Response.ts +40 -2
  361. package/src/internal/Schema.test.ts +34 -0
  362. package/src/internal/Schema.ts +20 -9
  363. package/src/internal/Store.test.ts +186 -0
  364. package/src/internal/Store.ts +57 -17
  365. package/src/internal/Tidx.test.ts +19 -0
  366. package/src/internal/Tidx.ts +16 -4
  367. package/src/internal/WebhookTransfer.ts +1 -351
  368. package/src/internal/Webhooks.test.ts +222 -145
  369. package/src/internal/Webhooks.ts +234 -135
  370. package/src/internal/funding/Deposit.ts +71 -64
  371. package/src/internal/funding/DepositAddress.ts +50 -43
  372. package/src/internal/funding/DepositWebhook.test.ts +131 -0
  373. package/src/internal/funding/DepositWebhook.ts +101 -0
  374. package/src/internal/funding/Provider.ts +164 -142
  375. package/src/internal/funding/Reconciliation.test.ts +14 -0
  376. package/src/internal/funding/Reconciliation.ts +161 -86
  377. package/src/internal/funding/index.test.ts +1 -0
  378. package/src/internal/funding/index.ts +1 -0
  379. package/src/internal/funding/providers/index.test.ts +185 -0
  380. package/src/internal/funding/providers/stargate.ts +184 -0
  381. package/src/internal/webhookDestinations/slack.ts +15 -0
  382. package/src/providers/index.test.ts +1 -0
  383. package/src/providers/index.ts +9 -0
  384. package/src/Webhooks.bench.ts +0 -714
  385. package/src/Webhooks.memory.bench.ts +0 -250
  386. package/src/Webhooks.test.ts +0 -146
@@ -28,148 +28,160 @@ export namespace schema {
28
28
  * An organization's verification request (response shape). `reviewedBy` is
29
29
  * deliberately absent: reviewer identity stays on the admin surface.
30
30
  */
31
- export const VerifiedTokenRequest = Schema.describe(
32
- z.extend(tokenSchema.Input, {
33
- chainId,
34
- createdAt: z
35
- .string()
36
- .check(
37
- z.describe('When the request was created (ISO 8601).'),
38
- z.meta({ examples: ['2026-01-01T00:00:00.000Z'] }),
39
- ),
40
- id: z
41
- .string()
42
- .check(
43
- z.describe('Opaque request resource id (`vtr_…`).'),
44
- z.meta({ examples: ['vtr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
45
- ),
46
- logo: z.optional(
47
- z
31
+ export const VerifiedTokenRequest = OpenApi.component(
32
+ Schema.describe(
33
+ z.extend(tokenSchema.Input, {
34
+ chainId,
35
+ createdAt: z.iso
36
+ .datetime()
37
+ .check(
38
+ z.describe('When the request was created (ISO 8601).'),
39
+ z.meta({ examples: ['2026-01-01T00:00:00.000Z'] }),
40
+ ),
41
+ id: z
48
42
  .string()
49
43
  .check(
50
- z.describe('Inline SVG logo markup uploaded with the request, when present.'),
51
- z.meta({ examples: ['<svg xmlns="http://www.w3.org/2000/svg"/>'] }),
44
+ z.describe('Opaque request resource id (`vtr_…`).'),
45
+ z.meta({ examples: ['vtr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
52
46
  ),
53
- ),
54
- note: z
55
- .nullable(z.string())
56
- .check(
57
- z.describe('Requester note to the reviewers, or null.'),
58
- z.meta({ examples: ['We are the token issuer.', null] }),
59
- ),
60
- orgId: z
61
- .string()
62
- .check(
63
- z.describe('Requesting organization id (`org_…`).'),
64
- z.meta({ examples: ['org_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
65
- ),
66
- requestedBy: z
67
- .string()
68
- .check(
69
- z.describe('User id that submitted the request.'),
70
- z.meta({ examples: ['usr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
71
- ),
72
- reviewNote: z
73
- .nullable(z.string())
74
- .check(
75
- z.describe('Reviewer note shown when the request was denied, or null.'),
76
- z.meta({ examples: ['Logo URL is unreachable.', null] }),
77
- ),
78
- reviewedAt: z
79
- .nullable(z.string())
80
- .check(
81
- z.describe('When the request was reviewed (ISO 8601), or null while pending.'),
82
- z.meta({ examples: ['2026-01-02T00:00:00.000Z', null] }),
83
- ),
84
- status: z
85
- .enum(['approved', 'denied', 'pending'])
86
- .check(z.describe('Review status of the request.'), z.meta({ examples: ['pending'] })),
87
- updatedAt: z
88
- .string()
89
- .check(
90
- z.describe('When the request was last changed (ISO 8601).'),
91
- z.meta({ examples: ['2026-01-01T00:00:00.000Z'] }),
47
+ logo: z.optional(
48
+ z
49
+ .string()
50
+ .check(
51
+ z.describe('Inline SVG logo markup uploaded with the request, when present.'),
52
+ z.meta({ examples: ['<svg xmlns="http://www.w3.org/2000/svg"/>'] }),
53
+ ),
92
54
  ),
93
- }),
94
- "An organization's request to add a token to the curated verified list.",
55
+ note: z
56
+ .nullable(z.string())
57
+ .check(
58
+ z.describe('Requester note to the reviewers, or null.'),
59
+ z.meta({ examples: ['We are the token issuer.', null] }),
60
+ ),
61
+ orgId: z
62
+ .string()
63
+ .check(
64
+ z.describe('Requesting organization id (`org_…`).'),
65
+ z.meta({ examples: ['org_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
66
+ ),
67
+ requestedBy: z
68
+ .string()
69
+ .check(
70
+ z.describe('User id that submitted the request.'),
71
+ z.meta({ examples: ['usr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
72
+ ),
73
+ reviewNote: z
74
+ .nullable(z.string())
75
+ .check(
76
+ z.describe('Reviewer note shown when the request was denied, or null.'),
77
+ z.meta({ examples: ['Logo URL is unreachable.', null] }),
78
+ ),
79
+ reviewedAt: z
80
+ .nullable(z.iso.datetime())
81
+ .check(
82
+ z.describe('When the request was reviewed (ISO 8601), or null while pending.'),
83
+ z.meta({ examples: ['2026-01-02T00:00:00.000Z', null] }),
84
+ ),
85
+ status: z
86
+ .enum(['approved', 'denied', 'pending'])
87
+ .check(z.describe('Review status of the request.'), z.meta({ examples: ['pending'] })),
88
+ updatedAt: z.iso
89
+ .datetime()
90
+ .check(
91
+ z.describe('When the request was last changed (ISO 8601).'),
92
+ z.meta({ examples: ['2026-01-01T00:00:00.000Z'] }),
93
+ ),
94
+ }),
95
+ "An organization's request to add a token to the curated verified list.",
96
+ ),
97
+ 'VerifiedTokenRequest',
95
98
  )
96
99
 
97
100
  /**
98
101
  * Create body. The shared token fields trust admin curation, so the
99
102
  * member-facing surface re-declares them with length caps.
100
103
  */
101
- export const CreateBody = Schema.describe(
102
- z.extend(tokenSchema.Input, {
103
- chainId: Schema.ChainId,
104
- currency: z
105
- .string()
106
- .check(
107
- z.minLength(1),
108
- z.maxLength(10),
109
- z.describe('The currency label for this token, such as `USD`.'),
110
- z.meta({ examples: ['USD'] }),
111
- ),
112
- logo: z.optional(
113
- z.string().check(
114
- z.refine(
115
- (value) => /^<(\?xml|svg)[\s/>]/i.test(value.trimStart()),
116
- 'Logo must be SVG markup.',
104
+ export const CreateBody = OpenApi.component(
105
+ Schema.describe(
106
+ z.extend(tokenSchema.Input, {
107
+ chainId: Schema.ChainId,
108
+ currency: z
109
+ .string()
110
+ .check(
111
+ z.minLength(1),
112
+ z.maxLength(10),
113
+ z.describe('The currency label for this token, such as `USD`.'),
114
+ z.meta({ examples: ['USD'] }),
117
115
  ),
118
- z.refine(
119
- (value) => new TextEncoder().encode(value).byteLength <= maxLogoBytes,
120
- `Logo exceeds the ${maxLogoBytes / 1024} KiB limit.`,
116
+ logo: z.optional(
117
+ z.string().check(
118
+ z.refine(
119
+ (value) => /^<(\?xml|svg)[\s/>]/i.test(value.trimStart()),
120
+ 'Logo must be SVG markup.',
121
+ ),
122
+ z.refine(
123
+ (value) => new TextEncoder().encode(value).byteLength <= maxLogoBytes,
124
+ `Logo exceeds the ${maxLogoBytes / 1024} KiB limit.`,
125
+ ),
126
+ z.describe('Inline SVG logo markup, published to the asset store on approval.'),
127
+ z.meta({ examples: ['<svg xmlns="http://www.w3.org/2000/svg"/>'] }),
121
128
  ),
122
- z.describe('Inline SVG logo markup, published to the asset store on approval.'),
123
- z.meta({ examples: ['<svg xmlns="http://www.w3.org/2000/svg"/>'] }),
124
129
  ),
125
- ),
126
- logoUri: z.optional(
127
- z
128
- .url({ protocol: /^https$/ })
130
+ logoUri: z.optional(
131
+ z
132
+ .url({ protocol: /^https$/ })
133
+ .check(
134
+ z.maxLength(2048),
135
+ z.describe('The HTTPS URL for this token’s logo image, when one is set.'),
136
+ z.meta({ examples: ['https://assets.tempo.xyz/icons/usdc.svg'] }),
137
+ ),
138
+ ),
139
+ name: z
140
+ .string()
129
141
  .check(
130
- z.maxLength(2048),
131
- z.describe('The HTTPS URL for this token’s logo image, when one is set.'),
132
- z.meta({ examples: ['https://assets.tempo.xyz/icons/usdc.svg'] }),
142
+ z.minLength(1),
143
+ z.maxLength(100),
144
+ z.describe('The token’s human-readable name.'),
145
+ z.meta({ examples: ['USD Coin'] }),
133
146
  ),
134
- ),
135
- name: z
136
- .string()
137
- .check(
138
- z.minLength(1),
139
- z.maxLength(100),
140
- z.describe('The token’s human-readable name.'),
141
- z.meta({ examples: ['USD Coin'] }),
147
+ note: z.optional(
148
+ z
149
+ .string()
150
+ .check(
151
+ z.trim(),
152
+ z.maxLength(500),
153
+ z.describe('Optional note to the reviewers.'),
154
+ z.meta({ examples: ['We are the token issuer.'] }),
155
+ ),
142
156
  ),
143
- note: z.optional(
144
- z
157
+ symbol: z
145
158
  .string()
146
159
  .check(
147
- z.trim(),
148
- z.maxLength(500),
149
- z.describe('Optional note to the reviewers.'),
150
- z.meta({ examples: ['We are the token issuer.'] }),
160
+ z.minLength(1),
161
+ z.maxLength(20),
162
+ z.describe('The short ticker symbol wallets and apps show for this token.'),
163
+ z.meta({ examples: ['USDC'] }),
151
164
  ),
152
- ),
153
- symbol: z
154
- .string()
155
- .check(
156
- z.minLength(1),
157
- z.maxLength(20),
158
- z.describe('The short ticker symbol wallets and apps show for this token.'),
159
- z.meta({ examples: ['USDC'] }),
160
- ),
161
- }),
162
- 'Fields for requesting verification of a token.',
165
+ }),
166
+ 'Fields for requesting verification of a token.',
167
+ ),
168
+ 'CreateVerifiedTokenRequestInput',
163
169
  )
164
170
 
165
171
  /** Non-paginated list of an organization's requests. */
166
- export const ListResponse = Schema.describe(
167
- z.object({
168
- data: z
169
- .array(VerifiedTokenRequest)
170
- .check(z.describe("The organization's verification requests, newest first.")),
171
- }),
172
- "A non-paginated list of an organization's verified-token requests.",
172
+ export const ListResponse = OpenApi.component(
173
+ Schema.describe(
174
+ z.object({
175
+ data: z
176
+ .array(VerifiedTokenRequest)
177
+ .check(
178
+ z.describe("The organization's verification requests, newest first."),
179
+ z.meta({ examples: [[]] }),
180
+ ),
181
+ }),
182
+ "A non-paginated list of an organization's verified-token requests.",
183
+ ),
184
+ 'VerifiedTokenRequestList',
173
185
  )
174
186
 
175
187
  /** Path parameters addressing an organization's requests. */
@@ -203,16 +215,19 @@ export namespace schema {
203
215
  .check(z.describe('Path parameters for one verified-token request.'))
204
216
 
205
217
  /** Cancel confirmation. */
206
- export const DeleteResponse = z
207
- .object({
208
- id: z
209
- .string()
210
- .check(
211
- z.describe('Canceled request resource id.'),
212
- z.meta({ examples: ['vtr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
213
- ),
214
- })
215
- .check(z.describe('Confirmation that a verified-token request was canceled.'))
218
+ export const DeleteResponse = OpenApi.component(
219
+ z
220
+ .object({
221
+ id: z
222
+ .string()
223
+ .check(
224
+ z.describe('Canceled request resource id.'),
225
+ z.meta({ examples: ['vtr_1a2b3c4d5e6f7g8h9j0k1m2n'] }),
226
+ ),
227
+ })
228
+ .check(z.describe('Confirmation that a verified-token request was canceled.')),
229
+ 'CancelVerifiedTokenRequestResponse',
230
+ )
216
231
  }
217
232
 
218
233
  const bodyValidation = {
@@ -240,7 +255,14 @@ export function verifiedTokenRequests() {
240
255
  operationId: 'createVerifiedTokenRequest',
241
256
  responses: OpenApi.responses({
242
257
  errors: {
243
- 404: 'No accessible organization was found.',
258
+ 400: {
259
+ codes: ['body_invalid', 'param_invalid'],
260
+ description: 'Malformed API key, invalid path, or invalid body.',
261
+ },
262
+ 404: {
263
+ codes: ['organization_not_found'],
264
+ description: 'No accessible organization was found.',
265
+ },
244
266
  409: {
245
267
  codes: ['request_limit_reached', 'request_pending_exists', 'verified_symbol_exists', 'verified_token_exists'], // prettier-ignore
246
268
  description: 'The token is already verified or requested, or the organization is at its pending-request limit.', // prettier-ignore
@@ -254,6 +276,7 @@ export function verifiedTokenRequests() {
254
276
  async (c) => {
255
277
  if (Auth.narrowAccess) return Auth.superAdminAccessError(c)
256
278
  if (Auth.narrowScope) return Auth.ensureOrgError(c)
279
+ if (OpenApi.narrowValidation) return OpenApi.validationError(c, paramValidation)
257
280
  if (OpenApi.narrowValidation) return OpenApi.validationError(c, bodyValidation)
258
281
  const body = c.req.valid('json')
259
282
  try {
@@ -319,7 +342,13 @@ export function verifiedTokenRequests() {
319
342
  OpenApi.describeRoute({
320
343
  operationId: 'listVerifiedTokenRequests',
321
344
  responses: OpenApi.responses({
322
- errors: { 404: 'No accessible organization was found.' },
345
+ errors: {
346
+ 400: { codes: ['param_invalid'], description: 'Malformed API key or invalid path.' },
347
+ 404: {
348
+ codes: ['organization_not_found'],
349
+ description: 'No accessible organization was found.',
350
+ },
351
+ },
323
352
  success: { description: 'Verification requests.', schema: schema.ListResponse },
324
353
  }),
325
354
  summary: 'List token requests',
@@ -351,7 +380,11 @@ export function verifiedTokenRequests() {
351
380
  operationId: 'cancelVerifiedTokenRequest',
352
381
  responses: OpenApi.responses({
353
382
  errors: {
354
- 404: 'No accessible verification request was found.',
383
+ 400: { codes: ['param_invalid'], description: 'Malformed API key or invalid path.' },
384
+ 404: {
385
+ codes: ['organization_not_found', 'verified_token_request_not_found'],
386
+ description: 'No accessible organization or verification request was found.',
387
+ },
355
388
  409: {
356
389
  codes: ['request_not_pending'],
357
390
  description: 'Only pending requests can be canceled.',