tapimo 0.15.1 → 0.18.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 (709) hide show
  1. package/README.md +137 -0
  2. package/dist/ApiKey.d.ts +1 -0
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +4 -2
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +37 -11
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +163 -10
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +13085 -11974
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +46 -15
  13. package/dist/App.js.map +1 -1
  14. package/dist/Scope.d.ts +1 -1
  15. package/dist/Scope.d.ts.map +1 -1
  16. package/dist/Scope.js +1 -1
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/admin/App.d.ts +893 -191
  19. package/dist/admin/App.d.ts.map +1 -1
  20. package/dist/admin/App.js +5 -1
  21. package/dist/admin/App.js.map +1 -1
  22. package/dist/admin/apps/api-keys.d.ts +70 -70
  23. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  24. package/dist/admin/apps/api-keys.js +8 -3
  25. package/dist/admin/apps/api-keys.js.map +1 -1
  26. package/dist/admin/apps/earn-vaults.d.ts +66 -27
  27. package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
  28. package/dist/admin/apps/earn-vaults.js +36 -7
  29. package/dist/admin/apps/earn-vaults.js.map +1 -1
  30. package/dist/admin/apps/organizations.d.ts +25 -25
  31. package/dist/admin/apps/organizations.d.ts.map +1 -1
  32. package/dist/admin/apps/organizations.js +5 -4
  33. package/dist/admin/apps/organizations.js.map +1 -1
  34. package/dist/admin/apps/route-policies.d.ts +632 -0
  35. package/dist/admin/apps/route-policies.d.ts.map +1 -0
  36. package/dist/admin/apps/route-policies.js +257 -0
  37. package/dist/admin/apps/route-policies.js.map +1 -0
  38. package/dist/admin/apps/routes-support.js +39 -3
  39. package/dist/admin/apps/routes-support.js.map +1 -1
  40. package/dist/admin/apps/routes.d.ts +529 -76
  41. package/dist/admin/apps/routes.d.ts.map +1 -1
  42. package/dist/admin/apps/routes.js +82 -1
  43. package/dist/admin/apps/routes.js.map +1 -1
  44. package/dist/admin/apps/verified-tokens.d.ts +157 -157
  45. package/dist/admin/index.d.ts +0 -1
  46. package/dist/admin/index.d.ts.map +1 -1
  47. package/dist/admin/index.js +0 -1
  48. package/dist/admin/index.js.map +1 -1
  49. package/dist/admin/ui.generated.d.ts +1 -1
  50. package/dist/admin/ui.generated.d.ts.map +1 -1
  51. package/dist/admin/ui.generated.js +205 -201
  52. package/dist/admin/ui.generated.js.map +1 -1
  53. package/dist/analytics/Analytics.d.ts.map +1 -1
  54. package/dist/analytics/Analytics.js +65 -1
  55. package/dist/analytics/Analytics.js.map +1 -1
  56. package/dist/analytics/tables/requestEvents.d.ts +1 -1
  57. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  58. package/dist/analytics/tables/requestEvents.js +58 -59
  59. package/dist/analytics/tables/requestEvents.js.map +1 -1
  60. package/dist/apps/data/App.d.ts +2709 -2670
  61. package/dist/apps/data/App.d.ts.map +1 -1
  62. package/dist/apps/data/routes/activities.d.ts +357 -357
  63. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  64. package/dist/apps/data/routes/activities.js +50 -0
  65. package/dist/apps/data/routes/activities.js.map +1 -1
  66. package/dist/apps/data/routes/addresses.d.ts +248 -248
  67. package/dist/apps/data/routes/balances.d.ts +22 -22
  68. package/dist/apps/data/routes/balances.d.ts.map +1 -1
  69. package/dist/apps/data/routes/balances.js +5 -7
  70. package/dist/apps/data/routes/balances.js.map +1 -1
  71. package/dist/apps/data/routes/blocks.d.ts +125 -125
  72. package/dist/apps/data/routes/coingecko.d.ts +54 -54
  73. package/dist/apps/data/routes/earn.d.ts +103 -12
  74. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  75. package/dist/apps/data/routes/earn.js +456 -220
  76. package/dist/apps/data/routes/earn.js.map +1 -1
  77. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  78. package/dist/apps/data/routes/exchanges.js +267 -97
  79. package/dist/apps/data/routes/exchanges.js.map +1 -1
  80. package/dist/apps/data/routes/fee-amm.d.ts +109 -127
  81. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  82. package/dist/apps/data/routes/fee-amm.js +83 -54
  83. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  84. package/dist/apps/data/routes/indexer.d.ts +43 -43
  85. package/dist/apps/data/routes/receipts.d.ts +235 -235
  86. package/dist/apps/data/routes/rpc.d.ts +30 -30
  87. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  88. package/dist/apps/data/routes/tokens.js +11 -6
  89. package/dist/apps/data/routes/tokens.js.map +1 -1
  90. package/dist/apps/data/routes/transactions.d.ts +2 -0
  91. package/dist/apps/data/routes/transactions.d.ts.map +1 -1
  92. package/dist/apps/data/routes/transactions.js +30 -22
  93. package/dist/apps/data/routes/transactions.js.map +1 -1
  94. package/dist/apps/data/routes/transfers.d.ts +77 -77
  95. package/dist/apps/data/routes/valuation.d.ts +32 -32
  96. package/dist/apps/data/routes/verified-tokens.d.ts +86 -86
  97. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  98. package/dist/apps/data/routes/webhooks.js +1 -1
  99. package/dist/apps/data/routes/webhooks.js.map +1 -1
  100. package/dist/apps/data/routes/zones.d.ts +31 -31
  101. package/dist/apps/management/App.d.ts +2909 -2064
  102. package/dist/apps/management/App.d.ts.map +1 -1
  103. package/dist/apps/management/App.js +2 -0
  104. package/dist/apps/management/App.js.map +1 -1
  105. package/dist/apps/management/Billing.d.ts +2 -4
  106. package/dist/apps/management/Billing.d.ts.map +1 -1
  107. package/dist/apps/management/Billing.js +65 -26
  108. package/dist/apps/management/Billing.js.map +1 -1
  109. package/dist/apps/management/routes/api-keys.d.ts +257 -245
  110. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  111. package/dist/apps/management/routes/api-keys.js +70 -11
  112. package/dist/apps/management/routes/api-keys.js.map +1 -1
  113. package/dist/apps/management/routes/billing.d.ts +84 -84
  114. package/dist/apps/management/routes/cli.d.ts +912 -0
  115. package/dist/apps/management/routes/cli.d.ts.map +1 -0
  116. package/dist/apps/management/routes/cli.js +416 -0
  117. package/dist/apps/management/routes/cli.js.map +1 -0
  118. package/dist/apps/management/routes/faucet.d.ts +8 -8
  119. package/dist/apps/management/routes/invitations.d.ts +138 -138
  120. package/dist/apps/management/routes/invite-links.d.ts +172 -172
  121. package/dist/apps/management/routes/members.d.ts +16 -16
  122. package/dist/apps/management/routes/orgs.d.ts +104 -104
  123. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  124. package/dist/apps/management/routes/orgs.js +8 -2
  125. package/dist/apps/management/routes/orgs.js.map +1 -1
  126. package/dist/apps/management/routes/projects.d.ts +125 -125
  127. package/dist/apps/management/routes/usage.d.ts +8 -8
  128. package/dist/apps/management/routes/verified-token-requests.d.ts +86 -86
  129. package/dist/apps/management/routes/webhooks.d.ts +485 -485
  130. package/dist/apps/mpp/App.d.ts +44 -44
  131. package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
  132. package/dist/apps/mpp/internal/Policy.js +4 -2
  133. package/dist/apps/mpp/internal/Policy.js.map +1 -1
  134. package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -1
  135. package/dist/apps/mpp/internal/Sponsorship.js +6 -4
  136. package/dist/apps/mpp/internal/Sponsorship.js.map +1 -1
  137. package/dist/apps/relay/App.d.ts +8 -0
  138. package/dist/apps/relay/App.d.ts.map +1 -1
  139. package/dist/apps/relay/App.js +16 -4
  140. package/dist/apps/relay/App.js.map +1 -1
  141. package/dist/apps/relay/Sponsorships.d.ts +4 -6
  142. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  143. package/dist/apps/relay/Sponsorships.js +71 -60
  144. package/dist/apps/relay/Sponsorships.js.map +1 -1
  145. package/dist/apps/routes/Access.d.ts +53 -0
  146. package/dist/apps/routes/Access.d.ts.map +1 -1
  147. package/dist/apps/routes/Access.js +121 -0
  148. package/dist/apps/routes/Access.js.map +1 -1
  149. package/dist/apps/routes/App.d.ts +397 -158
  150. package/dist/apps/routes/App.d.ts.map +1 -1
  151. package/dist/apps/routes/App.js.map +1 -1
  152. package/dist/apps/routes/routes/chains.d.ts +25 -25
  153. package/dist/apps/routes/routes/deposit-addresses.d.ts +169 -61
  154. package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -1
  155. package/dist/apps/routes/routes/deposit-addresses.js +217 -32
  156. package/dist/apps/routes/routes/deposit-addresses.js.map +1 -1
  157. package/dist/apps/routes/routes/quotes.d.ts +171 -81
  158. package/dist/apps/routes/routes/quotes.d.ts.map +1 -1
  159. package/dist/apps/routes/routes/quotes.js +101 -27
  160. package/dist/apps/routes/routes/quotes.js.map +1 -1
  161. package/dist/apps/routes/routes/transfers.d.ts +532 -480
  162. package/dist/apps/routes/routes/transfers.d.ts.map +1 -1
  163. package/dist/apps/routes/routes/transfers.js +182 -37
  164. package/dist/apps/routes/routes/transfers.js.map +1 -1
  165. package/dist/cli/ApiKeys.d.ts +120 -0
  166. package/dist/cli/ApiKeys.d.ts.map +1 -0
  167. package/dist/cli/ApiKeys.js +138 -0
  168. package/dist/cli/ApiKeys.js.map +1 -0
  169. package/dist/cli/Cli.d.ts +92 -34
  170. package/dist/cli/Cli.d.ts.map +1 -1
  171. package/dist/cli/Cli.js +188 -11
  172. package/dist/cli/Cli.js.map +1 -1
  173. package/dist/cli/Credentials.d.ts +95 -0
  174. package/dist/cli/Credentials.d.ts.map +1 -0
  175. package/dist/cli/Credentials.js +110 -0
  176. package/dist/cli/Credentials.js.map +1 -0
  177. package/dist/cli/Spec.d.ts +59 -0
  178. package/dist/cli/Spec.d.ts.map +1 -0
  179. package/dist/cli/Spec.js +77 -0
  180. package/dist/cli/Spec.js.map +1 -0
  181. package/dist/cli/bin.js +5 -1
  182. package/dist/cli/bin.js.map +1 -1
  183. package/dist/cli/commands/admin.d.ts +5 -5
  184. package/dist/cli/commands/admin.d.ts.map +1 -1
  185. package/dist/cli/commands/auth.d.ts +73 -0
  186. package/dist/cli/commands/auth.d.ts.map +1 -0
  187. package/dist/cli/commands/auth.js +204 -0
  188. package/dist/cli/commands/auth.js.map +1 -0
  189. package/dist/cli/commands/keys.d.ts +17 -0
  190. package/dist/cli/commands/keys.d.ts.map +1 -0
  191. package/dist/cli/commands/keys.js +109 -0
  192. package/dist/cli/commands/keys.js.map +1 -0
  193. package/dist/cloudflare.d.ts +27 -2
  194. package/dist/cloudflare.d.ts.map +1 -1
  195. package/dist/cloudflare.js +144 -17
  196. package/dist/cloudflare.js.map +1 -1
  197. package/dist/db/Db.d.ts +23 -0
  198. package/dist/db/Db.d.ts.map +1 -1
  199. package/dist/db/Db.js +413 -1
  200. package/dist/db/Db.js.map +1 -1
  201. package/dist/db/Schema.d.ts +44 -1
  202. package/dist/db/Schema.d.ts.map +1 -1
  203. package/dist/db/Schema.js +56 -3
  204. package/dist/db/Schema.js.map +1 -1
  205. package/dist/db/tables/apiKeyAdmissions.d.ts +28 -2
  206. package/dist/db/tables/apiKeyAdmissions.d.ts.map +1 -1
  207. package/dist/db/tables/apiKeyAdmissions.js +65 -9
  208. package/dist/db/tables/apiKeyAdmissions.js.map +1 -1
  209. package/dist/db/tables/apiKeyOwnerTombstones.d.ts +2 -0
  210. package/dist/db/tables/apiKeyOwnerTombstones.d.ts.map +1 -1
  211. package/dist/db/tables/apiKeyOwnerTombstones.js +2 -2
  212. package/dist/db/tables/apiKeyOwnerTombstones.js.map +1 -1
  213. package/dist/db/tables/authAccounts.d.ts.map +1 -1
  214. package/dist/db/tables/authAccounts.js +1 -0
  215. package/dist/db/tables/authAccounts.js.map +1 -1
  216. package/dist/db/tables/earnVaults.d.ts +5 -1
  217. package/dist/db/tables/earnVaults.d.ts.map +1 -1
  218. package/dist/db/tables/earnVaults.js +12 -1
  219. package/dist/db/tables/earnVaults.js.map +1 -1
  220. package/dist/db/tables/organizations.d.ts +4 -2
  221. package/dist/db/tables/organizations.d.ts.map +1 -1
  222. package/dist/db/tables/organizations.js +8 -34
  223. package/dist/db/tables/organizations.js.map +1 -1
  224. package/dist/db/tables/requestUsage.d.ts +5 -1
  225. package/dist/db/tables/requestUsage.d.ts.map +1 -1
  226. package/dist/db/tables/requestUsage.js +10 -2
  227. package/dist/db/tables/requestUsage.js.map +1 -1
  228. package/dist/db/tables/rewardEligibilityAssociations.d.ts +13 -0
  229. package/dist/db/tables/rewardEligibilityAssociations.d.ts.map +1 -1
  230. package/dist/db/tables/rewardEligibilityAssociations.js +11 -0
  231. package/dist/db/tables/rewardEligibilityAssociations.js.map +1 -1
  232. package/dist/db/tables/rewardRuns.d.ts.map +1 -1
  233. package/dist/db/tables/rewardRuns.js +4 -0
  234. package/dist/db/tables/rewardRuns.js.map +1 -1
  235. package/dist/db/tables/rewardTransactionAttempts.d.ts.map +1 -1
  236. package/dist/db/tables/rewardTransactionAttempts.js +2 -0
  237. package/dist/db/tables/rewardTransactionAttempts.js.map +1 -1
  238. package/dist/db/tables/routesDepositAddresses.d.ts +29 -0
  239. package/dist/db/tables/routesDepositAddresses.d.ts.map +1 -1
  240. package/dist/db/tables/routesDepositAddresses.js +84 -31
  241. package/dist/db/tables/routesDepositAddresses.js.map +1 -1
  242. package/dist/db/tables/routesDeposits.d.ts.map +1 -1
  243. package/dist/db/tables/routesDeposits.js +31 -21
  244. package/dist/db/tables/routesDeposits.js.map +1 -1
  245. package/dist/db/tables/routesIdempotency.d.ts.map +1 -1
  246. package/dist/db/tables/routesIdempotency.js +2 -0
  247. package/dist/db/tables/routesIdempotency.js.map +1 -1
  248. package/dist/db/tables/routesPolicies.d.ts +58 -0
  249. package/dist/db/tables/routesPolicies.d.ts.map +1 -0
  250. package/dist/db/tables/routesPolicies.js +198 -0
  251. package/dist/db/tables/routesPolicies.js.map +1 -0
  252. package/dist/db/tables/routesTransferSubsidies.d.ts +22 -0
  253. package/dist/db/tables/routesTransferSubsidies.d.ts.map +1 -1
  254. package/dist/db/tables/routesTransferSubsidies.js +41 -0
  255. package/dist/db/tables/routesTransferSubsidies.js.map +1 -1
  256. package/dist/db/tables/routesTransferSubsidyNonces.d.ts.map +1 -1
  257. package/dist/db/tables/routesTransferSubsidyNonces.js +12 -4
  258. package/dist/db/tables/routesTransferSubsidyNonces.js.map +1 -1
  259. package/dist/db/tables/routesTransfers.d.ts +26 -1
  260. package/dist/db/tables/routesTransfers.d.ts.map +1 -1
  261. package/dist/db/tables/routesTransfers.js +36 -6
  262. package/dist/db/tables/routesTransfers.js.map +1 -1
  263. package/dist/db/tables/sponsoredTransactions.d.ts +45 -13
  264. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  265. package/dist/db/tables/sponsoredTransactions.js +144 -33
  266. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  267. package/dist/db/tables/users.d.ts +2 -0
  268. package/dist/db/tables/users.d.ts.map +1 -1
  269. package/dist/db/tables/users.js +11 -0
  270. package/dist/db/tables/users.js.map +1 -1
  271. package/dist/handlers/internal/multisig.d.ts +1 -1
  272. package/dist/handlers/internal/multisig.d.ts.map +1 -1
  273. package/dist/handlers/internal/multisig.js +3 -2
  274. package/dist/handlers/internal/multisig.js.map +1 -1
  275. package/dist/handlers/relay.d.ts +2 -0
  276. package/dist/handlers/relay.d.ts.map +1 -1
  277. package/dist/handlers/relay.js +34 -15
  278. package/dist/handlers/relay.js.map +1 -1
  279. package/dist/internal/Auth.d.ts +57 -6
  280. package/dist/internal/Auth.d.ts.map +1 -1
  281. package/dist/internal/Auth.js +182 -78
  282. package/dist/internal/Auth.js.map +1 -1
  283. package/dist/internal/BetterAuth.d.ts +22 -0
  284. package/dist/internal/BetterAuth.d.ts.map +1 -1
  285. package/dist/internal/BetterAuth.js +17 -14
  286. package/dist/internal/BetterAuth.js.map +1 -1
  287. package/dist/internal/Cache.d.ts +5 -0
  288. package/dist/internal/Cache.d.ts.map +1 -1
  289. package/dist/internal/Cache.js +3 -1
  290. package/dist/internal/Cache.js.map +1 -1
  291. package/dist/internal/CliAuth.d.ts +243 -0
  292. package/dist/internal/CliAuth.d.ts.map +1 -0
  293. package/dist/internal/CliAuth.js +249 -0
  294. package/dist/internal/CliAuth.js.map +1 -0
  295. package/dist/internal/EarnSharePrices.d.ts +1 -1
  296. package/dist/internal/EarnSharePrices.d.ts.map +1 -1
  297. package/dist/internal/EarnSharePrices.js +7 -3
  298. package/dist/internal/EarnSharePrices.js.map +1 -1
  299. package/dist/internal/EarnVaults.d.ts +47 -0
  300. package/dist/internal/EarnVaults.d.ts.map +1 -1
  301. package/dist/internal/EarnVaults.js +188 -4
  302. package/dist/internal/EarnVaults.js.map +1 -1
  303. package/dist/internal/EarnWithdrawals.d.ts +73 -0
  304. package/dist/internal/EarnWithdrawals.d.ts.map +1 -0
  305. package/dist/internal/EarnWithdrawals.js +189 -0
  306. package/dist/internal/EarnWithdrawals.js.map +1 -0
  307. package/dist/internal/ExecutionContext.d.ts +21 -0
  308. package/dist/internal/ExecutionContext.d.ts.map +1 -0
  309. package/dist/internal/ExecutionContext.js +16 -0
  310. package/dist/internal/ExecutionContext.js.map +1 -0
  311. package/dist/internal/Log.d.ts +7 -3
  312. package/dist/internal/Log.d.ts.map +1 -1
  313. package/dist/internal/Log.js +163 -130
  314. package/dist/internal/Log.js.map +1 -1
  315. package/dist/internal/MetricSink.d.ts.map +1 -1
  316. package/dist/internal/MetricSink.js +26 -1
  317. package/dist/internal/MetricSink.js.map +1 -1
  318. package/dist/internal/RateLimit.d.ts +67 -0
  319. package/dist/internal/RateLimit.d.ts.map +1 -1
  320. package/dist/internal/RateLimit.js +174 -27
  321. package/dist/internal/RateLimit.js.map +1 -1
  322. package/dist/internal/Store.d.ts +6 -0
  323. package/dist/internal/Store.d.ts.map +1 -1
  324. package/dist/internal/Store.js +4 -5
  325. package/dist/internal/Store.js.map +1 -1
  326. package/dist/internal/Timing.d.ts +6 -0
  327. package/dist/internal/Timing.d.ts.map +1 -1
  328. package/dist/internal/Timing.js +21 -1
  329. package/dist/internal/Timing.js.map +1 -1
  330. package/dist/internal/Tron.d.ts +124 -0
  331. package/dist/internal/Tron.d.ts.map +1 -0
  332. package/dist/internal/Tron.js +202 -0
  333. package/dist/internal/Tron.js.map +1 -0
  334. package/dist/internal/Viem.d.ts +4 -0
  335. package/dist/internal/Viem.d.ts.map +1 -1
  336. package/dist/internal/Viem.js +25 -6
  337. package/dist/internal/Viem.js.map +1 -1
  338. package/dist/internal/rewards/Read.d.ts +2 -2
  339. package/dist/internal/rewards/Read.d.ts.map +1 -1
  340. package/dist/internal/rewards/Read.js +11 -2
  341. package/dist/internal/rewards/Read.js.map +1 -1
  342. package/dist/internal/routes/Action.d.ts +27 -0
  343. package/dist/internal/routes/Action.d.ts.map +1 -1
  344. package/dist/internal/routes/Action.js +49 -1
  345. package/dist/internal/routes/Action.js.map +1 -1
  346. package/dist/internal/routes/Chain.d.ts +2 -0
  347. package/dist/internal/routes/Chain.d.ts.map +1 -1
  348. package/dist/internal/routes/Chain.js +4 -0
  349. package/dist/internal/routes/Chain.js.map +1 -1
  350. package/dist/internal/routes/DepositAddress.d.ts.map +1 -1
  351. package/dist/internal/routes/DepositAddress.js +5 -0
  352. package/dist/internal/routes/DepositAddress.js.map +1 -1
  353. package/dist/internal/routes/Evidence.d.ts.map +1 -1
  354. package/dist/internal/routes/Evidence.js +6 -2
  355. package/dist/internal/routes/Evidence.js.map +1 -1
  356. package/dist/internal/routes/EvmTransferSettlement.d.ts +17 -0
  357. package/dist/internal/routes/EvmTransferSettlement.d.ts.map +1 -0
  358. package/dist/internal/routes/EvmTransferSettlement.js +196 -0
  359. package/dist/internal/routes/EvmTransferSettlement.js.map +1 -0
  360. package/dist/internal/routes/Policy.d.ts +161 -0
  361. package/dist/internal/routes/Policy.d.ts.map +1 -0
  362. package/dist/internal/routes/Policy.js +249 -0
  363. package/dist/internal/routes/Policy.js.map +1 -0
  364. package/dist/internal/routes/Provider.d.ts +66 -3
  365. package/dist/internal/routes/Provider.d.ts.map +1 -1
  366. package/dist/internal/routes/Provider.js +106 -27
  367. package/dist/internal/routes/Provider.js.map +1 -1
  368. package/dist/internal/routes/Quota.d.ts +57 -0
  369. package/dist/internal/routes/Quota.d.ts.map +1 -0
  370. package/dist/internal/routes/Quota.js +144 -0
  371. package/dist/internal/routes/Quota.js.map +1 -0
  372. package/dist/internal/routes/Reconciliation.d.ts.map +1 -1
  373. package/dist/internal/routes/Reconciliation.js +163 -47
  374. package/dist/internal/routes/Reconciliation.js.map +1 -1
  375. package/dist/internal/routes/SolanaTransferSettlement.d.ts +12 -0
  376. package/dist/internal/routes/SolanaTransferSettlement.d.ts.map +1 -0
  377. package/dist/internal/routes/SolanaTransferSettlement.js +220 -0
  378. package/dist/internal/routes/SolanaTransferSettlement.js.map +1 -0
  379. package/dist/internal/routes/SolanaTransferSubsidy.d.ts +172 -0
  380. package/dist/internal/routes/SolanaTransferSubsidy.d.ts.map +1 -0
  381. package/dist/internal/routes/SolanaTransferSubsidy.js +564 -0
  382. package/dist/internal/routes/SolanaTransferSubsidy.js.map +1 -0
  383. package/dist/internal/routes/Subsidy.d.ts +2 -2
  384. package/dist/internal/routes/Subsidy.d.ts.map +1 -1
  385. package/dist/internal/routes/Subsidy.js +2 -2
  386. package/dist/internal/routes/Subsidy.js.map +1 -1
  387. package/dist/internal/routes/Transfer.d.ts +229 -1
  388. package/dist/internal/routes/Transfer.d.ts.map +1 -1
  389. package/dist/internal/routes/Transfer.js +644 -7
  390. package/dist/internal/routes/Transfer.js.map +1 -1
  391. package/dist/internal/routes/TransferReconciliation.d.ts +6 -0
  392. package/dist/internal/routes/TransferReconciliation.d.ts.map +1 -1
  393. package/dist/internal/routes/TransferReconciliation.js +83 -159
  394. package/dist/internal/routes/TransferReconciliation.js.map +1 -1
  395. package/dist/internal/routes/TransferSettlement.d.ts +45 -0
  396. package/dist/internal/routes/TransferSettlement.d.ts.map +1 -0
  397. package/dist/internal/routes/TransferSettlement.js +2 -0
  398. package/dist/internal/routes/TransferSettlement.js.map +1 -0
  399. package/dist/internal/routes/TransferSubsidy.d.ts +23 -8
  400. package/dist/internal/routes/TransferSubsidy.d.ts.map +1 -1
  401. package/dist/internal/routes/TransferSubsidy.js +64 -5
  402. package/dist/internal/routes/TransferSubsidy.js.map +1 -1
  403. package/dist/internal/routes/TronTransferSettlement.d.ts +12 -0
  404. package/dist/internal/routes/TronTransferSettlement.d.ts.map +1 -0
  405. package/dist/internal/routes/TronTransferSettlement.js +201 -0
  406. package/dist/internal/routes/TronTransferSettlement.js.map +1 -0
  407. package/dist/internal/routes/TronTransferSubsidy.d.ts +174 -0
  408. package/dist/internal/routes/TronTransferSubsidy.d.ts.map +1 -0
  409. package/dist/internal/routes/TronTransferSubsidy.js +439 -0
  410. package/dist/internal/routes/TronTransferSubsidy.js.map +1 -0
  411. package/dist/internal/routes/index.d.ts +3 -0
  412. package/dist/internal/routes/index.d.ts.map +1 -1
  413. package/dist/internal/routes/index.js +3 -0
  414. package/dist/internal/routes/index.js.map +1 -1
  415. package/dist/internal/routes/providers/across.d.ts +3 -0
  416. package/dist/internal/routes/providers/across.d.ts.map +1 -1
  417. package/dist/internal/routes/providers/across.js +11 -0
  418. package/dist/internal/routes/providers/across.js.map +1 -1
  419. package/dist/internal/routes/providers/legacyMesh.d.ts +29 -0
  420. package/dist/internal/routes/providers/legacyMesh.d.ts.map +1 -0
  421. package/dist/internal/routes/providers/legacyMesh.js +474 -0
  422. package/dist/internal/routes/providers/legacyMesh.js.map +1 -0
  423. package/dist/internal/routes/providers/legacyMeshDelivery.d.ts +59 -0
  424. package/dist/internal/routes/providers/legacyMeshDelivery.d.ts.map +1 -0
  425. package/dist/internal/routes/providers/legacyMeshDelivery.js +229 -0
  426. package/dist/internal/routes/providers/legacyMeshDelivery.js.map +1 -0
  427. package/dist/internal/routes/providers/legacyMeshOutbound.d.ts +19 -0
  428. package/dist/internal/routes/providers/legacyMeshOutbound.d.ts.map +1 -0
  429. package/dist/internal/routes/providers/legacyMeshOutbound.js +457 -0
  430. package/dist/internal/routes/providers/legacyMeshOutbound.js.map +1 -0
  431. package/dist/internal/routes/providers/legacyMeshOutboundDelivery.d.ts +123 -0
  432. package/dist/internal/routes/providers/legacyMeshOutboundDelivery.d.ts.map +1 -0
  433. package/dist/internal/routes/providers/legacyMeshOutboundDelivery.js +333 -0
  434. package/dist/internal/routes/providers/legacyMeshOutboundDelivery.js.map +1 -0
  435. package/dist/internal/routes/providers/propAmm.d.ts +70 -0
  436. package/dist/internal/routes/providers/propAmm.d.ts.map +1 -0
  437. package/dist/internal/routes/providers/propAmm.js +524 -0
  438. package/dist/internal/routes/providers/propAmm.js.map +1 -0
  439. package/dist/internal/routes/providers/relay.d.ts +3 -0
  440. package/dist/internal/routes/providers/relay.d.ts.map +1 -1
  441. package/dist/internal/routes/providers/relay.js +352 -41
  442. package/dist/internal/routes/providers/relay.js.map +1 -1
  443. package/dist/internal/routes/providers/rhino.d.ts +3 -0
  444. package/dist/internal/routes/providers/rhino.d.ts.map +1 -1
  445. package/dist/internal/routes/providers/rhino.js +11 -0
  446. package/dist/internal/routes/providers/rhino.js.map +1 -1
  447. package/dist/internal/routes/providers/squid.d.ts +3 -0
  448. package/dist/internal/routes/providers/squid.d.ts.map +1 -1
  449. package/dist/internal/routes/providers/squid.js +19 -0
  450. package/dist/internal/routes/providers/squid.js.map +1 -1
  451. package/dist/internal/routes/providers/stargate.d.ts.map +1 -1
  452. package/dist/internal/routes/providers/stargate.js +22 -9
  453. package/dist/internal/routes/providers/stargate.js.map +1 -1
  454. package/dist/internal/routes/providers/symbiosis.d.ts.map +1 -1
  455. package/dist/internal/routes/providers/symbiosis.js +13 -17
  456. package/dist/internal/routes/providers/symbiosis.js.map +1 -1
  457. package/dist/providers/index.d.ts +14 -0
  458. package/dist/providers/index.d.ts.map +1 -1
  459. package/dist/providers/index.js +6 -0
  460. package/dist/providers/index.js.map +1 -1
  461. package/package.json +16 -6
  462. package/src/ApiKey.ts +7 -3
  463. package/src/ApiKeys.test.ts +652 -8
  464. package/src/ApiKeys.ts +191 -11
  465. package/src/App.test.ts +405 -18
  466. package/src/App.ts +51 -15
  467. package/src/Client.test-d.ts +157 -10
  468. package/src/Client.test.ts +4 -4
  469. package/src/Scope.ts +1 -2
  470. package/src/admin/App.ts +11 -5
  471. package/src/admin/apps/api-keys.test.ts +98 -2
  472. package/src/admin/apps/api-keys.ts +21 -12
  473. package/src/admin/apps/earn-vaults.test.ts +76 -7
  474. package/src/admin/apps/earn-vaults.ts +47 -8
  475. package/src/admin/apps/organizations.test.ts +147 -31
  476. package/src/admin/apps/organizations.ts +5 -4
  477. package/src/admin/apps/route-policies.test.ts +220 -0
  478. package/src/admin/apps/route-policies.ts +322 -0
  479. package/src/admin/apps/routes-support.test.ts +107 -2
  480. package/src/admin/apps/routes-support.ts +43 -3
  481. package/src/admin/apps/routes.test.ts +150 -0
  482. package/src/admin/apps/routes.ts +97 -1
  483. package/src/admin/apps/scopes.test.ts +1 -1
  484. package/src/admin/index.ts +0 -1
  485. package/src/admin/ui/plugin.ts +2 -1
  486. package/src/admin/ui/src/components/Dialog.tsx +1 -1
  487. package/src/admin/ui/src/components/EarnVaultForm.tsx +45 -0
  488. package/src/admin/ui/src/components/RoutePicker.tsx +79 -0
  489. package/src/admin/ui/src/lib/earn-vaults.ts +1 -1
  490. package/src/admin/ui/src/lib/route-policies.test.ts +452 -0
  491. package/src/admin/ui/src/lib/route-policies.ts +232 -0
  492. package/src/admin/ui/src/lib/routes.ts +34 -0
  493. package/src/admin/ui/src/routeTree.gen.ts +21 -0
  494. package/src/admin/ui/src/routes/api-keys.tsx +21 -2
  495. package/src/admin/ui/src/routes/early-access.tsx +1 -0
  496. package/src/admin/ui/src/routes/earn.vaults.tsx +1 -0
  497. package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +22 -0
  498. package/src/admin/ui/src/routes/earn.vaults_.new.tsx +10 -0
  499. package/src/admin/ui/src/routes/organizations.tsx +1 -0
  500. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +18 -3
  501. package/src/admin/ui/src/routes/route-policies.tsx +678 -0
  502. package/src/admin/ui/src/routes/routes.tsx +85 -2
  503. package/src/admin/ui/src/routes/routes_.support.tsx +6 -22
  504. package/src/admin/ui/src/routes/subsidies.tsx +1 -0
  505. package/src/admin/ui/src/routes/verified-tokens.tsx +1 -0
  506. package/src/admin/ui.generated.ts +258 -202
  507. package/src/analytics/Analytics.test.ts +4 -50
  508. package/src/analytics/Analytics.ts +65 -1
  509. package/src/analytics/tables/requestEvents.test.ts +402 -1
  510. package/src/analytics/tables/requestEvents.ts +62 -93
  511. package/src/apps/data/routes/activities.test.ts +315 -14
  512. package/src/apps/data/routes/activities.ts +60 -0
  513. package/src/apps/data/routes/balances.ts +5 -7
  514. package/src/apps/data/routes/earn.bench.ts +18 -0
  515. package/src/apps/data/routes/earn.local.test.ts +507 -0
  516. package/src/apps/data/routes/earn.test.ts +405 -127
  517. package/src/apps/data/routes/earn.ts +660 -270
  518. package/src/apps/data/routes/exchanges.bench.ts +3 -1
  519. package/src/apps/data/routes/exchanges.test.ts +166 -2
  520. package/src/apps/data/routes/exchanges.ts +308 -101
  521. package/src/apps/data/routes/fee-amm.test.ts +134 -2
  522. package/src/apps/data/routes/fee-amm.ts +122 -60
  523. package/src/apps/data/routes/receipts.test.ts +21 -18
  524. package/src/apps/data/routes/rpc.test.ts +2 -2
  525. package/src/apps/data/routes/tokens.provenance.test.ts +157 -0
  526. package/src/apps/data/routes/tokens.test.ts +4 -4
  527. package/src/apps/data/routes/tokens.ts +11 -6
  528. package/src/apps/data/routes/transactions.test.ts +29 -0
  529. package/src/apps/data/routes/transactions.ts +33 -22
  530. package/src/apps/data/routes/webhooks.test.ts +12 -3
  531. package/src/apps/data/routes/webhooks.ts +2 -1
  532. package/src/apps/management/App.ts +4 -0
  533. package/src/apps/management/Billing.test.ts +253 -27
  534. package/src/apps/management/Billing.ts +83 -29
  535. package/src/apps/management/routes/api-keys.test.ts +1 -1
  536. package/src/apps/management/routes/api-keys.ts +85 -11
  537. package/src/apps/management/routes/billing.test.ts +68 -4
  538. package/src/apps/management/routes/cli.test.ts +370 -0
  539. package/src/apps/management/routes/cli.ts +533 -0
  540. package/src/apps/management/routes/me.test.ts +14 -4
  541. package/src/apps/management/routes/orgs.test.ts +108 -4
  542. package/src/apps/management/routes/orgs.ts +7 -2
  543. package/src/apps/management/routes/usage.test.ts +2 -2
  544. package/src/apps/mpp/internal/Policy.test.ts +51 -4
  545. package/src/apps/mpp/internal/Policy.ts +6 -2
  546. package/src/apps/mpp/internal/Sponsorship.test.ts +29 -0
  547. package/src/apps/mpp/internal/Sponsorship.ts +6 -4
  548. package/src/apps/relay/App.test.ts +85 -1
  549. package/src/apps/relay/App.ts +28 -4
  550. package/src/apps/relay/Sponsorships.test.ts +97 -1
  551. package/src/apps/relay/Sponsorships.ts +77 -66
  552. package/src/apps/routes/Access.test.ts +319 -0
  553. package/src/apps/routes/Access.ts +147 -0
  554. package/src/apps/routes/App.ts +10 -0
  555. package/src/apps/routes/routes/chains.test.ts +3 -2
  556. package/src/apps/routes/routes/deposit-addresses.test.ts +978 -34
  557. package/src/apps/routes/routes/deposit-addresses.ts +243 -32
  558. package/src/apps/routes/routes/propAmm.local.test.ts +951 -0
  559. package/src/apps/routes/routes/quotes.test.ts +81 -8
  560. package/src/apps/routes/routes/quotes.ts +109 -27
  561. package/src/apps/routes/routes/transfers.test.ts +252 -15
  562. package/src/apps/routes/routes/transfers.ts +212 -33
  563. package/src/cli/ApiKeys.test.ts +265 -0
  564. package/src/cli/ApiKeys.ts +189 -0
  565. package/src/cli/Cli.test.ts +188 -0
  566. package/src/cli/Cli.ts +280 -12
  567. package/src/cli/Credentials.test.ts +122 -0
  568. package/src/cli/Credentials.ts +144 -0
  569. package/src/cli/Spec.test.ts +133 -0
  570. package/src/cli/Spec.ts +132 -0
  571. package/src/cli/bin.test.ts +49 -0
  572. package/src/cli/bin.ts +5 -1
  573. package/src/cli/commands/auth.test.ts +138 -0
  574. package/src/cli/commands/auth.ts +254 -0
  575. package/src/cli/commands/keys.test.ts +68 -0
  576. package/src/cli/commands/keys.ts +125 -0
  577. package/src/cloudflare.ts +184 -36
  578. package/src/db/Db.test.ts +877 -0
  579. package/src/db/Db.ts +498 -1
  580. package/src/db/Schema.ts +75 -4
  581. package/src/db/tables/apiKeyAdmissions.test.ts +57 -0
  582. package/src/db/tables/apiKeyAdmissions.ts +101 -11
  583. package/src/db/tables/apiKeyOwnerTombstones.ts +2 -2
  584. package/src/db/tables/authAccounts.test.ts +30 -0
  585. package/src/db/tables/authAccounts.ts +1 -0
  586. package/src/db/tables/earnVaults.test.ts +34 -0
  587. package/src/db/tables/earnVaults.ts +17 -2
  588. package/src/db/tables/organizations.test.ts +148 -84
  589. package/src/db/tables/organizations.ts +11 -43
  590. package/src/db/tables/requestUsage.ts +13 -2
  591. package/src/db/tables/rewardCampaigns.test.ts +163 -0
  592. package/src/db/tables/rewardEligibilityAssociations.test.ts +14 -0
  593. package/src/db/tables/rewardEligibilityAssociations.ts +24 -0
  594. package/src/db/tables/rewardRuns.ts +4 -0
  595. package/src/db/tables/rewardTransactionAttempts.ts +2 -0
  596. package/src/db/tables/routesDepositAddresses.test.ts +263 -0
  597. package/src/db/tables/routesDepositAddresses.ts +118 -34
  598. package/src/db/tables/routesDeposits.test.ts +66 -5
  599. package/src/db/tables/routesDeposits.ts +47 -26
  600. package/src/db/tables/routesIdempotency.test.ts +80 -0
  601. package/src/db/tables/routesIdempotency.ts +2 -0
  602. package/src/db/tables/routesPolicies.test.ts +143 -0
  603. package/src/db/tables/routesPolicies.ts +251 -0
  604. package/src/db/tables/routesTransferSubsidies.ts +64 -0
  605. package/src/db/tables/routesTransferSubsidyNonces.ts +16 -4
  606. package/src/db/tables/routesTransfers.test.ts +183 -2
  607. package/src/db/tables/routesTransfers.ts +65 -6
  608. package/src/db/tables/sponsoredTransactions.test.ts +351 -76
  609. package/src/db/tables/sponsoredTransactions.ts +182 -38
  610. package/src/db/tables/users.test.ts +51 -0
  611. package/src/db/tables/users.ts +12 -0
  612. package/src/handlers/internal/multisig.store.test.ts +120 -0
  613. package/src/handlers/internal/multisig.test.ts +389 -0
  614. package/src/handlers/internal/multisig.ts +13 -10
  615. package/src/handlers/relay.test.ts +259 -83
  616. package/src/handlers/relay.ts +36 -17
  617. package/src/internal/Auth.test.ts +291 -8
  618. package/src/internal/Auth.ts +227 -96
  619. package/src/internal/BetterAuth.test.ts +58 -22
  620. package/src/internal/BetterAuth.ts +23 -17
  621. package/src/internal/Cache.ts +3 -1
  622. package/src/internal/CliAuth.test.ts +279 -0
  623. package/src/internal/CliAuth.ts +319 -0
  624. package/src/internal/EarnSharePrices.test.ts +25 -0
  625. package/src/internal/EarnSharePrices.ts +9 -2
  626. package/src/internal/EarnVaults.test.ts +67 -0
  627. package/src/internal/EarnVaults.ts +299 -4
  628. package/src/internal/EarnWithdrawals.test.ts +315 -0
  629. package/src/internal/EarnWithdrawals.ts +266 -0
  630. package/src/internal/ExecutionContext.ts +31 -0
  631. package/src/internal/Log.test.ts +210 -0
  632. package/src/internal/Log.ts +180 -142
  633. package/src/internal/MetricSink.test.ts +190 -15
  634. package/src/internal/MetricSink.ts +27 -1
  635. package/src/internal/RateLimit.test.ts +144 -8
  636. package/src/internal/RateLimit.ts +254 -26
  637. package/src/internal/Store.ts +4 -5
  638. package/src/internal/Timing.test.ts +32 -0
  639. package/src/internal/Timing.ts +20 -1
  640. package/src/internal/Tron.test-d.ts +22 -0
  641. package/src/internal/Tron.test.ts +94 -0
  642. package/src/internal/Tron.ts +289 -0
  643. package/src/internal/Viem.rpc.test.ts +76 -0
  644. package/src/internal/Viem.ts +29 -6
  645. package/src/internal/rewards/Read.test.ts +109 -0
  646. package/src/internal/rewards/Read.ts +13 -4
  647. package/src/internal/routes/Action.test.ts +70 -0
  648. package/src/internal/routes/Action.ts +76 -1
  649. package/src/internal/routes/Chain.test.ts +18 -0
  650. package/src/internal/routes/Chain.ts +5 -0
  651. package/src/internal/routes/DepositAddress.ts +5 -0
  652. package/src/internal/routes/Evidence.test.ts +64 -0
  653. package/src/internal/routes/Evidence.ts +11 -3
  654. package/src/internal/routes/EvmTransferSettlement.ts +213 -0
  655. package/src/internal/routes/Policy.test.ts +316 -0
  656. package/src/internal/routes/Policy.ts +399 -0
  657. package/src/internal/routes/Provider.test.ts +103 -2
  658. package/src/internal/routes/Provider.ts +149 -27
  659. package/src/internal/routes/Quota.test.ts +149 -0
  660. package/src/internal/routes/Quota.ts +226 -0
  661. package/src/internal/routes/Reconciliation.local.test.ts +285 -0
  662. package/src/internal/routes/Reconciliation.test.ts +371 -13
  663. package/src/internal/routes/Reconciliation.ts +193 -42
  664. package/src/internal/routes/SolanaTransferSettlement.ts +232 -0
  665. package/src/internal/routes/SolanaTransferSubsidy.test.ts +471 -0
  666. package/src/internal/routes/SolanaTransferSubsidy.ts +760 -0
  667. package/src/internal/routes/SourceObservation.test.ts +221 -0
  668. package/src/internal/routes/Subsidy.local.test.ts +46 -0
  669. package/src/internal/routes/Subsidy.ts +4 -2
  670. package/src/internal/routes/Transfer.solana.test.ts +389 -0
  671. package/src/internal/routes/Transfer.test.ts +130 -1
  672. package/src/internal/routes/Transfer.tron.test.ts +172 -0
  673. package/src/internal/routes/Transfer.ts +866 -8
  674. package/src/internal/routes/TransferReconciliation.test.ts +26 -4
  675. package/src/internal/routes/TransferReconciliation.ts +91 -166
  676. package/src/internal/routes/TransferSettlement.ts +48 -0
  677. package/src/internal/routes/TransferSubsidy.local.test.ts +143 -0
  678. package/src/internal/routes/TransferSubsidy.test.ts +34 -4
  679. package/src/internal/routes/TransferSubsidy.ts +87 -12
  680. package/src/internal/routes/TronTransferSettlement.ts +212 -0
  681. package/src/internal/routes/TronTransferSubsidy.test.ts +109 -0
  682. package/src/internal/routes/TronTransferSubsidy.ts +619 -0
  683. package/src/internal/routes/index.test.ts +3 -0
  684. package/src/internal/routes/index.ts +3 -0
  685. package/src/internal/routes/providers/across.ts +13 -0
  686. package/src/internal/routes/providers/index.test.ts +141 -0
  687. package/src/internal/routes/providers/legacyMesh.test.ts +484 -0
  688. package/src/internal/routes/providers/legacyMesh.ts +633 -0
  689. package/src/internal/routes/providers/legacyMeshDelivery.test.ts +306 -0
  690. package/src/internal/routes/providers/legacyMeshDelivery.ts +320 -0
  691. package/src/internal/routes/providers/legacyMeshOutbound.test.ts +401 -0
  692. package/src/internal/routes/providers/legacyMeshOutbound.ts +566 -0
  693. package/src/internal/routes/providers/legacyMeshOutboundDelivery.ts +473 -0
  694. package/src/internal/routes/providers/propAmm.ts +640 -0
  695. package/src/internal/routes/providers/relay.test.ts +1263 -41
  696. package/src/internal/routes/providers/relay.ts +423 -38
  697. package/src/internal/routes/providers/rhino.ts +14 -1
  698. package/src/internal/routes/providers/squid.ts +21 -0
  699. package/src/internal/routes/providers/stargate.test.ts +105 -1
  700. package/src/internal/routes/providers/stargate.ts +22 -9
  701. package/src/internal/routes/providers/symbiosis.ts +13 -47
  702. package/src/providers/index.test.ts +2 -0
  703. package/src/providers/index.ts +18 -0
  704. package/dist/admin/Access.d.ts +0 -39
  705. package/dist/admin/Access.d.ts.map +0 -1
  706. package/dist/admin/Access.js +0 -73
  707. package/dist/admin/Access.js.map +0 -1
  708. package/src/admin/Access.test.ts +0 -130
  709. package/src/admin/Access.ts +0 -85
@@ -7,12 +7,15 @@ export * as DepositWebhook from './DepositWebhook.js';
7
7
  export * as Evidence from './Evidence.js';
8
8
  export * as Observability from './Observability.js';
9
9
  export * as Provider from './Provider.js';
10
+ export * as Quota from './Quota.js';
10
11
  export * as Reconciliation from './Reconciliation.js';
11
12
  export * as Route from './Route.js';
13
+ export * as SolanaTransferSubsidy from './SolanaTransferSubsidy.js';
12
14
  export * as SourceObservation from './SourceObservation.js';
13
15
  export * as Subsidy from './Subsidy.js';
14
16
  export * as Token from './Token.js';
15
17
  export * as Transfer from './Transfer.js';
16
18
  export * as TransferReconciliation from './TransferReconciliation.js';
17
19
  export * as TransferSubsidy from './TransferSubsidy.js';
20
+ export * as TronTransferSubsidy from './TronTransferSubsidy.js';
18
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA"}
@@ -7,12 +7,15 @@ export * as DepositWebhook from './DepositWebhook.js';
7
7
  export * as Evidence from './Evidence.js';
8
8
  export * as Observability from './Observability.js';
9
9
  export * as Provider from './Provider.js';
10
+ export * as Quota from './Quota.js';
10
11
  export * as Reconciliation from './Reconciliation.js';
11
12
  export * as Route from './Route.js';
13
+ export * as SolanaTransferSubsidy from './SolanaTransferSubsidy.js';
12
14
  export * as SourceObservation from './SourceObservation.js';
13
15
  export * as Subsidy from './Subsidy.js';
14
16
  export * as Token from './Token.js';
15
17
  export * as Transfer from './Transfer.js';
16
18
  export * as TransferReconciliation from './TransferReconciliation.js';
17
19
  export * as TransferSubsidy from './TransferSubsidy.js';
20
+ export * as TronTransferSubsidy from './TronTransferSubsidy.js';
18
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA"}
@@ -1,3 +1,4 @@
1
+ import * as Store from '../../Store.js';
1
2
  import * as RoutesProvider from '../Provider.js';
2
3
  /** Creates an Across route provider backed by `/swap/approval`. */
3
4
  export declare function across(options: across.Options): RoutesProvider.Provider<"across">;
@@ -14,6 +15,8 @@ export declare namespace across {
14
15
  integratorId: string;
15
16
  /** Clock override for deterministic tests. */
16
17
  now?: (() => Date) | undefined;
18
+ /** Store used to coordinate provider-reported cooldowns. */
19
+ rateLimitStore?: Store.Store | undefined;
17
20
  /** Quote wallet address used as the Across depositor and recipient. */
18
21
  userAddress: string;
19
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"across.d.ts","sourceRoot":"","sources":["../../../../src/internal/routes/providers/across.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAA;AA0BhD,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,qCAuF7C;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,KAAK,OAAO,GAAG;QACb,6CAA6C;QAC7C,MAAM,EAAE,MAAM,CAAA;QACd,sDAAsD;QACtD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+CAA+C;QAC/C,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAAA;QACxC,iEAAiE;QACjE,YAAY,EAAE,MAAM,CAAA;QACpB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;QAC9B,uEAAuE;QACvE,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF"}
1
+ {"version":3,"file":"across.d.ts","sourceRoot":"","sources":["../../../../src/internal/routes/providers/across.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAEvC,OAAO,KAAK,cAAc,MAAM,gBAAgB,CAAA;AA6BhD,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,qCA8F7C;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,+BAA+B;IAC/B,KAAK,OAAO,GAAG;QACb,6CAA6C;QAC7C,MAAM,EAAE,MAAM,CAAA;QACd,sDAAsD;QACtD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+CAA+C;QAC/C,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAAA;QACxC,iEAAiE;QACjE,YAAY,EAAE,MAAM,CAAA;QACpB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;QAC9B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;QACxC,uEAAuE;QACvE,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF"}
@@ -1,9 +1,13 @@
1
1
  import { Address } from 'ox';
2
2
  import * as z from 'zod/mini';
3
+ import * as Store from '../../Store.js';
3
4
  import * as RoutesChain from '../Chain.js';
4
5
  import * as RoutesProvider from '../Provider.js';
6
+ import * as ProviderQuota from '../Quota.js';
5
7
  const defaultBaseUrl = 'https://app.across.to/api';
6
8
  const defaultFetch = (input, init) => globalThis.fetch(input, init);
9
+ const rateLimitWindowMs = 1_000;
10
+ const quotaStoreKey = 'routes:across:swap-approval';
7
11
  var schema;
8
12
  (function (schema) {
9
13
  const IntegerString = z.string().check(z.regex(/^\d+$/));
@@ -33,6 +37,7 @@ export function across(options) {
33
37
  endpoint.pathname = `${endpoint.pathname.replace(/\/+$/, '')}/swap/approval`;
34
38
  const fetch = options.fetch ?? defaultFetch;
35
39
  const now = options.now ?? (() => new Date());
40
+ const rateLimitStore = options.rateLimitStore ?? Store.memory();
36
41
  return RoutesProvider.from({
37
42
  id: 'across',
38
43
  name: 'Across',
@@ -54,6 +59,7 @@ export function across(options) {
54
59
  tradeType: 'exactInput',
55
60
  }).toString();
56
61
  try {
62
+ await ProviderQuota.check(rateLimitStore, { key: quotaStoreKey, now: now() });
57
63
  const quote = await RoutesProvider.requestJson(url, {
58
64
  fetch,
59
65
  headers: { Authorization: `Bearer ${options.apiKey}` },
@@ -89,6 +95,11 @@ export function across(options) {
89
95
  };
90
96
  }
91
97
  catch (cause) {
98
+ await ProviderQuota.blockOnRateLimit(rateLimitStore, cause, {
99
+ key: quotaStoreKey,
100
+ now: now(),
101
+ windowMs: rateLimitWindowMs,
102
+ });
92
103
  const unavailable = RoutesProvider.unavailable(cause, [
93
104
  'AMOUNT_TOO_HIGH',
94
105
  'AMOUNT_TOO_LOW',
@@ -1 +1 @@
1
- {"version":3,"file":"across.js","sourceRoot":"","sources":["../../../../src/internal/routes/providers/across.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"across.js","sourceRoot":"","sources":["../../../../src/internal/routes/providers/across.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type * as Chain from '../Chain.js';
2
+ import * as Provider from '../Provider.js';
3
+ /** Creates the direct Tron USDT to Tempo USDT0 Legacy Mesh provider. */
4
+ export declare function legacyMesh(options?: legacyMesh.Options): Provider.Provider<"legacy-mesh">;
5
+ export declare namespace legacyMesh {
6
+ /** Chain access for Legacy Mesh quotes and reconciliation. */
7
+ type Options = {
8
+ /** Fetch implementation for chain RPC requests. */
9
+ fetch?: Provider.Fetch | undefined;
10
+ /** Arbitrum endpoints used by the intermediate composer. */
11
+ hubRpcUrls?: readonly string[] | undefined;
12
+ /** Preferred endpoints for the route's source and destination chains. */
13
+ resolveRpcUrls?: ((chain: Chain.Chain) => readonly string[]) | undefined;
14
+ };
15
+ }
16
+ /** Checks solidified Tron receipt and transaction evidence against the prepared transfer. */
17
+ export declare function verifySourceEvidence(options: verifySourceEvidence.Options): Provider.verifySourceTransaction.ReturnType;
18
+ export declare namespace verifySourceEvidence {
19
+ /** Prepared transfer terms and untrusted native chain responses. */
20
+ type Options = Pick<Provider.verifySourceTransaction.Parameters, 'providerState' | 'transactionHash' | 'transfer'> & {
21
+ /** Solidified execution receipt from the native Tron API. */
22
+ receipt: unknown;
23
+ /** Solidified transaction from the native Tron API. */
24
+ transaction: unknown;
25
+ };
26
+ }
27
+ /** Checks the exact approvals, composed recipient, amounts, fee, and refund account. */
28
+ export declare function validateAction(options: Provider.validateTransferAction.Parameters): Provider.validateTransferAction.ReturnType;
29
+ //# sourceMappingURL=legacyMesh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyMesh.d.ts","sourceRoot":"","sources":["../../../../src/internal/routes/providers/legacyMesh.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AA+B1C,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,OAAO,GAAE,UAAU,CAAC,OAAY,oCA0N1D;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;QAClC,4DAA4D;QAC5D,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QAC1C,yEAAyE;QACzE,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,CAAA;KACzE,CAAA;CACF;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,CAAC,OAAO,GACpC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAiH7C;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,oEAAoE;IACpE,KAAK,OAAO,GAAG,IAAI,CACjB,QAAQ,CAAC,uBAAuB,CAAC,UAAU,EAC3C,eAAe,GAAG,iBAAiB,GAAG,UAAU,CACjD,GAAG;QACF,6DAA6D;QAC7D,OAAO,EAAE,OAAO,CAAA;QAChB,uDAAuD;QACvD,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;CACF;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,UAAU,GAClD,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAkC5C"}
@@ -0,0 +1,474 @@
1
+ import { AbiEvent, AbiFunction, AbiParameters, Address, Hash, Hex } from 'ox';
2
+ import { publicActions } from 'viem';
3
+ import * as z from 'zod/mini';
4
+ import * as Tron from '../../Tron.js';
5
+ import * as Viem from '../../Viem.js';
6
+ import * as Action from '../Action.js';
7
+ import * as Provider from '../Provider.js';
8
+ import * as Delivery from './legacyMeshDelivery.js';
9
+ import * as Outbound from './legacyMeshOutbound.js';
10
+ // Deployments: https://docs.usdt0.to/api/deployments. Keep the supported asset path pinned across catalog edits.
11
+ const sourceToken = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';
12
+ const sourcePool = 'TFG4wBaDQ8sHWWP1ACeSGnoNR6RRzevLPt';
13
+ const destinationToken = '0x20C00000000000000000000014f22CA97301EB73';
14
+ const hubComposer = '0x759BA420bF1ded1765F18C2DC3Fc57A1964A2Ad1';
15
+ const hubOft = '0x14E4A1B13bf7F943c8ff7C51fb60FA964A298D92';
16
+ const hubRpcUrls = ['https://arb1.arbitrum.io/rpc'];
17
+ const hubEid = 30_110;
18
+ const destinationEid = 30_410;
19
+ const quoteTtlMs = 60_000;
20
+ const sendParam = AbiParameters.from('(uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd)');
21
+ const approve = AbiFunction.from('function approve(address spender, uint256 amount) returns (bool)');
22
+ const quoteOft = AbiFunction.from('function quoteOFT((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam) view returns ((uint256 minAmountLD, uint256 maxAmountLD) limit, (int256 feeAmountLD, string description)[] fees, (uint256 amountSentLD, uint256 amountReceivedLD) receipt)');
23
+ const quoteSend = AbiFunction.from('function quoteSend((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam, bool payInLzToken) view returns ((uint256 nativeFee, uint256 lzTokenFee) fee)');
24
+ const send = AbiFunction.from('function send((uint32 dstEid, bytes32 to, uint256 amountLD, uint256 minAmountLD, bytes extraOptions, bytes composeMsg, bytes oftCmd) sendParam, (uint256 nativeFee, uint256 lzTokenFee) fee, address refundAddress) payable');
25
+ const oftSent = AbiEvent.from('event OFTSent(bytes32 indexed guid, uint32 dstEid, address indexed fromAddress, uint256 amountSentLD, uint256 amountReceivedLD)');
26
+ /** Creates the direct Tron USDT to Tempo USDT0 Legacy Mesh provider. */
27
+ export function legacyMesh(options = {}) {
28
+ const resolveRpcUrls = options.resolveRpcUrls ?? ((chain) => chain.rpcUrls);
29
+ function clients(chain, signal) {
30
+ return {
31
+ hub: Viem.createEvmClient({
32
+ chainId: 42161,
33
+ fetch: options.fetch ?? globalThis.fetch,
34
+ signal,
35
+ urls: options.hubRpcUrls ?? hubRpcUrls,
36
+ }).extend(publicActions),
37
+ source: Tron.createClient({
38
+ fetch: options.fetch ?? globalThis.fetch,
39
+ signal,
40
+ urls: resolveRpcUrls(chain),
41
+ }),
42
+ };
43
+ }
44
+ return Provider.from({
45
+ id: 'legacy-mesh',
46
+ name: 'USDT0 Legacy Mesh',
47
+ async getQuote(parameters, signal) {
48
+ const { candidate, route } = parameters;
49
+ if (candidate.sourceChain.id === 'eip155:4217' &&
50
+ candidate.destinationChain.id === 'tron:0x2b6653dc')
51
+ return Outbound.getQuote(parameters, signal, options);
52
+ try {
53
+ assertRoute(candidate);
54
+ const { hub, source } = clients(route.source.chain, signal);
55
+ const amount = await quoteAmount({
56
+ amount: BigInt(candidate.sourceAmount.amount),
57
+ hub,
58
+ source,
59
+ });
60
+ return {
61
+ destinationAmount: amount.toString(),
62
+ destinationAmountMin: amount.toString(),
63
+ quality: quality(),
64
+ sampledAt: new Date().toISOString(),
65
+ status: 'available',
66
+ };
67
+ }
68
+ catch (cause) {
69
+ if (!(cause instanceof Provider.ProviderUnavailableError))
70
+ throw cause;
71
+ return Provider.unavailableResult({
72
+ detail: 'legacy-mesh:tron-arbitrum-tempo',
73
+ message: 'amount-outside-liquidity-limits',
74
+ now: new Date(),
75
+ source: 'onchain',
76
+ });
77
+ }
78
+ },
79
+ async prepareTransfer(parameters, signal) {
80
+ if (parameters.candidate.sourceChain.id === 'eip155:4217' &&
81
+ parameters.candidate.destinationChain.id === 'tron:0x2b6653dc')
82
+ return Outbound.prepareTransfer(parameters, signal, options);
83
+ const { candidate, method, mode, recipient, sender, slippageBps } = parameters;
84
+ assertRoute(candidate);
85
+ if (method !== 'transaction' ||
86
+ mode !== 'exactSource' ||
87
+ !Address.validate(recipient, { strict: false }))
88
+ throw new Provider.ProviderConfigurationError();
89
+ Tron.toEvmAddress(sender);
90
+ const { hub, source } = clients(candidate.route.source.chain, signal);
91
+ const destination = Viem.createEvmClient({
92
+ chainId: 4217,
93
+ fetch: options.fetch ?? globalThis.fetch,
94
+ signal,
95
+ urls: resolveRpcUrls(candidate.route.destination.chain),
96
+ }).extend(publicActions);
97
+ const amount = await quoteAmount({
98
+ amount: BigInt(candidate.sourceAmount.amount),
99
+ hub,
100
+ source,
101
+ });
102
+ const quotedMinimum = (amount * BigInt(10_000 - (slippageBps ?? 0))) / 10000n;
103
+ const minimum = quotedMinimum > 0n ? quotedMinimum : 1n;
104
+ const onward = onwardParam({ amount, recipient });
105
+ const fee = await hub.readContract({
106
+ abi: [quoteSend],
107
+ address: hubOft,
108
+ args: [onward, false],
109
+ functionName: 'quoteSend',
110
+ });
111
+ if (fee.lzTokenFee !== 0n)
112
+ throw new Provider.ProviderPayloadError();
113
+ // The composer spends this native value on hop two; reserve 10% for fee movement before delivery.
114
+ const composeValue = (fee.nativeFee * 110n + 99n) / 100n;
115
+ const first = firstParam({
116
+ amount: BigInt(candidate.sourceAmount.amount),
117
+ composeValue,
118
+ minimum,
119
+ onward,
120
+ });
121
+ const messagingFee = AbiFunction.decodeResult(quoteSend, await source.call({
122
+ data: AbiFunction.encodeData(quoteSend, [first, false]),
123
+ from: sender,
124
+ to: sourcePool,
125
+ }));
126
+ if (messagingFee.lzTokenFee !== 0n ||
127
+ messagingFee.nativeFee > BigInt(Number.MAX_SAFE_INTEGER))
128
+ throw new Provider.ProviderPayloadError();
129
+ const [hubBlock, destinationBlock] = await Promise.all([
130
+ hub.getBlockNumber(),
131
+ destination.getBlockNumber(),
132
+ ]);
133
+ const action = {
134
+ calls: [
135
+ // Reset first so USDT approvals remain valid when the sender already has a nonzero allowance.
136
+ {
137
+ data: AbiFunction.encodeData(approve, [Tron.toEvmAddress(sourcePool), 0n]),
138
+ to: sourceToken,
139
+ value: '0x0',
140
+ },
141
+ {
142
+ data: AbiFunction.encodeData(approve, [
143
+ Tron.toEvmAddress(sourcePool),
144
+ BigInt(candidate.sourceAmount.amount),
145
+ ]),
146
+ to: sourceToken,
147
+ value: '0x0',
148
+ },
149
+ {
150
+ data: AbiFunction.encodeData(send, [first, messagingFee, Tron.toEvmAddress(sender)]),
151
+ to: sourcePool,
152
+ value: Hex.fromNumber(messagingFee.nativeFee),
153
+ },
154
+ ],
155
+ type: 'tron:calls',
156
+ };
157
+ validateAction({ ...parameters, action, destinationAmountMin: minimum.toString() });
158
+ const sampledAt = new Date();
159
+ return {
160
+ action,
161
+ destinationAmount: amount.toString(),
162
+ destinationAmountMin: minimum.toString(),
163
+ expiresAt: new Date(sampledAt.getTime() + quoteTtlMs).toISOString(),
164
+ fees: [
165
+ {
166
+ amount: messagingFee.nativeFee.toString(),
167
+ side: 'source',
168
+ token: {
169
+ address: 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb',
170
+ currency: 'TRX',
171
+ decimals: 6,
172
+ name: 'TRON',
173
+ standard: 'native',
174
+ symbol: 'TRX',
175
+ tokenKey: 'tron:0x2b6653dc/slip44:195',
176
+ verified: true,
177
+ },
178
+ },
179
+ ],
180
+ providerState: {
181
+ destinationBlockNumber: destinationBlock.toString(),
182
+ hubBlockNumber: hubBlock.toString(),
183
+ quotedDestinationAmount: amount.toString(),
184
+ sourceDataHash: Hash.keccak256(action.calls.at(-1).data),
185
+ sourceCallValue: action.calls.at(-1).value,
186
+ },
187
+ quality: quality(),
188
+ sampledAt: sampledAt.toISOString(),
189
+ };
190
+ },
191
+ validateTransferAction(parameters) {
192
+ if (parameters.candidate.sourceChain.id === 'eip155:4217' &&
193
+ parameters.candidate.destinationChain.id === 'tron:0x2b6653dc')
194
+ return Outbound.validateTransferAction(parameters);
195
+ return validateAction(parameters);
196
+ },
197
+ async verifyDestinationDelivery(parameters, signal) {
198
+ if (parameters.sourceChain.id === 'eip155:4217' &&
199
+ parameters.destinationChain.id === 'tron:0x2b6653dc')
200
+ return Outbound.verifyDestinationDelivery(parameters, signal, options);
201
+ return Delivery.verifyDestinationDelivery({
202
+ ...parameters,
203
+ fetch: options.fetch ?? globalThis.fetch,
204
+ hubRpcUrls: options.hubRpcUrls ?? hubRpcUrls,
205
+ resolveRpcUrls,
206
+ signal,
207
+ });
208
+ },
209
+ async verifySourceTransaction(parameters, signal) {
210
+ if (parameters.sourceChain.id === 'eip155:4217' &&
211
+ parameters.destinationChain.id === 'tron:0x2b6653dc')
212
+ return Outbound.verifySourceTransaction(parameters, signal, options);
213
+ const source = Tron.createClient({
214
+ fetch: options.fetch ?? globalThis.fetch,
215
+ signal,
216
+ urls: resolveRpcUrls(parameters.sourceChain),
217
+ });
218
+ try {
219
+ const receipt = await source.getTransactionReceipt({ hash: parameters.transactionHash });
220
+ if (!receipt)
221
+ return { type: 'pending' };
222
+ const transaction = await source.getTransaction({ hash: parameters.transactionHash });
223
+ if (!transaction)
224
+ return { type: 'pending' };
225
+ return verifySourceEvidence({ ...parameters, receipt, transaction });
226
+ }
227
+ catch (cause) {
228
+ // Non-contract transactions are invalid evidence; transport failures remain retryable.
229
+ if (cause instanceof z.core.$ZodError)
230
+ return { type: 'invalid' };
231
+ throw cause;
232
+ }
233
+ },
234
+ });
235
+ }
236
+ /** Checks solidified Tron receipt and transaction evidence against the prepared transfer. */
237
+ export function verifySourceEvidence(options) {
238
+ try {
239
+ const { providerState, transfer } = options;
240
+ const receipt = Tron.schema.Receipt.parse(options.receipt);
241
+ const transaction = Tron.schema.Transaction.parse(options.transaction);
242
+ const hash = options.transactionHash.replace(/^0x/, '').toLowerCase();
243
+ if (receipt.id.toLowerCase() !== hash || transaction.txID.toLowerCase() !== hash)
244
+ return { type: 'invalid' };
245
+ if (transfer.method !== 'transaction' ||
246
+ transfer.mode !== 'exactSource' ||
247
+ !transfer.sender ||
248
+ !transfer.destinationAmountMin ||
249
+ !transfer.destinationAmount)
250
+ return { type: 'invalid' };
251
+ if (transfer.sourceChain.id !== 'tron:0x2b6653dc' ||
252
+ transfer.destinationChain.id !== 'eip155:4217' ||
253
+ transfer.sourceToken.address !== sourceToken ||
254
+ !Address.isEqual(transfer.destinationToken.address, destinationToken))
255
+ return { type: 'invalid' };
256
+ if (receipt.receipt.result !== 'SUCCESS' ||
257
+ (receipt.result && receipt.result !== 'SUCCESS') ||
258
+ receipt.blockTimeStamp < Date.parse(transfer.quote.sampledAt))
259
+ return { type: 'invalid' };
260
+ if (transaction.raw_data.contract.length !== 1 ||
261
+ transaction.ret.some((entry) => entry.contractRet !== 'SUCCESS'))
262
+ return { type: 'invalid' };
263
+ const call = transaction.raw_data.contract[0].parameter.value;
264
+ if (call.owner_address.slice(2).toLowerCase() !==
265
+ Tron.toEvmAddress(transfer.sender).slice(2).toLowerCase())
266
+ return { type: 'invalid' };
267
+ const target = Tron.fromEvmAddress(`0x${call.contract_address.slice(2)}`);
268
+ const data = `0x${call.data}`;
269
+ if (target === sourceToken) {
270
+ const [spender, amount] = AbiFunction.decodeData(approve, data);
271
+ if (!Address.isEqual(spender, Tron.toEvmAddress(sourcePool)) ||
272
+ amount > BigInt(transfer.sourceAmount.baseUnits) ||
273
+ (call.call_value ?? 0) !== 0)
274
+ return { type: 'invalid' };
275
+ return { type: 'related' };
276
+ }
277
+ if (providerState?.['sourceDataHash'] !== Hash.keccak256(data) ||
278
+ typeof providerState?.['sourceCallValue'] !== 'string' ||
279
+ BigInt(providerState['sourceCallValue']) !== BigInt(call.call_value ?? 0))
280
+ return { type: 'invalid' };
281
+ const decoded = validateSend({
282
+ data,
283
+ minimum: BigInt(transfer.destinationAmountMin.baseUnits),
284
+ recipient: transfer.recipient,
285
+ sender: transfer.sender,
286
+ sourceAmount: BigInt(transfer.sourceAmount.baseUnits),
287
+ to: target,
288
+ value: BigInt(call.call_value ?? 0),
289
+ });
290
+ if (decoded.onward.amountLD.toString() !== providerState?.['quotedDestinationAmount'])
291
+ return { type: 'invalid' };
292
+ const logs = (receipt.log ?? []).filter((log) => log.address.toLowerCase() === Tron.toEvmAddress(sourcePool).slice(2).toLowerCase() &&
293
+ log.topics[0]?.toLowerCase() === AbiEvent.getSelector(oftSent).slice(2).toLowerCase());
294
+ if (logs.length !== 1)
295
+ return { type: 'invalid' };
296
+ const event = AbiEvent.decode(oftSent, {
297
+ data: `0x${logs[0].data}`,
298
+ topics: logs[0].topics.map((topic) => `0x${topic}`),
299
+ });
300
+ if (event.dstEid !== hubEid ||
301
+ !Address.isEqual(event.fromAddress, Tron.toEvmAddress(transfer.sender)) ||
302
+ event.amountSentLD !== BigInt(transfer.sourceAmount.baseUnits) ||
303
+ event.amountReceivedLD < BigInt(transfer.destinationAmountMin.baseUnits) ||
304
+ event.amountReceivedLD > BigInt(transfer.sourceAmount.baseUnits))
305
+ return { type: 'invalid' };
306
+ const prior = providerState?.['legacyMesh'];
307
+ if (prior &&
308
+ (typeof prior !== 'object' ||
309
+ !('guid' in prior) ||
310
+ !('amount' in prior) ||
311
+ prior.guid !== event.guid ||
312
+ prior.amount !== event.amountReceivedLD.toString()))
313
+ return { type: 'invalid' };
314
+ if (typeof providerState?.['hubBlockNumber'] !== 'string' ||
315
+ typeof providerState?.['destinationBlockNumber'] !== 'string')
316
+ return { type: 'invalid' };
317
+ return {
318
+ destinationAmount: event.amountReceivedLD.toString(),
319
+ providerState: {
320
+ ...providerState,
321
+ legacyMesh: { amount: event.amountReceivedLD.toString(), guid: event.guid },
322
+ },
323
+ type: 'verified',
324
+ };
325
+ }
326
+ catch {
327
+ return { type: 'invalid' };
328
+ }
329
+ }
330
+ /** Checks the exact approvals, composed recipient, amounts, fee, and refund account. */
331
+ export function validateAction(options) {
332
+ try {
333
+ assertRoute(options.candidate);
334
+ const action = Action.schema.TronCalls.parse(options.action);
335
+ if (action.calls.length !== 3)
336
+ throw new Provider.ProviderPayloadError();
337
+ const [reset, approval, execution] = action.calls;
338
+ const amount = BigInt(options.candidate.sourceAmount.amount);
339
+ if (reset.to !== sourceToken ||
340
+ BigInt(reset.value) !== 0n ||
341
+ reset.data.toLowerCase() !==
342
+ AbiFunction.encodeData(approve, [Tron.toEvmAddress(sourcePool), 0n]).toLowerCase())
343
+ throw new Provider.ProviderPayloadError();
344
+ if (approval.to !== sourceToken ||
345
+ BigInt(approval.value) !== 0n ||
346
+ approval.data.toLowerCase() !==
347
+ AbiFunction.encodeData(approve, [Tron.toEvmAddress(sourcePool), amount]).toLowerCase())
348
+ throw new Provider.ProviderPayloadError();
349
+ validateSend({
350
+ data: execution.data,
351
+ minimum: BigInt(options.destinationAmountMin),
352
+ recipient: options.recipient,
353
+ sender: options.sender,
354
+ sourceAmount: amount,
355
+ to: execution.to,
356
+ value: BigInt(execution.value),
357
+ });
358
+ return { nativeValues: [{ to: sourcePool, value: execution.value }] };
359
+ }
360
+ catch {
361
+ throw new Provider.ProviderPayloadError();
362
+ }
363
+ }
364
+ function validateSend(options) {
365
+ if (options.to !== sourcePool || options.value > BigInt(Number.MAX_SAFE_INTEGER))
366
+ throw new Provider.ProviderPayloadError();
367
+ const [first, fee, refund] = AbiFunction.decodeData(send, options.data);
368
+ const [onward] = AbiParameters.decode(sendParam, first.composeMsg);
369
+ if (first.dstEid !== hubEid ||
370
+ !Hex.isEqual(first.to, Hex.padLeft(hubComposer, 32)) ||
371
+ first.amountLD !== options.sourceAmount ||
372
+ first.minAmountLD !== options.minimum ||
373
+ first.oftCmd !== '0x' ||
374
+ fee.lzTokenFee !== 0n ||
375
+ fee.nativeFee !== options.value ||
376
+ !Address.isEqual(refund, Tron.toEvmAddress(options.sender)) ||
377
+ onward.dstEid !== destinationEid ||
378
+ !Hex.isEqual(onward.to, Hex.padLeft(options.recipient, 32)) ||
379
+ onward.amountLD < options.minimum ||
380
+ onward.amountLD > options.sourceAmount ||
381
+ onward.minAmountLD !== 0n ||
382
+ onward.extraOptions !== '0x' ||
383
+ onward.composeMsg !== '0x' ||
384
+ onward.oftCmd !== '0x')
385
+ throw new Provider.ProviderPayloadError();
386
+ // Type 3 executor compose option: worker 1, size 35, type 3, index 0, gas 500000, native value.
387
+ const prefix = composeOptions(0n).slice(0, -32);
388
+ if (first.extraOptions.length !== composeOptions(0n).length ||
389
+ first.extraOptions.slice(0, -32) !== prefix)
390
+ throw new Provider.ProviderPayloadError();
391
+ if (!Hex.isEqual(AbiFunction.encodeData(send, [first, fee, refund]), options.data))
392
+ throw new Provider.ProviderPayloadError();
393
+ return { onward };
394
+ }
395
+ async function quoteAmount(options) {
396
+ const first = firstParam({
397
+ amount: options.amount,
398
+ composeValue: 0n,
399
+ minimum: 0n,
400
+ onward: onwardParam({
401
+ amount: options.amount,
402
+ recipient: '0x0000000000000000000000000000000000000001',
403
+ }),
404
+ });
405
+ const [limit, , receipt] = AbiFunction.decodeResult(quoteOft, await options.source.call({ data: AbiFunction.encodeData(quoteOft, [first]), to: sourcePool }));
406
+ // Legacy Mesh deducts fees from its receipt without necessarily populating the optional fee-details array.
407
+ if (options.amount < limit.minAmountLD || options.amount > limit.maxAmountLD)
408
+ throw new Provider.ProviderUnavailableError();
409
+ if (receipt.amountSentLD !== options.amount ||
410
+ receipt.amountReceivedLD <= 0n ||
411
+ receipt.amountReceivedLD > options.amount)
412
+ throw new Provider.ProviderPayloadError();
413
+ const onward = onwardParam({
414
+ amount: receipt.amountReceivedLD,
415
+ recipient: '0x0000000000000000000000000000000000000001',
416
+ });
417
+ const [hubLimit, , hubReceipt] = await options.hub.readContract({
418
+ abi: [quoteOft],
419
+ address: hubOft,
420
+ args: [onward],
421
+ functionName: 'quoteOFT',
422
+ });
423
+ // The composer clears minAmountLD, so accept only the native OFT's exact, fee-free onward path.
424
+ if (receipt.amountReceivedLD < hubLimit.minAmountLD ||
425
+ receipt.amountReceivedLD > hubLimit.maxAmountLD)
426
+ throw new Provider.ProviderUnavailableError();
427
+ if (hubReceipt.amountSentLD !== receipt.amountReceivedLD ||
428
+ hubReceipt.amountReceivedLD !== receipt.amountReceivedLD)
429
+ throw new Provider.ProviderPayloadError();
430
+ return receipt.amountReceivedLD;
431
+ }
432
+ function onwardParam(options) {
433
+ return {
434
+ amountLD: options.amount,
435
+ composeMsg: '0x',
436
+ dstEid: destinationEid,
437
+ extraOptions: '0x',
438
+ minAmountLD: 0n,
439
+ oftCmd: '0x',
440
+ to: Hex.padLeft(options.recipient, 32),
441
+ };
442
+ }
443
+ function firstParam(options) {
444
+ return {
445
+ amountLD: options.amount,
446
+ composeMsg: AbiParameters.encode(sendParam, [options.onward]),
447
+ dstEid: hubEid,
448
+ extraOptions: composeOptions(options.composeValue),
449
+ minAmountLD: options.minimum,
450
+ oftCmd: '0x',
451
+ to: Hex.padLeft(hubComposer, 32),
452
+ };
453
+ }
454
+ function composeOptions(value) {
455
+ // The LayerZero composition guide budgets 500000 gas for the composer; source receive gas is enforced on-chain.
456
+ return Hex.concat('0x0003010023030000', Hex.fromNumber(500000n, { size: 16 }), Hex.fromNumber(value, { size: 16 }));
457
+ }
458
+ function assertRoute(candidate) {
459
+ if (candidate.sourceChain.id !== 'tron:0x2b6653dc' ||
460
+ candidate.destinationChain.id !== 'eip155:4217' ||
461
+ candidate.sourceToken.address !== sourceToken ||
462
+ !Address.isEqual(candidate.destinationToken.address, destinationToken) ||
463
+ candidate.sourceToken.decimals !== 6 ||
464
+ candidate.destinationToken.decimals !== 6)
465
+ throw new Provider.ProviderConfigurationError();
466
+ }
467
+ function quality() {
468
+ return {
469
+ liquiditySource: 'onchain',
470
+ sourceDetail: 'legacy-mesh:tron-arbitrum-tempo',
471
+ tier: 'liquid',
472
+ };
473
+ }
474
+ //# sourceMappingURL=legacyMesh.js.map