@oakagentkit/core 0.2.3 → 0.2.4
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.
- package/build/dist/api/addresses.d.ts +112 -0
- package/build/dist/api/addresses.js +1 -1
- package/build/dist/api/amounts.js +1 -1
- package/build/dist/api/args.js +1 -1
- package/build/dist/api/cache.js +1 -1
- package/build/dist/api/canonical.js +1 -1
- package/build/dist/api/chain.js +1 -1
- package/build/dist/api/deployments.js +1 -1
- package/build/dist/api/errors.d.ts +1 -0
- package/build/dist/api/errors.js +1 -1
- package/build/dist/api/gas.js +1 -1
- package/build/dist/api/grandfather.js +1 -1
- package/build/dist/api/guards.js +1 -1
- package/build/dist/api/history.js +1 -1
- package/build/dist/api/http.js +1 -1
- package/build/dist/api/identity-link.d.ts +1 -0
- package/build/dist/api/identity-link.js +1 -1
- package/build/dist/api/launch.js +1 -1
- package/build/dist/api/merkle.js +1 -1
- package/build/dist/api/metadata.js +1 -1
- package/build/dist/api/module.js +1 -1
- package/build/dist/api/modules/beefy/boosts.js +1 -1
- package/build/dist/api/modules/beefy/clm.js +1 -1
- package/build/dist/api/modules/beefy/guard.js +1 -1
- package/build/dist/api/modules/beefy/index.js +1 -1
- package/build/dist/api/modules/beefy/liquidity.js +1 -1
- package/build/dist/api/modules/beefy/management.js +1 -1
- package/build/dist/api/modules/beefy/vaults.js +1 -1
- package/build/dist/api/modules/clanker/extensions.js +1 -1
- package/build/dist/api/modules/clanker/index.js +1 -1
- package/build/dist/api/modules/clanker/manage.js +1 -1
- package/build/dist/api/modules/clanker/pool-config.js +1 -1
- package/build/dist/api/modules/clanker/protocol.js +1 -1
- package/build/dist/api/modules/clanker/state.js +1 -1
- package/build/dist/api/modules/earn/copy.d.ts +114 -0
- package/build/dist/api/modules/earn/copy.js +1 -0
- package/build/dist/api/modules/earn/cost.d.ts +47 -0
- package/build/dist/api/modules/earn/cost.js +1 -0
- package/build/dist/api/modules/earn/index.d.ts +8 -0
- package/build/dist/api/modules/earn/index.js +1 -0
- package/build/dist/api/modules/earn/lp.d.ts +17 -0
- package/build/dist/api/modules/earn/lp.js +1 -0
- package/build/dist/api/modules/earn/options.d.ts +36 -0
- package/build/dist/api/modules/earn/options.js +1 -0
- package/build/dist/api/modules/earn/types.d.ts +39 -0
- package/build/dist/api/modules/earn/types.js +0 -0
- package/build/dist/api/modules/erc8004/abi.js +1 -1
- package/build/dist/api/modules/erc8004/common.js +1 -1
- package/build/dist/api/modules/erc8004/domain.js +1 -1
- package/build/dist/api/modules/erc8004/index.js +1 -1
- package/build/dist/api/modules/erc8004/management.js +1 -1
- package/build/dist/api/modules/erc8004/reputation.js +1 -1
- package/build/dist/api/modules/erc8004/services.js +1 -1
- package/build/dist/api/modules/erc8004/validation.js +1 -1
- package/build/dist/api/modules/grove/index.js +1 -1
- package/build/dist/api/modules/heyresearch/backoff.js +1 -1
- package/build/dist/api/modules/heyresearch/builder-feed.js +1 -1
- package/build/dist/api/modules/heyresearch/freshness.js +1 -1
- package/build/dist/api/modules/heyresearch/index.js +1 -1
- package/build/dist/api/modules/heyresearch/proof-reads.js +1 -1
- package/build/dist/api/modules/heyresearch/public-reads.js +1 -1
- package/build/dist/api/modules/heyresearch/scan.js +1 -1
- package/build/dist/api/modules/heyresearch/status-labels.d.ts +1 -1
- package/build/dist/api/modules/heyresearch/status-labels.js +1 -1
- package/build/dist/api/modules/heyresearch/token-facts.js +1 -1
- package/build/dist/api/modules/hoodag/chain-reads.js +1 -1
- package/build/dist/api/modules/hoodag/index.js +1 -1
- package/build/dist/api/modules/hoodag/management.js +1 -1
- package/build/dist/api/modules/hoodag/public-reads.js +1 -1
- package/build/dist/api/modules/hoodag/reconstruct.js +1 -1
- package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
- package/build/dist/api/modules/hoodlock/buyback.js +1 -1
- package/build/dist/api/modules/hoodlock/commerce.js +1 -1
- package/build/dist/api/modules/hoodlock/fee.js +1 -1
- package/build/dist/api/modules/hoodlock/guard.js +1 -1
- package/build/dist/api/modules/hoodlock/index.js +1 -1
- package/build/dist/api/modules/hoodlock/lifecycle.js +1 -1
- package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
- package/build/dist/api/modules/hoodlock/public.js +1 -1
- package/build/dist/api/modules/hookr/actions.js +1 -1
- package/build/dist/api/modules/hookr/addons.js +1 -1
- package/build/dist/api/modules/hookr/agent-gate.js +1 -1
- package/build/dist/api/modules/hookr/contracts.js +1 -1
- package/build/dist/api/modules/hookr/create-cancel.js +1 -1
- package/build/dist/api/modules/hookr/discovery.js +1 -1
- package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
- package/build/dist/api/modules/hookr/index.js +1 -1
- package/build/dist/api/modules/hookr/launch-options.js +1 -1
- package/build/dist/api/modules/hookr/launch-profile.js +1 -1
- package/build/dist/api/modules/hookr/launch-receipt.js +1 -1
- package/build/dist/api/modules/hookr/launch.js +1 -1
- package/build/dist/api/modules/hookr/liquidity.js +1 -1
- package/build/dist/api/modules/hookr/lp-positions.js +1 -1
- package/build/dist/api/modules/hookr/lp-reads.js +1 -1
- package/build/dist/api/modules/hookr/lp-receipt.js +1 -1
- package/build/dist/api/modules/hookr/lp-state.js +1 -1
- package/build/dist/api/modules/hookr/pins.js +1 -1
- package/build/dist/api/modules/hookr/public-reads.js +1 -1
- package/build/dist/api/modules/hookr/read-utils.js +1 -1
- package/build/dist/api/modules/hookr/relay.js +1 -1
- package/build/dist/api/modules/hookr/revenue.js +1 -1
- package/build/dist/api/modules/kyberswap/index.js +1 -1
- package/build/dist/api/modules/kyberswap/source-pools.js +1 -1
- package/build/dist/api/modules/layerbank/abi.d.ts +165 -0
- package/build/dist/api/modules/layerbank/abi.js +1 -0
- package/build/dist/api/modules/layerbank/actions.d.ts +2 -0
- package/build/dist/api/modules/layerbank/actions.js +1 -0
- package/build/dist/api/modules/layerbank/checks.d.ts +21 -0
- package/build/dist/api/modules/layerbank/checks.js +1 -0
- package/build/dist/api/modules/layerbank/index.d.ts +2 -0
- package/build/dist/api/modules/layerbank/index.js +1 -0
- package/build/dist/api/modules/layerbank/merkl.d.ts +6 -0
- package/build/dist/api/modules/layerbank/merkl.js +1 -0
- package/build/dist/api/modules/layerbank/reader.d.ts +15 -0
- package/build/dist/api/modules/layerbank/reader.js +1 -0
- package/build/dist/api/modules/layerbank/reserve.d.ts +13 -0
- package/build/dist/api/modules/layerbank/reserve.js +1 -0
- package/build/dist/api/modules/lighter/index.js +1 -1
- package/build/dist/api/modules/longbow/administration.js +1 -1
- package/build/dist/api/modules/longbow/analytics.js +1 -1
- package/build/dist/api/modules/longbow/fixed.js +1 -1
- package/build/dist/api/modules/longbow/index.js +1 -1
- package/build/dist/api/modules/longbow/nft.js +1 -1
- package/build/dist/api/modules/longbow/rebates.js +1 -1
- package/build/dist/api/modules/longbow/staking.js +1 -1
- package/build/dist/api/modules/meridian/index.js +1 -1
- package/build/dist/api/modules/meridian/markets.js +1 -1
- package/build/dist/api/modules/meridian/perps-batch.js +1 -1
- package/build/dist/api/modules/meridian/perps-common.js +1 -1
- package/build/dist/api/modules/meridian/perps-guards.js +1 -1
- package/build/dist/api/modules/meridian/perps-intents.js +1 -1
- package/build/dist/api/modules/meridian/perps-stream.js +1 -1
- package/build/dist/api/modules/meridian/perps.js +1 -1
- package/build/dist/api/modules/meridian/predict-read.js +1 -1
- package/build/dist/api/modules/meridian/rfq.js +1 -1
- package/build/dist/api/modules/merkl/discovery.js +1 -1
- package/build/dist/api/modules/merkl/index.js +1 -1
- package/build/dist/api/modules/merkl/manage.js +1 -1
- package/build/dist/api/modules/merkl/protocol.js +1 -1
- package/build/dist/api/modules/morpho/allocator.js +1 -1
- package/build/dist/api/modules/morpho/bundles-abi.js +1 -1
- package/build/dist/api/modules/morpho/bundles.js +1 -1
- package/build/dist/api/modules/morpho/in-kind.js +1 -1
- package/build/dist/api/modules/morpho/index.js +1 -1
- package/build/dist/api/modules/morpho/local-guard.js +1 -1
- package/build/dist/api/modules/morpho/midnight-abi.js +1 -1
- package/build/dist/api/modules/morpho/midnight.js +1 -1
- package/build/dist/api/modules/morpho/protocol.js +1 -1
- package/build/dist/api/modules/morpho/surface.js +1 -1
- package/build/dist/api/modules/morpho/vault-management.js +1 -1
- package/build/dist/api/modules/morpho/vault-tools.js +1 -1
- package/build/dist/api/modules/morpho/vault-v2.js +1 -1
- package/build/dist/api/modules/netnet/blackjack-hashes.js +1 -1
- package/build/dist/api/modules/netnet/card-abi.js +1 -1
- package/build/dist/api/modules/netnet/card-plan.js +1 -1
- package/build/dist/api/modules/netnet/card-policy.js +1 -1
- package/build/dist/api/modules/netnet/card-read.js +1 -1
- package/build/dist/api/modules/netnet/card-recovery.js +1 -1
- package/build/dist/api/modules/netnet/desk-action-abi.js +1 -1
- package/build/dist/api/modules/netnet/desk-action.js +1 -1
- package/build/dist/api/modules/netnet/desk-read.js +1 -1
- package/build/dist/api/modules/netnet/desk-registry.js +1 -1
- package/build/dist/api/modules/netnet/financial-abi.js +1 -1
- package/build/dist/api/modules/netnet/financial.js +1 -1
- package/build/dist/api/modules/netnet/index.js +1 -1
- package/build/dist/api/modules/netnet/staking.js +1 -1
- package/build/dist/api/modules/orbio/gateway.js +1 -1
- package/build/dist/api/modules/orbio/index.js +1 -1
- package/build/dist/api/modules/orbio/pins.js +1 -1
- package/build/dist/api/modules/orbio/positions.d.ts +2 -0
- package/build/dist/api/modules/orbio/positions.js +1 -0
- package/build/dist/api/modules/pendle/abi.d.ts +205 -0
- package/build/dist/api/modules/pendle/abi.js +1 -0
- package/build/dist/api/modules/pendle/convert.d.ts +24 -0
- package/build/dist/api/modules/pendle/convert.js +1 -0
- package/build/dist/api/modules/pendle/costs.d.ts +3 -0
- package/build/dist/api/modules/pendle/costs.js +1 -0
- package/build/dist/api/modules/pendle/index.d.ts +11 -0
- package/build/dist/api/modules/pendle/index.js +1 -0
- package/build/dist/api/modules/pendle/markets.d.ts +37 -0
- package/build/dist/api/modules/pendle/markets.js +1 -0
- package/build/dist/api/modules/pendle/positions.d.ts +18 -0
- package/build/dist/api/modules/pendle/positions.js +1 -0
- package/build/dist/api/modules/pendle/pricecheck.d.ts +95 -0
- package/build/dist/api/modules/pendle/pricecheck.js +1 -0
- package/build/dist/api/modules/pendle/reader.d.ts +17 -0
- package/build/dist/api/modules/pendle/reader.js +1 -0
- package/build/dist/api/modules/pendle/redeem.d.ts +15 -0
- package/build/dist/api/modules/pendle/redeem.js +1 -0
- package/build/dist/api/modules/pendle/trade.d.ts +2 -0
- package/build/dist/api/modules/pendle/trade.js +1 -0
- package/build/dist/api/modules/pendle/types.d.ts +26 -0
- package/build/dist/api/modules/pendle/types.js +0 -0
- package/build/dist/api/modules/pendle/validate.d.ts +424 -0
- package/build/dist/api/modules/pendle/validate.js +1 -0
- package/build/dist/api/modules/pendle/verify.d.ts +22 -0
- package/build/dist/api/modules/pendle/verify.js +1 -0
- package/build/dist/api/modules/pons/claim.js +1 -1
- package/build/dist/api/modules/pons/holder-directory.js +1 -1
- package/build/dist/api/modules/pons/index.js +1 -1
- package/build/dist/api/modules/pons/launch-status.js +1 -1
- package/build/dist/api/modules/pons/prices.js +1 -1
- package/build/dist/api/modules/pons/reads.d.ts +38 -2
- package/build/dist/api/modules/pons/reads.js +1 -1
- package/build/dist/api/modules/pons/swap-terms.js +1 -1
- package/build/dist/api/modules/pons/trade.js +1 -1
- package/build/dist/api/modules/poolstrade/index.js +1 -1
- package/build/dist/api/modules/priors/coverage.js +1 -1
- package/build/dist/api/modules/priors/discovery.js +1 -1
- package/build/dist/api/modules/priors/features.js +1 -1
- package/build/dist/api/modules/priors/holdings.d.ts +4 -0
- package/build/dist/api/modules/priors/holdings.js +1 -0
- package/build/dist/api/modules/priors/index.js +1 -1
- package/build/dist/api/modules/priors/integration.js +1 -1
- package/build/dist/api/modules/priors/market.js +1 -1
- package/build/dist/api/modules/priors/pt.js +1 -1
- package/build/dist/api/modules/priors/savings-exit.js +1 -1
- package/build/dist/api/modules/priors/starter-line.js +1 -1
- package/build/dist/api/modules/priors/stock-swap.js +1 -1
- package/build/dist/api/modules/relay/api.js +1 -1
- package/build/dist/api/modules/relay/bootstrap.js +1 -1
- package/build/dist/api/modules/relay/discovery.js +1 -1
- package/build/dist/api/modules/relay/inbound.js +1 -1
- package/build/dist/api/modules/relay/index.js +1 -1
- package/build/dist/api/modules/relay/order.js +1 -1
- package/build/dist/api/modules/relay/outbound-status.js +1 -1
- package/build/dist/api/modules/relay/readiness.js +1 -1
- package/build/dist/api/modules/relay/reads.js +1 -1
- package/build/dist/api/modules/relay/vaults.js +1 -1
- package/build/dist/api/modules/spark/actions.js +1 -1
- package/build/dist/api/modules/spark/details.js +1 -1
- package/build/dist/api/modules/spark/index.js +1 -1
- package/build/dist/api/modules/spark/management.js +1 -1
- package/build/dist/api/modules/steakhouse/analytics.js +1 -1
- package/build/dist/api/modules/steakhouse/erc4626.js +1 -1
- package/build/dist/api/modules/steakhouse/index.js +1 -1
- package/build/dist/api/modules/steakhouse/local-guard.js +1 -1
- package/build/dist/api/modules/steakhouse/management.js +1 -1
- package/build/dist/api/modules/steakhouse/share-symbol.d.ts +3 -0
- package/build/dist/api/modules/steakhouse/share-symbol.js +1 -0
- package/build/dist/api/modules/steakhouse/v2-exit.js +1 -1
- package/build/dist/api/modules/tickerspring/basket-routes.js +1 -1
- package/build/dist/api/modules/tickerspring/contract-reads.js +1 -1
- package/build/dist/api/modules/tickerspring/discovery.js +1 -1
- package/build/dist/api/modules/tickerspring/exit-preview.js +1 -1
- package/build/dist/api/modules/tickerspring/guards.js +1 -1
- package/build/dist/api/modules/tickerspring/index.js +1 -1
- package/build/dist/api/modules/tickerspring/journeys.js +1 -1
- package/build/dist/api/modules/tickerspring/ladder.js +1 -1
- package/build/dist/api/modules/tickerspring/maker.js +1 -1
- package/build/dist/api/modules/tickerspring/order-accounting.js +1 -1
- package/build/dist/api/modules/tickerspring/research.js +1 -1
- package/build/dist/api/modules/tickerspring/strategies.js +1 -1
- package/build/dist/api/modules/uniswap/auction-create.js +1 -1
- package/build/dist/api/modules/uniswap/auction.js +1 -1
- package/build/dist/api/modules/uniswap/batch.js +1 -1
- package/build/dist/api/modules/uniswap/common.js +1 -1
- package/build/dist/api/modules/uniswap/fees.js +1 -1
- package/build/dist/api/modules/uniswap/index.js +1 -1
- package/build/dist/api/modules/uniswap/local-guard.js +1 -1
- package/build/dist/api/modules/uniswap/oracle.js +1 -1
- package/build/dist/api/modules/uniswap/pool-math.js +1 -1
- package/build/dist/api/modules/uniswap/pools.js +1 -1
- package/build/dist/api/modules/uniswap/position.js +1 -1
- package/build/dist/api/modules/uniswap/protocol.js +1 -1
- package/build/dist/api/modules/uniswap/token-jar.js +1 -1
- package/build/dist/api/modules/uniswap/trade-batch.js +1 -1
- package/build/dist/api/modules/uniswap/trade.js +1 -1
- package/build/dist/api/modules/uniswap/v2.js +1 -1
- package/build/dist/api/modules/uniswap/v3.d.ts +1 -0
- package/build/dist/api/modules/uniswap/v3.js +1 -1
- package/build/dist/api/modules/uniswap/v4.js +1 -1
- package/build/dist/api/modules/uniswap/wrap.js +1 -1
- package/build/dist/api/modules/velora/claims.js +1 -1
- package/build/dist/api/modules/velora/delta-reads.js +1 -1
- package/build/dist/api/modules/velora/index.js +1 -1
- package/build/dist/api/modules/wormhole/index.js +1 -1
- package/build/dist/api/modules/wormhole/license.js +1 -1
- package/build/dist/api/modules/wormhole/quotetext.js +1 -1
- package/build/dist/api/modules/wormhole/scan-text.js +1 -1
- package/build/dist/api/modules/wormhole/token-check.js +1 -1
- package/build/dist/api/owner-signature.js +1 -1
- package/build/dist/api/positions.d.ts +5 -5
- package/build/dist/api/positions.js +1 -1
- package/build/dist/api/pricenote.js +1 -1
- package/build/dist/api/prices.js +1 -1
- package/build/dist/api/pricing.js +1 -1
- package/build/dist/api/reads.js +1 -1
- package/build/dist/api/routes.js +1 -1
- package/build/dist/api/rpc.js +1 -1
- package/build/dist/api/secret-fields.js +1 -1
- package/build/dist/api/send.js +1 -1
- package/build/dist/api/signing-registry.js +1 -1
- package/build/dist/api/signing.js +1 -1
- package/build/dist/api/simulate.js +1 -1
- package/build/dist/api/swap.js +1 -1
- package/build/dist/api/token-output.js +1 -1
- package/build/dist/api/tokens.js +1 -1
- package/build/dist/api/tool-policy.js +1 -1
- package/build/dist/api/tx.js +1 -1
- package/build/dist/api/types.d.ts +7 -2
- package/build/dist/api/untrusted.js +1 -1
- package/build/dist/api/vendor-limits.js +1 -1
- package/build/dist/chunks/{7YU6DELJ.js → 24CQ2SPB.js} +1 -1
- package/build/dist/chunks/2DUCTO5C.js +1 -0
- package/build/dist/chunks/2MZXTOZU.js +1 -0
- package/build/dist/chunks/2OJAOVMG.js +1 -0
- package/build/dist/chunks/2ZUP7ZEV.js +1 -0
- package/build/dist/chunks/{ZXQMF56D.js → 3AXVB23N.js} +1 -1
- package/build/dist/chunks/3ESNHZT5.js +1 -0
- package/build/dist/chunks/{GIV5JMTE.js → 3VAJW6TQ.js} +1 -1
- package/build/dist/chunks/{ALK6NKFP.js → 3WXK2FUA.js} +1 -1
- package/build/dist/chunks/{TQL7UDFL.js → 42DQTKEO.js} +1 -1
- package/build/dist/chunks/{E7R3J4H7.js → 43CSMYDO.js} +1 -1
- package/build/dist/chunks/46547QT3.js +1 -0
- package/build/dist/chunks/{XV2HQKND.js → 47YN4OUI.js} +1 -1
- package/build/dist/chunks/{S3HNPTXA.js → 4ALMYJJV.js} +1 -1
- package/build/dist/chunks/{SOYQOE5P.js → 4BVP652W.js} +1 -1
- package/build/dist/chunks/{GCWA4Z3W.js → 4ISR2U72.js} +1 -1
- package/build/dist/chunks/{AAGDMH54.js → 4TQQH7N6.js} +1 -1
- package/build/dist/chunks/{WTSMPDT5.js → 4YFVAYKR.js} +1 -1
- package/build/dist/chunks/{PTAWEHKB.js → 57JFKIMK.js} +1 -1
- package/build/dist/chunks/{3RFSGU2Y.js → 5CAAFU7R.js} +1 -1
- package/build/dist/chunks/{73N3TOJL.js → 5KUWLUPM.js} +1 -1
- package/build/dist/chunks/{SKQGLGES.js → 5MQ5KSSV.js} +1 -1
- package/build/dist/chunks/{AJP5LDM2.js → 5N4A5XAW.js} +1 -1
- package/build/dist/chunks/{OQVZVR2S.js → 5OKJEGBH.js} +1 -1
- package/build/dist/chunks/5U7TCKX2.js +2 -0
- package/build/dist/chunks/5WUKOQIJ.js +1 -0
- package/build/dist/chunks/5ZLOCQA4.js +1 -0
- package/build/dist/chunks/63YRSLDK.js +1 -0
- package/build/dist/chunks/64WKYWZV.js +1 -0
- package/build/dist/chunks/{JPOYTTTW.js → 65EQECL3.js} +1 -1
- package/build/dist/chunks/{57HAXNQV.js → 6AAARNZ3.js} +1 -1
- package/build/dist/chunks/6FTYNYGF.js +1 -0
- package/build/dist/chunks/{L7YBCMZU.js → 6L5KTE6Y.js} +1 -1
- package/build/dist/chunks/{53N7PNJH.js → 6PY3IRDS.js} +1 -1
- package/build/dist/chunks/{5VHH5PW3.js → 6YYCGUCU.js} +1 -1
- package/build/dist/chunks/{UNZRE3YU.js → 7UOOIDR3.js} +1 -1
- package/build/dist/chunks/{LQUDJCAR.js → 7WQEPZJY.js} +1 -1
- package/build/dist/chunks/A3PN3PK3.js +1 -0
- package/build/dist/chunks/A6YQ5H24.js +1 -0
- package/build/dist/chunks/{CXLEQCP3.js → ABPL3ZZI.js} +1 -1
- package/build/dist/chunks/{R7FXNZRM.js → AG67Z3SC.js} +1 -1
- package/build/dist/chunks/{BX7XQANB.js → ALPYEM7B.js} +1 -1
- package/build/dist/chunks/{OE3CLZHR.js → ALRRW7SF.js} +1 -1
- package/build/dist/chunks/AUOXDNUO.js +7 -0
- package/build/dist/chunks/AWXJV2YH.js +1 -0
- package/build/dist/chunks/{PEA32CWB.js → BAAXGB4K.js} +1 -1
- package/build/dist/chunks/{R53P2K3C.js → BIRMUW7Z.js} +1 -1
- package/build/dist/chunks/{EA6IYKIB.js → BK23XJXE.js} +1 -1
- package/build/dist/chunks/{NATG6YA6.js → BNG2IWZL.js} +1 -1
- package/build/dist/chunks/BQICZFLR.js +1 -0
- package/build/dist/chunks/{ASDKY5NX.js → BXHNYCH2.js} +1 -1
- package/build/dist/chunks/{L62M7LOB.js → C5ZZAYXD.js} +1 -1
- package/build/dist/chunks/{52DHGSG4.js → CERNEJ2F.js} +1 -1
- package/build/dist/chunks/{LKJBMHCE.js → CTMA4BTM.js} +1 -1
- package/build/dist/chunks/{QXNPPCOU.js → D6ZJPNK7.js} +1 -1
- package/build/dist/chunks/DFM4T6ZE.js +1 -0
- package/build/dist/chunks/{SJPM5ST4.js → DP2NIYBP.js} +1 -1
- package/build/dist/chunks/DVVFT42J.js +1 -0
- package/build/dist/chunks/E3UBHTJO.js +1 -0
- package/build/dist/chunks/E6RRXNV2.js +1 -0
- package/build/dist/chunks/{ZT47KN7A.js → E6UU7DL2.js} +1 -1
- package/build/dist/chunks/ECWGKLBW.js +1 -0
- package/build/dist/chunks/EKNSLLJK.js +1 -0
- package/build/dist/chunks/{XWEFKXKA.js → ENX72ARB.js} +1 -1
- package/build/dist/chunks/{DRWWPBOQ.js → EOQYLFXA.js} +1 -1
- package/build/dist/chunks/{ELZNT5Q3.js → ET23SES4.js} +1 -1
- package/build/dist/chunks/EU3OAJU2.js +1 -0
- package/build/dist/chunks/{2W46IRX6.js → EYFBVQ46.js} +1 -1
- package/build/dist/chunks/{VXLJRRKV.js → F26FK47J.js} +1 -1
- package/build/dist/chunks/{O5IVZHHP.js → F3BSEE52.js} +1 -1
- package/build/dist/chunks/FWD4L3CJ.js +1 -0
- package/build/dist/chunks/G7XSFUDL.js +1 -0
- package/build/dist/chunks/{5O5ZE3ZV.js → GHPREYQK.js} +1 -1
- package/build/dist/chunks/{AFHHRDPJ.js → GRIGSPD4.js} +1 -1
- package/build/dist/chunks/{TPDOUL4N.js → GVPX5XCL.js} +1 -1
- package/build/dist/chunks/{TLJPVYRJ.js → GW5IXLKU.js} +1 -1
- package/build/dist/chunks/H4NYYJ3Z.js +1 -0
- package/build/dist/chunks/{J3GFCBZZ.js → HSFOWJ3Z.js} +1 -1
- package/build/dist/chunks/{CY75R4FK.js → HTXKERNS.js} +1 -1
- package/build/dist/chunks/{6ZYLNB2B.js → HVM2EEXB.js} +1 -1
- package/build/dist/chunks/{U3F6DDML.js → I4TGMF2C.js} +1 -1
- package/build/dist/chunks/I6KUORFT.js +1 -0
- package/build/dist/chunks/{AMICUXS6.js → IKEJCBYU.js} +1 -1
- package/build/dist/chunks/IMRXZ7JB.js +1 -0
- package/build/dist/chunks/IQGY5FW7.js +1 -0
- package/build/dist/chunks/{L3ZM77SJ.js → IQIWASRD.js} +1 -1
- package/build/dist/chunks/JG27HM4P.js +1 -0
- package/build/dist/chunks/{V5LTA42G.js → JPNYUEQP.js} +1 -1
- package/build/dist/chunks/JZXYLHI7.js +1 -0
- package/build/dist/chunks/{QYYFRAWY.js → K22EXPWN.js} +1 -1
- package/build/dist/chunks/K72EYD6R.js +1 -0
- package/build/dist/chunks/KA7BPBCV.js +2 -0
- package/build/dist/chunks/KBKK7UNY.js +1 -0
- package/build/dist/chunks/{LBEMCOND.js → KBXU7U6Q.js} +1 -1
- package/build/dist/chunks/L6D26AMO.js +1 -0
- package/build/dist/chunks/{GGUEKSR4.js → L7OQUHM5.js} +1 -1
- package/build/dist/chunks/{F6WBPPBN.js → LDT3QTSY.js} +1 -1
- package/build/dist/chunks/{CE7D6MUS.js → LROVANUR.js} +1 -1
- package/build/dist/chunks/{WWFOYZT2.js → LVLVP5KQ.js} +1 -1
- package/build/dist/chunks/MBTARLZQ.js +1 -0
- package/build/dist/chunks/{SSTROLQM.js → MDDHG34Y.js} +1 -1
- package/build/dist/chunks/{OVK4EEOD.js → MDV7GECM.js} +1 -1
- package/build/dist/chunks/{DCTUYDWF.js → MFCPL6LF.js} +1 -1
- package/build/dist/chunks/MGPHD4VV.js +1 -0
- package/build/dist/chunks/{VC2RCYQE.js → MKAPRRKF.js} +1 -1
- package/build/dist/chunks/{FBSUTF3B.js → MKBNLGDD.js} +1 -1
- package/build/dist/chunks/{NRBIXV7V.js → MOPETB64.js} +1 -1
- package/build/dist/chunks/{ACN2BFMA.js → MQK6OP7S.js} +1 -1
- package/build/dist/chunks/{TWCSCRFS.js → MQYOG66Q.js} +1 -1
- package/build/dist/chunks/{2UU5TBBB.js → MXW2TP5P.js} +1 -1
- package/build/dist/chunks/MYFAKCQI.js +1 -0
- package/build/dist/chunks/{MKQVS3IO.js → NA7R6J5N.js} +1 -1
- package/build/dist/chunks/NB3LYS3G.js +1 -0
- package/build/dist/chunks/{TNSKEHPC.js → NDW5DAFL.js} +1 -1
- package/build/dist/chunks/{MRWCFTMS.js → NKX3FE34.js} +1 -1
- package/build/dist/chunks/NYNJITCM.js +1 -0
- package/build/dist/chunks/{YZSTP2E6.js → NZXQWDGF.js} +1 -1
- package/build/dist/chunks/{Z7RL4NGX.js → O6L4BJP4.js} +1 -1
- package/build/dist/chunks/{KSZMMNXK.js → OFI3Y55L.js} +1 -1
- package/build/dist/chunks/{2LM7U4S7.js → OTIXQZ3X.js} +1 -1
- package/build/dist/chunks/{WCKMQFGS.js → PADWZX7J.js} +1 -1
- package/build/dist/chunks/{6IM6A5VA.js → PBQSJSZO.js} +1 -1
- package/build/dist/chunks/PLZKXQ76.js +1 -0
- package/build/dist/chunks/{XUYHMOHS.js → PQC5635W.js} +1 -1
- package/build/dist/chunks/PSVOVZH7.js +70 -0
- package/build/dist/chunks/{PWBL4WKB.js → PWH464CJ.js} +1 -1
- package/build/dist/chunks/QJFXLYZG.js +1 -0
- package/build/dist/chunks/{4KQZTPMS.js → QRC4ZPDA.js} +1 -1
- package/build/dist/chunks/{4AKIXLXH.js → QSN6Y2K6.js} +1 -1
- package/build/dist/chunks/{C3TJLARP.js → QVYCJ6WV.js} +1 -1
- package/build/dist/chunks/{WVXW6VL3.js → RNC463IM.js} +1 -1
- package/build/dist/chunks/RPNAFUM5.js +1 -0
- package/build/dist/chunks/RVO3QK2B.js +1 -0
- package/build/dist/chunks/{FUXT7GRK.js → S2TAJHHK.js} +1 -1
- package/build/dist/chunks/{YHPOXAKA.js → S3FPF537.js} +1 -1
- package/build/dist/chunks/{H4S2ZCWK.js → S5WICHIS.js} +1 -1
- package/build/dist/chunks/SDHPFXRM.js +1 -0
- package/build/dist/chunks/{3NDVXEBR.js → SGEZIYJW.js} +1 -1
- package/build/dist/chunks/SK2VBNAU.js +1 -0
- package/build/dist/chunks/SKMPKAZI.js +1 -0
- package/build/dist/chunks/{5IIR3GIN.js → SQL6HD5E.js} +1 -1
- package/build/dist/chunks/SSIENQVU.js +1 -0
- package/build/dist/chunks/{EXRKBBX2.js → SUFA2GKR.js} +1 -1
- package/build/dist/chunks/TBCSZDAF.js +1 -0
- package/build/dist/chunks/{LMVB3B6T.js → TBIVTEP5.js} +1 -1
- package/build/dist/chunks/{2FSX7MMR.js → TJWVY4VO.js} +1 -1
- package/build/dist/chunks/{7XLEYOZH.js → TNKVRVTH.js} +1 -1
- package/build/dist/chunks/{VCLPOU7T.js → TPL4U3AQ.js} +1 -1
- package/build/dist/chunks/{QRDDKA4I.js → U4JGEMKT.js} +1 -1
- package/build/dist/chunks/{6AWTAE4Q.js → UA4O226F.js} +1 -1
- package/build/dist/chunks/UFVPMWPJ.js +1 -0
- package/build/dist/chunks/UHRCM7AG.js +1 -0
- package/build/dist/chunks/{XQXLFF7Y.js → UOGHQLQX.js} +1 -1
- package/build/dist/chunks/UP7FBDMJ.js +1 -0
- package/build/dist/chunks/{YQUKU2LS.js → UPMGGK34.js} +1 -1
- package/build/dist/chunks/VHLINDDS.js +1 -0
- package/build/dist/chunks/{PARWLWXW.js → VV2HEIFI.js} +1 -1
- package/build/dist/chunks/{YA5WWDEW.js → VVA72C6O.js} +1 -1
- package/build/dist/chunks/{TCPPYBGQ.js → W2OJ57ZO.js} +1 -1
- package/build/dist/chunks/{WQ6H62DM.js → W76QC2AW.js} +1 -1
- package/build/dist/chunks/{VFSRRDLY.js → WD37MEMZ.js} +1 -1
- package/build/dist/chunks/{R7QPJQP6.js → WGL46F3S.js} +1 -1
- package/build/dist/chunks/WIVYKLQM.js +2 -0
- package/build/dist/chunks/{XQUPZ3GU.js → WMNRP3YH.js} +1 -1
- package/build/dist/chunks/WOEKXQAH.js +1 -0
- package/build/dist/chunks/WPAF55SP.js +1 -0
- package/build/dist/chunks/{EVANKNJV.js → WPFAEBE7.js} +1 -1
- package/build/dist/chunks/WVONJOWN.js +1 -0
- package/build/dist/chunks/{TWSTOFN3.js → WWHCEMNB.js} +1 -1
- package/build/dist/chunks/{DZGEQBO7.js → XDZRO5JQ.js} +1 -1
- package/build/dist/chunks/XFKVU46U.js +3 -0
- package/build/dist/chunks/{RAKUK5VR.js → XJEOEMDS.js} +1 -1
- package/build/dist/chunks/XSD5NL7J.js +1 -0
- package/build/dist/chunks/{NU4K3TEZ.js → XSRIJUFU.js} +1 -1
- package/build/dist/chunks/{VFKNXQXI.js → Y7PRJOIK.js} +1 -1
- package/build/dist/chunks/Y7RPSDD2.js +1 -0
- package/build/dist/chunks/YAJYDD6C.js +1 -0
- package/build/dist/chunks/{5OEHZJ6X.js → YEXUSRIZ.js} +1 -1
- package/build/dist/chunks/YHRUAQQK.js +1 -0
- package/build/dist/chunks/{3EFV4FQF.js → YPM2UITD.js} +1 -1
- package/build/dist/chunks/{3WBDHUV2.js → YRXT3HTW.js} +1 -1
- package/build/dist/chunks/Z4SRGAVL.js +1 -0
- package/build/dist/chunks/{SQ5BNSXR.js → ZBFKKUNP.js} +1 -1
- package/build/dist/chunks/{NWSPC3NH.js → ZCOFMGPS.js} +1 -1
- package/build/dist/chunks/ZCUXM52B.js +1 -0
- package/build/dist/chunks/ZE7EU2CS.js +1 -0
- package/build/dist/chunks/{CQCVFRQ5.js → ZET37EIG.js} +1 -1
- package/build/dist/chunks/{VVEUJ36E.js → ZGKVXFM5.js} +1 -1
- package/build/dist/chunks/{WQQJ7UPJ.js → ZSQOMSOC.js} +1 -1
- package/build/dist/chunks/{JST5JGAP.js → ZYH4B2GR.js} +1 -1
- package/package.json +2 -2
- package/build/dist/chunks/2MSQ6JII.js +0 -1
- package/build/dist/chunks/3SC5UI35.js +0 -1
- package/build/dist/chunks/4GHVIBL5.js +0 -1
- package/build/dist/chunks/4X2JOQ2L.js +0 -1
- package/build/dist/chunks/5YS5V2LK.js +0 -1
- package/build/dist/chunks/6UPPUHCL.js +0 -1
- package/build/dist/chunks/AXYOJBX6.js +0 -1
- package/build/dist/chunks/CEIPDEXZ.js +0 -1
- package/build/dist/chunks/CUNQ5RG5.js +0 -1
- package/build/dist/chunks/EG6M6SSO.js +0 -1
- package/build/dist/chunks/EGUMOD3A.js +0 -1
- package/build/dist/chunks/G3MHDTGT.js +0 -1
- package/build/dist/chunks/G6HCV67X.js +0 -1
- package/build/dist/chunks/GJY3P6OG.js +0 -1
- package/build/dist/chunks/HIMVOTIU.js +0 -1
- package/build/dist/chunks/IBXYIN7Q.js +0 -1
- package/build/dist/chunks/IUE6RASI.js +0 -1
- package/build/dist/chunks/JWCOXLYA.js +0 -1
- package/build/dist/chunks/KHJFXJBU.js +0 -1
- package/build/dist/chunks/LLM5WDM3.js +0 -1
- package/build/dist/chunks/LQGPMOD2.js +0 -1
- package/build/dist/chunks/MYBDO5SA.js +0 -1
- package/build/dist/chunks/NAYRD43N.js +0 -1
- package/build/dist/chunks/NMYGNJIJ.js +0 -1
- package/build/dist/chunks/NSOEDRBU.js +0 -3
- package/build/dist/chunks/PZHR4ITH.js +0 -1
- package/build/dist/chunks/R7SXC74O.js +0 -1
- package/build/dist/chunks/RETS2ZEK.js +0 -1
- package/build/dist/chunks/SJPYXNOK.js +0 -1
- package/build/dist/chunks/SQZRVIVF.js +0 -1
- package/build/dist/chunks/SXAIXD56.js +0 -1
- package/build/dist/chunks/SXX3VTBP.js +0 -1
- package/build/dist/chunks/TMGWXDCZ.js +0 -1
- package/build/dist/chunks/TNLHMDWL.js +0 -1
- package/build/dist/chunks/UFS2RVEZ.js +0 -1
- package/build/dist/chunks/USSOVTD5.js +0 -1
- package/build/dist/chunks/UWOFA6GV.js +0 -1
- package/build/dist/chunks/V2OOOV6B.js +0 -1
- package/build/dist/chunks/XVFLT275.js +0 -1
- package/build/dist/chunks/YHB55C5T.js +0 -1
- package/build/dist/chunks/YOENHHKI.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u,r=/\b(?:unsafe|safe|safety|risks?|risky|recommend\w*|buy\w*)\b/i,i=/(?:[a-z][a-z0-9+.-]*:\/\/|(?:https?|ftp|file|mailto|javascript|data):|www\.|\/\/|\b[a-z0-9-]+(?:\.[a-z0-9-]+)+\b)/i,a="HEY Research Lab context unavailable",o="Project names this contract",c="Builder evidence, not a trading signal.",E="Not tracked by HEY Research Lab yet";function s(t,e){return typeof t=="string"&&!!t.trim()&&t.length<=e&&!n.test(t)&&!/[<>[\]`]/.test(t)&&!r.test(t)&&!i.test(t)}function p(t,e){return!s(t,80)||!s(e,300)?a:`HEY Research Lab: ${t}. ${e}`}export{o as a,c as b,E as c,s as d,p as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as H,o as q}from"./5O5ZE3ZV.js";import{a as de,b as ce,c as le}from"./CQCVFRQ5.js";import{a as ae}from"./KHJFXJBU.js";import{a as ue,b as me}from"./WVXW6VL3.js";import{a as pe}from"./GIV5JMTE.js";import{e as U,h as B,m as re}from"./WQ6H62DM.js";import{b as ie}from"./AXYOJBX6.js";import{a as E}from"./EG6M6SSO.js";import{c as se}from"./MYBDO5SA.js";import{c as M,e as x,g as w,k as ee,l as ne,m as te,n as oe}from"./73N3TOJL.js";import{a as h,i as Y}from"./G6HCV67X.js";import{a as s}from"./5YS5V2LK.js";import{decodeFunctionResult as Ce,encodeAbiParameters as F,encodeFunctionData as N,erc20Abi as V,isAddress as Ie,parseAbi as we,parseAbiParameters as j,toHex as J,zeroAddress as W}from"viem";var k=Y[h].clanker,fe=we(["function deployToken(((address tokenAdmin,string name,string symbol,bytes32 salt,string image,string metadata,string context,uint256 originatingChainId) tokenConfig,(address hook,address pairedToken,int24 tickIfToken0IsClanker,int24 tickSpacing,bytes poolData) poolConfig,(address locker,address[] rewardAdmins,address[] rewardRecipients,uint16[] rewardBps,int24[] tickLower,int24[] tickUpper,uint16[] positionBps,bytes lockerData) lockerConfig,(address mevModule,bytes mevModuleData) mevModuleConfig,(address extension,uint256 msgValue,uint16 extensionBps,bytes extensionData)[] extensionConfigs) config) payable returns (address)","function tokenDeploymentInfo(address) view returns ((address,address,address,address[]))"]),C=we(["function availableFees(address,address) view returns (uint256)","function claim(address,address)","function collectRewards(address)","function mevModuleEnabled(bytes32) view returns (bool)","function mevModuleOperational(bytes32) returns (bool)"]),I={address:k.paired_weth.address,symbol:"WETH",decimals:18,chainId:h},Pe="https://www.clanker.world/api/tokens",ye={type:"string",pattern:"^\\d+$"},he={type:"string",pattern:"^0x[0-9a-fA-F]{64}$"};function P(n){return ne(ee(n,U),U)}function ge(n,t){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new s(`Provide an explicit bytes32 ${t}.`);return n}function T(n,t,a=!1){if(n===void 0&&!a)return"";if(typeof n!="string"||a&&!n.trim())throw new s(`Provide ${t} as text.`);return n}function z(n,t=256){return oe(n,`Amount exceeds the uint${t} range.`,{bits:t})}function G(n){return te(n,"The contract returned an invalid amount.").toString()}function O(n,t){let a=Object.keys(n).find(p=>!t.includes(p));if(a)throw new s(`Unsupported Clanker input: ${a}.`)}function be(n,t){return t.changes.map(({token:a,amount:p})=>{let b=p.startsWith("-");return`${b?"-":"+"}${n.formatAmount(b?p.slice(1):p,a.decimals)} ${a.symbol} (${a.address}, chain ${a.chainId})`}).join("; ")}function Te(n){return x(n)&&Array.isArray(n.data)&&Number.isSafeInteger(n.total)&&Number(n.total)>=0&&Number.isSafeInteger(n.tokensDeployed)&&Number(n.tokensDeployed)>=0&&(n.cursor===null||typeof n.cursor=="string"||n.cursor===void 0&&n.data.length===0&&n.total===0&&n.tokensDeployed===0)&&n.data.every(t=>x(t)&&typeof t.name=="string"&&typeof t.symbol=="string"&&Number.isSafeInteger(t.chain_id)&&["contract_address","admin","msg_sender","factory_address"].every(a=>typeof t[a]=="string"&&Ie(t[a],{strict:!1})))}async function ve(n,t={}){O(t,["q","limit","cursor","deployer"]);let a=t.limit??10;if(typeof a!="number"||!Number.isInteger(a)||a<1||a>20)throw new s("Choose an indexer limit from 1 to 20.");let p=new URL(Pe);p.searchParams.set("chainId",String(h)),p.searchParams.set("limit",String(a)),t.q!==void 0&&p.searchParams.set("q",T(t.q,"search")),t.cursor!==void 0&&p.searchParams.set("cursor",T(t.cursor,"cursor",!0)),t.deployer!==void 0&&p.searchParams.set("msgSender",P(t.deployer));let b=await se(n.http,p.toString(),{headers:{"User-Agent":"Oak-Clanker/1.0"}},Te);return{tokens:b.data.filter(v=>v.chain_id===h&&w(v.factory_address,k.factory.address)),total:b.total,cursor:b.cursor||null,tokensDeployed:b.tokensDeployed}}var Se=n=>{let t=()=>n.clientFor(h),a=async e=>{try{return await e()}catch(i){throw new s(n.plainError(i))}},p=(e,i,l,d="0")=>n.unsignedTx({to:e,data:i,value:d,chainId:h,description:l}),b=async(e,i)=>G(await t().readContract({address:k.fee_locker.address,abi:C,functionName:"availableFees",args:[e,i]})),v=async e=>{if(w(e,I.address))return I;let[i,l]=await Promise.all([t().readContract({address:e,abi:V,functionName:"symbol"}),t().readContract({address:e,abi:V,functionName:"decimals"})]);if(typeof i!="string"||!i.trim()||!Number.isInteger(l)||l<0||l>255)throw new s("The contract returned invalid token metadata.");return{address:e,chainId:h,symbol:i,decimals:l}},Z=e=>ve(n,e),ke=async(e,i)=>{if(O(e,["name","symbol","salt","image","metadata","context","vanity","initialBuy","minAmountOut","slippageBps","rewards","vault","airdrop","feeBps","pool"]),e.vanity!==void 0&&e.vanity!==!1)throw new s("Clanker launches use vanity false and an explicit salt.");let l=T(e.name,"token name",!0),d=T(e.symbol,"token symbol",!0),g=ge(e.salt,"salt"),f=z(e.initialBuy??"0"),u=e.slippageBps??H;if(typeof u!="number")throw new s("Slippage must be an integer from 0 to 9999 bps.");q("0",u);let o=e.minAmountOut===void 0?void 0:z(e.minAmountOut,128);if(o!==void 0&&o<=1n)throw new s("Initial-buy minimum must exceed one base unit.");if(!f&&o!==void 0)throw new s("A minimum requires a positive initial buy.");let c=ce(e,i);B(e.feeBps??100,0,1e3);let y=me(e);if(f&&!w(y.poolConfig.pairedToken,I.address))throw new s("An initial ETH buy currently requires a WETH-paired pool. Launch without an initial buy and obtain a protected swap quote separately.");let r=e.rewards??[{admin:i,recipient:i,bps:1e4,feePreference:0}];if(!Array.isArray(r)||!r.length||r.length>7)throw new s("Provide one to seven reward allocations.");let A=r.map(m=>{if(!x(m))throw new s("Provide reward allocations as objects.");return O(m,["admin","recipient","bps","feePreference"]),{admin:P(m.admin),recipient:P(m.recipient),bps:B(m.bps,1,1e4),feePreference:B(m.feePreference??0,0,2)}});if(A.reduce((m,S)=>m+S.bps,0)!==1e4)throw new s("Reward allocations must total 10000 bps.");let $={tokenConfig:{tokenAdmin:i,name:l,symbol:d,salt:g,image:T(e.image,"image"),metadata:T(e.metadata,"metadata"),context:e.context===void 0?JSON.stringify({interface:"Oak",platform:"robinhood"}):T(e.context,"context"),originatingChainId:BigInt(h)},poolConfig:y.poolConfig,lockerConfig:{locker:k.locker.address,rewardAdmins:A.map(m=>m.admin),rewardRecipients:A.map(m=>m.recipient),rewardBps:A.map(m=>m.bps),tickLower:y.tickLower,tickUpper:y.tickUpper,positionBps:y.positionBps,lockerData:F(j("(uint8[])"),[[A.map(m=>m.feePreference)]])},mevModuleConfig:{mevModule:k.mev_module.address,mevModuleData:F(j("(uint24,uint24,uint256)"),[[666777,41673,15n]])},extensionConfigs:c},xe=await t().simulateContract({address:k.factory.address,abi:fe,functionName:"deployToken",args:[$],account:i,value:0n,gas:E}),_=P(xe.result),K=m=>{let S=[...c,...f?[{extension:k.devbuy.address,msgValue:f,extensionBps:0,extensionData:F(j("(address,address,uint24,int24,address),uint128,address"),[[W,W,0,0,W],m,i])}]:[]];return p(k.factory.address,N({abi:fe,functionName:"deployToken",args:[{...$,extensionConfigs:S}]}),`Launch ${l} (${d}); initial buy ${f} native ETH base units.`,f.toString())};if(f&&o===void 0){let S=(await n.preview([K(0n)],i)).changes.filter(D=>D.token.chainId===h&&w(D.token.address,_)&&D.token.decimals===18).reduce((D,X)=>D+(/^-?\d+$/.test(X.amount)?BigInt(X.amount):(()=>{throw new s("Invalid initial-buy simulation amount.")})()),0n);if(S<=0n)throw new s("Initial-buy simulation returned no token output.");if(o=z(q(S.toString(),u),128),o<=1n)throw new s("Initial-buy output is too small for a protected minimum.")}let Q=[K(o??0n)],R=await n.preview(Q,i);return{txs:Q,preview:R,predictedToken:_,token:{address:_,chainId:h,symbol:d,decimals:18},...o!==void 0?{minAmountOut:o.toString()}:{},summary:`Launch ${d} at ${_} (CREATE2 address predicted from simulation); vanity false; salt ${g}. Supply 100000000000000000000000000000 base units (18 decimals). ${y.feeSummary}; protocol adds 20% of LP fees. Pool and LP allocations: ${JSON.stringify(y)}. Reward allocations: ${JSON.stringify(A)}. Extensions: ${JSON.stringify({vault:e.vault,airdrop:e.airdrop})}. Sniper fees 666777 to 41673 over 15 seconds. ${R.summary} ${be(n,R)}`}},Ae=async(e,i)=>{if(O(e,["token","poolId","collect"]),e.collect!==void 0&&typeof e.collect!="boolean")throw new s("collect must be boolean.");if(e.collect===!1&&e.poolId!==void 0)throw new s("poolId requires collection.");if(e.collect===!0&&e.token===void 0)throw new s("Collection requires a Clanker token.");if(e.poolId!==void 0&&e.token===void 0)throw new s("A pool ID requires its Clanker token.");let l=[I],d=[];if(e.token!==void 0){let o=P(e.token);if(w(o,I.address))throw new s("Provide the launched Clanker token, not WETH.");if(e.collect!==!1){let c=await re(n,o),{poolId:y,hook:r,locker:A}=c;if(e.poolId!==void 0&&!w(ge(e.poolId,"pool ID for fee collection"),y))throw new s("The supplied pool ID does not match the onchain Clanker pool.");w(c.pairedToken,I.address)||l.splice(0,1,await v(c.pairedToken));let $=await t().readContract({address:r,abi:C,functionName:"mevModuleEnabled",args:[y]});if(typeof $!="boolean")throw new s("The hook returned an invalid MEV guard state.");$&&d.push(p(r,N({abi:C,functionName:"mevModuleOperational",args:[y]}),"Update the Clanker pool MEV guard before collection.")),d.push(p(A,N({abi:C,functionName:"collectRewards",args:[o]}),"Collect pending LP fees into the fee locker."))}l.push(await v(o))}let g;if(d.length){if(await t().getChainId()!==h)throw new s("Fee simulation endpoint is on the wrong chain.");let o=[...d.map(r=>({from:i,gas:J(E),to:r.to,data:r.data,value:J(BigInt(r.value))})),...l.map(r=>({from:i,gas:J(E),to:k.fee_locker.address,data:N({abi:C,functionName:"availableFees",args:[i,r.address]}),value:"0x0"}))],c=await t().request({method:"eth_simulateV1",params:[{blockStateCalls:[{calls:o}],validation:!1,traceTransfers:!1},"latest"]},{retryCount:0});if(!Array.isArray(c)||c.length!==1||!x(c[0])||!Array.isArray(c[0].calls)||c[0].calls.length!==o.length)throw new s("The endpoint returned an unexpected fee simulation response.");let y=c[0].calls;if(!y.every(r=>x(r)&&r.status==="0x1"&&!r.error))throw new s("Clanker fee collection simulation failed.");g=y.slice(d.length).map(r=>{if(!x(r)||typeof r.returnData!="string"||!/^0x[0-9a-fA-F]{64}$/.test(r.returnData))throw new s("The endpoint returned an invalid fee balance.");return G(Ce({abi:C,functionName:"availableFees",data:r.returnData}))})}else g=await Promise.all(l.map(o=>b(i,o.address)));let f=l.flatMap((o,c)=>BigInt(g[c])>0n?[{token:o,amount:g[c]}]:[]);if(!f.length)throw new s("No claimable fees for this wallet; pending LP fees may require the MEV window to end.");for(let{token:o}of f)d.push(p(k.fee_locker.address,N({abi:C,functionName:"claim",args:[i,o.address]}),`Claim ${o.symbol} fees to ${i}.`));let u=await n.preview(d,i);return{txs:d,preview:u,fees:f,summary:`Claim fees to ${i}. WETH fees aggregate across all Clanker launches for this recipient. ${u.summary} ${be(n,u)}`}},L=(e,i,l,d)=>({name:`clanker_${e}`,inputSchema:{type:"object",properties:i,required:l,additionalProperties:!1},execute:(g,f)=>a(async()=>d(g,P(f)))});return{tools:[L("launch",{name:{type:"string"},symbol:{type:"string"},salt:he,image:{type:"string"},metadata:{type:"string"},context:{type:"string"},vanity:{const:!1},initialBuy:{...ye,description:"Native ETH base units, 18 decimals."},minAmountOut:{...ye,description:"Minimum new token base units, 18 decimals; derived from simulation when omitted."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:H},feeBps:{type:"integer",minimum:0,maximum:1e3,default:100},pool:ue,rewards:{type:"array",minItems:1,maxItems:7,items:{type:"object",properties:{admin:M,recipient:M,bps:{type:"integer",minimum:1,maximum:1e4},feePreference:{type:"integer",minimum:0,maximum:2}},required:["admin","recipient","bps"],additionalProperties:!1}},...de},["name","symbol","salt"],ke),L("claim",{token:{...M,description:"Launched token; derives its onchain pool and collects pending LP fees before claiming."},poolId:{...he,description:"Optional assertion against the derived pool ID."},collect:{type:"boolean",default:!0,description:"Set false to claim only already-collected fees."}},[],Ae),L("browse",{q:{type:"string"},limit:{type:"integer",minimum:1,maximum:20},cursor:{type:"string"},deployer:M},[],Z)],positions:e=>a(async()=>{P(e);let i=new Map,l=new Set,d;do{let u=await Z({deployer:e,limit:20,...d?{cursor:d}:{}});for(let o of u.tokens)w(o.msg_sender,e)&&i.set(o.contract_address.toLowerCase(),o);if(u.cursor&&l.has(u.cursor))throw new s("The Clanker indexer repeated a pagination cursor.");u.cursor&&l.add(u.cursor),d=u.cursor??void 0}while(d);let g=[],f=[I];for(let[u,o]of i){let c=await v(o.contract_address),y=G(await t().readContract({address:c.address,abi:V,functionName:"balanceOf",args:[e]}));g.push({module:"clanker",id:`launch:${u}`,chainId:h,assets:[{token:c,amount:y}],description:`Indexed launch ${o.name}; wallet token balance, not locked LP principal.`}),f.some(r=>w(r.address,c.address))||f.push(c)}for(let u of f){let o=await b(e,u.address);BigInt(o)>0n&&g.push({module:"clanker",id:`fees:${u.address.toLowerCase()}`,chainId:h,assets:[{token:u,amount:o}],description:"Collected fees across launches for this recipient. Pending LP fees excluded; token-side discovery covers indexed launches by this wallet."})}return g})}},Fe=n=>ie("clanker",[Se(n),ae(n),le(n),pe(n)]);export{ve as a,Se as b,Fe as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as t}from"./TCPPYBGQ.js";import{c as o}from"./JPOYTTTW.js";function s(e,n,a){return t(e,n,a,o)}export{s as a};
|
|
@@ -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};
|