@oakagentkit/core 0.2.3 → 0.2.5

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 (576) hide show
  1. package/build/dist/api/addresses.d.ts +112 -0
  2. package/build/dist/api/addresses.js +1 -1
  3. package/build/dist/api/amounts.d.ts +2 -0
  4. package/build/dist/api/amounts.js +1 -1
  5. package/build/dist/api/args.js +1 -1
  6. package/build/dist/api/cache.js +1 -1
  7. package/build/dist/api/canonical.js +1 -1
  8. package/build/dist/api/chain.js +1 -1
  9. package/build/dist/api/deployments.js +1 -1
  10. package/build/dist/api/errors.d.ts +1 -0
  11. package/build/dist/api/errors.js +1 -1
  12. package/build/dist/api/gas.js +1 -1
  13. package/build/dist/api/grandfather.js +1 -1
  14. package/build/dist/api/guards.js +1 -1
  15. package/build/dist/api/history.js +1 -1
  16. package/build/dist/api/http.js +1 -1
  17. package/build/dist/api/identity-link.d.ts +1 -0
  18. package/build/dist/api/identity-link.js +1 -1
  19. package/build/dist/api/launch.js +1 -1
  20. package/build/dist/api/merkle.js +1 -1
  21. package/build/dist/api/metadata.js +1 -1
  22. package/build/dist/api/module.js +1 -1
  23. package/build/dist/api/modules/beefy/boosts.js +1 -1
  24. package/build/dist/api/modules/beefy/clm.js +1 -1
  25. package/build/dist/api/modules/beefy/guard.js +1 -1
  26. package/build/dist/api/modules/beefy/index.js +1 -1
  27. package/build/dist/api/modules/beefy/liquidity.js +1 -1
  28. package/build/dist/api/modules/beefy/management.js +1 -1
  29. package/build/dist/api/modules/beefy/vaults.js +1 -1
  30. package/build/dist/api/modules/borro/abi.d.ts +149 -0
  31. package/build/dist/api/modules/borro/abi.js +1 -0
  32. package/build/dist/api/modules/borro/actions.d.ts +2 -0
  33. package/build/dist/api/modules/borro/actions.js +1 -0
  34. package/build/dist/api/modules/borro/checks.d.ts +151 -0
  35. package/build/dist/api/modules/borro/checks.js +1 -0
  36. package/build/dist/api/modules/borro/copy.d.ts +174 -0
  37. package/build/dist/api/modules/borro/copy.js +1 -0
  38. package/build/dist/api/modules/borro/index.d.ts +13 -0
  39. package/build/dist/api/modules/borro/index.js +1 -0
  40. package/build/dist/api/modules/borro/liquidity.d.ts +4 -0
  41. package/build/dist/api/modules/borro/liquidity.js +1 -0
  42. package/build/dist/api/modules/borro/pins.d.ts +264 -0
  43. package/build/dist/api/modules/borro/pins.js +1 -0
  44. package/build/dist/api/modules/borro/positions.d.ts +8 -0
  45. package/build/dist/api/modules/borro/positions.js +1 -0
  46. package/build/dist/api/modules/borro/rates.d.ts +20 -0
  47. package/build/dist/api/modules/borro/rates.js +1 -0
  48. package/build/dist/api/modules/borro/reader.d.ts +32 -0
  49. package/build/dist/api/modules/borro/reader.js +1 -0
  50. package/build/dist/api/modules/borro/types.d.ts +120 -0
  51. package/build/dist/api/modules/borro/types.js +0 -0
  52. package/build/dist/api/modules/clanker/extensions.js +1 -1
  53. package/build/dist/api/modules/clanker/index.js +1 -1
  54. package/build/dist/api/modules/clanker/manage.js +1 -1
  55. package/build/dist/api/modules/clanker/pool-config.js +1 -1
  56. package/build/dist/api/modules/clanker/protocol.js +1 -1
  57. package/build/dist/api/modules/clanker/state.js +1 -1
  58. package/build/dist/api/modules/earn/copy.d.ts +114 -0
  59. package/build/dist/api/modules/earn/copy.js +1 -0
  60. package/build/dist/api/modules/earn/cost.d.ts +47 -0
  61. package/build/dist/api/modules/earn/cost.js +1 -0
  62. package/build/dist/api/modules/earn/index.d.ts +8 -0
  63. package/build/dist/api/modules/earn/index.js +1 -0
  64. package/build/dist/api/modules/earn/lp.d.ts +17 -0
  65. package/build/dist/api/modules/earn/lp.js +1 -0
  66. package/build/dist/api/modules/earn/options.d.ts +36 -0
  67. package/build/dist/api/modules/earn/options.js +1 -0
  68. package/build/dist/api/modules/earn/types.d.ts +39 -0
  69. package/build/dist/api/modules/earn/types.js +0 -0
  70. package/build/dist/api/modules/erc8004/abi.js +1 -1
  71. package/build/dist/api/modules/erc8004/common.js +1 -1
  72. package/build/dist/api/modules/erc8004/domain.js +1 -1
  73. package/build/dist/api/modules/erc8004/index.js +1 -1
  74. package/build/dist/api/modules/erc8004/management.js +1 -1
  75. package/build/dist/api/modules/erc8004/reputation.js +1 -1
  76. package/build/dist/api/modules/erc8004/services.js +1 -1
  77. package/build/dist/api/modules/erc8004/validation.js +1 -1
  78. package/build/dist/api/modules/grove/index.js +1 -1
  79. package/build/dist/api/modules/heyresearch/backoff.js +1 -1
  80. package/build/dist/api/modules/heyresearch/builder-feed.js +1 -1
  81. package/build/dist/api/modules/heyresearch/freshness.js +1 -1
  82. package/build/dist/api/modules/heyresearch/index.js +1 -1
  83. package/build/dist/api/modules/heyresearch/proof-reads.js +1 -1
  84. package/build/dist/api/modules/heyresearch/public-reads.js +1 -1
  85. package/build/dist/api/modules/heyresearch/scan.js +1 -1
  86. package/build/dist/api/modules/heyresearch/status-labels.d.ts +1 -1
  87. package/build/dist/api/modules/heyresearch/status-labels.js +1 -1
  88. package/build/dist/api/modules/heyresearch/token-facts.js +1 -1
  89. package/build/dist/api/modules/hoodag/chain-reads.js +1 -1
  90. package/build/dist/api/modules/hoodag/index.js +1 -1
  91. package/build/dist/api/modules/hoodag/management.js +1 -1
  92. package/build/dist/api/modules/hoodag/public-reads.js +1 -1
  93. package/build/dist/api/modules/hoodag/reconstruct.js +1 -1
  94. package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
  95. package/build/dist/api/modules/hoodlock/buyback.js +1 -1
  96. package/build/dist/api/modules/hoodlock/commerce.js +1 -1
  97. package/build/dist/api/modules/hoodlock/fee.js +1 -1
  98. package/build/dist/api/modules/hoodlock/guard.js +1 -1
  99. package/build/dist/api/modules/hoodlock/index.js +1 -1
  100. package/build/dist/api/modules/hoodlock/lifecycle.js +1 -1
  101. package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
  102. package/build/dist/api/modules/hoodlock/public.js +1 -1
  103. package/build/dist/api/modules/hookr/actions.js +1 -1
  104. package/build/dist/api/modules/hookr/addons.js +1 -1
  105. package/build/dist/api/modules/hookr/agent-gate.js +1 -1
  106. package/build/dist/api/modules/hookr/contracts.js +1 -1
  107. package/build/dist/api/modules/hookr/create-cancel.js +1 -1
  108. package/build/dist/api/modules/hookr/discovery.js +1 -1
  109. package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
  110. package/build/dist/api/modules/hookr/index.js +1 -1
  111. package/build/dist/api/modules/hookr/launch-options.js +1 -1
  112. package/build/dist/api/modules/hookr/launch-profile.js +1 -1
  113. package/build/dist/api/modules/hookr/launch-receipt.js +1 -1
  114. package/build/dist/api/modules/hookr/launch.js +1 -1
  115. package/build/dist/api/modules/hookr/liquidity.js +1 -1
  116. package/build/dist/api/modules/hookr/lp-positions.js +1 -1
  117. package/build/dist/api/modules/hookr/lp-reads.js +1 -1
  118. package/build/dist/api/modules/hookr/lp-receipt.js +1 -1
  119. package/build/dist/api/modules/hookr/lp-state.js +1 -1
  120. package/build/dist/api/modules/hookr/pins.js +1 -1
  121. package/build/dist/api/modules/hookr/public-reads.js +1 -1
  122. package/build/dist/api/modules/hookr/read-utils.js +1 -1
  123. package/build/dist/api/modules/hookr/relay.js +1 -1
  124. package/build/dist/api/modules/hookr/revenue.js +1 -1
  125. package/build/dist/api/modules/kyberswap/index.js +1 -1
  126. package/build/dist/api/modules/kyberswap/source-pools.js +1 -1
  127. package/build/dist/api/modules/layerbank/abi.d.ts +165 -0
  128. package/build/dist/api/modules/layerbank/abi.js +1 -0
  129. package/build/dist/api/modules/layerbank/actions.d.ts +2 -0
  130. package/build/dist/api/modules/layerbank/actions.js +1 -0
  131. package/build/dist/api/modules/layerbank/checks.d.ts +21 -0
  132. package/build/dist/api/modules/layerbank/checks.js +1 -0
  133. package/build/dist/api/modules/layerbank/index.d.ts +2 -0
  134. package/build/dist/api/modules/layerbank/index.js +1 -0
  135. package/build/dist/api/modules/layerbank/merkl.d.ts +6 -0
  136. package/build/dist/api/modules/layerbank/merkl.js +1 -0
  137. package/build/dist/api/modules/layerbank/reader.d.ts +15 -0
  138. package/build/dist/api/modules/layerbank/reader.js +1 -0
  139. package/build/dist/api/modules/layerbank/reserve.d.ts +13 -0
  140. package/build/dist/api/modules/layerbank/reserve.js +1 -0
  141. package/build/dist/api/modules/lighter/index.js +1 -1
  142. package/build/dist/api/modules/longbow/administration.js +1 -1
  143. package/build/dist/api/modules/longbow/analytics.js +1 -1
  144. package/build/dist/api/modules/longbow/fixed.js +1 -1
  145. package/build/dist/api/modules/longbow/index.js +1 -1
  146. package/build/dist/api/modules/longbow/nft.js +1 -1
  147. package/build/dist/api/modules/longbow/rebates.js +1 -1
  148. package/build/dist/api/modules/longbow/staking.js +1 -1
  149. package/build/dist/api/modules/meridian/index.js +1 -1
  150. package/build/dist/api/modules/meridian/markets.js +1 -1
  151. package/build/dist/api/modules/meridian/perps-batch.js +1 -1
  152. package/build/dist/api/modules/meridian/perps-common.js +1 -1
  153. package/build/dist/api/modules/meridian/perps-guards.js +1 -1
  154. package/build/dist/api/modules/meridian/perps-intents.js +1 -1
  155. package/build/dist/api/modules/meridian/perps-stream.js +1 -1
  156. package/build/dist/api/modules/meridian/perps.d.ts +1 -0
  157. package/build/dist/api/modules/meridian/perps.js +1 -1
  158. package/build/dist/api/modules/meridian/predict-read.js +1 -1
  159. package/build/dist/api/modules/meridian/rfq.js +1 -1
  160. package/build/dist/api/modules/merkl/discovery.js +1 -1
  161. package/build/dist/api/modules/merkl/index.js +1 -1
  162. package/build/dist/api/modules/merkl/manage.js +1 -1
  163. package/build/dist/api/modules/merkl/protocol.js +1 -1
  164. package/build/dist/api/modules/morpho/allocator.js +1 -1
  165. package/build/dist/api/modules/morpho/bundles-abi.js +1 -1
  166. package/build/dist/api/modules/morpho/bundles.js +1 -1
  167. package/build/dist/api/modules/morpho/in-kind.js +1 -1
  168. package/build/dist/api/modules/morpho/index.js +1 -1
  169. package/build/dist/api/modules/morpho/local-guard.js +1 -1
  170. package/build/dist/api/modules/morpho/midnight-abi.js +1 -1
  171. package/build/dist/api/modules/morpho/midnight.js +1 -1
  172. package/build/dist/api/modules/morpho/protocol.js +1 -1
  173. package/build/dist/api/modules/morpho/surface.js +1 -1
  174. package/build/dist/api/modules/morpho/vault-management.js +1 -1
  175. package/build/dist/api/modules/morpho/vault-tools.js +1 -1
  176. package/build/dist/api/modules/morpho/vault-v2.js +1 -1
  177. package/build/dist/api/modules/netnet/blackjack-hashes.js +1 -1
  178. package/build/dist/api/modules/netnet/card-abi.js +1 -1
  179. package/build/dist/api/modules/netnet/card-plan.js +1 -1
  180. package/build/dist/api/modules/netnet/card-policy.js +1 -1
  181. package/build/dist/api/modules/netnet/card-read.js +1 -1
  182. package/build/dist/api/modules/netnet/card-recovery.js +1 -1
  183. package/build/dist/api/modules/netnet/desk-action-abi.js +1 -1
  184. package/build/dist/api/modules/netnet/desk-action.js +1 -1
  185. package/build/dist/api/modules/netnet/desk-read.js +1 -1
  186. package/build/dist/api/modules/netnet/desk-registry.js +1 -1
  187. package/build/dist/api/modules/netnet/financial-abi.js +1 -1
  188. package/build/dist/api/modules/netnet/financial.js +1 -1
  189. package/build/dist/api/modules/netnet/index.js +1 -1
  190. package/build/dist/api/modules/netnet/staking.js +1 -1
  191. package/build/dist/api/modules/orbio/gateway.js +1 -1
  192. package/build/dist/api/modules/orbio/index.js +1 -1
  193. package/build/dist/api/modules/orbio/pins.js +1 -1
  194. package/build/dist/api/modules/orbio/positions.d.ts +2 -0
  195. package/build/dist/api/modules/orbio/positions.js +1 -0
  196. package/build/dist/api/modules/pendle/abi.d.ts +205 -0
  197. package/build/dist/api/modules/pendle/abi.js +1 -0
  198. package/build/dist/api/modules/pendle/convert.d.ts +24 -0
  199. package/build/dist/api/modules/pendle/convert.js +1 -0
  200. package/build/dist/api/modules/pendle/costs.d.ts +3 -0
  201. package/build/dist/api/modules/pendle/costs.js +1 -0
  202. package/build/dist/api/modules/pendle/index.d.ts +11 -0
  203. package/build/dist/api/modules/pendle/index.js +1 -0
  204. package/build/dist/api/modules/pendle/markets.d.ts +37 -0
  205. package/build/dist/api/modules/pendle/markets.js +1 -0
  206. package/build/dist/api/modules/pendle/positions.d.ts +18 -0
  207. package/build/dist/api/modules/pendle/positions.js +1 -0
  208. package/build/dist/api/modules/pendle/pricecheck.d.ts +95 -0
  209. package/build/dist/api/modules/pendle/pricecheck.js +1 -0
  210. package/build/dist/api/modules/pendle/reader.d.ts +17 -0
  211. package/build/dist/api/modules/pendle/reader.js +1 -0
  212. package/build/dist/api/modules/pendle/redeem.d.ts +15 -0
  213. package/build/dist/api/modules/pendle/redeem.js +1 -0
  214. package/build/dist/api/modules/pendle/trade.d.ts +2 -0
  215. package/build/dist/api/modules/pendle/trade.js +1 -0
  216. package/build/dist/api/modules/pendle/types.d.ts +41 -0
  217. package/build/dist/api/modules/pendle/types.js +0 -0
  218. package/build/dist/api/modules/pendle/validate.d.ts +424 -0
  219. package/build/dist/api/modules/pendle/validate.js +1 -0
  220. package/build/dist/api/modules/pendle/verify.d.ts +22 -0
  221. package/build/dist/api/modules/pendle/verify.js +1 -0
  222. package/build/dist/api/modules/pons/claim.js +1 -1
  223. package/build/dist/api/modules/pons/holder-directory.js +1 -1
  224. package/build/dist/api/modules/pons/index.js +1 -1
  225. package/build/dist/api/modules/pons/launch-status.js +1 -1
  226. package/build/dist/api/modules/pons/prices.js +1 -1
  227. package/build/dist/api/modules/pons/reads.d.ts +38 -2
  228. package/build/dist/api/modules/pons/reads.js +1 -1
  229. package/build/dist/api/modules/pons/swap-terms.js +1 -1
  230. package/build/dist/api/modules/pons/trade.js +1 -1
  231. package/build/dist/api/modules/poolstrade/index.js +1 -1
  232. package/build/dist/api/modules/priors/coverage.js +1 -1
  233. package/build/dist/api/modules/priors/discovery.js +1 -1
  234. package/build/dist/api/modules/priors/features.js +1 -1
  235. package/build/dist/api/modules/priors/holdings.d.ts +4 -0
  236. package/build/dist/api/modules/priors/holdings.js +1 -0
  237. package/build/dist/api/modules/priors/index.js +1 -1
  238. package/build/dist/api/modules/priors/integration.js +1 -1
  239. package/build/dist/api/modules/priors/market.js +1 -1
  240. package/build/dist/api/modules/priors/pt.js +1 -1
  241. package/build/dist/api/modules/priors/savings-exit.js +1 -1
  242. package/build/dist/api/modules/priors/starter-line.js +1 -1
  243. package/build/dist/api/modules/priors/stock-swap.js +1 -1
  244. package/build/dist/api/modules/relay/api.js +1 -1
  245. package/build/dist/api/modules/relay/bootstrap.js +1 -1
  246. package/build/dist/api/modules/relay/discovery.js +1 -1
  247. package/build/dist/api/modules/relay/inbound.d.ts +2 -0
  248. package/build/dist/api/modules/relay/inbound.js +1 -1
  249. package/build/dist/api/modules/relay/index.js +1 -1
  250. package/build/dist/api/modules/relay/order.js +1 -1
  251. package/build/dist/api/modules/relay/outbound-status.js +1 -1
  252. package/build/dist/api/modules/relay/readiness.js +1 -1
  253. package/build/dist/api/modules/relay/reads.js +1 -1
  254. package/build/dist/api/modules/relay/vaults.js +1 -1
  255. package/build/dist/api/modules/spark/actions.js +1 -1
  256. package/build/dist/api/modules/spark/details.js +1 -1
  257. package/build/dist/api/modules/spark/index.js +1 -1
  258. package/build/dist/api/modules/spark/management.js +1 -1
  259. package/build/dist/api/modules/steakhouse/analytics.js +1 -1
  260. package/build/dist/api/modules/steakhouse/erc4626.js +1 -1
  261. package/build/dist/api/modules/steakhouse/index.js +1 -1
  262. package/build/dist/api/modules/steakhouse/local-guard.js +1 -1
  263. package/build/dist/api/modules/steakhouse/management.js +1 -1
  264. package/build/dist/api/modules/steakhouse/share-symbol.d.ts +3 -0
  265. package/build/dist/api/modules/steakhouse/share-symbol.js +1 -0
  266. package/build/dist/api/modules/steakhouse/v2-exit.js +1 -1
  267. package/build/dist/api/modules/tickerspring/basket-routes.js +1 -1
  268. package/build/dist/api/modules/tickerspring/contract-reads.js +1 -1
  269. package/build/dist/api/modules/tickerspring/discovery.js +1 -1
  270. package/build/dist/api/modules/tickerspring/exit-preview.js +1 -1
  271. package/build/dist/api/modules/tickerspring/guards.js +1 -1
  272. package/build/dist/api/modules/tickerspring/index.js +1 -1
  273. package/build/dist/api/modules/tickerspring/journeys.js +1 -1
  274. package/build/dist/api/modules/tickerspring/ladder.js +1 -1
  275. package/build/dist/api/modules/tickerspring/maker.js +1 -1
  276. package/build/dist/api/modules/tickerspring/order-accounting.js +1 -1
  277. package/build/dist/api/modules/tickerspring/research.js +1 -1
  278. package/build/dist/api/modules/tickerspring/strategies.js +1 -1
  279. package/build/dist/api/modules/uniswap/auction-create.js +1 -1
  280. package/build/dist/api/modules/uniswap/auction.js +1 -1
  281. package/build/dist/api/modules/uniswap/batch.js +1 -1
  282. package/build/dist/api/modules/uniswap/common.js +1 -1
  283. package/build/dist/api/modules/uniswap/fees.js +1 -1
  284. package/build/dist/api/modules/uniswap/index.js +1 -1
  285. package/build/dist/api/modules/uniswap/local-guard.js +1 -1
  286. package/build/dist/api/modules/uniswap/oracle.js +1 -1
  287. package/build/dist/api/modules/uniswap/pool-math.js +1 -1
  288. package/build/dist/api/modules/uniswap/pools.js +1 -1
  289. package/build/dist/api/modules/uniswap/position.js +1 -1
  290. package/build/dist/api/modules/uniswap/protocol.js +1 -1
  291. package/build/dist/api/modules/uniswap/token-jar.js +1 -1
  292. package/build/dist/api/modules/uniswap/trade-batch.js +1 -1
  293. package/build/dist/api/modules/uniswap/trade.js +1 -1
  294. package/build/dist/api/modules/uniswap/v2.js +1 -1
  295. package/build/dist/api/modules/uniswap/v3.d.ts +11 -0
  296. package/build/dist/api/modules/uniswap/v3.js +1 -1
  297. package/build/dist/api/modules/uniswap/v4.js +1 -1
  298. package/build/dist/api/modules/uniswap/wrap.js +1 -1
  299. package/build/dist/api/modules/velora/claims.js +1 -1
  300. package/build/dist/api/modules/velora/delta-reads.js +1 -1
  301. package/build/dist/api/modules/velora/index.js +1 -1
  302. package/build/dist/api/modules/wormhole/index.js +1 -1
  303. package/build/dist/api/modules/wormhole/license.js +1 -1
  304. package/build/dist/api/modules/wormhole/quotetext.js +1 -1
  305. package/build/dist/api/modules/wormhole/scan-text.js +1 -1
  306. package/build/dist/api/modules/wormhole/token-check.js +1 -1
  307. package/build/dist/api/owner-signature.js +1 -1
  308. package/build/dist/api/positions.d.ts +5 -5
  309. package/build/dist/api/positions.js +1 -1
  310. package/build/dist/api/pricenote.js +1 -1
  311. package/build/dist/api/prices.js +1 -1
  312. package/build/dist/api/pricing.js +1 -1
  313. package/build/dist/api/reads.js +1 -1
  314. package/build/dist/api/routes.js +1 -1
  315. package/build/dist/api/rpc.js +1 -1
  316. package/build/dist/api/secret-fields.js +1 -1
  317. package/build/dist/api/send.js +1 -1
  318. package/build/dist/api/signing-registry.js +1 -1
  319. package/build/dist/api/signing.js +1 -1
  320. package/build/dist/api/simulate.js +1 -1
  321. package/build/dist/api/swap.js +1 -1
  322. package/build/dist/api/token-output.js +1 -1
  323. package/build/dist/api/tokens.d.ts +1 -0
  324. package/build/dist/api/tokens.js +1 -1
  325. package/build/dist/api/tool-policy.js +1 -1
  326. package/build/dist/api/tx.js +1 -1
  327. package/build/dist/api/types.d.ts +7 -2
  328. package/build/dist/api/untrusted.js +1 -1
  329. package/build/dist/api/vendor-limits.js +1 -1
  330. package/build/dist/chunks/{PEA32CWB.js → 2KYAMXTS.js} +1 -1
  331. package/build/dist/chunks/2MAMJJJC.js +1 -0
  332. package/build/dist/chunks/2MZXTOZU.js +1 -0
  333. package/build/dist/chunks/{VC2RCYQE.js → 2TK3ETUO.js} +1 -1
  334. package/build/dist/chunks/{LKJBMHCE.js → 326QMOTR.js} +1 -1
  335. package/build/dist/chunks/{OE3CLZHR.js → 3FUVMSCF.js} +1 -1
  336. package/build/dist/chunks/{3EFV4FQF.js → 3GOHSYHW.js} +1 -1
  337. package/build/dist/chunks/{CY75R4FK.js → 3MLUCYCB.js} +1 -1
  338. package/build/dist/chunks/{5O5ZE3ZV.js → 3NJ5KQ3Q.js} +1 -1
  339. package/build/dist/chunks/{EVANKNJV.js → 3XNZUIRU.js} +1 -1
  340. package/build/dist/chunks/3XXBLNEX.js +1 -0
  341. package/build/dist/chunks/{6IM6A5VA.js → 43LI5NKJ.js} +1 -1
  342. package/build/dist/chunks/{YZSTP2E6.js → 45BRW2ZF.js} +1 -1
  343. package/build/dist/chunks/46547QT3.js +1 -0
  344. package/build/dist/chunks/{C3TJLARP.js → 46KWRAYK.js} +1 -1
  345. package/build/dist/chunks/{SOYQOE5P.js → 4BVP652W.js} +1 -1
  346. package/build/dist/chunks/4HG6FRVH.js +1 -0
  347. package/build/dist/chunks/4MXM6Q4W.js +1 -0
  348. package/build/dist/chunks/{NWSPC3NH.js → 4PY3UFNR.js} +1 -1
  349. package/build/dist/chunks/52ELWNXJ.js +2 -0
  350. package/build/dist/chunks/{O5IVZHHP.js → 553UE2ZQ.js} +1 -1
  351. package/build/dist/chunks/{FUXT7GRK.js → 57MEFFCU.js} +1 -1
  352. package/build/dist/chunks/{XWEFKXKA.js → 5APS4T2D.js} +1 -1
  353. package/build/dist/chunks/{3RFSGU2Y.js → 5CAAFU7R.js} +1 -1
  354. package/build/dist/chunks/{6AWTAE4Q.js → 5SMVQCAP.js} +1 -1
  355. package/build/dist/chunks/63YRSLDK.js +1 -0
  356. package/build/dist/chunks/{53N7PNJH.js → 64GOINYS.js} +1 -1
  357. package/build/dist/chunks/66F5ZH34.js +1 -0
  358. package/build/dist/chunks/{6ZYLNB2B.js → 6B3VVISQ.js} +1 -1
  359. package/build/dist/chunks/6D5DJA5B.js +1 -0
  360. package/build/dist/chunks/{DZGEQBO7.js → 6I4NTKB2.js} +1 -1
  361. package/build/dist/chunks/{DCTUYDWF.js → 6OGDTEGH.js} +1 -1
  362. package/build/dist/chunks/6PBGEPUK.js +20 -0
  363. package/build/dist/chunks/{E7R3J4H7.js → 6WD4HHID.js} +1 -1
  364. package/build/dist/chunks/{RAKUK5VR.js → 6WZX7C4T.js} +1 -1
  365. package/build/dist/chunks/{MKQVS3IO.js → 74Y2KDNR.js} +1 -1
  366. package/build/dist/chunks/{AMICUXS6.js → 7WSHW7KW.js} +1 -1
  367. package/build/dist/chunks/A3PN3PK3.js +1 -0
  368. package/build/dist/chunks/{CXLEQCP3.js → ABPL3ZZI.js} +1 -1
  369. package/build/dist/chunks/{YQUKU2LS.js → AFBEZXNV.js} +1 -1
  370. package/build/dist/chunks/AKYF5264.js +7 -0
  371. package/build/dist/chunks/{ASDKY5NX.js → APGLZXIW.js} +1 -1
  372. package/build/dist/chunks/{UNZRE3YU.js → AVG4W3Y7.js} +1 -1
  373. package/build/dist/chunks/{VFKNXQXI.js → B3RXD5ET.js} +1 -1
  374. package/build/dist/chunks/{V5LTA42G.js → BBS3ODWZ.js} +1 -1
  375. package/build/dist/chunks/{U3F6DDML.js → BJ2VGRF4.js} +1 -1
  376. package/build/dist/chunks/{VFSRRDLY.js → BTD5SMOW.js} +1 -1
  377. package/build/dist/chunks/{PTAWEHKB.js → BTPXJAUX.js} +1 -1
  378. package/build/dist/chunks/{R53P2K3C.js → C36BFZH6.js} +1 -1
  379. package/build/dist/chunks/{L62M7LOB.js → C5ZZAYXD.js} +1 -1
  380. package/build/dist/chunks/{VVEUJ36E.js → C7AXJHBT.js} +1 -1
  381. package/build/dist/chunks/CBG5HARQ.js +2 -0
  382. package/build/dist/chunks/{ELZNT5Q3.js → CCTXCMH4.js} +1 -1
  383. package/build/dist/chunks/{AJP5LDM2.js → CHXBOXOD.js} +1 -1
  384. package/build/dist/chunks/D3YLXQPW.js +1 -0
  385. package/build/dist/chunks/DFM4T6ZE.js +1 -0
  386. package/build/dist/chunks/{GGUEKSR4.js → DJN3JAWB.js} +1 -1
  387. package/build/dist/chunks/{52DHGSG4.js → DW4V5PUY.js} +1 -1
  388. package/build/dist/chunks/E3RACZUY.js +1 -0
  389. package/build/dist/chunks/{VCLPOU7T.js → E674J2MD.js} +1 -1
  390. package/build/dist/chunks/EE64JSLY.js +1 -0
  391. package/build/dist/chunks/EJ7O75A7.js +1 -0
  392. package/build/dist/chunks/{ZXQMF56D.js → ELSXLZN5.js} +1 -1
  393. package/build/dist/chunks/ER47KGRM.js +1 -0
  394. package/build/dist/chunks/FQ6UZCM6.js +1 -0
  395. package/build/dist/chunks/FWD4L3CJ.js +1 -0
  396. package/build/dist/chunks/GEIFITAQ.js +1 -0
  397. package/build/dist/chunks/{S3HNPTXA.js → GGSAKCND.js} +1 -1
  398. package/build/dist/chunks/GL4NCUMH.js +1 -0
  399. package/build/dist/chunks/GNC6RXLT.js +1 -0
  400. package/build/dist/chunks/{YA5WWDEW.js → GQ5GYUEH.js} +1 -1
  401. package/build/dist/chunks/{TLJPVYRJ.js → GW5IXLKU.js} +1 -1
  402. package/build/dist/chunks/{57HAXNQV.js → GW626GG2.js} +1 -1
  403. package/build/dist/chunks/{CE7D6MUS.js → H2XDMFQQ.js} +1 -1
  404. package/build/dist/chunks/H43RNCX2.js +1 -0
  405. package/build/dist/chunks/HAQPIBYR.js +1 -0
  406. package/build/dist/chunks/HCUHMCBW.js +1 -0
  407. package/build/dist/chunks/HKEMQBFA.js +1 -0
  408. package/build/dist/chunks/{WTSMPDT5.js → HM72DH4V.js} +1 -1
  409. package/build/dist/chunks/HSCQZ66A.js +1 -0
  410. package/build/dist/chunks/{4KQZTPMS.js → I26DMNJG.js} +1 -1
  411. package/build/dist/chunks/{YHPOXAKA.js → IMO3GDA5.js} +1 -1
  412. package/build/dist/chunks/INOZIE55.js +1 -0
  413. package/build/dist/chunks/IOYRL6AY.js +1 -0
  414. package/build/dist/chunks/IX3GZMTM.js +1 -0
  415. package/build/dist/chunks/IY7BXLT4.js +1 -0
  416. package/build/dist/chunks/J2OT4KAH.js +1 -0
  417. package/build/dist/chunks/JKD2B6OX.js +1 -0
  418. package/build/dist/chunks/JUZ5JU6D.js +70 -0
  419. package/build/dist/chunks/{5OEHZJ6X.js → JVLLVNF2.js} +1 -1
  420. package/build/dist/chunks/K3RDPI5J.js +1 -0
  421. package/build/dist/chunks/{WCKMQFGS.js → K4DHHQBI.js} +1 -1
  422. package/build/dist/chunks/KBKK7UNY.js +1 -0
  423. package/build/dist/chunks/KIFSRO5K.js +1 -0
  424. package/build/dist/chunks/KIFZ5ZSK.js +1 -0
  425. package/build/dist/chunks/{4AKIXLXH.js → KPCY5V35.js} +1 -1
  426. package/build/dist/chunks/L4N2RSK2.js +1 -0
  427. package/build/dist/chunks/{2W46IRX6.js → L5BLHY34.js} +1 -1
  428. package/build/dist/chunks/{ZT47KN7A.js → LSXUAHOE.js} +1 -1
  429. package/build/dist/chunks/{NATG6YA6.js → M37654RL.js} +1 -1
  430. package/build/dist/chunks/MJ6WEWMI.js +3 -0
  431. package/build/dist/chunks/{ACN2BFMA.js → MQK6OP7S.js} +1 -1
  432. package/build/dist/chunks/{XV2HQKND.js → MR5L7V6Z.js} +1 -1
  433. package/build/dist/chunks/MRMR4QHA.js +1 -0
  434. package/build/dist/chunks/{TWSTOFN3.js → N4Q6GN65.js} +1 -1
  435. package/build/dist/chunks/{H4S2ZCWK.js → NAZPDRIF.js} +1 -1
  436. package/build/dist/chunks/{FBSUTF3B.js → NDCLTVIU.js} +1 -1
  437. package/build/dist/chunks/NEEZBJBC.js +1 -0
  438. package/build/dist/chunks/{MRWCFTMS.js → NKX3FE34.js} +1 -1
  439. package/build/dist/chunks/{J3GFCBZZ.js → NKZKKCK2.js} +1 -1
  440. package/build/dist/chunks/{73N3TOJL.js → NWNYJ26T.js} +1 -1
  441. package/build/dist/chunks/{LBEMCOND.js → O7HCEPQY.js} +1 -1
  442. package/build/dist/chunks/{F6WBPPBN.js → OJ4WJUPP.js} +1 -1
  443. package/build/dist/chunks/OJPG45AC.js +1 -0
  444. package/build/dist/chunks/{SKQGLGES.js → OKUO3BVM.js} +1 -1
  445. package/build/dist/chunks/OTXSKFUD.js +1 -0
  446. package/build/dist/chunks/{AAGDMH54.js → P3S4BR5G.js} +1 -1
  447. package/build/dist/chunks/P56RZC2M.js +1 -0
  448. package/build/dist/chunks/{EA6IYKIB.js → P5PYFK7L.js} +1 -1
  449. package/build/dist/chunks/{JST5JGAP.js → P7I62KFR.js} +1 -1
  450. package/build/dist/chunks/{5IIR3GIN.js → PK66GCDT.js} +1 -1
  451. package/build/dist/chunks/PSBQWDYI.js +1 -0
  452. package/build/dist/chunks/{WQ6H62DM.js → PV5FDT6O.js} +1 -1
  453. package/build/dist/chunks/{TQL7UDFL.js → PXT5YTWU.js} +1 -1
  454. package/build/dist/chunks/Q42YI3EP.js +1 -0
  455. package/build/dist/chunks/{SQ5BNSXR.js → QA3UHEO3.js} +1 -1
  456. package/build/dist/chunks/QC3HH5UD.js +3 -0
  457. package/build/dist/chunks/{TWCSCRFS.js → QF52OIBS.js} +1 -1
  458. package/build/dist/chunks/{LQUDJCAR.js → QO3KCJMP.js} +1 -1
  459. package/build/dist/chunks/QQECG3WP.js +1 -0
  460. package/build/dist/chunks/QSHCBASA.js +1 -0
  461. package/build/dist/chunks/QU5XKRGK.js +1 -0
  462. package/build/dist/chunks/{TPDOUL4N.js → QZZ4O34L.js} +1 -1
  463. package/build/dist/chunks/RQ4GHJXE.js +1 -0
  464. package/build/dist/chunks/{ALK6NKFP.js → RUC7KH7A.js} +1 -1
  465. package/build/dist/chunks/RUX3RY7Y.js +1 -0
  466. package/build/dist/chunks/{GIV5JMTE.js → RVDUSNWW.js} +1 -1
  467. package/build/dist/chunks/S47VUTHM.js +1 -0
  468. package/build/dist/chunks/{2LM7U4S7.js → S7IFAQPG.js} +1 -1
  469. package/build/dist/chunks/{XQUPZ3GU.js → SIYUNOLI.js} +1 -1
  470. package/build/dist/chunks/{7XLEYOZH.js → SJJR4ZBZ.js} +1 -1
  471. package/build/dist/chunks/SK2VBNAU.js +1 -0
  472. package/build/dist/chunks/SMYWWIE6.js +1 -0
  473. package/build/dist/chunks/SPJCSEKP.js +1 -0
  474. package/build/dist/chunks/{L3ZM77SJ.js → SSHCD6RZ.js} +1 -1
  475. package/build/dist/chunks/{3NDVXEBR.js → T2WHOZXM.js} +1 -1
  476. package/build/dist/chunks/T3AJSQYT.js +1 -0
  477. package/build/dist/chunks/TAEZTP4L.js +1 -0
  478. package/build/dist/chunks/TEJ7W534.js +1 -0
  479. package/build/dist/chunks/TFDPEAVZ.js +1 -0
  480. package/build/dist/chunks/TM2XCRU7.js +1 -0
  481. package/build/dist/chunks/{XQXLFF7Y.js → TMVO2DAK.js} +1 -1
  482. package/build/dist/chunks/{2UU5TBBB.js → TVWMTMEF.js} +1 -1
  483. package/build/dist/chunks/{AFHHRDPJ.js → TX2EOIRS.js} +1 -1
  484. package/build/dist/chunks/{QRDDKA4I.js → U4JGEMKT.js} +1 -1
  485. package/build/dist/chunks/{PARWLWXW.js → U5PMVP56.js} +1 -1
  486. package/build/dist/chunks/U67J4BCH.js +1 -0
  487. package/build/dist/chunks/{SSTROLQM.js → UHTRW2R6.js} +1 -1
  488. package/build/dist/chunks/{XUYHMOHS.js → UHVSINR5.js} +1 -1
  489. package/build/dist/chunks/{NRBIXV7V.js → UMIZMJWW.js} +1 -1
  490. package/build/dist/chunks/{VXLJRRKV.js → UNJJRQIU.js} +1 -1
  491. package/build/dist/chunks/V74F6IDY.js +1 -0
  492. package/build/dist/chunks/VEQBHI6O.js +1 -0
  493. package/build/dist/chunks/VHV6WQ5F.js +1 -0
  494. package/build/dist/chunks/{DRWWPBOQ.js → VJS4DHQQ.js} +1 -1
  495. package/build/dist/chunks/{R7FXNZRM.js → VOMGT5SG.js} +1 -1
  496. package/build/dist/chunks/{QXNPPCOU.js → VY7XRHZQ.js} +1 -1
  497. package/build/dist/chunks/{TCPPYBGQ.js → VYAJXLND.js} +1 -1
  498. package/build/dist/chunks/{WWFOYZT2.js → VYN2NRAP.js} +1 -1
  499. package/build/dist/chunks/{OVK4EEOD.js → VYYSL557.js} +1 -1
  500. package/build/dist/chunks/W2BYU5JQ.js +2 -0
  501. package/build/dist/chunks/W6BS3T7S.js +1 -0
  502. package/build/dist/chunks/WCNHZYQQ.js +1 -0
  503. package/build/dist/chunks/{BX7XQANB.js → WDK6VOG4.js} +1 -1
  504. package/build/dist/chunks/{QYYFRAWY.js → WIRBCS4W.js} +1 -1
  505. package/build/dist/chunks/{3WBDHUV2.js → WLMWWEP7.js} +1 -1
  506. package/build/dist/chunks/{TNSKEHPC.js → WP6RHXGN.js} +1 -1
  507. package/build/dist/chunks/WTXC3XKW.js +1 -0
  508. package/build/dist/chunks/{R7QPJQP6.js → WU7XIAXB.js} +1 -1
  509. package/build/dist/chunks/{OQVZVR2S.js → WV3A3OUU.js} +1 -1
  510. package/build/dist/chunks/{GCWA4Z3W.js → X2KFXCVD.js} +1 -1
  511. package/build/dist/chunks/X3BYCOWS.js +1 -0
  512. package/build/dist/chunks/{L7YBCMZU.js → X3PQMS4N.js} +1 -1
  513. package/build/dist/chunks/{WVXW6VL3.js → XBE3B6Y2.js} +1 -1
  514. package/build/dist/chunks/XLOYBLFI.js +1 -0
  515. package/build/dist/chunks/XR7VK24E.js +1 -0
  516. package/build/dist/chunks/XSD5NL7J.js +1 -0
  517. package/build/dist/chunks/{NU4K3TEZ.js → XSRIJUFU.js} +1 -1
  518. package/build/dist/chunks/{WQQJ7UPJ.js → Y25EXZCO.js} +1 -1
  519. package/build/dist/chunks/{2FSX7MMR.js → YCZPSMZ5.js} +1 -1
  520. package/build/dist/chunks/YDNTY67T.js +1 -0
  521. package/build/dist/chunks/YN56C7PN.js +1 -0
  522. package/build/dist/chunks/YWRDZQI6.js +1 -0
  523. package/build/dist/chunks/{SJPM5ST4.js → YXTSWRV5.js} +1 -1
  524. package/build/dist/chunks/Z43BTOTE.js +1 -0
  525. package/build/dist/chunks/{PWBL4WKB.js → Z4FZVJ5Z.js} +1 -1
  526. package/build/dist/chunks/ZMFRMWHR.js +1 -0
  527. package/build/dist/chunks/{KSZMMNXK.js → ZQAFFWDK.js} +1 -1
  528. package/build/dist/chunks/{LMVB3B6T.js → ZSN4IRI5.js} +1 -1
  529. package/build/dist/chunks/{CQCVFRQ5.js → ZV5HIQXC.js} +1 -1
  530. package/package.json +2 -2
  531. package/build/dist/chunks/2MSQ6JII.js +0 -1
  532. package/build/dist/chunks/3SC5UI35.js +0 -1
  533. package/build/dist/chunks/4GHVIBL5.js +0 -1
  534. package/build/dist/chunks/4X2JOQ2L.js +0 -1
  535. package/build/dist/chunks/5VHH5PW3.js +0 -1
  536. package/build/dist/chunks/5YS5V2LK.js +0 -1
  537. package/build/dist/chunks/6UPPUHCL.js +0 -1
  538. package/build/dist/chunks/7YU6DELJ.js +0 -1
  539. package/build/dist/chunks/AXYOJBX6.js +0 -1
  540. package/build/dist/chunks/CEIPDEXZ.js +0 -1
  541. package/build/dist/chunks/CUNQ5RG5.js +0 -1
  542. package/build/dist/chunks/EG6M6SSO.js +0 -1
  543. package/build/dist/chunks/EGUMOD3A.js +0 -1
  544. package/build/dist/chunks/EXRKBBX2.js +0 -1
  545. package/build/dist/chunks/G3MHDTGT.js +0 -1
  546. package/build/dist/chunks/G6HCV67X.js +0 -1
  547. package/build/dist/chunks/GJY3P6OG.js +0 -1
  548. package/build/dist/chunks/HIMVOTIU.js +0 -1
  549. package/build/dist/chunks/IBXYIN7Q.js +0 -1
  550. package/build/dist/chunks/IUE6RASI.js +0 -1
  551. package/build/dist/chunks/JPOYTTTW.js +0 -1
  552. package/build/dist/chunks/JWCOXLYA.js +0 -1
  553. package/build/dist/chunks/KHJFXJBU.js +0 -1
  554. package/build/dist/chunks/LLM5WDM3.js +0 -1
  555. package/build/dist/chunks/LQGPMOD2.js +0 -1
  556. package/build/dist/chunks/MYBDO5SA.js +0 -1
  557. package/build/dist/chunks/NAYRD43N.js +0 -1
  558. package/build/dist/chunks/NMYGNJIJ.js +0 -1
  559. package/build/dist/chunks/NSOEDRBU.js +0 -3
  560. package/build/dist/chunks/PZHR4ITH.js +0 -1
  561. package/build/dist/chunks/R7SXC74O.js +0 -1
  562. package/build/dist/chunks/RETS2ZEK.js +0 -1
  563. package/build/dist/chunks/SJPYXNOK.js +0 -1
  564. package/build/dist/chunks/SQZRVIVF.js +0 -1
  565. package/build/dist/chunks/SXAIXD56.js +0 -1
  566. package/build/dist/chunks/SXX3VTBP.js +0 -1
  567. package/build/dist/chunks/TMGWXDCZ.js +0 -1
  568. package/build/dist/chunks/TNLHMDWL.js +0 -1
  569. package/build/dist/chunks/UFS2RVEZ.js +0 -1
  570. package/build/dist/chunks/USSOVTD5.js +0 -1
  571. package/build/dist/chunks/UWOFA6GV.js +0 -1
  572. package/build/dist/chunks/V2OOOV6B.js +0 -1
  573. package/build/dist/chunks/XVFLT275.js +0 -1
  574. package/build/dist/chunks/YHB55C5T.js +0 -1
  575. package/build/dist/chunks/YOENHHKI.js +0 -1
  576. package/build/dist/chunks/Z7RL4NGX.js +0 -1
@@ -1 +0,0 @@
1
- import{c as Re,d as je,e as qe,f as ye,i as Le,j as ze}from"./6ZYLNB2B.js";import{i as ce}from"./FUXT7GRK.js";import{b as Ie,o as Ce}from"./5O5ZE3ZV.js";import{a as ae}from"./CY75R4FK.js";import{a as $,b as Oe}from"./6IM6A5VA.js";import{a as L}from"./UWOFA6GV.js";import{a as U}from"./RETS2ZEK.js";import{a as f,d as Xe,i as Q,j as Be}from"./G6HCV67X.js";import{a as o,b as He,d as ee}from"./5YS5V2LK.js";import{encodeAbiParameters as A,encodeFunctionData as ne,erc20Abi as We,getAddress as y,isAddress as In,keccak256 as Cn,pad as qn,parseAbi as Pe,parseAbiParameters as B,toEventSelector as Ln,toHex as Ge}from"viem";var Tn=y(Q[4663].uniswap.v4_pool_manager.address),T=y(Q[4663].uniswap.v4_position_manager.address),le=y(Q[4663].uniswap.v4_state_view.address),_e=y(Q[4663].uniswap.permit2.address),ut=y(Q[4663].ponsTrade.universal_router.address),te=y(Q[4663].uniswap.WETH.address),E=y(Be),k="0x0000000000000000000000000000000000000000",Ue=8388608,Ee=-887272,ke=887272,mn=(1n<<48n)-1n,J=(1n<<128n)-1n,$n=(1n<<160n)-1n,ue=1n<<96n,Ze=1800n,yn=50n,Ye=e=>e*(10000n-yn)/10000n,Qe=(e,n)=>{let i=(e*(10000n+yn)+9999n)/10000n;return i<n?i:n},Mn="0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",Ke=[{poolId:"0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",key:{currency0:k,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0x06a889870c8f83640d6816319f72e2aa579b6080")},liquidity:"5532026605872066941",sqrtPriceX96:"3839897026469220985301794",tick:-198703,protocolFee:0,lpFee:0},{poolId:"0x387bf619da4d3fb62bb276482693dba1b9b3520f573cabdfe033384a24125982",key:{currency0:k,currency1:E,fee:500,tickSpacing:10,hooks:k},liquidity:"225820987949255613",sqrtPriceX96:"3840577772610961024680304",tick:-198700,protocolFee:512125,lpFee:500},{poolId:"0x54f7883914619af9105355bf83ed678bcf9f63560218ac61c9963b9503d0ba32",key:{currency0:k,currency1:E,fee:460,tickSpacing:9,hooks:k},liquidity:"85654324417347171",sqrtPriceX96:"3840419018843648722761192",tick:-198701,protocolFee:479349,lpFee:460},{poolId:"0xc7b615a3721594f73664eb3f62d8290d0fcc8d9d1156aed1ddecbd7f32efd9f5",key:{currency0:k,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0xcb787a5cdea8b3715d984d82f1203fd7bfebe0c4")},liquidity:"50517446454827887",sqrtPriceX96:"3840495145865430860317598",tick:-198700,protocolFee:0,lpFee:0},{poolId:"0x24107d152f14a76d292123265ae3f3c71f863fc2f4ef7ba49d64e78d28ea379e",key:{currency0:k,currency1:E,fee:100,tickSpacing:1,hooks:k},liquidity:"36478878201789434",sqrtPriceX96:"3840363370720475418748563",tick:-198701,protocolFee:102425,lpFee:100},{poolId:"0x84bd4e2d8be11aeb0afc1195b38f587b61e90068548f1063fdbe448fb8cad0b6",key:{currency0:te,currency1:E,fee:200,tickSpacing:4,hooks:k},liquidity:"5980655057479791",sqrtPriceX96:"3839891926195366283625355",tick:-198703,protocolFee:213044,lpFee:200},{poolId:"0x3b0cbf0603ecc67b5fc9bb4fbb6ac9e08d3b2f406b63d1662a36063a7fe5e866",key:{currency0:k,currency1:E,fee:87,tickSpacing:1,hooks:k},liquidity:"5486760264498148",sqrtPriceX96:"3840563617639470134132117",tick:-198700,protocolFee:90134,lpFee:87}],Ne=y("0x987e330f00b79864a07fe81dfac344d0078abcc0"),wn="0xa791e5169faf703c0b63fd9552c33ec1128a773a00f5dc33a640da62a022cd35",_n={currency0:k,currency1:E,fee:Ue,tickSpacing:1,hooks:Ne},En=new Set([...Ke.map(e=>e.key.hooks.toLowerCase()),Ne.toLowerCase()]),Dn=B("address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks"),Un=B("(address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, int24 tickLower, int24 tickUpper, uint256 liquidity, uint128 amount0Max, uint128 amount1Max, address owner, bytes hookData"),Kn=B("address currency0, address currency1"),Nn=B("address currency, address recipient"),we=B("uint256 tokenId, uint256 liquidity, uint128 amount0Min, uint128 amount1Min, bytes hookData"),Fn=B("uint256 tokenId, uint128 amount0Min, uint128 amount1Min, bytes hookData"),Te=B("address currency0, address currency1, address recipient"),de=B("bytes actions, bytes[] params"),F=Pe(["function modifyLiquidities(bytes unlockData, uint256 deadline) payable","function poolKeys(bytes25 poolId) view returns (address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks)","function getPositionLiquidity(uint256 tokenId) view returns (uint128 liquidity)","function getPoolAndPositionInfo(uint256 tokenId) view returns ((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, uint256 info)","function positionInfo(uint256 tokenId) view returns (uint256 info)","function ownerOf(uint256 tokenId) view returns (address owner)","function nextTokenId() view returns (uint256 tokenId)"]),Vn=Pe(["function initialize((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) key, uint160 sqrtPriceX96) returns (int24 tick)"]),Je=B("address currency"),en=1e6,pe=Pe(["function getSlot0(bytes32 poolId) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)","function getLiquidity(bytes32 poolId) view returns (uint128 liquidity)"]),Hn=Pe(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),Xn=Ln("Transfer(address,address,uint256)");function he(e){if(typeof e!="string"||!In(e,{strict:!1}))throw new o("Provide a valid v4 currency address.");let n=e.toLowerCase();return n===k||n===ae.toLowerCase()?k:y(e)}function X(e){let n=e.toLowerCase();return n===k||n===ae.toLowerCase()}function fe(e){let n=he(e.currency0),i=he(e.currency1);$(e.hooks);let r=y(e.hooks);return Cn(A(Dn,[n,i,e.fee,e.tickSpacing,r]))}function bn(e){return((typeof e=="number"?e:e.fee)&Ue)!==0}function nn(e,n){return bn(e)?{dynamicFee:!0,storedLpFee:n,swapsAreFree:!1,feeNote:"Pool uses dynamic fee flag 0x800000; stored lpFee=0 does not mean swaps are free. The hook determines the swap fee; a past observation is not a current quote."}:{dynamicFee:!1,storedLpFee:n,swapsAreFree:n===0,feeNote:`Static LP fee ${n} pips.`}}function be(e,n){if(!e||typeof e!="object")throw new o("Provide a valid v4 PoolKey.");let i=he(e.currency0),r=he(e.currency1);if(BigInt(i)>=BigInt(r))throw new o("PoolKey currencies must be strictly sorted (currency0 < currency1).");if(!Number.isInteger(e.tickSpacing)||e.tickSpacing<=0||e.tickSpacing>32767)throw new o("PoolKey tickSpacing must be a positive integer.");if(!Number.isInteger(e.fee)||e.fee<0||e.fee>16777215)throw new o("PoolKey fee must be a valid uint24.");$(e.hooks);let c=y(e.hooks),s=bn(e.fee);if(!s&&e.fee>en)throw new o(`PoolKey static fee ${e.fee} exceeds the v4 maximum of ${en} pips (100%).`);if(s&&e.fee!==Ue)throw new o("Dynamic-fee PoolKey must use exact fee flag 0x800000 (8388608).");if(s&&c.toLowerCase()===k)throw new o("Dynamic-fee PoolKey requires a non-zero hook address.");if(!En.has(c.toLowerCase()))throw new o(`Unsupported v4 hook ${c}: Oak does not assure arbitrary v4 hooks outside measured PoolKeys.`);let t={currency0:i,currency1:r,fee:e.fee,tickSpacing:e.tickSpacing,hooks:c},d=fe(t);if(c===Ne&&d.toLowerCase()!==wn)throw new o("Only the documented VolatilePair ETH/USDG PoolKey is supported. Pool creation requires the Uniswap Labs role.");if(n!==void 0){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new o("Provide a 32-byte hex poolId.");if(d.toLowerCase()!==n.toLowerCase())throw new o(`PoolKey hash (${d}) does not match expected poolId (${n}).`)}return t}function Bn(e){if(!Number.isInteger(e)||e<=0||e>ke)throw new o("tickSpacing must be a positive integer.");let n=Math.trunc(Ee/e)*e,i=Math.trunc(ke/e)*e;return{tickLower:n===0?0:n,tickUpper:i===0?0:i}}function On(e,n,i){if(!Number.isInteger(i)||i<=0)throw new o("tickSpacing must be a positive integer.");if(!Number.isInteger(e)||!Number.isInteger(n))throw new o("tickLower and tickUpper must be integers.");if(e<Ee||n>ke)throw new o(`Ticks [${e}, ${n}] are outside Uniswap bounds [${Ee}, ${ke}].`);if(e>=n)throw new o("tickLower must be strictly less than tickUpper.");if(e%i!==0||n%i!==0)throw new o(`Ticks [${e}, ${n}] must be divisible by tickSpacing ${i}.`)}function tn(e,n,i,r,c=f){if($(e),$(n),X(e))throw new o("Native ETH does not use Permit2 approval.");let s=U(i);if(s<=0n||s>$n)throw new o("Permit2 approval amount must be a positive integer within uint160.");let t=U(String(r));if(t<=0n||t>mn)throw new o("Permit2 expiration must be a positive timestamp within uint48.");let d=ne({abi:Hn,functionName:"approve",args:[e,n,s,Number(t)]});return Oe({to:_e,data:d,value:"0",chainId:c,description:`Approve Permit2 allowance of ${s} base units of ${e} for ${n} until ${t}.`})}function on(e){let n=Number(e&0xffffffn);return(n&8388608)!==0?n-16777216:n}function Rn(e){let n=(e&0xffn)!==0n,i=on(e>>8n&0xffffffn),r=on(e>>32n&0xffffffn);return{poolIdBytes25:`0x${(e>>56n&(1n<<200n)-1n).toString(16).padStart(50,"0")}`,tickLower:i,tickUpper:r,hasSubscriber:n}}function rn(e,n,i,r=!1){let[c,s]=e<=n?[e,n]:[n,e];if(c<=0n||s<=0n)return 0n;let t=(i<<96n)*(s-c),d=s*c;return r?(t+d-1n)/d:t/d}function sn(e,n,i,r=!1){let[c,s]=e<=n?[e,n]:[n,e],t=i*(s-c);return r?(t+ue-1n)/ue:t/ue}function gn(e){if(e.liquidity<=0n)return{amount0:0n,amount1:0n};let n=ce(e.tickLower),i=ce(e.tickUpper);return e.sqrtPriceX96<=n?{amount0:rn(n,i,e.liquidity,e.roundUp),amount1:0n}:e.sqrtPriceX96<i?{amount0:rn(e.sqrtPriceX96,i,e.liquidity,e.roundUp),amount1:sn(n,e.sqrtPriceX96,e.liquidity,e.roundUp)}:{amount0:0n,amount1:sn(n,i,e.liquidity,e.roundUp)}}function jn(e){let n=ce(e.tickLower),i=ce(e.tickUpper),r=(s,t,d)=>t<=s||d<=0n?0n:d*s*t/ue/(t-s),c=(s,t,d)=>t<=s||d<=0n?0n:d*ue/(t-s);if(e.sqrtPriceX96<=n)return r(n,i,e.amount0);if(e.sqrtPriceX96<i){let s=r(e.sqrtPriceX96,i,e.amount0),t=c(n,e.sqrtPriceX96,e.amount1);return s<t?s:t}return c(n,i,e.amount1)}function $e(e,n){return e.map(i=>{let r=i.amount.trim(),c=r.startsWith("-"),s=c||r.startsWith("+")?r.slice(1):r,t=n(s,i.token.decimals);return`${c?"-":""}${t} ${i.token.symbol}`})}function an(e,n=f){if(X(e))return{address:ae,symbol:"ETH",decimals:18,chainId:n};let i=y(e);return i.toLowerCase()===E.toLowerCase()?{address:E,symbol:"USDG",decimals:Xe,chainId:n}:i.toLowerCase()===te.toLowerCase()?{address:te,symbol:"WETH",decimals:18,chainId:n}:{address:i,symbol:i.slice(0,10),decimals:18,chainId:n}}async function N(e,n,i=f){if(X(n))return an(n,i);let r=y(n);if(r.toLowerCase()===E.toLowerCase()||r.toLowerCase()===te.toLowerCase())return an(r,i);let[c,s]=await Promise.all([e.readContract({address:r,abi:We,functionName:"symbol"}),e.readContract({address:r,abi:We,functionName:"decimals"})]);if(!Number.isInteger(Number(s))||Number(s)<0||Number(s)>77)throw new o(`Token ${r} reports invalid decimals.`);return{address:r,symbol:ze(c,r),decimals:Number(s),chainId:i}}function j(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new o(`${n} must be a non-negative integer string in base units.`);return U(e)}function cn(e,n,i,r){let c=e===void 0?U(Ce(n.toString(),i)):j(e,r);if(c<=1n||c>J)throw new o(`${r} must exceed 1 base unit and fit in uint128; the simulated amount may be too small.`);return c}async function kn(e,n){if(typeof n=="number"&&Number.isFinite(n)&&n>0)return BigInt(Math.floor(n>1e11?n/1e3:n));if(typeof n=="string"&&/^\d+$/.test(n.trim()))return BigInt(n.trim());try{let i=await e.request({method:"eth_getBlockByNumber",params:["latest",!1]});if(i&&typeof i.timestamp=="string")return BigInt(i.timestamp)}catch{}return BigInt(Math.floor(Date.now()/1e3))}async function Me(e,n,i){let r=await kn(e,i);if(n==null)return r+1800n;let c=U(String(n));if(c<=r)throw new o(`Transaction deadline ${c} has expired (current timestamp ${r}).`);return c}async function De(e,n){let i=typeof n.poolId=="string"?n.poolId.trim():void 0,r=n.poolKey&&typeof n.poolKey=="object"&&!Array.isArray(n.poolKey)?n.poolKey:void 0,c=r?{currency0:String(r.currency0??k),currency1:String(r.currency1??E),fee:Number(r.fee),tickSpacing:Number(r.tickSpacing),hooks:String(r.hooks??k)}:n.currency0!==void 0&&n.currency1!==void 0&&n.fee!==void 0&&n.tickSpacing!==void 0?{currency0:String(n.currency0),currency1:String(n.currency1),fee:Number(n.fee),tickSpacing:Number(n.tickSpacing),hooks:String(n.hooks??k)}:void 0;if(c){if(X(c.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===te.toLowerCase())throw new o("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");let b=be(c,i);return{poolId:fe(b),poolKey:b}}let s=(i??Mn).toLowerCase();if(s===wn)return{poolId:s,poolKey:be(_n,s)};let t=Ke.find(b=>b.poolId.toLowerCase()===s);if(t){if(X(t.key.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===te.toLowerCase())throw new o("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");return{poolId:t.poolId,poolKey:t.key}}let d=s.slice(0,52),a=await e.readContract({address:T,abi:F,functionName:"poolKeys",args:[d]}),[p,l,m,u,h]=a;if(p.toLowerCase()===k&&l.toLowerCase()===k&&Number(u)===0)throw new o(`Unknown or uninitialized v4 poolId ${s}.`);let w=be({currency0:p,currency1:l,fee:Number(m),tickSpacing:Number(u),hooks:h},s);return{poolId:s,poolKey:w}}async function ge(e,n,i){try{let[r,c]=await e.readContract({address:T,abi:F,functionName:"getPoolAndPositionInfo",args:[n]}),s=be({currency0:r.currency0,currency1:r.currency1,fee:Number(r.fee),tickSpacing:Number(r.tickSpacing),hooks:r.hooks});if((i.poolKey||i.poolId)&&(await De(e,i)).poolId.toLowerCase()!==fe(s).toLowerCase())throw new o("The supplied PoolKey does not match this v4 position.");let t=Rn(BigInt(c));return{poolKey:s,poolId:fe(s),tickLower:t.tickLower,tickUpper:t.tickUpper}}catch(r){throw new o(`Could not read v4 position #${n}. ${ee(r)}`)}}async function dn(e,n,i={}){$(n);let r=y(n),c=e.clientFor(f),s=new Set;if(i.tokenIds)for(let d of i.tokenIds)s.add(U(String(d)).toString());try{let d=await c.getBlockNumber(),a=10000000n;for(let p=0n;p<=d;p+=a){let l=p+a-1n<d?p+a-1n:d,m=await c.request({method:"eth_getLogs",params:[{address:T.toLowerCase(),topics:[Xn,null,qn(r)],fromBlock:Ge(p),toBlock:Ge(l)}]});if(!Array.isArray(m))throw new o("Invalid v4 position log response.");for(let u of m){if(!Array.isArray(u.topics)||u.topics.length!==4||!/^0x[0-9a-fA-F]{64}$/.test(u.topics[3]??""))throw new o("Invalid v4 position transfer log.");s.add(BigInt(u.topics[3]).toString())}}}catch(d){if(!i.tokenIds)throw new o(`Could not discover v4 positions. ${ee(d)}`)}let t=[];for(let d of s){let a=BigInt(d);try{let p;try{p=await c.readContract({address:T,abi:F,functionName:"ownerOf",args:[a]})}catch(P){if(He(P,3))continue;throw P}if(p.toLowerCase()!==r.toLowerCase())continue;let l=await c.readContract({address:T,abi:F,functionName:"getPositionLiquidity",args:[a]}),m=BigInt(l);if(m===0n&&!i.includeZero)continue;let{poolKey:u,poolId:h,tickLower:w,tickUpper:b}=await ge(c,a,{}),I=await c.readContract({address:le,abi:pe,functionName:"getSlot0",args:[h]}),x=BigInt(I[0]),{amount0:g,amount1:S}=gn({liquidity:m,tickLower:w,tickUpper:b,sqrtPriceX96:x}),[v,D]=await Promise.all([N(c,u.currency0,f),N(c,u.currency1,f)]);t.push({module:"uniswap",id:`uniswap:v4:${a.toString()}`,chainId:f,assets:[{token:v,amount:g.toString()},{token:D,amount:S.toString()}],description:`Uniswap v4 LP position #${a.toString()} (${v.symbol}/${D.symbol}, liquidity=${m.toString()}, ticks=[${w},${b}], poolId=${h})`})}catch(p){throw new o(`Could not read v4 position #${a}. ${ee(p)}`)}}return t}var zn={type:"object",properties:{version:{type:"string",enum:["v4"]},poolId:{type:"string",description:"32-byte Uniswap v4 poolId hex string."},poolKey:{type:"object",properties:{currency0:{type:"string"},currency1:{type:"string"},fee:{type:"number"},tickSpacing:{type:"number"},hooks:{type:"string"}}},currency0:{type:"string"},currency1:{type:"string"},fee:{type:"number"},tickSpacing:{type:"number"},hooks:{type:"string"},tickLower:{type:"number"},tickUpper:{type:"number"},fullRange:{type:"boolean"},liquidity:L("Position liquidity in base units."),amount0Max:L("Maximum currency0 base units to spend."),amount1Max:L("Maximum currency1 base units to spend."),recipient:{type:"string"},deadline:L(),permit2Expiration:{type:"string"},hookData:{type:"string"},tokenId:L("Existing v4 position NFT to increase (keeps its tick range). Omit to mint a new position."),initialPrice:{type:"string",description:"Only when the pool does not exist: starting price as token1 per 1 token0 in human units (native ETH is 18 decimals). Needs the full poolKey. Creates the pool then mints the first position in separately confirmed transactions."},sqrtPriceX96:{type:"string",description:"Alternative to initialPrice: exact starting sqrtPriceX96."},acceptPriceDeviation:{type:"boolean",description:"Allow a starting price more than 500 bps from other live pools of the pair."}}},Wn={type:"object",description:"Create and initialize an empty Uniswap v4 pool (permissionless PoolManager.initialize). Add liquidity afterwards with uniswap_add.",properties:{version:{type:"string",enum:["v4"]},poolKey:{type:"object",properties:{currency0:{type:"string"},currency1:{type:"string"},fee:{type:"number"},tickSpacing:{type:"number"},hooks:{type:"string"}}},currency0:{type:"string",description:"Lower sorted currency; the zero address is native ETH."},currency1:{type:"string"},fee:{type:"number",description:"Static LP fee in pips (3000 = 0.30%), at most 1000000."},tickSpacing:{type:"number"},hooks:{type:"string",description:"Hook address; only hooks Oak has measured are accepted. Defaults to none."},initialPrice:{type:"string",description:'Starting price as token1 per 1 token0 in human units, e.g. "3000" for 1 ETH = 3000 USDG.'},sqrtPriceX96:{type:"string",description:"Alternative to initialPrice: exact starting sqrtPriceX96."},acceptPriceDeviation:{type:"boolean",description:"Allow a starting price more than 500 bps from other live pools of the pair."}}},Gn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:L(),poolId:{type:"string"},poolKey:{type:"object"},amount0Min:L(),amount1Min:L(),recipient:{type:"string"},deadline:L(),hookData:{type:"string"}},required:["tokenId"]},Zn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:L(),liquidity:{type:"string",pattern:"^(?:[0-9]+|all)$",description:"Positive base-unit liquidity amount, or all for a full burn."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:Ie},fullExit:{type:"boolean"},burn:{type:"boolean"},amount0Min:L(),amount1Min:L(),poolId:{type:"string"},poolKey:{type:"object"},recipient:{type:"string"},deadline:L(),hookData:{type:"string"}},required:["tokenId"]},Yn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenIds:{type:"array",items:L()},includeZero:{type:"boolean"}}};function un(e){let n=e.poolKey&&typeof e.poolKey=="object"&&!Array.isArray(e.poolKey)?e.poolKey:e;for(let i of["currency0","currency1","fee","tickSpacing"])if(n[i]===void 0)throw new o(`Creating a pool needs the full poolKey (currency0, currency1, fee, tickSpacing, hooks); ${i} is missing. A poolId alone cannot describe a pool that does not exist yet.`)}function ln(e,n,i){if(e.initialPrice!==void 0&&e.sqrtPriceX96!==void 0)throw new o("Provide initialPrice or sqrtPriceX96, not both.");if(e.sqrtPriceX96!==void 0){if(typeof e.sqrtPriceX96!="string"||!/^\d+$/.test(e.sqrtPriceX96))throw new o("sqrtPriceX96 must be a non-negative integer string.");return je(BigInt(e.sqrtPriceX96))}return Re(e.initialPrice,n,i)}async function Qn(e,n,i){let r;try{r=await e.readContract({address:T,abi:F,functionName:"ownerOf",args:[n]})}catch(c){throw new o(`Could not verify owner of Uniswap v4 position #${n}. ${ee(c)}`)}if(y(r)!==y(i))throw new o(`Wallet ${y(i)} is not the owner of Uniswap v4 position #${n} (owned by ${y(r)}).`)}async function pn(e,n){let i=fe(n).toLowerCase(),r=new Map;for(let s of Ke)s.key.currency0.toLowerCase()===n.currency0.toLowerCase()&&s.key.currency1.toLowerCase()===n.currency1.toLowerCase()&&r.set(s.poolId.toLowerCase(),s.key);let c=[];for(let[s,t]of r){if(s===i||BigInt(await e.readContract({address:le,abi:pe,functionName:"getLiquidity",args:[s]}))===0n)continue;let a=await e.readContract({address:le,abi:pe,functionName:"getSlot0",args:[s]});BigInt(a[0])>0n&&c.push({label:`v4 fee ${t.fee} spacing ${t.tickSpacing} pool ${s}`,sqrtPriceX96:BigInt(a[0])})}return c}function fn(e,n,i,r,c,s){return e.unsignedTx({to:Tn.toLowerCase(),data:ne({abi:Vn,functionName:"initialize",args:[{currency0:n.currency0.toLowerCase(),currency1:n.currency1.toLowerCase(),fee:n.fee,tickSpacing:n.tickSpacing,hooks:n.hooks.toLowerCase()},r]}),value:"0",chainId:f,description:`Create and initialize Uniswap v4 pool ${i} (${c.symbol}/${s.symbol}, fee ${n.fee}, tickSpacing ${n.tickSpacing}) at ${ye(r,c.decimals,s.decimals)} ${s.symbol} per ${c.symbol}.`})}var Jn=e=>({tools:[{name:"uniswap_add",inputSchema:zn,async execute(t,d){if($(d),t.version!==void 0&&t.version!=="v4")throw new o('Uniswap v4 part only handles version "v4".');let a=t.tokenId===void 0?void 0:U(String(t.tokenId));if(a!==void 0&&a<=0n)throw new o("Provide a positive v4 position tokenId.");let p=t.initialPrice!==void 0||t.sqrtPriceX96!==void 0;if(a!==void 0&&p)throw new o("initialPrice cannot be combined with tokenId.");if(t.amount0Min!==void 0||t.amount1Min!==void 0||t.slippageBps!==void 0)throw new o("V4 mint encodes fixed liquidity and amount0Max/amount1Max; amount minima and slippageBps are not supported for minting.");let l=e.clientFor(f);p&&un(t);let m,u,h,w;if(a!==void 0){if(t.tickLower!==void 0||t.tickUpper!==void 0||t.fullRange!==void 0)throw new o("An existing v4 position keeps its tick range; omit tickLower, tickUpper and fullRange when increasing.");await Qn(l,a,d),{poolId:m,poolKey:u,tickLower:h,tickUpper:w}=await ge(l,a,t)}else{({poolId:m,poolKey:u}=await De(l,t));let q=Bn(u.tickSpacing);h=t.fullRange===!0&&t.tickLower===void 0?q.tickLower:Number(t.tickLower),w=t.fullRange===!0&&t.tickUpper===void 0?q.tickUpper:Number(t.tickUpper),On(h,w,u.tickSpacing)}let[b,I]=await Promise.all([N(l,u.currency0,f),N(l,u.currency1,f)]),x=j(t.amount0Max??t.amount0Desired,"amount0Max"),g=j(t.amount1Max??t.amount1Desired,"amount1Max");if(x<=0n&&g<=0n||x>J||g>J)throw new o("Provide positive amount0Max/amount1Max within uint128.");let S=await l.readContract({address:le,abi:pe,functionName:"getSlot0",args:[m]}),v=BigInt(S[0]),D=Number(S[3]),P;if(p){if(v>0n)throw new o(`Pool ${m} already exists; remove initialPrice/sqrtPriceX96 to add liquidity at its current price.`);let q=ln(t,b.decimals,I.decimals),K=Le(q,await pn(l,u),t.acceptPriceDeviation===!0,b.decimals,I.decimals);P={sqrtPriceX96:q,note:K},v=q}else if(v<=0n)throw new o(`Pool ${m} is not initialized on StateView. To create it and add the first liquidity in one tool call with separately confirmed transactions, pass the full poolKey plus initialPrice (token1 per 1 token0, human units); to create it without liquidity use uniswap_create_pool.`);let C=t.liquidity!==void 0?j(t.liquidity,"liquidity"):jn({amount0:Ye(x),amount1:Ye(g),tickLower:h,tickUpper:w,sqrtPriceX96:v});if(C<=0n||C>J)throw new o("Position liquidity must be a positive integer within uint128.");let{amount0:V,amount1:z}=gn({liquidity:C,tickLower:h,tickUpper:w,sqrtPriceX96:v,roundUp:!0});if(V>x||z>g)throw new o("Liquidity requires more tokens than amount0Max or amount1Max.");let ie=Qe(V,x),oe=Qe(z,g),W=t.recipient!==void 0?String(t.recipient):d;if($(W),y(W)!==y(d))throw new o("Uniswap recipient must be the signing wallet.");let G=await kn(l),re=await Me(l,t.deadline,G.toString()),_=re<G+Ze?re:G+Ze,M=t.permit2Expiration===void 0?_:U(String(t.permit2Expiration));if(M<=G||M>_||M>mn)throw new o("Permit2 expiration must be in the next 30 minutes and no later than the transaction deadline.");let Z=typeof t.hookData=="string"?t.hookData:"0x",Y=((q,K)=>{let R=P?[fn(e,u,m,P.sqrtPriceX96,b,I)]:[];if(!X(u.currency0)&&q>0n){let se=u.currency0.toLowerCase();R.push(e.approval(se,_e.toLowerCase(),q.toString(),f)),R.push(tn(se,T.toLowerCase(),q.toString(),M.toString(),f))}if(!X(u.currency1)&&K>0n){let se=u.currency1.toLowerCase();R.push(e.approval(se,_e.toLowerCase(),K.toString(),f)),R.push(tn(se,T.toLowerCase(),K.toString(),M.toString(),f))}let H={currency0:u.currency0.toLowerCase(),currency1:u.currency1.toLowerCase(),fee:u.fee,tickSpacing:u.tickSpacing,hooks:u.hooks.toLowerCase()},Se=A(Un,[H,h,w,C,q,K,W.toLowerCase(),Z]),Pn=A(Kn,[H.currency0,H.currency1]),Ve=A(Nn,[k,W.toLowerCase()]),vn=A(we,[a??0n,C,q,K,Z]),An=a===void 0?A(de,["0x020d14",[Se,Pn,Ve]]):A(de,["0x00121214",[vn,A(Je,[H.currency0]),A(Je,[H.currency1]),Ve]]),xn=ne({abi:F,functionName:"modifyLiquidities",args:[An,re]}),Sn=X(u.currency0)?q.toString():"0";return R.push(e.unsignedTx({to:T.toLowerCase(),data:xn,value:Sn,chainId:f,description:a!==void 0?`Increase Uniswap v4 position #${a} on pool ${m} (liquidity +${C}).`:`Mint Uniswap v4 position on pool ${m} (ticks [${h}, ${w}], liquidity ${C}).`})),R})(ie,oe),O=await e.preview(Y,d),Fe=(q,K)=>{let R=X(K)?ae:K.toLowerCase();return-q.changes.filter(H=>H.token.address.toLowerCase()===R).reduce((H,Se)=>H+BigInt(Se.amount),0n)},ve=Fe(O,u.currency0),Ae=Fe(O,u.currency1);if(ve<0n||Ae<0n||ve>ie||Ae>oe||ve===0n&&Ae===0n&&a===void 0)throw new o("Invalid simulated v4 mint spend. Refresh the liquidity preview.");let hn=$e(O.changes,e.formatAmount),xe=nn(u,D);return{txs:Y,preview:O,poolId:m,poolKey:u,tickLower:h,tickUpper:w,liquidity:C.toString(),amount0Max:{token:b,amount:x.toString()},amount1Max:{token:I,amount:g.toString()},dynamicFee:xe.dynamicFee,swapsAreFree:xe.swapsAreFree,action:a!==void 0?"increase":P?"createAndMint":"mint",...a!==void 0?{tokenId:a.toString()}:{},...P?{poolCreated:!0,sqrtPriceX96:P.sqrtPriceX96.toString(),initialPrice:ye(P.sqrtPriceX96,b.decimals,I.decimals),initialTick:qe(P.sqrtPriceX96),priceCheck:P.note}:{},summary:`${a!==void 0?`Increase Uniswap v4 position #${a}`:P?"Create Uniswap v4 pool and add first liquidity":"Add Uniswap v4 liquidity"} (${C} L, ticks [${h}, ${w}]) on pool ${m}. Preview deltas: ${hn.join(", ")||"none"}. ${xe.feeNote}${P?` ${P.note}`:""}`}}},{name:"uniswap_collect",inputSchema:Gn,async execute(t,d){if($(d),t.version!==void 0&&t.version!=="v4")throw new o('Uniswap v4 part only handles version "v4".');let a=U(String(t.tokenId??""));if(a<=0n)throw new o("Provide a positive v4 position tokenId.");let p=e.clientFor(f),l=t.recipient!==void 0?String(t.recipient):d;if($(l),y(l)!==y(d))throw new o("Uniswap recipient must be the signing wallet.");let m=await Me(p,t.deadline,t.now),u=t.amount0Min!==void 0?j(t.amount0Min,"amount0Min"):0n,h=t.amount1Min!==void 0?j(t.amount1Min,"amount1Min"):0n;if(u>J||h>J)throw new o("amount0Min and amount1Min must fit in uint128.");let w=typeof t.hookData=="string"?t.hookData:"0x",{poolKey:b,poolId:I}=await ge(p,a,t),[x,g]=await Promise.all([N(p,b.currency0,f),N(p,b.currency1,f)]),S=A(we,[a,0n,u,h,w]),v=A(Te,[b.currency0.toLowerCase(),b.currency1.toLowerCase(),l.toLowerCase()]),D=A(de,["0x0111",[S,v]]),P=ne({abi:F,functionName:"modifyLiquidities",args:[D,m]}),C=[e.unsignedTx({to:T.toLowerCase(),data:P,value:"0",chainId:f,description:`Collect Uniswap v4 fees from position #${a} to ${l}.`})],V=await e.preview(C,d),z=$e(V.changes,e.formatAmount);return{txs:C,preview:V,tokenId:a.toString(),poolId:I,recipient:l,currencies:[x,g],summary:`Collect Uniswap v4 fees for position #${a} (actions 0x0111). Preview deltas: ${z.join(", ")||"0"}.`}}},{name:"uniswap_remove",inputSchema:Zn,async execute(t,d){if($(d),t.version!==void 0&&t.version!=="v4")throw new o('Uniswap v4 part only handles version "v4".');let a=U(String(t.tokenId??""));if(a<=0n)throw new o("Provide a positive v4 position tokenId.");let p=e.clientFor(f),l=t.recipient!==void 0?String(t.recipient):d;if($(l),y(l)!==y(d))throw new o("Uniswap recipient must be the signing wallet.");let m=await Me(p,t.deadline,t.now),{poolKey:u,poolId:h}=await ge(p,a,t),[w,b]=await Promise.all([N(p,u.currency0,f),N(p,u.currency1,f)]),I=t.slippageBps??Ie;if(typeof I!="number")throw new o("Slippage must be an integer from 0 to 9999 bps.");Ce("0",I);let x=typeof t.hookData=="string"?t.hookData:"0x",g=t.fullExit===!0||t.burn===!0||t.liquidity==="all";if(!g&&t.liquidity===void 0)throw new o('Provide a liquidity amount or explicitly choose liquidity "all" for a full exit.');let S=t.liquidity===void 0||t.liquidity==="all"?void 0:j(t.liquidity,"liquidity");if(S!==void 0&&(S<0n||S===0n&&!g||S>J))throw new o("Provide positive liquidity within uint128 for v4 removal.");let v;try{v=BigInt(await p.readContract({address:T,abi:F,functionName:"getPositionLiquidity",args:[a]}))}catch(_){throw new o(`Could not read v4 position liquidity. ${ee(_)}`)}if(v<0n||v===0n&&!g||S!==void 0&&S>v)throw new o("Removal requires a nonempty position and cannot exceed its liquidity.");if(g&&S!==void 0&&S!==v)throw new o("A full burn must match the position liquidity; omit the amount when explicitly choosing all.");let D=g?"0x0311":"0x0111",P=(_,M,Z)=>{let me=g?A(Fn,[a,_,M,x]):A(we,[a,S,_,M,x]),Y=A(Te,[u.currency0,u.currency1,Z]);return e.unsignedTx({to:T.toLowerCase(),data:ne({abi:F,functionName:"modifyLiquidities",args:[A(de,[D,[me,Y]]),m]}),value:"0",chainId:f,description:`${g?"Burn and exit":"Decrease"} Uniswap v4 position #${a} (${D}).`})},C=0n,V=0n;if(v>0n&&(t.amount0Min===void 0||t.amount1Min===void 0)){let _=e.unsignedTx({to:T.toLowerCase(),data:ne({abi:F,functionName:"modifyLiquidities",args:[A(de,["0x0111",[A(we,[a,0n,0n,0n,x]),A(Te,[u.currency0,u.currency1,T])]]),m]}),value:"0",chainId:f,description:"Simulation only: separate fees from removal principal."}),M=await e.preview([_,P(2n,2n,d)],d),Z=me=>M.changes.reduce((Y,O)=>O.token.chainId===f&&O.token.address.toLowerCase()===me.address.toLowerCase()?Y+BigInt(O.amount):Y,0n);if(C=Z(w),V=Z(b),C<0n||V<0n)throw new o("Removal simulation did not return the expected currencies.")}let z=(_,M)=>{if(_!==void 0&&j(_,M)!==0n)throw new o(`${M} must be zero for an empty position burn.`);return 0n},ie=v===0n?z(t.amount0Min,"amount0Min"):cn(t.amount0Min,C,I,"amount0Min"),oe=v===0n?z(t.amount1Min,"amount1Min"):cn(t.amount1Min,V,I,"amount1Min"),W=[P(ie,oe,l)],G=await e.preview(W,d),re=$e(G.changes,e.formatAmount);return{txs:W,preview:G,action:D,tokenId:a.toString(),poolId:h,amount0Min:{token:w,amount:ie.toString()},amount1Min:{token:b,amount:oe.toString()},summary:`${g?"Full exit":"Partial remove"} Uniswap v4 position #${a} (${D})${g?`; burns position #${a} at ${T}`:""}. Preview deltas: ${re.join(", ")||"none"}.`}}},{name:"uniswap_list_positions",inputSchema:Yn,async execute(t,d){if($(d),t.version!==void 0&&t.version!=="v4")throw new o('Uniswap v4 part only handles version "v4".');let a=Array.isArray(t.tokenIds)?t.tokenIds:void 0,p=t.includeZero===!0,l=await dn(e,d,{tokenIds:a,includeZero:p});return{version:"v4",positions:l,summary:`Found ${l.length} active Uniswap v4 position(s) for ${d}.`}}},{name:"uniswap_create_pool",inputSchema:Wn,async execute(t,d){if($(d),t.version!==void 0&&t.version!=="v4")throw new o('Uniswap v4 part only handles version "v4".');un(t);let a=e.clientFor(f),{poolId:p,poolKey:l}=await De(a,t),[m,u]=await Promise.all([N(a,l.currency0,f),N(a,l.currency1,f)]),h=await a.readContract({address:le,abi:pe,functionName:"getSlot0",args:[p]});if(BigInt(h[0])>0n)throw new o(`Uniswap v4 pool ${p} already exists. Use uniswap_add to provide liquidity.`);let w=ln(t,m.decimals,u.decimals),b=Le(w,await pn(a,l),t.acceptPriceDeviation===!0,m.decimals,u.decimals),I=ye(w,m.decimals,u.decimals),x=[fn(e,l,p,w,m,u)],g=await e.preview(x,d),S=nn(l,l.fee);return{txs:x,preview:g,poolId:p,poolKey:l,sqrtPriceX96:w.toString(),initialPrice:I,initialTick:qe(w),priceCheck:b,action:"createPool",summary:`${x[0].description} The pool starts empty: nothing trades until liquidity is added with uniswap_add. ${S.feeNote} ${b}`}}}],positions:t=>dn(e,t)}),lt=Jn;export{Tn as a,T as b,le as c,_e as d,ut as e,te as f,E as g,k as h,Ue as i,Ee as j,ke as k,Mn as l,Ke as m,Ne as n,wn as o,_n as p,En as q,X as r,fe as s,bn as t,nn as u,be as v,Bn as w,On as x,tn as y,Rn as z,gn as A,jn as B,$e as C,an as D,N as E,ge as F,dn as G,zn as H,Wn as I,Gn as J,Zn as K,Yn as L,pn as M,Jn as N,lt as O};
@@ -1 +0,0 @@
1
- import{b as pe,c as De}from"./SQ5BNSXR.js";import{c as Te,d as a,r as xe}from"./53N7PNJH.js";import{o as ce}from"./5O5ZE3ZV.js";import{a as M}from"./CY75R4FK.js";import{a as ve}from"./6IM6A5VA.js";import{a as te}from"./UWOFA6GV.js";import{c as H,j as Ce}from"./73N3TOJL.js";import{a as ke}from"./RETS2ZEK.js";import{a as R,i as qe}from"./G6HCV67X.js";import{a as e}from"./5YS5V2LK.js";import{decodeFunctionData as Ee,erc20Abi as Ne}from"viem";var je="https://api.relay.link",q="0x0000000000000000000000000000000000000000",Le=60,Se=30,n=qe[R].relay.depository.address.toLowerCase(),ne="0x59916da825d2d2ec1bf878d71c88826f6633ecca",Oe=new Map([[1,{chainId:"ethereum",depository:n}],[10,{chainId:"optimism",depository:n}],[25,{chainId:"cronos",depository:ne}],[56,{chainId:"bnb",depository:n}],[100,{chainId:"gnosis",depository:n}],[130,{chainId:"unichain",depository:n}],[137,{chainId:"polygon",depository:n}],[143,{chainId:"monad",depository:n}],[146,{chainId:"sonic",depository:n}],[169,{chainId:"manta",depository:n}],[196,{chainId:"xlayer",depository:n}],[288,{chainId:"boba",depository:n}],[324,{chainId:"zksync",depository:n}],[360,{chainId:"shape",depository:n}],[480,{chainId:"worldchain",depository:n}],[747,{chainId:"flow",depository:n}],[988,{chainId:"stable",depository:n}],[999,{chainId:"hyperevm",depository:n}],[1088,{chainId:"metis",depository:ne}],[1135,{chainId:"lisk",depository:n}],[1868,{chainId:"soneium",depository:n}],[2020,{chainId:"ronin",depository:n}],[2741,{chainId:"abstract",depository:n}],[2818,{chainId:"morph",depository:n}],[4217,{chainId:"tempo",depository:n}],[4326,{chainId:"megaeth",depository:n}],[5e3,{chainId:"mantle",depository:ne}],[5031,{chainId:"somnia",depository:n}],[5042,{chainId:"arc",depository:n}],[8453,{chainId:"base",depository:n}],[9745,{chainId:"plasma",depository:n}],[33139,{chainId:"apechain",depository:n}],[34443,{chainId:"mode",depository:n}],[42018,{chainId:"mythos",depository:n}],[42161,{chainId:"arbitrum",depository:n}],[42220,{chainId:"celo",depository:n}],[43114,{chainId:"avalanche",depository:n}],[48900,{chainId:"zircuit",depository:n}],[57073,{chainId:"ink",depository:n}],[59144,{chainId:"linea",depository:ne}],[60808,{chainId:"bob",depository:n}],[80094,{chainId:"berachain",depository:n}],[97477,{chainId:"doma",depository:n}],[98866,{chainId:"plume",depository:n}],[534352,{chainId:"scroll",depository:n}],[685689,{chainId:"gensyn",depository:n}],[747474,{chainId:"katana",depository:n}],[5064014,{chainId:"ethereal",depository:n}],[7777777,{chainId:"zora",depository:n}]]);function nt(t){return Oe.get(t)?.depository}function F(t){return Ce(t,"Provide a token or wallet address.")}function I(t){let o=F(t);return o===M?q:o}function f(t,o){return F(t)===F(o)}function l(t){if(typeof t!="string")throw new e("Provide a decimal base-unit amount string.");return ke(t),t}function oe(t){let o=l(t);if(BigInt(o)<=0n)throw new e("Provide a positive base-unit amount.");return o}function ze(t){if(typeof t!="number"||!Number.isSafeInteger(t)||t<=0)throw new e("Provide a positive integer origin chain ID.");return t}function Pe(t,o){if(typeof t!="number"||!Number.isSafeInteger(t)||t<=0)throw new e(`${o} is missing or invalid.`);return t}async function G(t,o,c,i,p){let r=a(c);if(r.chainId!==i||I(r.address)!==p||typeof r.symbol!="string"||!/^[A-Za-z0-9._-]{1,32}$/.test(r.symbol))throw new e("Relay quote token metadata does not match the requested chain and address.");if(p===q){if(r.decimals!==18)throw new e("Native token decimals must be 18.");return{address:M,chainId:i,symbol:r.symbol,decimals:18}}let g=`${i}:${p}`,m=o.get(g);if(m===void 0){let d=await t.clientFor(i).readContract({address:p,abi:Ne,functionName:"decimals"}),w=typeof d=="bigint"?Number(d):d;if(typeof w!="number"||!Number.isInteger(w)||w<0||w>255)throw new e("Could not read valid ERC-20 decimals() on-chain.");m=w,o.set(g,m)}return{address:p,chainId:i,symbol:r.symbol,decimals:m}}async function Ke(t,o,c,i,p,r,g){if(c.swap===void 0)return[];let m=a(c.swap),d=a(m.from);if(d.chainId!==p)throw new e("The swap prerequisite token must be on the origin chain.");let w=await G(t,o,d,p,I(d.address)),j=r===q?M:r;if(f(w.address,j))throw new e("The swap prerequisite must use a different input token.");let me=oe(m.amountIn),y=m.slippageBps;if(y!==void 0&&(typeof y!="number"||!Number.isInteger(y)||y<0||y>1e4))throw new e("Provide swap slippage in basis points from 0 to 10000.");let E=await t.quoteSwap({from:w.address,to:j,amountIn:me,...y===void 0?{}:{slippageBps:y}},i);if(BigInt(l(E.expiresAt))<=BigInt(Math.floor(Date.now()/1e3)))throw new e("The swap prerequisite quote expired. Request a fresh quote.");if(BigInt(l(E.minAmountOut))<BigInt(g))throw new e("The swap prerequisite minimum cannot cover the bridge amount.");let k=await t.buildSwap(E.quoteId,i);if(!("txs"in k)||!k.txs.length)throw new e("The swap prerequisite must return unsigned transactions.");if(k.txs.some(S=>S.chainId!==p))throw new e("The injected swap coordinator does not support this origin chain.");return k.txs.map(S=>t.unsignedTx(S))}async function Ue(t,o,c){ve(c);let i=ze(o.originChainId);if(i===R)throw new e("Inbound bridging requires an origin chain other than 4663.");let p=Oe.get(i);if(!p)throw new e("Relay inbound does not support this origin chain.");if(o.destinationChainId!==void 0&&o.destinationChainId!==R)throw new e("Inbound bridge destination must be chain 4663.");let r=I(o.originCurrency??M),g=I(o.destinationCurrency??M),m=F(o.recipient??c),d=oe(o.amount),w=o.minAmountOut===void 0?void 0:l(o.minAmountOut),j=o.slippageBps===void 0?pe:o.slippageBps;if(ce("0",j),await t.clientFor(i).getChainId()!==i)throw new e("The RPC chain does not match the inbound origin chain.");let y=new Map,E=await Ke(t,y,o,c,i,r,d),k,S=process.env.OAK_RELAY_API_KEY?.trim();if(!S)throw new e("Configure OAK_RELAY_API_KEY on the server: Relay quote/v2 requires a valid API key since October 2, 2026. Status and chain reads remain available without it.");try{let s=await t.http(`${je}/quote/v2`,{method:"POST",headers:{"content-type":"application/json","user-agent":"oak-core/0.1.0","x-api-key":S},body:JSON.stringify({user:c,recipient:m,originChainId:i,destinationChainId:R,originCurrency:r,destinationCurrency:g,amount:d,tradeType:"EXACT_INPUT",...r===q?{}:{explicitDeposit:!0}})});if(!s.ok)throw new Error("Relay HTTP failure.");k=await s.json()}catch{throw new e("Relay quote request failed. Please try again.")}let b=a(k);if(typeof b.requestId!="string"||!/^0x[0-9a-fA-F]{64}$/.test(b.requestId))throw new e("Relay returned an invalid request ID.");let P=b.requestId,he=`/intents/status/v3?requestId=${P}`,L=a(b.details);if(!f(L.sender,c)||!f(L.recipient,m))throw new e("Relay quote sender or recipient does not match the request.");let ye=a(L.currencyIn),ie=a(L.currencyOut),N=await G(t,y,ye.currency,i,r),O=await G(t,y,ie.currency,R,g);if(l(ye.amount)!==d)throw new e("Relay quote input amount does not match the request.");let _=oe(ie.amount),C=oe(ie.minimumAmount);if(BigInt(C)>BigInt(_))throw new e("Relay quote minimum output exceeds the expected output.");if(w!==void 0){if(C!==w)throw new e("Relay order minimum must exactly match minAmountOut. Request a new quote.")}else{let s=ce(_,j);if(BigInt(C)<BigInt(s))throw De(_,C)}let le=a(a(b.fees).relayer),fe=a(le.currency),Q=await G(t,y,fe,i,I(fe.address)),we={token:Q,amount:l(le.amount)},Ie=a(L.refundCurrency),_e=a(Ie.currency),z=await G(t,y,_e,i,r),re=l(Ie.amount),K=a(a(b.protocol).v2);if(typeof K.orderId!="string"||!/^0x[0-9a-fA-F]{64}$/.test(K.orderId))throw new e("Relay returned an invalid order ID.");let V=K.orderId.toLowerCase(),W=a(K.paymentDetails),$=F(W.depository);if(W.chainId!==p.chainId||$!==p.depository||I(W.currency)!==r||l(W.amount)!==d)throw new e("Relay payment details do not match the origin chain depository and input.");let J=a(K.orderData),v=a(J.output);if(v.chainId!=="robinhood"||!Array.isArray(v.calls)||v.calls.length!==0||!Array.isArray(v.payments)||v.payments.length!==1)throw new e("Relay order output does not match destination chain 4663.");let X=a(v.payments[0]);if(!f(X.recipient,m)||I(X.currency)!==g||l(X.minimumAmount)!==C||l(X.expectedAmount)!==_)throw new e("Relay order output payment does not match the quoted recipient and amounts.");let se=Pe(v.deadline,"Relay order output deadline");if(!Array.isArray(J.inputs)||!J.inputs.length)throw new e("Relay order has no inputs.");let Z=[],ae=[];for(let s of J.inputs){let u=a(s),x=a(u.payment);if(x.chainId!==p.chainId||I(x.currency)!==r||l(x.amount)!==d||!Array.isArray(u.refunds)||!u.refunds.length)throw new e("Relay order input does not match the quoted input.");for(let D of u.refunds){let h=a(D);if(!f(h.recipient,c))throw new e("Relay refund recipient does not match the agent wallet. Request a new quote.");if(Z.push(Pe(h.deadline,"Relay order refund deadline")),ae.push(l(h.minimumAmount)),!(h.chainId===p.chainId?f(h.recipient,c)&&I(h.currency)===r:h.chainId==="robinhood"&&I(h.currency)===g))throw new e("Relay order refund terms do not match the sender or recipient.")}}let ge=Math.min(se,...Z),U=0,be=()=>{let s=Math.floor(Date.now()/1e3),u=U||s+Le;if(ge-s<=Se)throw new e("Relay order deadline is expired or too soon to sign safely. Request a new quote.");if(U=Math.min(u,ge-Se),U<=s)throw new e("Relay quote expired before signing. Request a new quote.")};if(be(),!Array.isArray(b.steps)||!b.steps.length)throw new e("Relay returned no origin transactions.");let T=[];for(let s of b.steps){let u=a(s);if(u.kind!=="transaction"||u.requestId!==P||!Array.isArray(u.items)||!u.items.length)throw new e("Relay returned an unsupported origin step.");for(let x of u.items){let D=a(x),h=a(D.data),ue=a(D.check);if(D.status!=="incomplete"||h.chainId!==i||!f(h.from,c))throw new e("Relay transaction does not match the origin chain and sender.");if(ue.method!=="GET"||ue.endpoint!==he)throw new e("Relay status endpoint does not match the request ID.");T.push(t.unsignedTx({to:F(h.to),data:h.data,value:l(h.value),chainId:i,description:`Relay inbound deposit for request ${P}; destination chain 4663.`}))}}if(!T.length)throw new e("Relay returned no origin transactions.");if(r===q&&T.length!==1)throw new e("Relay native deposit must be a single depositNative transaction.");if(r!==q&&T.length>2)throw new e("Relay ERC-20 deposit allows at most one exact-amount approval before depositErc20.");for(let s of T.slice(0,-1)){if(!s.data.toLowerCase().startsWith("0x095ea7b3"))throw new e("Relay returned an unsupported prerequisite transaction.");let u=Ee({abi:Ne,data:s.data});if(u.functionName!=="approve")throw new e("Relay returned an invalid approval.");let[x,D]=u.args;if(r===q||!f(s.to,r)||!f(x,$)||D!==BigInt(d)||s.value!=="0")throw new e("Relay approval must authorize the exact input amount for the origin depository.");s.description=`Approve exactly ${t.formatAmount(d,N.decimals)} ${N.symbol} (${d} base units of ${r}) for ${$} on chain ${i}.`}let B=T[T.length-1],Y=r===q,ee=Y?"depositNative":"depositErc20",Ae=Y?"depositNative(address,bytes32)":"depositErc20(address,address,uint256,bytes32)";if(!f(B.to,$)||B.value!==(Y?d:"0")||!(Y?/^0x[0-9a-fA-F]{136}$/:/^0x[0-9a-fA-F]{264}$/).test(B.data))throw new e(`Relay deposit transaction does not target the origin depository with ${ee} calldata.`);let A;try{A=Ee({abi:Te,data:B.data})}catch{throw new e(`Relay deposit transaction must call ${Ae}.`)}if(A.functionName!==ee)throw new e(`Relay deposit transaction must call ${Ae}.`);let Be=A.args[0],Me=A.functionName==="depositErc20"?A.args[3]:A.args[1];if(A.functionName==="depositErc20"&&(!f(A.args[1],r)||A.args[2]!==BigInt(d)))throw new e("Relay depositErc20 token or amount does not match the quoted input.");if(!f(Be,c)||Me.toLowerCase()!==V)throw new e(`Relay ${ee} depositor or orderId does not match the wallet and quoted protocol.v2.orderId.`);B.description=`Relay inbound ${ee} for order ${V} (request ${P}); destination chain 4663.`;let de=Y?[]:await xe(t,r,$,d,i,c);for(let[s,u]of de.entries())u.description=de.length===2&&s===0?`Reset the existing ${N.symbol} allowance for ${$} on chain ${i} to zero.`:`Approve exactly ${t.formatAmount(d,N.decimals)} ${N.symbol} (${d} base units of ${r}) for ${$} on chain ${i}.`;let $e=[...E,...de,B],Re=await t.preview($e,c);be();let Fe=Re.changes.map(s=>{let u=s.amount.startsWith("-");return`${u?"-":""}${t.formatAmount(u?s.amount.slice(1):s.amount,s.token.decimals)} ${s.token.symbol} (${s.token.address}, chain ${s.token.chainId})`});return{txs:$e,preview:Re,requestId:P,orderId:V,depository:$,originChainId:i,destinationChainId:R,recipient:m,amountIn:{token:N,amount:d},amountOut:{token:O,amount:_},minAmountOut:C,relayerFee:we,refundCurrency:{token:z,amount:re,minimumAmounts:ae},orderDeadline:String(se),refundDeadlines:Z.map(String),expiresAt:String(U),status:"pending",statusEndpoint:he,summary:`${E.length?"Swap prerequisite first, then ":""}Relay inbound from chain ${i} to chain 4663 for ${m}; expected ${t.formatAmount(_,O.decimals)} ${O.symbol}, minimum ${t.formatAmount(C,O.decimals)} ${O.symbol} (${O.address}). Quoted relay fee ${t.formatAmount(we.amount,Q.decimals)} ${Q.symbol} (${Q.address}, chain ${i}); output is net of quoted fees. Order ${V} (request ${P}); output deadline ${se}, refund deadlines ${Z.join(", ")}, quote expires ${U}. Refund terms: details.refundCurrency quotes ${t.formatAmount(re,z.decimals)} ${z.symbol} (${re} base units) on chain ${z.chainId} (${z.address}), but protocol.v2 order refund floor is ${ae.join(", ")} base units. ${Fe.join("; ")}. Unsigned origin transactions only; destination fulfillment remains pending. Track with relay_status; timeout or refund is not fulfillment.`}}var ot=t=>({tools:[{name:"relay_bridge_in",inputSchema:{type:"object",additionalProperties:!1,required:["originChainId","amount"],properties:{originChainId:{type:"integer",minimum:1},destinationChainId:{const:R},originCurrency:H,destinationCurrency:H,amount:te(),minAmountOut:te(),slippageBps:{type:"integer",minimum:0,maximum:9999,default:pe},recipient:H,swap:{type:"object",additionalProperties:!1,required:["from","amountIn"],properties:{from:{type:"object",additionalProperties:!1,required:["address","chainId","symbol","decimals"],properties:{address:H,chainId:{type:"integer",minimum:1},symbol:{type:"string"},decimals:{type:"integer",minimum:0,maximum:255}}},amountIn:te(),slippageBps:{type:"integer",minimum:0,maximum:1e4}}}}},async execute(o,c){try{return await Ue(t,o,c)}catch(i){throw new e(t.plainError(i))}}}]});export{nt as a,ot as b};