@oakagentkit/core 0.1.1 → 0.1.9
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 +0 -1219
- package/build/dist/api/addresses.js +1 -1
- package/build/dist/api/amounts.d.ts +0 -1
- package/build/dist/api/amounts.js +1 -1
- package/build/dist/api/args.d.ts +19 -0
- package/build/dist/api/args.js +1 -0
- package/build/dist/api/canonical.d.ts +0 -1
- package/build/dist/api/canonical.js +1 -1
- package/build/dist/api/chain.d.ts +2 -0
- package/build/dist/api/chain.js +1 -1
- 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.d.ts +23 -0
- package/build/dist/api/guards.js +1 -0
- package/build/dist/api/history.js +1 -1
- package/build/dist/api/http.js +1 -1
- package/build/dist/api/identity-link.js +1 -1
- package/build/dist/api/launch.d.ts +1 -0
- 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.d.ts +132 -0
- package/build/dist/api/modules/beefy/boosts.js +1 -0
- package/build/dist/api/modules/beefy/clm.d.ts +282 -0
- package/build/dist/api/modules/beefy/clm.js +1 -0
- package/build/dist/api/modules/beefy/guard.d.ts +5 -0
- package/build/dist/api/modules/beefy/guard.js +1 -0
- package/build/dist/api/modules/beefy/index.js +1 -1
- package/build/dist/api/modules/beefy/liquidity.d.ts +237 -0
- package/build/dist/api/modules/beefy/liquidity.js +1 -0
- package/build/dist/api/modules/beefy/management.d.ts +100 -0
- package/build/dist/api/modules/beefy/management.js +1 -0
- package/build/dist/api/modules/beefy/vaults.d.ts +14 -0
- package/build/dist/api/modules/beefy/vaults.js +1 -0
- package/build/dist/api/modules/clanker/extensions.d.ts +62 -0
- package/build/dist/api/modules/clanker/extensions.js +1 -0
- package/build/dist/api/modules/clanker/index.js +1 -1
- package/build/dist/api/modules/clanker/manage.d.ts +2 -0
- package/build/dist/api/modules/clanker/manage.js +1 -0
- package/build/dist/api/modules/clanker/pool-config.d.ts +96 -0
- package/build/dist/api/modules/clanker/pool-config.js +1 -0
- package/build/dist/api/modules/clanker/protocol.d.ts +2 -0
- package/build/dist/api/modules/clanker/protocol.js +1 -0
- package/build/dist/api/modules/clanker/state.d.ts +246 -0
- package/build/dist/api/modules/clanker/state.js +1 -0
- package/build/dist/api/modules/erc8004/abi.d.ts +808 -0
- package/build/dist/api/modules/erc8004/abi.js +1 -0
- package/build/dist/api/modules/erc8004/common.d.ts +69 -0
- package/build/dist/api/modules/erc8004/common.js +1 -0
- package/build/dist/api/modules/erc8004/domain.d.ts +3 -0
- package/build/dist/api/modules/erc8004/domain.js +1 -0
- package/build/dist/api/modules/erc8004/index.d.ts +3 -171
- package/build/dist/api/modules/erc8004/index.js +1 -1
- package/build/dist/api/modules/erc8004/management.d.ts +4 -0
- package/build/dist/api/modules/erc8004/management.js +1 -0
- package/build/dist/api/modules/erc8004/reputation.d.ts +3 -0
- package/build/dist/api/modules/erc8004/reputation.js +1 -0
- package/build/dist/api/modules/erc8004/services.d.ts +2 -0
- package/build/dist/api/modules/erc8004/services.js +1 -0
- package/build/dist/api/modules/erc8004/validation.d.ts +2 -0
- package/build/dist/api/modules/erc8004/validation.js +1 -0
- package/build/dist/api/modules/grove/index.js +1 -1
- package/build/dist/api/modules/heyresearch/freshness.d.ts +12 -0
- package/build/dist/api/modules/heyresearch/freshness.js +1 -0
- package/build/dist/api/modules/heyresearch/index.js +1 -1
- package/build/dist/api/modules/heyresearch/public-reads.d.ts +5 -0
- package/build/dist/api/modules/heyresearch/public-reads.js +1 -0
- package/build/dist/api/modules/hoodag/chain-reads.d.ts +33 -0
- package/build/dist/api/modules/hoodag/chain-reads.js +1 -0
- package/build/dist/api/modules/hoodag/index.d.ts +9 -1
- package/build/dist/api/modules/hoodag/index.js +1 -1
- package/build/dist/api/modules/hoodag/management.d.ts +2 -0
- package/build/dist/api/modules/hoodag/management.js +1 -0
- package/build/dist/api/modules/hoodag/public-reads.d.ts +2 -0
- package/build/dist/api/modules/hoodag/public-reads.js +1 -0
- package/build/dist/api/modules/hoodag/reconstruct.d.ts +14 -0
- package/build/dist/api/modules/hoodag/reconstruct.js +1 -0
- package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
- package/build/dist/api/modules/hoodlock/buyback.d.ts +28 -0
- package/build/dist/api/modules/hoodlock/buyback.js +1 -0
- package/build/dist/api/modules/hoodlock/commerce.d.ts +24 -0
- package/build/dist/api/modules/hoodlock/commerce.js +1 -0
- package/build/dist/api/modules/hoodlock/fee.d.ts +15 -0
- package/build/dist/api/modules/hoodlock/fee.js +1 -0
- package/build/dist/api/modules/hoodlock/guard.d.ts +5 -0
- package/build/dist/api/modules/hoodlock/guard.js +1 -0
- package/build/dist/api/modules/hoodlock/index.d.ts +4 -0
- package/build/dist/api/modules/hoodlock/index.js +1 -1
- package/build/dist/api/modules/hoodlock/lifecycle.d.ts +285 -0
- package/build/dist/api/modules/hoodlock/lifecycle.js +1 -0
- package/build/dist/api/modules/hoodlock/locks-burn.d.ts +3 -3
- package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
- package/build/dist/api/modules/hoodlock/public.d.ts +3 -0
- package/build/dist/api/modules/hoodlock/public.js +1 -0
- package/build/dist/api/modules/hookr/actions.d.ts +4 -0
- package/build/dist/api/modules/hookr/actions.js +1 -0
- package/build/dist/api/modules/hookr/addons.d.ts +4 -0
- package/build/dist/api/modules/hookr/addons.js +1 -0
- package/build/dist/api/modules/hookr/contracts.d.ts +30 -0
- package/build/dist/api/modules/hookr/contracts.js +1 -0
- package/build/dist/api/modules/hookr/create-cancel.d.ts +10 -73
- package/build/dist/api/modules/hookr/create-cancel.js +1 -1
- package/build/dist/api/modules/hookr/discovery.d.ts +3 -0
- package/build/dist/api/modules/hookr/discovery.js +1 -0
- package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
- package/build/dist/api/modules/hookr/index.d.ts +0 -3
- package/build/dist/api/modules/hookr/index.js +1 -1
- package/build/dist/api/modules/hookr/public-reads.d.ts +4 -0
- package/build/dist/api/modules/hookr/public-reads.js +1 -0
- package/build/dist/api/modules/hookr/relay.d.ts +304 -0
- package/build/dist/api/modules/hookr/relay.js +1 -0
- package/build/dist/api/modules/hookr/revenue.d.ts +5 -0
- package/build/dist/api/modules/hookr/revenue.js +1 -0
- package/build/dist/api/modules/kyberswap/index.d.ts +18 -2
- package/build/dist/api/modules/kyberswap/index.js +1 -1
- package/build/dist/api/modules/kyberswap/source-pools.d.ts +9 -0
- package/build/dist/api/modules/kyberswap/source-pools.js +1 -0
- package/build/dist/api/modules/lighter/index.js +1 -1
- package/build/dist/api/modules/longbow/administration.d.ts +119 -0
- package/build/dist/api/modules/longbow/administration.js +1 -0
- package/build/dist/api/modules/longbow/analytics.d.ts +272 -0
- package/build/dist/api/modules/longbow/analytics.js +1 -0
- package/build/dist/api/modules/longbow/fixed.d.ts +126 -0
- package/build/dist/api/modules/longbow/fixed.js +1 -0
- package/build/dist/api/modules/longbow/index.d.ts +20 -2
- package/build/dist/api/modules/longbow/index.js +1 -1
- package/build/dist/api/modules/longbow/nft.d.ts +236 -0
- package/build/dist/api/modules/longbow/nft.js +1 -0
- package/build/dist/api/modules/longbow/rebates.d.ts +152 -0
- package/build/dist/api/modules/longbow/rebates.js +1 -0
- package/build/dist/api/modules/longbow/staking.d.ts +4 -0
- package/build/dist/api/modules/longbow/staking.js +1 -0
- 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.d.ts +4 -0
- package/build/dist/api/modules/meridian/perps-batch.js +1 -0
- package/build/dist/api/modules/meridian/perps-common.d.ts +56 -0
- package/build/dist/api/modules/meridian/perps-common.js +1 -0
- package/build/dist/api/modules/meridian/perps-guards.d.ts +3 -0
- package/build/dist/api/modules/meridian/perps-guards.js +1 -0
- package/build/dist/api/modules/meridian/perps-intents.d.ts +18 -0
- package/build/dist/api/modules/meridian/perps-intents.js +1 -0
- package/build/dist/api/modules/meridian/perps-stream.d.ts +3 -0
- package/build/dist/api/modules/meridian/perps-stream.js +1 -0
- package/build/dist/api/modules/meridian/perps.d.ts +3 -0
- package/build/dist/api/modules/meridian/perps.js +1 -0
- package/build/dist/api/modules/meridian/predict-read.d.ts +2 -0
- package/build/dist/api/modules/meridian/predict-read.js +1 -0
- package/build/dist/api/modules/meridian/rfq.d.ts +29 -0
- package/build/dist/api/modules/meridian/rfq.js +1 -1
- package/build/dist/api/modules/merkl/discovery.d.ts +2 -0
- package/build/dist/api/modules/merkl/discovery.js +1 -0
- package/build/dist/api/modules/merkl/index.d.ts +10 -1
- package/build/dist/api/modules/merkl/index.js +1 -1
- package/build/dist/api/modules/merkl/manage.d.ts +2 -0
- package/build/dist/api/modules/merkl/manage.js +1 -0
- package/build/dist/api/modules/merkl/protocol.d.ts +2 -0
- package/build/dist/api/modules/merkl/protocol.js +1 -0
- package/build/dist/api/modules/morpho/allocator.d.ts +308 -0
- package/build/dist/api/modules/morpho/allocator.js +1 -0
- package/build/dist/api/modules/morpho/bundles-abi.d.ts +705 -0
- package/build/dist/api/modules/morpho/bundles-abi.js +1 -0
- package/build/dist/api/modules/morpho/bundles.d.ts +3 -0
- package/build/dist/api/modules/morpho/bundles.js +1 -0
- package/build/dist/api/modules/morpho/in-kind.d.ts +85 -0
- package/build/dist/api/modules/morpho/in-kind.js +1 -0
- package/build/dist/api/modules/morpho/index.d.ts +11 -3
- package/build/dist/api/modules/morpho/index.js +1 -12
- package/build/dist/api/modules/morpho/local-guard.d.ts +26 -0
- package/build/dist/api/modules/morpho/local-guard.js +1 -0
- package/build/dist/api/modules/morpho/midnight-abi.d.ts +1690 -0
- package/build/dist/api/modules/morpho/midnight-abi.js +1 -0
- package/build/dist/api/modules/morpho/midnight.d.ts +179 -0
- package/build/dist/api/modules/morpho/midnight.js +1 -0
- package/build/dist/api/modules/morpho/protocol.d.ts +290 -0
- package/build/dist/api/modules/morpho/protocol.js +1 -0
- package/build/dist/api/modules/morpho/surface.d.ts +4 -0
- package/build/dist/api/modules/morpho/surface.js +1 -0
- package/build/dist/api/modules/morpho/vault-management.d.ts +10 -0
- package/build/dist/api/modules/morpho/vault-management.js +1 -0
- package/build/dist/api/modules/morpho/vault-tools.d.ts +6 -0
- package/build/dist/api/modules/morpho/vault-tools.js +1 -0
- package/build/dist/api/modules/morpho/vault-v2.d.ts +190 -0
- package/build/dist/api/modules/morpho/vault-v2.js +1 -0
- package/build/dist/api/modules/netnet/blackjack-hashes.d.ts +89 -0
- package/build/dist/api/modules/netnet/blackjack-hashes.js +1 -0
- package/build/dist/api/modules/netnet/card-abi.d.ts +3758 -0
- package/build/dist/api/modules/netnet/card-abi.js +1 -0
- package/build/dist/api/modules/netnet/card-plan.d.ts +43 -0
- package/build/dist/api/modules/netnet/card-plan.js +1 -0
- package/build/dist/api/modules/netnet/card-policy.d.ts +10 -0
- package/build/dist/api/modules/netnet/card-policy.js +1 -0
- package/build/dist/api/modules/netnet/card-read.d.ts +2 -0
- package/build/dist/api/modules/netnet/card-read.js +1 -0
- package/build/dist/api/modules/netnet/card-recovery.d.ts +2 -0
- package/build/dist/api/modules/netnet/card-recovery.js +1 -0
- package/build/dist/api/modules/netnet/desk-action-abi.d.ts +2 -0
- package/build/dist/api/modules/netnet/desk-action-abi.js +1 -0
- package/build/dist/api/modules/netnet/desk-action.d.ts +3 -0
- package/build/dist/api/modules/netnet/desk-action.js +1 -0
- package/build/dist/api/modules/netnet/desk-read.d.ts +5 -0
- package/build/dist/api/modules/netnet/desk-read.js +1 -0
- package/build/dist/api/modules/netnet/desk-registry.d.ts +5 -0
- package/build/dist/api/modules/netnet/desk-registry.js +1 -0
- package/build/dist/api/modules/netnet/financial-abi.d.ts +1764 -0
- package/build/dist/api/modules/netnet/financial-abi.js +1 -0
- package/build/dist/api/modules/netnet/financial.d.ts +13 -0
- package/build/dist/api/modules/netnet/financial.js +1 -0
- package/build/dist/api/modules/netnet/index.d.ts +1 -0
- package/build/dist/api/modules/netnet/index.js +1 -1
- package/build/dist/api/modules/netnet/staking.d.ts +8 -0
- package/build/dist/api/modules/netnet/staking.js +1 -0
- package/build/dist/api/modules/orbio/gateway.d.ts +24 -0
- package/build/dist/api/modules/orbio/gateway.js +1 -0
- package/build/dist/api/modules/orbio/index.d.ts +3 -1
- package/build/dist/api/modules/orbio/index.js +1 -1
- package/build/dist/api/modules/orbio/pins.d.ts +457 -0
- package/build/dist/api/modules/orbio/pins.js +1 -0
- package/build/dist/api/modules/pons/claim.d.ts +33 -1
- package/build/dist/api/modules/pons/claim.js +1 -1
- package/build/dist/api/modules/pons/holder-directory.d.ts +35 -0
- package/build/dist/api/modules/pons/holder-directory.js +1 -0
- package/build/dist/api/modules/pons/index.js +1 -1
- package/build/dist/api/modules/pons/launch-status.d.ts +151 -5
- 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 +3 -0
- package/build/dist/api/modules/pons/reads.js +1 -0
- package/build/dist/api/modules/pons/swap-terms.d.ts +77 -0
- package/build/dist/api/modules/pons/swap-terms.js +1 -0
- package/build/dist/api/modules/pons/trade.d.ts +15 -2
- 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.d.ts +23 -0
- package/build/dist/api/modules/priors/coverage.js +1 -0
- package/build/dist/api/modules/priors/discovery.d.ts +4 -0
- package/build/dist/api/modules/priors/discovery.js +1 -0
- package/build/dist/api/modules/priors/features.d.ts +62 -0
- package/build/dist/api/modules/priors/features.js +1 -0
- package/build/dist/api/modules/priors/index.d.ts +9 -2
- package/build/dist/api/modules/priors/index.js +1 -1
- package/build/dist/api/modules/priors/integration.d.ts +6 -0
- package/build/dist/api/modules/priors/integration.js +1 -0
- package/build/dist/api/modules/priors/market.d.ts +10 -0
- package/build/dist/api/modules/priors/market.js +1 -0
- package/build/dist/api/modules/priors/pt.d.ts +421 -0
- package/build/dist/api/modules/priors/pt.js +1 -0
- package/build/dist/api/modules/priors/savings-exit.d.ts +85 -0
- package/build/dist/api/modules/priors/savings-exit.js +1 -0
- package/build/dist/api/modules/priors/starter-line.d.ts +495 -0
- package/build/dist/api/modules/priors/starter-line.js +1 -0
- package/build/dist/api/modules/priors/stock-swap.d.ts +101 -0
- package/build/dist/api/modules/priors/stock-swap.js +1 -0
- package/build/dist/api/modules/relay/api.d.ts +52 -0
- package/build/dist/api/modules/relay/api.js +1 -0
- package/build/dist/api/modules/relay/bootstrap.d.ts +2 -0
- package/build/dist/api/modules/relay/bootstrap.js +1 -0
- package/build/dist/api/modules/relay/discovery.d.ts +2 -0
- package/build/dist/api/modules/relay/discovery.js +1 -0
- package/build/dist/api/modules/relay/inbound.js +1 -1
- package/build/dist/api/modules/relay/index.d.ts +2 -0
- package/build/dist/api/modules/relay/index.js +1 -1
- package/build/dist/api/modules/relay/order.d.ts +2 -0
- package/build/dist/api/modules/relay/order.js +1 -0
- package/build/dist/api/modules/relay/outbound-status.js +1 -1
- package/build/dist/api/modules/relay/readiness.d.ts +5 -0
- package/build/dist/api/modules/relay/readiness.js +1 -0
- package/build/dist/api/modules/relay/reads.d.ts +3 -0
- package/build/dist/api/modules/relay/reads.js +1 -0
- package/build/dist/api/modules/relay/vaults.d.ts +24 -0
- package/build/dist/api/modules/relay/vaults.js +1 -0
- package/build/dist/api/modules/spark/actions.d.ts +2 -0
- package/build/dist/api/modules/spark/actions.js +1 -0
- package/build/dist/api/modules/spark/details.d.ts +3 -0
- package/build/dist/api/modules/spark/details.js +1 -0
- package/build/dist/api/modules/spark/index.js +1 -1
- package/build/dist/api/modules/spark/management.d.ts +7 -0
- package/build/dist/api/modules/spark/management.js +1 -0
- package/build/dist/api/modules/steakhouse/analytics.d.ts +2 -0
- package/build/dist/api/modules/steakhouse/analytics.js +1 -0
- package/build/dist/api/modules/steakhouse/erc4626.d.ts +2 -0
- package/build/dist/api/modules/steakhouse/erc4626.js +1 -0
- package/build/dist/api/modules/steakhouse/index.js +1 -1
- package/build/dist/api/modules/steakhouse/local-guard.d.ts +7 -0
- package/build/dist/api/modules/steakhouse/local-guard.js +1 -0
- package/build/dist/api/modules/steakhouse/management.d.ts +3 -0
- package/build/dist/api/modules/steakhouse/management.js +1 -0
- package/build/dist/api/modules/steakhouse/v2-exit.d.ts +19 -0
- package/build/dist/api/modules/steakhouse/v2-exit.js +1 -0
- package/build/dist/api/modules/tickerspring/basket-routes.d.ts +2 -0
- package/build/dist/api/modules/tickerspring/basket-routes.js +1 -0
- package/build/dist/api/modules/tickerspring/contract-reads.d.ts +2 -0
- package/build/dist/api/modules/tickerspring/contract-reads.js +1 -0
- package/build/dist/api/modules/tickerspring/discovery.d.ts +27 -0
- package/build/dist/api/modules/tickerspring/discovery.js +1 -0
- package/build/dist/api/modules/tickerspring/exit-preview.d.ts +14 -0
- package/build/dist/api/modules/tickerspring/exit-preview.js +1 -0
- package/build/dist/api/modules/tickerspring/guards.d.ts +7 -0
- package/build/dist/api/modules/tickerspring/guards.js +1 -0
- package/build/dist/api/modules/tickerspring/index.d.ts +80 -1
- package/build/dist/api/modules/tickerspring/index.js +1 -1
- package/build/dist/api/modules/tickerspring/journeys.d.ts +31 -0
- package/build/dist/api/modules/tickerspring/journeys.js +1 -0
- package/build/dist/api/modules/tickerspring/ladder.d.ts +8 -0
- package/build/dist/api/modules/tickerspring/ladder.js +1 -0
- package/build/dist/api/modules/tickerspring/maker.d.ts +8 -0
- package/build/dist/api/modules/tickerspring/maker.js +1 -0
- package/build/dist/api/modules/tickerspring/order-accounting.d.ts +4 -0
- package/build/dist/api/modules/tickerspring/order-accounting.js +1 -0
- package/build/dist/api/modules/tickerspring/research.d.ts +2 -0
- package/build/dist/api/modules/tickerspring/research.js +1 -0
- package/build/dist/api/modules/tickerspring/strategies.d.ts +17 -0
- package/build/dist/api/modules/tickerspring/strategies.js +1 -0
- package/build/dist/api/modules/uniswap/auction-create.d.ts +112 -0
- package/build/dist/api/modules/uniswap/auction-create.js +1 -0
- package/build/dist/api/modules/uniswap/auction.d.ts +212 -0
- package/build/dist/api/modules/uniswap/auction.js +1 -0
- package/build/dist/api/modules/uniswap/batch.d.ts +22 -0
- package/build/dist/api/modules/uniswap/batch.js +1 -0
- package/build/dist/api/modules/uniswap/common.d.ts +12 -0
- package/build/dist/api/modules/uniswap/common.js +1 -0
- package/build/dist/api/modules/uniswap/fees.d.ts +54 -0
- package/build/dist/api/modules/uniswap/fees.js +1 -0
- package/build/dist/api/modules/uniswap/index.d.ts +2 -1
- package/build/dist/api/modules/uniswap/index.js +1 -1
- package/build/dist/api/modules/uniswap/local-guard.d.ts +16 -0
- package/build/dist/api/modules/uniswap/local-guard.js +1 -0
- package/build/dist/api/modules/uniswap/oracle.d.ts +2 -0
- package/build/dist/api/modules/uniswap/oracle.js +1 -0
- package/build/dist/api/modules/uniswap/pool-math.d.ts +13 -0
- package/build/dist/api/modules/uniswap/pool-math.js +1 -0
- package/build/dist/api/modules/uniswap/pools.d.ts +30 -0
- package/build/dist/api/modules/uniswap/pools.js +1 -0
- package/build/dist/api/modules/uniswap/position.d.ts +69 -0
- package/build/dist/api/modules/uniswap/position.js +1 -0
- package/build/dist/api/modules/uniswap/protocol.d.ts +154 -0
- package/build/dist/api/modules/uniswap/protocol.js +1 -0
- package/build/dist/api/modules/uniswap/token-jar.d.ts +52 -0
- package/build/dist/api/modules/uniswap/token-jar.js +1 -0
- package/build/dist/api/modules/uniswap/trade-batch.d.ts +2 -0
- package/build/dist/api/modules/uniswap/trade-batch.js +1 -0
- package/build/dist/api/modules/uniswap/trade.d.ts +406 -0
- package/build/dist/api/modules/uniswap/trade.js +1 -0
- package/build/dist/api/modules/uniswap/v2.d.ts +180 -0
- package/build/dist/api/modules/uniswap/v2.js +1 -0
- package/build/dist/api/modules/uniswap/v3.d.ts +23 -2
- package/build/dist/api/modules/uniswap/v3.js +1 -1
- package/build/dist/api/modules/uniswap/v4.d.ts +17 -28
- package/build/dist/api/modules/uniswap/v4.js +1 -1
- package/build/dist/api/modules/uniswap/wrap.d.ts +17 -0
- package/build/dist/api/modules/uniswap/wrap.js +1 -0
- package/build/dist/api/modules/velora/claims.d.ts +86 -0
- package/build/dist/api/modules/velora/claims.js +1 -0
- package/build/dist/api/modules/velora/delta-reads.d.ts +2 -0
- package/build/dist/api/modules/velora/delta-reads.js +1 -0
- package/build/dist/api/modules/velora/index.js +1 -1
- package/build/dist/api/owner-signature.d.ts +29 -0
- package/build/dist/api/owner-signature.js +1 -0
- package/build/dist/api/positions.js +1 -1
- package/build/dist/api/pricenote.d.ts +0 -1
- package/build/dist/api/pricenote.js +1 -1
- package/build/dist/api/prices.js +1 -1
- package/build/dist/api/pricing.d.ts +6 -15
- package/build/dist/api/pricing.js +1 -1
- package/build/dist/api/routes.js +1 -1
- package/build/dist/api/rpc.d.ts +23 -0
- package/build/dist/api/rpc.js +1 -0
- package/build/dist/api/secret-fields.js +1 -1
- package/build/dist/api/send.d.ts +45 -0
- package/build/dist/api/send.js +1 -0
- package/build/dist/api/signing-registry.d.ts +19 -0
- package/build/dist/api/signing-registry.js +1 -0
- package/build/dist/api/signing.d.ts +162 -0
- package/build/dist/api/signing.js +1 -0
- package/build/dist/api/simulate.js +1 -1
- package/build/dist/api/swap.d.ts +62 -27
- package/build/dist/api/swap.js +1 -1
- package/build/dist/api/tokens.d.ts +5 -0
- package/build/dist/api/tokens.js +1 -1
- package/build/dist/api/tool-policy.d.ts +7 -0
- package/build/dist/api/tool-policy.js +1 -1
- package/build/dist/api/tx.js +1 -1
- package/build/dist/api/types.d.ts +12 -0
- package/build/dist/api/untrusted.js +1 -1
- package/build/dist/api/vendor-limits.js +1 -1
- package/build/dist/chunks/2EDXKJ3B.js +1 -0
- package/build/dist/chunks/2EGFALNH.js +1 -0
- package/build/dist/chunks/2LM5C7FQ.js +1 -0
- package/build/dist/chunks/2NA6JLEC.js +1 -0
- package/build/dist/chunks/2O6A6WEX.js +1 -0
- package/build/dist/chunks/37QNUNED.js +1 -0
- package/build/dist/chunks/3CCBUYUM.js +1 -0
- package/build/dist/chunks/3RFSGU2Y.js +1 -0
- package/build/dist/chunks/{XTUXR43N.js → 3Z3U4YPA.js} +1 -1
- package/build/dist/chunks/4CDR7F4I.js +1 -0
- package/build/dist/chunks/4X6JEMSF.js +1 -0
- package/build/dist/chunks/53N7PNJH.js +1 -0
- package/build/dist/chunks/5EHQM6DM.js +1 -0
- package/build/dist/chunks/5H3MQWH7.js +18 -0
- package/build/dist/chunks/5XFXH2JT.js +1 -0
- package/build/dist/chunks/5YS5V2LK.js +1 -0
- package/build/dist/chunks/65QFM4JU.js +1 -0
- package/build/dist/chunks/67TJOOBI.js +1 -0
- package/build/dist/chunks/6HV5BR7P.js +1 -0
- package/build/dist/chunks/{VBWJOG3N.js → 6IM6A5VA.js} +1 -1
- package/build/dist/chunks/6JCEJ66K.js +1 -0
- package/build/dist/chunks/6NR7SVRO.js +1 -0
- package/build/dist/chunks/6SB3FB3P.js +1 -0
- package/build/dist/chunks/6SCCW74G.js +1 -0
- package/build/dist/chunks/73N3TOJL.js +1 -0
- package/build/dist/chunks/74BPMUAG.js +1 -0
- package/build/dist/chunks/7B5UH2VS.js +1 -0
- package/build/dist/chunks/7LDAJ6BM.js +1 -0
- package/build/dist/chunks/7MR37STI.js +1 -0
- package/build/dist/chunks/7US6PD56.js +1 -0
- package/build/dist/chunks/7YU6DELJ.js +1 -0
- package/build/dist/chunks/AFHHRDPJ.js +1 -0
- package/build/dist/chunks/AIWZGIZ6.js +1 -0
- package/build/dist/chunks/AXYOJBX6.js +1 -0
- package/build/dist/chunks/AYM5L6L7.js +1 -0
- package/build/dist/chunks/B72Q2EQ2.js +1 -0
- package/build/dist/chunks/B7V7AA5A.js +1 -0
- package/build/dist/chunks/BBQVTEYB.js +1 -0
- package/build/dist/chunks/BQLLTY4L.js +1 -0
- package/build/dist/chunks/BYXBS45D.js +1 -0
- package/build/dist/chunks/C2FEXLMA.js +1 -0
- package/build/dist/chunks/C3TJLARP.js +1 -0
- package/build/dist/chunks/C3ZZSGSP.js +1 -0
- package/build/dist/chunks/C5LR6F4B.js +1 -0
- package/build/dist/chunks/CAYBSVA6.js +1 -0
- package/build/dist/chunks/CBA776XQ.js +1 -0
- package/build/dist/chunks/CCEWSOBT.js +1 -0
- package/build/dist/chunks/CEQNXF6A.js +1 -0
- package/build/dist/chunks/CS55ERS3.js +1 -0
- package/build/dist/chunks/CXMC3T6B.js +1 -0
- package/build/dist/chunks/{PQHU5A3U.js → D3OWLDVB.js} +1 -1
- package/build/dist/chunks/DHXVYHT4.js +1 -0
- package/build/dist/chunks/E2IVNGLC.js +1 -0
- package/build/dist/chunks/E2Q5IA67.js +1 -0
- package/build/dist/chunks/{RYOVSHKO.js → E7ASOYQI.js} +1 -1
- package/build/dist/chunks/EAEQOS7Y.js +1 -0
- package/build/dist/chunks/EC5W3UZD.js +1 -0
- package/build/dist/chunks/{XAB4OIE3.js → EG6M6SSO.js} +1 -1
- package/build/dist/chunks/EHVPRQHS.js +1 -0
- package/build/dist/chunks/EKGHKEKV.js +1 -0
- package/build/dist/chunks/EVANKNJV.js +1 -0
- package/build/dist/chunks/F2YH72GF.js +1 -0
- package/build/dist/chunks/F3TJCOVV.js +1 -0
- package/build/dist/chunks/F6WBPPBN.js +1 -0
- package/build/dist/chunks/FL3EF72E.js +1 -0
- package/build/dist/chunks/FLXID6I3.js +1 -0
- package/build/dist/chunks/FYTF2QMS.js +1 -0
- package/build/dist/chunks/G7UKNO2I.js +1 -0
- package/build/dist/chunks/GZ5TW3WB.js +1 -0
- package/build/dist/chunks/H4S2ZCWK.js +1 -0
- package/build/dist/chunks/H6ED3RHF.js +1 -0
- package/build/dist/chunks/HACP2Q6D.js +3 -0
- package/build/dist/chunks/HF2AGJZC.js +1 -0
- package/build/dist/chunks/HFQS5344.js +1 -0
- package/build/dist/chunks/{74X7PXPR.js → HIMVOTIU.js} +1 -1
- package/build/dist/chunks/HL2MLC3O.js +1 -0
- package/build/dist/chunks/HNMOB76J.js +1 -0
- package/build/dist/chunks/HQVC6X3T.js +1 -0
- package/build/dist/chunks/HYIEQG4X.js +1 -0
- package/build/dist/chunks/HZUWK5B2.js +1 -0
- package/build/dist/chunks/IHGVCPVA.js +2 -0
- package/build/dist/chunks/IKP3Z3RX.js +1 -0
- package/build/dist/chunks/ITIIHCZK.js +1 -0
- package/build/dist/chunks/IWALIX7Q.js +1 -0
- package/build/dist/chunks/JOMK32QW.js +1 -0
- package/build/dist/chunks/JRO6WTK4.js +1 -0
- package/build/dist/chunks/JRVTSGAT.js +1 -0
- package/build/dist/chunks/JRZLKIYB.js +1 -0
- package/build/dist/chunks/JVTVOK6P.js +1 -0
- package/build/dist/chunks/{XN4WDN3O.js → JXOEJPJ4.js} +1 -1
- package/build/dist/chunks/K2LWX3PZ.js +1 -0
- package/build/dist/chunks/KEPQXFHU.js +1 -0
- package/build/dist/chunks/L24EOVLT.js +1 -0
- package/build/dist/chunks/L2MTPRU7.js +1 -0
- package/build/dist/chunks/LBEMCOND.js +1 -0
- package/build/dist/chunks/LFKSXD3S.js +1 -0
- package/build/dist/chunks/MRWCFTMS.js +1 -0
- package/build/dist/chunks/MWWYIFXJ.js +1 -0
- package/build/dist/chunks/MYBDO5SA.js +1 -0
- package/build/dist/chunks/N77ANGBT.js +1 -0
- package/build/dist/chunks/NCQFWPAW.js +1 -0
- package/build/dist/chunks/NHCRJC5X.js +1 -0
- package/build/dist/chunks/NNZ4SZZ4.js +1 -0
- package/build/dist/chunks/NUWL6TJM.js +1 -0
- package/build/dist/chunks/O47JXRXN.js +1 -0
- package/build/dist/chunks/{MEZH7RPA.js → OG5HRQU4.js} +1 -1
- package/build/dist/chunks/OJLMF5AR.js +1 -0
- package/build/dist/chunks/OJMYESQU.js +1 -0
- package/build/dist/chunks/OJP7Y4AM.js +1 -0
- package/build/dist/chunks/OK3TQFXZ.js +1 -0
- package/build/dist/chunks/OW7GOYKA.js +1 -0
- package/build/dist/chunks/P4UQGWCP.js +1 -0
- package/build/dist/chunks/P6ELT4ZV.js +1 -0
- package/build/dist/chunks/PHXWBC4O.js +1 -0
- package/build/dist/chunks/Q2VMH2LB.js +1 -0
- package/build/dist/chunks/QH3AL3UN.js +1 -0
- package/build/dist/chunks/QHHZDXRG.js +1 -0
- package/build/dist/chunks/QNPEKNWM.js +1 -0
- package/build/dist/chunks/QOY4AANB.js +1 -0
- package/build/dist/chunks/QRUC7EFE.js +1 -0
- package/build/dist/chunks/QYKXWBZC.js +1 -0
- package/build/dist/chunks/REGJY5RC.js +1 -0
- package/build/dist/chunks/RETS2ZEK.js +1 -0
- package/build/dist/chunks/RFJCG4NA.js +1 -0
- package/build/dist/chunks/RNEMTLQG.js +1 -0
- package/build/dist/chunks/RRSODRGT.js +1 -0
- package/build/dist/chunks/SEW7UP5U.js +1 -0
- package/build/dist/chunks/SLSPWXR6.js +1 -0
- package/build/dist/chunks/SPRVVJXI.js +1 -0
- package/build/dist/chunks/SQ5BNSXR.js +1 -0
- package/build/dist/chunks/SQH7A4O3.js +1 -0
- package/build/dist/chunks/SS7U3CMZ.js +1 -0
- package/build/dist/chunks/SXX52Y27.js +1 -0
- package/build/dist/chunks/SYZ55RCX.js +1 -0
- package/build/dist/chunks/T6MTTMLQ.js +1 -0
- package/build/dist/chunks/TAI63P6E.js +1 -0
- package/build/dist/chunks/TCS3ICNE.js +2 -0
- package/build/dist/chunks/TRCP7X5P.js +1 -0
- package/build/dist/chunks/TWR7BF72.js +1 -0
- package/build/dist/chunks/UEYFMXV3.js +1 -0
- package/build/dist/chunks/UWOFA6GV.js +1 -0
- package/build/dist/chunks/UXG67LH3.js +1 -0
- package/build/dist/chunks/V6SDKPZS.js +1 -0
- package/build/dist/chunks/VCWDJQDE.js +1 -0
- package/build/dist/chunks/{6YQ2RX5I.js → VXLJRRKV.js} +1 -1
- package/build/dist/chunks/W6G2QGYF.js +1 -0
- package/build/dist/chunks/WCKMQFGS.js +1117 -0
- package/build/dist/chunks/WHT45EFX.js +1 -0
- package/build/dist/chunks/WIDTTGSH.js +1 -0
- package/build/dist/chunks/WQZLYX64.js +1 -0
- package/build/dist/chunks/X5V2Z2NM.js +1 -0
- package/build/dist/chunks/{Z53DADZ4.js → XCFA73P2.js} +1 -1
- package/build/dist/chunks/XPFVT2EA.js +1 -0
- package/build/dist/chunks/XV6F3RET.js +1 -0
- package/build/dist/chunks/XW7RH7YY.js +1 -0
- package/build/dist/chunks/YHPOXAKA.js +1 -0
- package/build/dist/chunks/YONRUWN7.js +1 -0
- package/build/dist/chunks/YR3QJVJQ.js +1 -0
- package/build/dist/chunks/Z4LJ2GTX.js +1 -0
- package/build/dist/chunks/ZL3KVABO.js +1 -0
- package/build/dist/chunks/ZPM2MFXZ.js +1 -0
- package/build/dist/chunks/ZPNGV34U.js +1 -0
- package/build/dist/chunks/ZQI7B2Z7.js +1 -0
- package/build/dist/chunks/ZT67OMLW.js +1 -0
- package/package.json +13 -9
- package/build/dist/chunks/5B3UVWMV.js +0 -1
- package/build/dist/chunks/5BP72XOA.js +0 -1
- package/build/dist/chunks/5SH3C7XP.js +0 -1
- package/build/dist/chunks/7I6TXFXR.js +0 -1
- package/build/dist/chunks/A5O3SRHY.js +0 -1
- package/build/dist/chunks/B2LA6VVF.js +0 -3
- package/build/dist/chunks/CWQ5WXZQ.js +0 -1
- package/build/dist/chunks/F3TOOLFQ.js +0 -1
- package/build/dist/chunks/GOIVHR4B.js +0 -1
- package/build/dist/chunks/M643PYHO.js +0 -1
- package/build/dist/chunks/NDHEJGWR.js +0 -1
- package/build/dist/chunks/NNJLMS7F.js +0 -1
- package/build/dist/chunks/R5CBH2CR.js +0 -1
- package/build/dist/chunks/SUQ6PIAV.js +0 -1
- package/build/dist/chunks/SXBGOGYQ.js +0 -1
- package/build/dist/chunks/T4IYMYZD.js +0 -1
- package/build/dist/chunks/TFYLOWFO.js +0 -1
- package/build/dist/chunks/TU3KHOZK.js +0 -1
- package/build/dist/chunks/UB5U6SI2.js +0 -1
- package/build/dist/chunks/UIJWIFGV.js +0 -1
- package/build/dist/chunks/WFE3NXBF.js +0 -2
- package/build/dist/chunks/XEN45QST.js +0 -1
- package/build/dist/chunks/XKZOMGC3.js +0 -1
- package/build/dist/chunks/Y2SGXWFM.js +0 -1
- package/build/dist/chunks/Z3FZWNAJ.js +0 -1
- package/build/dist/chunks/ZJUNO5N7.js +0 -1
- package/build/dist/chunks/ZZLHDHOT.js +0 -1
package/package.json
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oakagentkit/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=22"
|
|
8
8
|
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"lint": "eslint \"src/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" \"test/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" --no-error-on-unmatched-pattern --global AbortSignal --max-warnings 0",
|
|
11
|
+
"typecheck": "pnpm --workspace-root run typecheck:package packages/core/tsconfig.json",
|
|
12
|
+
"test": "pnpm run build && vitest run --passWithNoTests --config ../../scripts/release/vitest-core.config.mjs",
|
|
13
|
+
"build": "node ../../scripts/release/build.mjs core",
|
|
14
|
+
"prepack": "node ../../scripts/release/prepare.mjs core",
|
|
15
|
+
"postpack": "node ../../scripts/release/prepare.mjs core --postpack",
|
|
16
|
+
"prepublishOnly": "node ../../scripts/release/prepare.mjs core --verify",
|
|
17
|
+
"postpublish": "node ../../scripts/release/prepare.mjs core --restore"
|
|
18
|
+
},
|
|
9
19
|
"exports": {
|
|
10
20
|
"./abi/*.json": "./build/dist/abi/*.json",
|
|
11
21
|
"./*": {
|
|
@@ -30,11 +40,5 @@
|
|
|
30
40
|
"oak",
|
|
31
41
|
"mcp",
|
|
32
42
|
"robinhood-chain"
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
"lint": "eslint \"src/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" \"test/**/*.{js,mjs,cjs,ts,mts,cts,tsx}\" --no-error-on-unmatched-pattern --max-warnings 0",
|
|
36
|
-
"typecheck": "pnpm --workspace-root run typecheck:package packages/core/tsconfig.json",
|
|
37
|
-
"test": "pnpm run build && vitest run --passWithNoTests --config ../../scripts/release/vitest-core.config.mjs",
|
|
38
|
-
"build": "node ../../scripts/release/build.mjs core"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as k,c as D,d as x}from"./SXBGOGYQ.js";import{a as V}from"./Z53DADZ4.js";import{a as T}from"./VBWJOG3N.js";import{a as c,d as j,i as O}from"./5BP72XOA.js";import{a as X,b as W}from"./7I6TXFXR.js";import{a as s}from"./Z3FZWNAJ.js";import{encodeFunctionData as J,erc20Abi as G,getAddress as a,isAddress as ft,parseAbi as pt}from"viem";var kt="hookr",y=a(O[4663].hookr.HookrLimitOrders.address),gt=a(O[4663].hookr.HookrRoot.address),At=a(O[4663].hookr.HookrRouter.address),wt=a(O[4663].hookr.HookrForwarder.address),Ot=a(O[4663].hookr.PoolManager.address),Bt=a(O[4663].hookr.HOOKR_Token.address),L="0x0000000000000000000000000000000000000000",ht="0x000000000000000000000000000000000000dEaD",Q=(1n<<128n)-1n,It=new Set([L.toLowerCase(),ht.toLowerCase(),y.toLowerCase(),At.toLowerCase(),wt.toLowerCase(),Ot.toLowerCase(),gt.toLowerCase()]),B=pt(["function getOrder(uint256 orderId) view returns (((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) key, address owner, uint40 createdAt, uint40 expiry, bool zeroForOne, uint8 status, address recipient, uint128 amountIn, uint128 minAmountOut, uint128 bounty, uint160 sqrtPriceLimitX96))","function quoteFill(uint256 orderId) view returns (bool fillable, uint256 amountOut)","function bountyBounds((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) key, bool zeroForOne, uint128 amountIn, uint128 minAmountOut) view returns (uint128 minBounty, uint128 defaultBounty, uint128 maxBounty)","function fill(uint256 orderId) returns (uint256 amountOut)","function claimBounty(address to) returns (uint256 amount)","function bountyOf(address keeper) view returns (uint256)","function lastOrderId() view returns (uint256)","function liabilities(address currency) view returns (uint256)"]);function St(t){let n=t.toLowerCase();return n===L.toLowerCase()||n===V.toLowerCase()}function Tt(t,n,i){let o=n.trim();if(o.startsWith("-")){let u=o.slice(1),r=t(u,i);return r==="0"?"0":`-${r}`}return t(o,i)}function Kt(t,n,i){return W(t,n,i)}function Y(t,n){return!t.changes||t.changes.length===0?"no net ERC-20/native transfer delta on caller":t.changes.map(i=>`${Tt(n,i.amount,i.token.decimals)} ${i.token.symbol} (${i.token.address})`).join(", ")}function $t(t){if(typeof t=="bigint"){if(t<=0n)throw new s("Hookr orderId must be a positive integer.");return t}if(typeof t=="number"){if(!Number.isSafeInteger(t)||t<=0)throw new s("Hookr orderId must be a positive integer.");return BigInt(t)}if(typeof t=="string"&&/^\d+$/.test(t.trim())){let n=BigInt(t.trim());if(n<=0n)throw new s("Hookr orderId must be a positive integer.");return n}throw new s("Provide a positive integer Hookr orderId.")}function tt(t){if(t==null)return c;if(typeof t!="number"||!Number.isSafeInteger(t)||t!==c)throw new s(`Hookr limit orders are only supported on chain ${c}.`);return c}function Ht(t){switch(t){case 0:return"None";case 1:return"Open";case 2:return"Filled";case 3:return"Cancelled";default:return"Unknown"}}function xt(t){if(Array.isArray(t)){let[n,i,o,u,r,d,g,m,b,e,l]=t;return{key:Array.isArray(n)?{currency0:n[0],currency1:n[1],fee:Number(n[2]),tickSpacing:Number(n[3]),hooks:n[4]}:n,owner:i,createdAt:o,expiry:u,zeroForOne:!!r,status:d,recipient:g,amountIn:BigInt(m),minAmountOut:BigInt(b),bounty:BigInt(e),sqrtPriceLimitX96:BigInt(l)}}if(t&&typeof t=="object"){let n=t;if(n.key&&typeof n.key=="object")return{key:{currency0:n.key.currency0,currency1:n.key.currency1,fee:Number(n.key.fee),tickSpacing:Number(n.key.tickSpacing),hooks:n.key.hooks},owner:n.owner,createdAt:n.createdAt,expiry:n.expiry,zeroForOne:!!n.zeroForOne,status:n.status,recipient:n.recipient,amountIn:BigInt(n.amountIn),minAmountOut:BigInt(n.minAmountOut),bounty:BigInt(n.bounty),sqrtPriceLimitX96:BigInt(n.sqrtPriceLimitX96)}}throw new s("HookrLimitOrders returned a malformed order tuple.")}function Rt(t){if(Array.isArray(t)&&t.length>=2)return{fillable:!!t[0],amountOut:BigInt(t[1])};if(t&&typeof t=="object"&&"fillable"in t&&"amountOut"in t){let n=t;return{fillable:!!n.fillable,amountOut:BigInt(n.amountOut)}}throw new s("HookrLimitOrders returned a malformed quoteFill response.")}function Ct(t){if(Array.isArray(t)&&t.length>=3)return{minBounty:BigInt(t[0]),defaultBounty:BigInt(t[1]),maxBounty:BigInt(t[2])};if(t&&typeof t=="object"&&"minBounty"in t&&"defaultBounty"in t&&"maxBounty"in t){let n=t;return{minBounty:BigInt(n.minBounty),defaultBounty:BigInt(n.defaultBounty),maxBounty:BigInt(n.maxBounty)}}throw new s("HookrLimitOrders returned a malformed bountyBounds response.")}async function Z(t,n,i=c){if(i!==c)throw new s(`Unsupported token chain ${i}; Hookr requires chain ${c}.`);if(St(n))return{...k,chainId:i};T(n);let o=a(n),u=o.toLowerCase();if(u===D.address.toLowerCase())return{address:o,symbol:D.symbol,decimals:j,chainId:i};if(u===x.address.toLowerCase())return{address:o,symbol:x.symbol,decimals:x.decimals,chainId:i};if(u===Bt.toLowerCase())return{address:o,symbol:"HOOKR",decimals:18,chainId:i};let[r,d]=await Promise.all([t.readContract({address:o,abi:G,functionName:"symbol"}),t.readContract({address:o,abi:G,functionName:"decimals"})]),g=typeof r=="string"&&r.trim()?r.trim():o,m=Number(d);if(!Number.isInteger(m)||m<0||m>255)throw new s(`Invalid token decimals for ${o} on chain ${i}.`);return{address:o,symbol:g,decimals:m,chainId:i}}async function Dt(t){if(typeof t.getBlock!="function")throw new s("Cannot read the latest block timestamp for Hookr order expiry.");let n=await t.getBlock().catch(()=>{throw new s("Cannot read the latest block timestamp for Hookr order expiry.")});if(!n||typeof n.timestamp!="bigint"||n.timestamp<=0n)throw new s("Hookr requires a usable latest block timestamp to check order expiry.");return n.timestamp}function P(t,n=[]){if(typeof t!="string"||!ft(t,{strict:!1}))throw new s("Provide a valid recipient wallet address.");let i=a(t),o=i.toLowerCase();if(It.has(o)||n.some(u=>u.toLowerCase()===o))throw new s(`Recipient ${i} is a reserved protocol or zero address (invalid recipient).`);return i}function nt(t){if(t.minBountyEth!==void 0||t.minAmountOutDecimal!==void 0||t.rounding!==void 0)throw new s("Use minBounty and minAmountOut as base-unit integer strings.")}function E(t,n){if(t!==void 0){if(typeof t!="string"||!/^\d+$/.test(t))throw new s(`Provide ${n} as a base-unit integer string.`);return X(t)}}function Pt(t){return{name:"hookr_fill",inputSchema:{type:"object",properties:{orderId:{type:"string",description:"HookrLimitOrders orderId as a positive integer string."},minBounty:{type:"string",description:"Optional minimum keeper bounty in wei (decimal base-unit string)."},minAmountOut:{type:"string",description:"Optional quote pre-check only, in token base-unit integer strings. Not enforced on chain: fill(uint256) enforces only the order minAmountOut."},chainId:{type:"number",description:"Target chain ID (must be 4663)."}},required:["orderId"],additionalProperties:!1},async execute(n,i){try{nt(n),T(i);let o=a(i),u=tt(n.chainId),r=$t(n.orderId),d=t.clientFor(u),[g,m,b]=await Promise.all([d.readContract({address:y,abi:B,functionName:"getOrder",args:[r]}),d.readContract({address:y,abi:B,functionName:"quoteFill",args:[r]}),Dt(d)]),e=xt(g),l=Number(e.status),h=Ht(l);if(l===0||e.owner.toLowerCase()===L.toLowerCase())throw new s(`Hookr order #${r} does not exist.`);if(l!==1)throw new s(`Hookr order #${r} is not open (current status: ${h}).`);let A=BigInt(e.expiry);if(A<b)throw new s(`Hookr order #${r} is expired (expiry ${A} < current timestamp ${b}).`);let f=Number(e.key.tickSpacing),$=Number(e.key.fee);if(!Number.isInteger(f)||f<=0)throw new s(`Hookr order #${r} has an invalid pool tickSpacing (${f}).`);if(e.amountIn<=0n||e.amountIn>Q)throw new s(`Hookr order #${r} has an invalid amountIn (${e.amountIn}).`);if(e.minAmountOut<=0n||e.minAmountOut>Q)throw new s(`Hookr order #${r} has an invalid minAmountOut (${e.minAmountOut}).`);let R=a(e.key.hooks);P(e.recipient,[R]);let et=await d.readContract({address:y,abi:B,functionName:"bountyBounds",args:[{currency0:a(e.key.currency0),currency1:a(e.key.currency1),fee:$,tickSpacing:f,hooks:R},e.zeroForOne,e.amountIn,e.minAmountOut]}),w=Ct(et),C=E(n.minBounty,"minBounty"),_=C!==void 0&&C>w.minBounty?C:w.minBounty;if(e.bounty<_)throw new s(`Hookr order #${r} is underbounty: order bounty (${e.bounty} wei) is below the required keeper bounty (${_} wei).`);if(e.bounty>w.maxBounty)throw new s(`Hookr order #${r} bounty (${e.bounty} wei) exceeds maximum bounty bound (${w.maxBounty} wei).`);let I=Rt(m),ot=e.zeroForOne?e.key.currency0:e.key.currency1,rt=e.zeroForOne?e.key.currency1:e.key.currency0,[H,p]=await Promise.all([Z(d,ot,u),Z(d,rt,u)]),S=E(n.minAmountOut,"minAmountOut"),F=S!==void 0&&S>e.minAmountOut?S:e.minAmountOut;if(!I.fillable||I.amountOut<=0n||I.amountOut<F)throw new s(`Hookr order #${r} is not executable: quoted output (${I.amountOut} base units of ${p.address}) does not meet minimum output (${F} base units).`);let it=J({abi:B,functionName:"fill",args:[r]}),st=t.formatAmount(e.amountIn.toString(),H.decimals),ut=t.formatAmount(I.amountOut.toString(),p.decimals),at=t.formatAmount(e.minAmountOut.toString(),p.decimals),mt=t.formatAmount(e.bounty.toString(),18),dt=S===void 0?"":` Caller minAmountOut ${S} base units is a quote pre-check only, not enforced on chain; fill(uint256) enforces the order minimum of ${e.minAmountOut} base units.`,v=`Fill Hookr order #${r}: maker's escrow pays ${st} ${H.symbol} (${e.amountIn} base units of ${H.address}); net output goes to ${a(e.recipient)} (quoted ${ut} ${p.symbol}, order minimum ${at} ${p.symbol}, ${e.minAmountOut} base units of ${p.address}). The filler sends no tokens or ETH (value 0), pays gas, and accrues ${mt} ETH (${e.bounty} wei) bounty to ${o}, payable only via claimBounty. Pool tickSpacing ${f}; expiry ${A} inclusive.${dt}`,q=t.unsignedTx({to:y,data:it,value:"0",chainId:u,description:v}),M=await t.preview([q],o),ct=Y(M,t.formatAmount),z={token:H,amount:e.amountIn.toString()},K={token:p,amount:e.minAmountOut.toString()},lt={token:p,amount:I.amountOut.toString()},U={token:{...k,chainId:u},amount:e.bounty.toString()},yt={orderId:r.toString(),key:{currency0:a(e.key.currency0),currency1:a(e.key.currency1),fee:$,tickSpacing:f,hooks:R},owner:a(e.owner),recipient:a(e.recipient),createdAt:BigInt(e.createdAt).toString(),expiry:A.toString(),zeroForOne:e.zeroForOne,status:l,statusLabel:h,amountIn:z,minAmountOut:K,bounty:U,sqrtPriceLimitX96:e.sqrtPriceLimitX96.toString()},bt={minBounty:{token:{...k,chainId:u},amount:w.minBounty.toString()},defaultBounty:{token:{...k,chainId:u},amount:w.defaultBounty.toString()},maxBounty:{token:{...k,chainId:u},amount:w.maxBounty.toString()}};return{txs:[q],summary:`${v} Preview deltas: ${ct}.`,preview:M,orderId:r.toString(),fillable:!0,amountIn:z,minAmountOut:K,quotedAmountOut:lt,bounty:U,bountyBounds:bt,order:yt}}catch(o){throw new s(t.plainError(o))}}}}function Et(t){return{name:"hookr_claim_bounty",inputSchema:{type:"object",properties:{to:{type:"string",description:"Optional recipient address for the claimed native ETH bounty (must be the signing wallet)."},minBounty:{type:"string",description:"Optional minimum claimable bounty in wei (decimal base-unit string)."},chainId:{type:"number",description:"Target chain ID (must be 4663)."}},additionalProperties:!1},async execute(n,i){try{nt(n),T(i);let o=a(i),u=tt(n.chainId),r=n.to!==void 0&&n.to!==null?P(String(n.to)):P(o);if(r!==o)throw new s("Hookr bounty recipient must be the signing wallet.");let g=await t.clientFor(u).readContract({address:y,abi:B,functionName:"bountyOf",args:[o]}),m=BigInt(g);if(m<=0n)throw new s(`No claimable Hookr keeper bounty for ${o}.`);let b=E(n.minBounty,"minBounty");if(b!==void 0&&m<b)throw new s(`Claimable Hookr bounty (${m} wei) is below the requested minimum (${b} wei).`);let e=J({abi:B,functionName:"claimBounty",args:[r]}),l=t.formatAmount(m.toString(),18),h=t.unsignedTx({to:y,data:e,value:"0",chainId:u,description:`Claim ${l} ETH (${m} wei) of accrued Hookr keeper bounty from ${y} to ${r}.`}),A=await t.preview([h],o),f=Y(A,t.formatAmount),$={token:{...k,chainId:u},amount:m.toString()};return{txs:[h],summary:`Claim ${l} ETH (${m} wei) Hookr keeper bounty to ${r}. Preview deltas: ${f}.`,preview:A,recipient:r,claimableBounty:$}}catch(o){throw new s(t.plainError(o))}}}}async function Lt(t,n){T(n);let i=a(n),o=t.clientFor(c);try{let u=await o.readContract({address:y,abi:B,functionName:"bountyOf",args:[i]}),r=BigInt(u);if(r<=0n)return[];let d=t.formatAmount(r.toString(),18);return[{module:kt,id:`hookr:bounty:${i.toLowerCase()}`,chainId:c,assets:[{token:{...k,chainId:c},amount:r.toString()}],description:`Hookr claimable keeper bounty (${d} ETH)`}]}catch(u){throw new s(t.plainError(u))}}var N=t=>({tools:[Pt(t),Et(t)],positions:n=>Lt(t,n)}),Ut=N,jt=N,Xt=N;export{kt as a,y as b,gt as c,At as d,wt as e,Ot as f,Bt as g,B as h,Tt as i,Kt as j,Pt as k,Et as l,Lt as m,N as n,Ut as o,jt as p,Xt as q};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as r}from"./Z3FZWNAJ.js";var a=4663,o=46630,p=18,f=6,x=30,h="recipient",A="direct",v="totalSupply",s={4663:{pons:{factory:{address:"0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e",source:"Recorded chain and API observations",pointer:"/pons/factory",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},launchAndBuyRouter:{address:"0xe33E9E479dF8802cb0866d5d05258bEc4cF62948",source:"Recorded chain and API observations",pointer:"/pons/launchAndBuyRouter",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},memeHook:{address:"0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044",source:"Recorded chain and API observations",pointer:"/pons/memeHook",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},feeEscrow:{address:"0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e",source:"Recorded chain and API observations",pointer:"/pons/feeEscrow",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},buybackVault:{address:"0x42df2a798f82289E177311362e8f5ccC45c1219c",source:"Recorded chain and API observations",pointer:"/pons/buybackVault",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},locker:{address:"0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952",source:"Recorded chain and API observations",pointer:"/pons/locker",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},launchDeployer:{address:"0x3711ceA4feaDE896C913C68F01Eda97Cb06D1A42",source:"Recorded chain and API observations",pointer:"/pons/launchDeployer",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},graduationExecutor:{address:"0xC7819B64A1dAECD7eC19856d026cb14EfBd89046",source:"Recorded chain and API observations",pointer:"/pons/graduationExecutor",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},graduationGuard:{address:"0xf5695117b99B6f6401e67d4195BD653628176C6C",source:"Recorded chain and API observations",pointer:"/pons/graduationGuard",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},poolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/pons/poolManager",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"},positionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/pons/positionManager",block:"100307770",blockKind:"read",blockPointer:"/pinnedBlocks/ponsReads"}},oracle:{ethUsdgPool:{address:"0x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca",source:"Recorded chain and API observations",pointer:"/ethUsdgPool/address",block:"100307735",blockKind:"read",blockPointer:"/ethUsdgPool/rawReading/block"}},tokens:{USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/usdg/address",block:null,blockKind:"latest",caveat:"Token reads around head 100305826; not individually pinned (Part B section 1.2)."},WETH:{address:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",source:"Recorded chain and API observations",pointer:"/routers/wrappedNative",block:null,blockKind:"latest"}},routes:{kyberswap:{address:"0x6131B5fae19EA4f9D964eAc0408E4408b66337b5",source:"Recorded chain and API observations",pointer:"/routers/kyberswap/router",block:null,blockKind:"latest",caveat:"Historical API target; validate each fresh quote/build chain and target."},velora:{address:"0x6a000f20005980200259b80c5102003040001068",source:"Recorded chain and API observations",pointer:"/routers/velora/router",block:null,blockKind:"latest",caveat:"Historical API target; validate each fresh quote/build chain and target."}},ponsClaims:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",source:"Recorded chain and API observations",pointer:"/addresses/multicall3/address",block:null,blockKind:"unanchored",caveat:"Code present in the source snapshot; exact code-read block not recorded."}},ponsTrade:{universal_router:{address:"0x204faca1764b154221e35c0d20abb3c525710498",source:"Recorded chain and API observations",pointer:"/contracts/universal_router/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},pool_manager:{address:"0x8366a39cc670b4001a1121b8f6a443a643e40951",source:"Recorded chain and API observations",pointer:"/contracts/pool_manager/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},state_view:{address:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",source:"Recorded chain and API observations",pointer:"/contracts/state_view/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},quoter:{address:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",source:"Recorded chain and API observations",pointer:"/contracts/quoter/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"},permit2:{address:"0x000000000022d473030f116ddee9f6b43ac78ba3",source:"Recorded chain and API observations",pointer:"/contracts/permit2/address",block:"100372649",blockKind:"read",blockPointer:"/limitations/0"}},uniswap:{v3_factory:{address:"0x1f7d7550b1b028f7571e69a784071f0205fd2efa",source:"Recorded chain and API observations",pointer:"/addresses/v3_factory/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},v3_position_manager:{address:"0x73991a25c818bf1f1128deaab1492d45638de0d3",source:"Recorded chain and API observations",pointer:"/addresses/v3_position_manager/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},v4_pool_manager:{address:"0x8366a39cc670b4001a1121b8f6a443a643e40951",source:"Recorded chain and API observations",pointer:"/addresses/v4_pool_manager/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},v4_position_manager:{address:"0x58daec3116aae6d93017baaea7749052e8a04fa7",source:"Recorded chain and API observations",pointer:"/addresses/v4_position_manager/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},v4_state_view:{address:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b",source:"Recorded chain and API observations",pointer:"/addresses/v4_state_view/address",block:"100363029",blockKind:"snapshot",blockPointer:"/snapshots/v4_block"},swap_router02:{address:"0xcaf681a66d020601342297493863e78c959e5cb2",source:"Recorded chain and API observations",pointer:"/addresses/swap_router02/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},permit2:{address:"0x000000000022d473030f116ddee9f6b43ac78ba3",source:"Recorded chain and API observations",pointer:"/addresses/permit2/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},WETH:{address:"0x0bd7d308f8e1639fab988df18a8011f41eacad73",source:"Recorded chain and API observations",pointer:"/addresses/WETH/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"},USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/addresses/USDG/address",block:"100361663",blockKind:"snapshot",blockPointer:"/snapshots/v3_block/number"}},clanker:{factory:{address:"0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",source:"Recorded chain and API observations",pointer:"/contracts/factory/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},locker:{address:"0xE4910b09709423aFafD995dD76D8A81CF9134A09",source:"Recorded chain and API observations",pointer:"/contracts/locker/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},legacy_locker_v1:{address:"0x290f735f63824bb5836cde24a35f5103a5b5bc99",source:"Recorded chain and API observations",pointer:"/contracts/legacy_locker_v1/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_locker:{address:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",source:"Recorded chain and API observations",pointer:"/contracts/fee_locker/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_static_hook_v2:{address:"0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",source:"Recorded chain and API observations",pointer:"/contracts/fee_static_hook_v2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},fee_dynamic_hook_v2:{address:"0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc",source:"Recorded chain and API observations",pointer:"/contracts/fee_dynamic_hook_v2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},mev_module:{address:"0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",source:"Recorded chain and API observations",pointer:"/contracts/mev_module/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},devbuy:{address:"0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",source:"Recorded chain and API observations",pointer:"/contracts/devbuy/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},vault:{address:"0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",source:"Recorded chain and API observations",pointer:"/contracts/vault/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},airdrop:{address:"0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},paired_weth:{address:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",source:"Recorded chain and API observations",pointer:"/contracts/paired_weth/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"}},clankerDependencies:{pool_manager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/pool_manager/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},position_manager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/position_manager/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},universal_router:{address:"0x53BF6B0684Ec7eF91e1387Da3D1a1769bC5A6F77",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/universal_router/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"},permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/contracts/uniswap_v4_dependencies/permit2/address",block:"100375756",blockKind:"fork",blockPointer:"/chain/fork_block_number"}},hoodag:{registry:{address:"0x3E717dc89AAF4605b607324329EEeB0a8B3C8A1c",source:"Recorded chain and API observations",pointer:"/contracts/registry/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},universalResolver:{address:"0xa9ed3C73F522875F18DAa631429125da893D8E53",source:"Recorded chain and API observations",pointer:"/contracts/universalResolver/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},registrar:{address:"0x9a122C54e15B6287c164b90833bcDA6E16520D50",source:"Recorded chain and API observations",pointer:"/contracts/registrar/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},publicResolver:{address:"0x072C7a66a6D52B23274470b86096AFCBF816CA0B",source:"Recorded chain and API observations",pointer:"/contracts/publicResolver/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},registrarController:{address:"0x7900b2B8Cc3f0616B18C68AdA7E115A9022Ca04a",source:"Recorded chain and API observations",pointer:"/contracts/registrarController/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"},reverseRegistrar:{address:"0x4be6D0379f56404B563afAe17c6b095b1dfcf479",source:"Recorded chain and API observations",pointer:"/contracts/reverseRegistrar/address",block:null,blockKind:"range",blockPointer:"/measuredBlockRange"}},hoodlock:{locker:{address:"0xd0f7d8c6e9f6d80c297bebe4f7fd1b9c8125c32f",source:"Recorded chain and API observations",pointer:"/contracts/locker/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},burner:{address:"0x6bf43ca706faa8ea46803299c191484e82280652",source:"Recorded chain and API observations",pointer:"/contracts/burner/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},airdrop:{address:"0x6B1fE7b821001144Ee74EEA258b0AafdE20102E8",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"},liquidityLocker:{address:"0x91Aa2dA1956C77F8448E18DCaf53383bCc658e67",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/address",block:"100356379",blockKind:"read",blockPointer:"/chain/liveStateBlock"}},hookr:{HookrLimitOrders:{address:"0x0c376cc30b1AC98b8ef80a4F516212D3B99402fA",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrLimitOrders/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRoot:{address:"0x89c9FB50d1f03192230FFB1c279BB6E7d3Fe6aCc",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRoot/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRouter:{address:"0xC2Bc9a3fe6c4Ce8C2F7EB4655b0869b01D8c93C9",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRouter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrQuoter:{address:"0x445D7891381Aa7F91F5048EdBC6a611ccBDe7865",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrQuoter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrLauncher:{address:"0x1cf2748A6670572425eAbf9Ab9e5BC4eb2eB8Ef4",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrLauncher/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRules:{address:"0x4a71c270b1520F94064268102AebD744b0DE7942",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRules/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRegistry:{address:"0x463c82beA1a52F4Cc05ca0741a24F0AD24bA4602",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRegistry/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrTreasury:{address:"0x2242F7FC75606500503075f29ea8cDA684EfB4a9",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrTreasury/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrForwarder:{address:"0xe7863CC0E2Fb783b44c279aB159bcD812c2ceA1c",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrForwarder/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrOwnedRootFactory:{address:"0xA6c2a401597301dFf57A59bC8F70a9622499f3ec",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrOwnedRootFactory/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrRootFactory:{address:"0x21E438FaBE10770afb4407cF6b09d32369CBdCE4",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrRootFactory/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrFamilyRouter:{address:"0x854f3Fa7AC342B244DF0d9A8c8F597b051aAE559",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrFamilyRouter/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HookrFamilyLock:{address:"0xfAFEcE64099C1E791C4B46189c277f00c0c7e00b",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HookrFamilyLock/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},PoolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/PoolManager/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"},HOOKR_Token:{address:"0x18E674231A58c239Dc7DaeDcffE15Ec3A24cff5c",source:"Recorded chain and API observations",pointer:"/q1_liveness/contracts/HOOKR_Token/address",block:"100371423",blockKind:"fork",blockPointer:"/fork_block_number"}},merkl:{distributor:{address:"0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae",source:"Recorded chain and API observations",pointer:"/contracts/distributor/address",block:null,blockKind:"latest"},distributionCreator:{address:"0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd",source:"Recorded chain and API observations",pointer:"/contracts/distributionCreator/address",block:null,blockKind:"latest"},accessControlManager:{address:"0x5D36e13F076f34eE2Bf69fEAEa784887754465f8",source:"Recorded chain and API observations",pointer:"/contracts/accessControlManager/address",block:null,blockKind:"latest"}},poolsTrade:{liquidityLauncher:{address:"0x0000FffFBE8efE702c8703aE3477FF5dE3d319C0",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLauncher/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},instantLaunchStrategyFeesOn:{address:"0x7c48DDe3B447381F4d986334679b3Afc7F2D35C2",source:"Recorded chain and API observations",pointer:"/contracts/instantLaunchStrategyFeesOn/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},instantLaunchStrategyFeesOff:{address:"0xC9566675b1Ea42861546f3c5B74Ace2c79c49572",source:"Recorded chain and API observations",pointer:"/contracts/instantLaunchStrategyFeesOff/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},feeSplitterFeesOn:{address:"0x9411fa7F956f64aa7981AA27cB3bC6eC0415449C",source:"Recorded chain and API observations",pointer:"/contracts/feeSplitterFeesOn/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},feeSplitterFeesOff:{address:"0x882Ae5e2095435A62Fd1BBDEfcb637f5CeAFc0ee",source:"Recorded chain and API observations",pointer:"/contracts/feeSplitterFeesOff/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},uerc20BeneficiaryVault:{address:"0x26d2F7AcB07707034406a0dC458351Bb63C02553",source:"Recorded chain and API observations",pointer:"/contracts/uerc20BeneficiaryVault/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},compoundingClaimRecipient:{address:"0xf585b5D728A8fdE743027307BF5F3556E3B9C58D",source:"Recorded chain and API observations",pointer:"/contracts/compoundingClaimRecipient/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},universalRouterStrategyApp:{address:"0x1242c9439d589cAE85E121B1f79f2aF51e91DCEE",source:"Recorded chain and API observations",pointer:"/contracts/universalRouterStrategyApp/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},uerc20Factory:{address:"0x000000e200088D55C39a11F609E5F667729ad49b",source:"Recorded chain and API observations",pointer:"/contracts/uerc20Factory/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},universalRouter:{address:"0x8876789976dEcBfCbBbe364623C63652db8C0904",source:"Recorded chain and API observations",pointer:"/contracts/universalRouter/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4PoolManager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/contracts/v4PoolManager/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4PositionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/contracts/v4PositionManager/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/contracts/permit2/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},v4Quoter:{address:"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94",source:"Recorded chain and API observations",pointer:"/contracts/v4Quoter/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"},protocolFeeController:{address:"0x6d0009504D129CF5002Dba61D9Ae8575AA79314c",source:"Recorded chain and API observations",pointer:"/contracts/protocolFeeController/address",block:"100369897",blockKind:"census",blockPointer:"/chain/headAtFirstCensus"}},priors:{pool:{address:"0x281210097f0de7A8FB6F87310AF0f089c9C8DE21",source:"Recorded chain and API observations",pointer:"/contracts/pool/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},lens:{address:"0x9d7035722bd42C551f82FEB9FDDd17453AEF3D9B",source:"Recorded chain and API observations",pointer:"/contracts/lens/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},usdg:{address:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",source:"Recorded chain and API observations",pointer:"/contracts/usdg/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},registry:{address:"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",source:"Recorded chain and API observations",pointer:"/contracts/registry/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"},stockVault:{address:"0xbEcd07EC689988e16b870C121756C4c2C8cb02B6",source:"Recorded chain and API observations",pointer:"/contracts/stockVault/address",block:null,blockKind:"latest",blockPointer:"/recorded-calls/8"}},morpho:{morpho_blue:{address:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",source:"Recorded chain and API observations",pointer:"/addresses/morpho_blue/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},adaptive_curve_irm:{address:"0x2BD3d5965B26B51814AC95127B2b80dD6CcC0fa1",source:"Recorded chain and API observations",pointer:"/addresses/adaptive_curve_irm/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},USDG:{address:"0x5fc5360d0400a0fd4f2af552add042d716f1d168",source:"Recorded chain and API observations",pointer:"/addresses/USDG/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"},WETH:{address:"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",source:"Recorded chain and API observations",pointer:"/addresses/WETH/address",block:"100362239",blockKind:"read",blockPointer:"/chain/read_block"}},tickerSpring:{limitOrderHook:{address:"0xa31729621a2280C0Ff9Aaff5B3F357cFF1bEC040",source:"Recorded chain and API observations",pointer:"/liveness/contracts/limitOrderHook/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},gridStrategy:{address:"0xd597785134307B5324f469A9506066fAd4827730",source:"Recorded chain and API observations",pointer:"/liveness/contracts/gridStrategy/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},ladderStrategy:{address:"0x23c7906D8fa3ede698A00AbE66D28605A41b4177",source:"Recorded chain and API observations",pointer:"/liveness/contracts/ladderStrategy/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},basketZap:{address:"0xFca65c50325b83F8f1E07cD103c00De0cEa4Fb39",source:"Recorded chain and API observations",pointer:"/liveness/contracts/basketZap/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"},usdg:{address:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",source:"Recorded chain and API observations",pointer:"/liveness/contracts/usdg/address",block:null,blockKind:"range",blockPointer:"/chain/verifiedAtBlockRange"}},orbio:{credit:{address:"0xe33322da1380e61e5ae5dfb21e7f62924c73004c",source:"Recorded chain and API observations",pointer:"/orbio/credit/address",block:"100313751",blockKind:"fork",caveat:"Fork anchor block recorded from chain observations; individual code reads were latest."},exchange:{address:"0x6951ffd32630b05e06f50062aea801625a58ebc0",source:"Recorded chain and API observations",pointer:"/orbio/exchange/address",block:"100313751",blockKind:"fork",caveat:"Fork anchor block recorded from chain observations; individual code reads were latest."}},vaults:{steakhouse:{address:"0xBeEff033F34C046626B8D0A041844C5d1A5409dd",source:"Recorded chain and API observations",pointer:"/vaults/eligible/0/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},spark:{address:"0xde770c84fe66e063336b31737cfe9790f18c4087",source:"Recorded chain and API observations",pointer:"/vaults/eligible/1/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},netnet:{address:"0x99347d5F70D3838763f6Bddcf80304C8aa953B57",source:"Recorded chain and API observations",pointer:"/vaults/eligible/2/address",block:"100320900",blockKind:"read",blockPointer:"/vaults/verifiedAtBlock",caveat:"Historical eligibility only; recheck asset and >=1e12 USDG totalAssets on every listing."},morphoV2Factory:{address:"0x0fbad98595b0186da120e41f77c102beb49f803c",source:"Recorded chain and API observations",pointer:"/vaults/morphoVaultV2Factory",block:null,blockKind:"latest"},longbowCore:{address:"0x026df18fbd2A7639089D0a16293383ec687A5Ca1",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/0/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/0/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},longbowFrontier:{address:"0x65dC90cd3a0BCDE967c8AE6019d6790b616E78F7",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/1/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/1/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},longbowEth:{address:"0xe129D4Cb2d454C4ACFAc909d1576453A9b835f61",source:"Recorded chain and API observations",pointer:"/projects/0/deployments/2/address",block:"100355967",blockKind:"read",blockPointer:"/projects/0/deployments/2/read_block",caveat:"Below USDG threshold or wrong asset at measurement; deployment context only."},beefyTestedLpVault:{address:"0xC447184BF75a84Ace3087515CCFFb54937838FC8",source:"Recorded chain and API observations",pointer:"/projects/1/tested_lp_vault",block:"100357163",blockKind:"fork",blockPointer:"/fork_environment/fork_block",caveat:"LP adapter only; not an eligible USDG ERC-4626 vault. Other per-vault/strategy addresses remain dynamic."},groveAlm:{address:"0xBEEff039907422219Fb367e525954DDC092854d9",source:"Recorded chain and API observations",pointer:"/projects/2/address",block:"100355967",blockKind:"read",blockPointer:"/raw_reads/longbow_grove_control/4/block",caveat:"Public Grove x Steakhouse USDG ERC-4626 vault; below $1M USDG threshold at measurement."}},identity:{identityRegistry:{address:"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",source:"Recorded chain and API observations",pointer:"/erc8004/identityRegistry",block:null,blockKind:"latest"},reputationRegistry:{address:"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63",source:"Recorded chain and API observations",pointer:"/erc8004/reputationRegistry",block:null,blockKind:"latest"},validationRegistry:{address:"0x8004Cc8439f36fd5F9F049D9fF86523Df6dAAB58",source:"Recorded chain and API observations",pointer:"/erc8004/validationRegistry",block:null,blockKind:"latest"}},meridian:{PredictionMarketEscrow:{address:"0xE4cea507b19796362A5a28Fa7cb705A3F1866213",source:"Recorded chain and API observations",pointer:"/addresses/PredictionMarketEscrow/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},SecondaryMarketEscrow:{address:"0x7E318ef37c3bC3d0cBA205Af2D1Fc9F9CeFEB5df",source:"Recorded chain and API observations",pointer:"/addresses/SecondaryMarketEscrow/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},MeridianRobinhoodVault:{address:"0x79cB914f3F336426E89FaB55A9488AB25770552D",source:"Recorded chain and API observations",pointer:"/addresses/MeridianRobinhoodVault/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."},CollateralToken_USDe:{address:"0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34",source:"Recorded chain and API observations",pointer:"/addresses/CollateralToken_USDe/address",block:null,blockKind:"latest",caveat:"Code census not individually block-pinned; fork execution at 100370553 is separate."}},relay:{depository:{address:"0x4cd00e387622c35bddb9b4c962c136462338bc31",source:"Recorded chain and API observations",pointer:"/addresses/depository_4663",block:"100355691",blockKind:"fork",blockPointer:"/fork/fork_block",caveat:"Only quoted depositNative path fork-tested; bridge settlement is external and unmeasured."}},lighter:{settlement:{address:"0x94bAB9693Ba2f6358507eFfcbd372b0660AFfF9d",source:"Recorded chain and API observations",pointer:"/contracts_on_4663/lighter_rh_settlement_proxy/address",block:"100355574",blockKind:"read",blockPointer:"/block_number",caveat:"Settlement/custody metadata only; funding tool uses HTTP, not this contract."}},heyResearch:{heyToken:{address:"0xB33eb16782776b4D738c0Fd643577cb0284Db610",source:"Recorded chain and API observations",pointer:"/addresses/heyToken/address",block:null,blockKind:"unanchored",caveat:"API-only tools; source has time range but no block anchor."}}},46630:{deployments:{test_USDG:{address:"0x7E955252E15c84f5768B83c41a71F9eba181802F",source:"Recorded chain and API observations",pointer:"/code_probes/0/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/0/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_WETH:{address:"0x7943e237c7F95DA44E0301572D358911207852Fa",source:"Recorded chain and API observations",pointer:"/code_probes/1/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/1/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_gateway:{address:"0x77bF00A6A90c600f214b34BAFBB7918c0cF113A8",source:"Recorded chain and API observations",pointer:"/code_probes/2/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/2/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_identity:{address:"0x8004A818BFB912233c491871b3d84c89A494BD9e",source:"Recorded chain and API observations",pointer:"/code_probes/3/address",block:"144387817",blockKind:"read",blockPointer:"/code_probes/3/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_USDG_implementation:{address:"0xf0863d7a29a55d0c4263c11bfac754312ff078df",source:"Recorded chain and API observations",pointer:"/code_probes/15/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/15/block",caveat:"Code presence alone does not establish a complete testnet integration."},facet_0xef55bec6:{address:"0x08f560a85db40a7d4ac49b4F44f1D38e5B8aB811",source:"Recorded chain and API observations",pointer:"/code_probes/17/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/17/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_production_poolmanager:{address:"0x8366a39CC670B4001A1121B8F6A443A643e40951",source:"Recorded chain and API observations",pointer:"/code_probes/22/address",block:"144389821",blockKind:"read",blockPointer:"/code_probes/22/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v3_community_test_candidate:{address:"0xFECCB63CD759d768538458Ea56F47eA8004323c1",source:"Recorded chain and API observations",pointer:"/code_probes/50/address",block:"144389821",blockKind:"read",blockPointer:"/code_probes/50/block",caveat:"Community v3 is not canonically endorsed; v4 native stack is incomplete."},Uniswap_v4_PositionManager:{address:"0x58daec3116aae6D93017bAAea7749052E8a04fA7",source:"Recorded chain and API observations",pointer:"/code_probes/52/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/52/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_Quoter:{address:"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94",source:"Recorded chain and API observations",pointer:"/code_probes/54/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/54/block",caveat:"Code presence alone does not establish a complete testnet integration."},Uniswap_v4_StateView:{address:"0xF3334192D15450CdD385c8B70e03f9A6bD9E673b",source:"Recorded chain and API observations",pointer:"/code_probes/56/address",block:"144390120",blockKind:"read",blockPointer:"/code_probes/56/block",caveat:"Code presence alone does not establish a complete testnet integration."},test_Permit2:{address:"0x000000000022D473030F116dDEE9F6B43aC78BA3",source:"Recorded chain and API observations",pointer:"/code_probes/77/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/77/block",caveat:"Code presence alone does not establish a complete testnet integration."},v3_test_WETH9:{address:"0x37E402B8081eFcE1D82A09a066512278006e4691",source:"Recorded chain and API observations",pointer:"/code_probes/78/address",block:"latest",blockKind:"latest",blockPointer:"/code_probes/78/block",caveat:"Community v3 is not canonically endorsed; v4 native stack is incomplete."}}}},i=s[4663].tokens.USDG.address,d=s[46630].deployments.test_USDG.address,g=s[4663].pons.factory.address,m=s[4663].pons.memeHook.address,y=s[4663].pons.poolManager.address,P=s[4663].pons.feeEscrow.address,R=s[4663].oracle.ethUsdgPool.address,l={name:"Global Dollar",version:"1",chainId:a,verifyingContract:i},u={name:"Global Dollar",version:"1",chainId:o,verifyingContract:d},_={chainId:o,address:d},t={mainnet:{chainId:a,usdg:i,usdgDomain:l,weth:s[a].tokens.WETH.address,identityRegistry:s[a].identity.identityRegistry.address},testnet:{chainId:o,usdg:d,usdgDomain:u,weth:s[o].deployments.test_WETH.address,identityRegistry:s[o].deployments.test_identity.address}};function I(e="mainnet"){if(e!=="mainnet"&&e!=="testnet")throw new r("Set OAK_NETWORK to mainnet or testnet.");return e}function F(e,n){if(n.toLowerCase()!==t[e].usdg.toLowerCase())throw new r(`USDG does not match the pinned ${e} deployment on chain ${t[e].chainId}.`)}async function C(e,n){let c=await n.getChainId();if(c!==t[e].chainId)throw new r(`RPC chain ${c} does not match OAK_NETWORK ${e} (chain ${t[e].chainId}).`)}var B={4663:{"pons-claims":{"/stackResolution/calls":[{to:"token",sig:"launchFactory()",selector:"0x536dac9b",returns:"address"},{to:"token",sig:"curve()",selector:"0x7165485d",returns:"address"},{to:"factory",sig:"getLaunchedToken(address)",selector:"0x3cf28b5a",returns:"(address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists)",phase:{0:"curve",1:"swept (fees already credited, no pool)",2:"graduated (v4 pool)",3:"rescued"}},{to:"curve",sig:"feeEscrow()",selector:"0xc4b7de97",returns:"address"},{to:"curve",sig:"factory()",selector:"0xc45a0155",returns:"address"},{to:"factory",sig:"memeHook()",returns:"address"}],"/claim_fees":{apiKey:!1,signup:!1,allowlist:!1,caller:"the coin's current creatorFeeRecipient only (claim pays msg.sender's ledger; no claim-for)",reads:[{to:"escrow",sig:"balanceOf(address)",selector:"0x70a08231",meaning:"native ETH owed, per wallet, across all its coins on this escrow"},{to:"escrow",sig:"balanceOfToken(address,address)",selector:"0xf59e38b7",args:"(wallet, asset)",meaning:"per-asset ledger: custom-pair quote asset, or the coin for released buyback vests"},{to:"curve",sig:"quoteFeeBalance()",selector:"0xed479c47",phase:0},{to:"curve",sig:"creatorTaxBalance()",selector:"0xdb2bd533",phase:0},{to:"curve",sig:"protocolFeeShareBps()",selector:"0x9040f866",observed:3e3},{to:"hook",sig:"pendingFees(bytes32,address)",selector:"0x359b4f30",phase:2,args:"(poolId, currency) for both currencies"},{to:"hook",sig:"pendingCreatorTax(bytes32,address)",selector:"0xc8eaa792",phase:2}],poolId:"keccak256(abi.encode(currency0, currency1, poolFee, tickSpacing, hook)); currencies sorted by address, native ETH 0x0 is currency0",creatorCreditFormula:"fee - floor(fee * protocolFeeShareBps / 10000) + tax (creator gets the rounding remainder; buyback off)",roundingEvidence:{poolFee:"204796497163896",protocolCredit:"61438949149168",creatorCredit:"348154045178624"},writes:[{phase:0,when:"unswept curve fees > 0",tx:{to:"curve",sig:"sweepFees(uint256)",selector:"0x3729bb9a",args:["0 (minBuybackTokensOut)"]}},{phase:2,when:"pendingFees/pendingCreatorTax on the launch-token side == 0 and quote side > 0",tx:{to:"hook",sig:"sweepPoolFees(bytes32,uint256,uint256)",selector:"0x3d61055e",args:["poolId","0 (minConversionQuoteOut)","0 (minBuybackTokensOut)"]}},{phase:"any",when:"escrow.balanceOf(wallet) > 0",tx:{to:"escrow",sig:"claim()",selector:"0x4e71d92d",args:[]}},{phase:"any",when:"escrow.balanceOfToken(wallet, asset) > 0",tx:{to:"escrow",sig:"claimToken(address)",selector:"0x32f289cf",args:["asset"]}}],cannotSelfSweep:["phase 2 with any launch-token-side fee pending (InternalSwapRequiresOperator)","buyback-on coins (docs; not fork-tested)"],decideBy:"eth_call the sweep from the wallet before offering it; preview sweep+claim with eth_simulateV1",errors:{"0x8d42130c":"NotFeeSweepOperator()","0x31cdb504":"InternalSwapRequiresOperator()","0xc2caa2a6":"NoBalance()","0xe6a0d45f":"AlreadyGraduated()","0xb9f93944":"NotCreatorFeeRecipient() (part A)"},otherSelectors:{"claim(uint256)":"0x379607f5","claimToken(address,uint256)":"0x1698755f"},walletCoinDiscovery:{logs:["TokenLaunched topic3 (initiating wallet) == wallet","CreatorFeeRecipientUpdated(address indexed token,address indexed old,address indexed new) topic3 == wallet, topic0 0x308c390ed1ab5873392818e036cabdf408bc8ad042fbaead3108954ff75ba980"],gap:"a coin launched by another wallet naming this wallet as recipient at launch appears in neither (CreatorFeeRecipientUpdated is not emitted at launch: 32 vs 280 launches in the same 100,000 blocks)"},gas:{claimMainnetEstimate:42546,claimFork:32632,sweepFeesFork:92661,sweepPoolFeesFork:84141,gasPriceWei:2062e4,ethUsd:2353.86,claimCostUsd:.0021},projectFees:"none on the claim; the creator share is set per trade (config 0: base 1%, Pons keeps 30% of it; creator tax set at launch, cap 1000 bps)"},"/find_launches/chainSource/step2":{method:"eth_call Multicall3.aggregate3((address,bool,bytes)[])",selector:"0x82ad56cb",perLaunch:["factory.getLaunchedToken(token)","token.name()","token.symbol()","curve.getReserves()","curve.realQuoteReserve()"],measured:{subcalls:50,allOk:!0}}},"pons-oracle":{"/pons/selectors":{launchAndBuy:"0xf85f8e41",launchToken3:"0xf35abbcf",launchToken4:"0xa72101af",getLaunchedToken:"0x3cf28b5a",previewLaunchEconomics:"0xf718b78c",launchFee:"0xcf3cf573",canLaunch:"0x58373f04",createGraduatedPool:"0x2f53ef2f",transferCreatorFeeRecipient:"0x2931861b",setCreatorFeeRecipient_ownerProposal:"0xe102c9aa",executeCreatorFeeRecipientChange:"0x3d3d2d58",pendingCreatorFeeRecipient:"0x9beacf4a",setBuybackEnabled:"0xb18f1db1","curve.buy":"0x59a87bc1","curve.sell":"0xd04c6983","curve.sweepFees":"0x3729bb9a","curve.graduated":"0xe7c2b772","hook.sweepPoolFees":"0x3d61055e","hook.pendingFees":"0x359b4f30","hook.pendingCreatorTax":"0xc8eaa792","escrow.claim":"0x4e71d92d","escrow.balanceOf":"0x70a08231","token.burn":"0x42966c68","token.burnFrom":"0x79cc6790"},"/ponsFeeClaim":{address:"0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e",selector:"0x4e71d92d",signature:"claim()",args:[],caller:"the recipient itself (pays msg.sender's native ledger); no claim-for",revertWhenZero:"NoBalance() 0xc2caa2a6",readableClaimable:"balanceOf(address) 0x70a08231",paymentInstruction:"native ETH CALL to msg.sender forwarding all remaining gas (storage-writing receive() ran with gasleft 1020298867 / 1018685354)",preClaimSweeps:{curvePhase:{address:"<curve>",selector:"0x3729bb9a",signature:"sweepFees(uint256 minBuybackTokensOut)",callers:"current creator fee recipient or fee sweep operator; others NotFeeSweepOperator()",afterGraduation:"AlreadyGraduated(); graduation itself credits accrued curve fees to the escrow"},poolPhase:{address:"0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044",selector:"0x3d61055e",signature:"sweepPoolFees(bytes32 poolId,uint256 minConversionQuoteOut,uint256 minBuybackTokensOut)",callers:"recipient only when no internal swap is needed; operator otherwise (operator needs minConversionQuoteOut>0 else MinimumOutputRequired())"}}},"/ponsRecipientTransfer":{address:"0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e",selector:"0x2931861b",signature:"transferCreatorFeeRecipient(address token,address newRecipient)",caller:"current creator fee recipient only",revert:"NotCreatorFeeRecipient() 0xb9f93944",effect:"immediate; updates factory record and hook.launches(poolId); credited escrow balances do not move"}},"chain-backends":{"/usdg/eip3009/selectorsPresent":{"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"0xef55bec6","receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,bytes)":"0x88b7ab63","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"0xe3ee160e","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,bytes)":"0xcf092995","cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":"0x5a049a70","cancelAuthorization(address,bytes32,bytes)":"0xb7b72899","authorizationState(address,bytes32)":"0xe94a0102","RECEIVE_WITH_AUTHORIZATION_TYPEHASH()":"0x7f2eecc3","TRANSFER_WITH_AUTHORIZATION_TYPEHASH()":"0xa0cc6a68"},"/orbio/selectors":{"buyAndActivate(uint256,uint256,bytes32,uint256)":"0x6ebadb6e","getActivationQuote(uint256,uint256)":"0x578850c3"},"/erc8004/selectors":{"register()":"0x1aa3a008","register(string)":"0xf2c298be","register(string,(string,bytes)[])":"0x8ea42286"}},clanker:{"/calls":{launch_token:{contract:"0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",function_name:"deployToken",signature:"deployToken(((address,string,string,bytes32,string,string,string,uint256),(address,address,int24,int24,bytes),(address,address[],address[],uint16[],int24[],int24[],uint16[],bytes),(address,bytes),(address,uint256,uint16,bytes)[]))",selector:"0xdf40224a",state_mutability:"payable",msg_value_rule:"0 wei if no devBuy extension; exact devBuy.ethAmount in wei if ClankerUniV4EthDevBuy (0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a) is included in extensionConfigs",returns:"(address tokenAddress)",event_emitted:{name:"TokenCreated",topic0:"0x9299d1d1a88d8e1abdc591ae7a167a6bc63a8f17d695804e9091ee33aa89fb67",indexed_fields:["tokenAddress","tokenAdmin"]},inner_abi_encodings:{static_fee_data:"abi.encode(uint24 clankerFeeUniBps, uint24 pairedFeeUniBps) // 10000 = 1%",pool_data_v4_1:"abi.encode(tuple(address extension, bytes extensionData, bytes feeData))",locker_data:"abi.encode(tuple(uint8[] feePreference)) // 0=Both, 1=Paired(WETH), 2=Clanker",mev_module_data:"abi.encode(tuple(uint24 startingFee, uint24 endingFee, uint256 secondsToDecay)) // default (666777, 41673, 15)",devbuy_extension_data:"abi.encode(tuple(address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks), uint128 amountOutMin, address recipient)"}},claim_fees:{available_fees_view:{contract:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",function_name:"availableFees",signature:"availableFees(address,address)",selector:"0x8296535a",alias_signature:"feesToClaim(address,address)",alias_selector:"0x8417645e",arguments:["address feeOwner","address rewardToken (e.g. WETH 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 or Clanker token)"],returns:"(uint256 claimableWei)"},claim_write:{contract:"0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",function_name:"claim",signature:"claim(address,address)",selector:"0x21c0b342",state_mutability:"nonpayable",arguments:["address feeOwner","address rewardToken (e.g. WETH 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 or Clanker token)"],revert_on_zero_balance:{error:"NoFeesToClaim()",selector:"0x846d8c5c"},event_emitted:{name:"ClaimTokens",topic0:"0xf98eaa9c1f790e5c18b1f227bd5bade62600f9f3e3587c7644b90c50b9bf13c5"}},collect_rewards_flush:{contract:"0xE4910b09709423aFafD995dD76D8A81CF9134A09",function_name:"collectRewards",signature:"collectRewards(address)",selector:"0x5763dbd0",state_mutability:"nonpayable",arguments:["address clankerToken"],notes:"Flushes unharvested LP fees from the Uniswap v4 position into ClankerFeeLocker. If >120s since deploy with 0 post-decay swaps, call ClankerHookStaticFeeV2.mevModuleOperational(bytes32 poolId) (0x58f8cd54) first."}}}},hoodag:{"/selectors":{UniversalResolver:{"resolve(string)":"0x461a4478","reverse(address)":"0xe30bd740","resolveText(string,string)":"0xcb7cef3c","namehash(string)":"0x09879962"},RegistrarController:{"valid(string)":"0x9791c097","available(string)":"0xaeb8ce9b","priceUSDG(string,uint256)":"0x404f64da","priceUSD(string,uint256)":"0xe1271ab8","price(string,uint256)":"0x19b989a0","registerManyUSDG(string[],address,uint256,address,(uint256,uint256,uint8,bytes32,bytes32))":"0x630d6692","renewUSDG(string,uint256,(uint256,uint256,uint8,bytes32,bytes32))":"0x6e4cc14a","makeCommitment(string,address,bytes32)":"0xf49826be","commit(bytes32)":"0xf14fcbc8","register(string,address,uint256,bytes32)":"0x85f6d155","register(string,address,uint256,bytes32,address)":"0x83c3f2b9","registerMany(string[],address,uint256,address)":"0xe8839807","renew(string,uint256)":"0xacf1a841"},ReverseRegistrar:{"setName(string)":"0xc47f0027","node(address)":"0xbffbe61c"},PublicResolver:{"addr(bytes32)":"0x3b3b57de","setAddr(bytes32,address)":"0xd5fa2b00","text(bytes32,string)":"0x59d1d43c","setText(bytes32,string,string)":"0x10f13a8c","name(bytes32)":"0x691f3431","setName(bytes32,string)":"0x77372213"},Registrar:{"ownerOf(uint256)":"0x6352211e","nameExpires(uint256)":"0xd6e4fa86","available(uint256)":"0x96e494e8"}}},hoodlock:{"/contracts/locker/functions":{lock:{signature:"lock(address,uint256,uint256)",selector:"0xe2ab691d",payable:!0,args:["token","amount (base units)","unlockTime (unix seconds, > block.timestamp, no maximum)"],returns:"uint256 lockId",value:"fee() read immediately before; >= fee, excess refunded to msg.sender",requiresPriorApprove:!0,source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/lock"},withdraw:{signature:"withdraw(uint256)",selector:"0x2e1a7d4d",rule:"lock owner only, once, block.timestamp >= unlockTime",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/withdraw"},extend:{signature:"extend(uint256,uint256)",selector:"0xc89258db",rule:"lock owner only, newUnlockTime > unlockTime",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/extend"},transferLockOwnership:{signature:"transferLockOwnership(uint256,address)",selector:"0x5a04fb69",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/transferLockOwnership"},fee:{signature:"fee()",selector:"0xddca3f43",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/fee"},getLock:{signature:"getLock(uint256)",selector:"0xd68f4dd1",returns:"(address owner, address token, uint256 amount, uint256 unlockTime, bool withdrawn)",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/getLock"},lockedAmount:{signature:"lockedAmount(uint256)",selector:"0xcf1cb351",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/lockedAmount"},isUnlocked:{signature:"isUnlocked(uint256)",selector:"0x72abc8b7",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/isUnlocked"},timeRemaining:{signature:"timeRemaining(uint256)",selector:"0xea3d9020",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/timeRemaining"},locksByOwner:{signature:"locksByOwner(address)",selector:"0xc8645841",note:"keeps listing a lock under previous owners; check getLock(id).owner",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/locksByOwner"},locksByToken:{signature:"locksByToken(address)",selector:"0x03091773",note:"append-only; anyone can pad it with 1-wei locks",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/locksByToken"},totalLocks:{signature:"totalLocks()",selector:"0xd2d18eac",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/totalLocks"},nextLockId:{signature:"nextLockId()",selector:"0x6518a0b3",source:"Recorded chain and API observations",pointer:"/contracts/locker/functions/nextLockId"}},"/contracts/burner/functions":{burn:{signature:"burn(address,uint256)",selector:"0x9dc29fac",payable:!0,args:["token","amount (base units)"],returns:"uint256 burnId",value:"fee() read immediately before; >= fee, excess refunded",requiresPriorApprove:!0,effect:"transferFrom(msg.sender, DEAD, amount); totalSupply unchanged",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burn"},fee:{signature:"fee()",selector:"0xddca3f43",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/fee"},getBurn:{signature:"getBurn(uint256)",selector:"0x2eb3f49b",returns:"(address burner, address token, uint256 amount, uint256 timestamp)",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/getBurn"},totalBurnedOf:{signature:"totalBurnedOf(address)",selector:"0x90d88803",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/totalBurnedOf"},burnsByBurner:{signature:"burnsByBurner(address)",selector:"0x57f63a1d",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burnsByBurner"},burnsByToken:{signature:"burnsByToken(address)",selector:"0x29d96f28",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/burnsByToken"},totalBurns:{signature:"totalBurns()",selector:"0x694ca01d",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/totalBurns"},DEAD:{signature:"DEAD()",selector:"0x03fd2a45",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/DEAD"},nextBurnId:{signature:"nextBurnId()",selector:"0xf3b218a7",source:"Recorded chain and API observations",pointer:"/contracts/burner/functions/nextBurnId"}},"/contracts/airdrop/functions":{create:{signature:"create(address,bytes32,uint256,uint32,uint64,string)",selector:"0xbbb04edc",payable:!0,args:["token","merkleRoot (non-zero)","total (base units; full amount must arrive)","maxClaims (1..250000; ceiling on successful claims)","endTime (0 = never sweepable, else >= block.timestamp + 604800)",'uri (<= 256 bytes; "" allowed)'],returns:"uint256 airdropId",value:"== quote(maxClaims) exactly",requiresPriorApprove:!0,source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/create"},claim:{signature:"claim(uint256,uint256,address,uint256,bytes32[])",selector:"0x5d4df3bf",rule:"anyone may send; tokens always go to account",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/claim"},sweep:{signature:"sweep(uint256)",selector:"0xaa60e733",rule:"creator only, once, at or after endTime; returns remaining",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/sweep"},quote:{signature:"quote(uint32)",selector:"0x6f8b0eac",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/quote"},getAirdrop:{signature:"getAirdrop(uint256)",selector:"0x052dd94e",returns:"(address creator, uint64 endTime, uint32 maxClaims, address token, uint32 claims, bool swept, bytes32 merkleRoot, uint128 total, uint128 remaining)",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/getAirdrop"},isClaimed:{signature:"isClaimed(uint256,uint256)",selector:"0xf364c90c",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/isClaimed"},listURI:{signature:"listURI(uint256)",selector:"0x4398a943",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/listURI"},totalAirdrops:{signature:"totalAirdrops()",selector:"0x971a1ca2",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/totalAirdrops"},nextAirdropId:{signature:"nextAirdropId()",selector:"0xaff38dc8",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/nextAirdropId"},accruedFees:{signature:"accruedFees()",selector:"0x682c2058",source:"Recorded chain and API observations",pointer:"/contracts/airdrop/functions/accruedFees"}},"/contracts/liquidityLocker/functions":{lock:{signature:"lock(address,uint256,uint256,address,bool,uint16)",selector:"0xf997cbd9",payable:!0,args:["manager (v3 or v4 position manager)","tokenId","unlockTime (unix seconds, <= now + 100 years)","feeRecipient","acceptUnverifiedHook (v4 only)","maxCollectFeeBps (>= live collectFeeBps)"],returns:"uint256 lockId",value:">= fixedFee(), excess refunded",requiresPriorApprove:"ERC-721 approve(liquidityLocker, tokenId)",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/lock"},lockIdOf:{signature:"lockIdOf(address,uint256)",selector:"0x61ed62f1",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/lockIdOf"},getLock:{signature:"getLock(uint256)",selector:"0xd68f4dd1",returns:"(address owner, uint40 unlockTime, uint16 collectFeeBps, bool isV4, bool hookVerified, bool withdrawn, address feeRecipient, address token0, address token1, uint256 tokenId)",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/getLock"},withdraw:{signature:"withdraw(uint256,address)",selector:"0x00f714ce",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/withdraw"},extend:{signature:"extend(uint256,uint256)",selector:"0xc89258db",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/extend"},collect:{signature:"collect(uint256)",selector:"0xce3f865f",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/collect"},fixedFee:{signature:"fixedFee()",selector:"0x91792d5b",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/fixedFee"},collectFeeBps:{signature:"collectFeeBps()",selector:"0xea09c4f9",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/collectFeeBps"},paused:{signature:"paused()",selector:"0x5c975abb",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/paused"},hookAllowed:{signature:"hookAllowed(address)",selector:"0x7dedbe63",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/hookAllowed"},locksOf:{signature:"locksOf(address)",selector:"0xc3f9ab58",source:"Recorded chain and API observations",pointer:"/contracts/liquidityLocker/functions/locksOf"}},"/selectorCensus":{method:"cast selectors $(cast code <addr>) vs cast sig of every documented function",documentedSignatures:55,matched:55,undocumentedGetters:["0x6518a0b3 nextLockId()","0xf3b218a7 nextBurnId()","0x682c2058 accruedFees()","0xaff38dc8 nextAirdropId()"]}},hookr:{"/q2_exact_calls/selectors":{"HookrLimitOrders.createOrder":{selector:"0xce9ab0b4",signature:"createOrder(((address,address,uint24,int24,address),bool,uint128,uint128,uint160,address,uint40,uint128))",returns:"(uint256 orderId)",payable:!0,msg_value_rule:"bounty + (inputIsNativeETH ? amountIn : 0)"},"HookrLimitOrders.cancel":{selector:"0x57d682c4",signature:"cancel(uint256,address)",returns:"()",payable:!1},"HookrLimitOrders.fill":{selector:"0x3fda5389",signature:"fill(uint256)",returns:"(uint256 amountOut)",payable:!1},"HookrLimitOrders.claimBounty":{selector:"0x98ff8075",signature:"claimBounty(address)",returns:"(uint256 amount)",payable:!1},"HookrLimitOrders.getOrder":{selector:"0xd09ef241",signature:"getOrder(uint256)",returns:"(((address,address,uint24,int24,address),address,uint40,uint40,bool,uint8,address,uint128,uint128,uint128,uint160))",payable:!1},"HookrLimitOrders.quoteFill":{selector:"0xe9ba1309",signature:"quoteFill(uint256)",returns:"(bool fillable, uint256 amountOut)",payable:!1},"HookrLimitOrders.bountyBounds":{selector:"0x0b33e015",signature:"bountyBounds((address,address,uint24,int24,address),bool,uint128,uint128)",returns:"(uint128 minBounty, uint128 defaultBounty, uint128 maxBounty)",payable:!1},"HookrLimitOrders.lastOrderId":{selector:"0x5662ecc7",signature:"lastOrderId()",returns:"(uint256)",payable:!1},"HookrLimitOrders.claimableBounty":{selector:"0x715c8eff",signature:"claimableBounty(address)",returns:"(uint256)",payable:!1},"HookrLimitOrders.liabilities":{selector:"0xb01083e2",signature:"liabilities(address)",returns:"(uint256)",payable:!1},"HookrRouter.swap":{selector:"0x19b36adf",signature:"swap(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address,uint256[])",returns:"(uint256 amountIn, uint256 amountOut)",payable:!0},"HookrRouter.swapGated":{selector:"0xd70dbb98",signature:"swapGated(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address,address,bytes,address,uint256[])",returns:"(uint256 amountIn, uint256 amountOut)",payable:!0},"HookrQuoter.quote":{selector:"0x55f5bdd3",signature:"quote(((address,address,uint24,int24,address),bool,int128,uint128,uint160,address,uint256),address)",returns:"((bytes32,bytes32,address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,uint24))",payable:!1},"HookrQuoter.quoteExactInputSingle":{selector:"0xaa9d21cb",signature:"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))",returns:"(uint256 amountOut, uint256 gasEstimate)",payable:!1},"HookrLauncher.launch":{selector:"0xf0859aea",signature:"launch((address,string,string,uint256,bytes32),address,(address,int24,uint160,int24,int24,uint128,uint128,uint128,(address,address,address,address,address,uint24,(uint24,uint24,uint16),uint32,uint32,uint8,bool,bytes32),(uint40,uint24,uint24,uint24,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint128,uint128,address,address),(bool,uint16,uint16,uint32,uint16,uint16,uint128,uint32))[],uint256)",returns:"(bytes32 familyId, address subject)",payable:!0},"HookrLauncher.launchWithBuy":{selector:"0xf371db3b",signature:"launchWithBuy((address,string,string,uint256,bytes32),address,(address,int24,uint160,int24,int24,uint128,uint128,uint128,(address,address,address,address,address,uint24,(uint24,uint24,uint16),uint32,uint32,uint8,bool,bytes32),(uint40,uint24,uint24,uint24,uint16,uint16,uint16,uint16,uint16,uint16,uint16,uint32,uint128,uint128,address,address),(bool,uint16,uint16,uint32,uint16,uint16,uint128,uint32))[],bytes[],(uint8,uint128,uint128,uint32),uint256)",returns:"(bytes32 familyId, address subject, uint256 subjectOut)",payable:!0},"HookrLauncher.predictToken":{selector:"0xa3da6500",signature:"predictToken(address,(address,string,string,uint256,bytes32))",returns:"(address)",payable:!1}}},merkl:{"/abiAndSelectors/functions":{"claim(address[],address[],uint256[],bytes32[][])":"0x71ee95c0","claimWithRecipient(address[],address[],uint256[],bytes32[][],address[],bytes[])":"0x9fb67b58","claimed(address,address)":"0x0c9cbf0e","getMerkleRoot()":"0x49590657","tree()":"0xfd54b228","lastTree()":"0xcce80e7a","toggleOperator(address,address)":"0xbdac7ca3","operators(address,address)":"0x2637588e","onlyOperatorCanClaim(address)":"0x14769142","setClaimRecipient(address,address)":"0x68508c98","claimRecipient(address,address)":"0x4d272d95","endOfDisputePeriod()":"0x5cec892a"}},poolstrade:{"/selectors":{"multicall(bytes[])":"0xac9650d8","createToken(address,string,string,uint8,uint128,address,bytes)":"0xdec14be1","distributeToken(address,(address,uint128,bytes),bytes32)":"0xb6982b48","distributeWithNative(address,bytes,bytes32,uint256)":"0x0ef847b6","getGraffiti(address)":"0x65c08017","getUERC20Address(string,string,uint8,address,bytes32)":"0xf752070e","collectFees(uint256[])":"0x1f2a2e46","claim(uint256,uint256,uint256)":"0xefa9a9be","amounts(uint256)":"0x45f0a44f","ownerOf(uint256)":"0x6352211e","transferFrom(address,address,uint256)":"0x23b872dd","execute(bytes,bytes[],uint256)":"0x3593564c","getSplits()":"0x520db906","graffiti()":"0xf56a499f","nextTokenId()":"0x75794a3c"}},priors:{"/selectors":{"deposit(uint256,address,uint256)":"0xbc157ac1","withdraw(uint256,address)":"0x00f714ce","borrow(uint256,uint256,uint64,address,uint256)":"0x1a29492b","repay(uint256,uint256,uint256)":"0x895a7485","quoteFee(uint256,uint256,uint64)":"0xaed9e43f","getAgent(uint256)":"0x2de5aaf7","getLoan(uint256)":"0x504006ca","loansOf(uint256)":"0x3b7ae807","shares(address)":"0xce7c2ac2","available(uint256)":"0x96e494e8","creditReport(uint256)":"0xfff59127","balanceOf(address)":"0x70a08231","tokenOfOwnerByIndex(address,uint256)":"0x2f745c59","getAgentWallet(uint256)":"0x00339509","register(string)":"0xf2c298be","setDelegate(uint256,address)":"0x94dcf2e6","approve(address,uint256)":"0x095ea7b3","markDefault(uint256)":"0xe1d927c8"}},"morpho-borrow":{"/methods":[{tool:"supply_collateral",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"supplyCollateral((address,address,address,address,uint256),uint256,address,bytes)",selector:"0x238d6579",arguments:["marketParams","collateralAssets","wallet","0x"],return_shape:"0x (no return data)",value:"0",chain_id:4663},{tool:"borrow",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"borrow((address,address,address,address,uint256),uint256,uint256,address,address)",selector:"0x50d8cd4b",arguments:["marketParams","loanAssets","0","wallet","wallet"],return_shape:"ABI (uint256 assetsBorrowed,uint256 sharesBorrowed)",value:"0",chain_id:4663},{tool:"repay",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"repay((address,address,address,address,uint256),uint256,uint256,address,bytes)",selector:"0x20b76e81",arguments:["marketParams","0","position.borrowShares","wallet","0x"],return_shape:"ABI (uint256 assetsRepaid,uint256 sharesRepaid)",value:"0",chain_id:4663},{tool:"withdraw_collateral",to:"0x9D53d5E3bd5E8d4Cbfa6DB1ca238AEA02E651010",signature:"withdrawCollateral((address,address,address,address,uint256),uint256,address,address)",selector:"0x8720316d",arguments:["marketParams","collateralAssets","wallet","wallet"],return_shape:"0x (no return data)",value:"0",chain_id:4663}]},tickerspring:{"/selectors":{erc20Approve:{signature:"approve(address,uint256)",selector:"0x095ea7b3"},groupedOrderHook:{create:{signature:"create((bytes32,int24,bool,address,uint128,uint128,uint256,uint16,uint64))",selector:"0xc25d6637"},createMarketOrder:{signature:"createMarketOrder((bytes32,int24,bool,address,uint128,uint128,uint256,uint16,uint64),address,uint160,uint160,uint160)",selector:"0x3e993775"},cancel:{signature:"cancel(uint256,uint256,uint256,uint64,uint8)",selector:"0xb66f0998"},claim:{signature:"claim(uint256,bool)",selector:"0x71baa1af"},claimBoth:{signature:"claimBoth(uint256)",selector:"0x8de9148b"},realize:{signature:"realize(uint256)",selector:"0x770fc860"},orders:{signature:"orders(uint256)",selector:"0xd09ef241"},ordersCount:{signature:"ordersCount()",selector:"0x8f328855"},marketsCount:{signature:"marketsCount()",selector:"0x063eb469"}},limitStrategy:{open:{signature:"open((address,int24,int24,uint16,bool,uint128,uint16,bool,uint64))",selector:"0xa31bba7f"},openWithMarket:{signature:"openWithMarket((address,int24,int24,uint16,bool,uint128,uint16,bool,uint64),uint160,uint160,uint160)",selector:"0x385012a0"},close:{signature:"close(uint256)",selector:"0x1f28b8c5"},setRepeat:{signature:"setRepeat(uint256,bool)",selector:"0xe1acf590"},collect:{signature:"collect(uint256)",selector:"0xd51ae60a"}}}},"uniswap-lp":{"/selectors":{"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":"0x88316456","increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":"0x219f5d17","decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":"0x0c49ccbe","collect((uint256,address,uint128,uint128))":"0xfc6f7865","burn(uint256)":"0x42966c68","positions(uint256)":"0x99fbab88","approve(address,uint256)":"0x095ea7b3","approve(address,address,uint160,uint48)":"0x87517c45","modifyLiquidities(bytes,uint256)":"0xdd46508f","poolKeys(bytes25)":"0x86b6be7d","getSlot0(bytes32)":"0xc815641c","getLiquidity(bytes32)":"0xfa6793d5","getPositionLiquidity(uint256)":"0x1efeed33","execute(bytes,bytes[],uint256)":"0x3593564c","getPool(address,address,uint24)":"0x1698ee82"}},"pons-trade":{"/selectors":{"buy(uint256,uint256,address)":"0x59a87bc1","sell(uint256,uint256,address)":"0xd04c6983","getLaunchedToken(address)":"0x3cf28b5a","getReserves()":"0x0902f1ac","realQuoteReserve()":"0x4f1f58fd","graduationThreshold()":"0x8b0bc501","sellableTokens()":"0x808bcddc","reservedTokens()":"0x15a55347","readyToGraduate()":"0xc68360a5","graduated()":"0xe7c2b772","feeBps()":"0x24a9d853","creatorTaxBps()":"0xc1bb8901","currentSnipeTaxBps(address)":"0xd7e1ef39","snipeTaxStartBps()":"0x50e25ac2","snipeTaxSeconds()":"0x6783774b","snipeTaxExempt(address)":"0xd44bdfe7","launchedAt()":"0xbf56b371","totalSupply()":"0x18160ddd","decimals()":"0x313ce567","getSlot0(bytes32)":"0xc815641c","getLiquidity(bytes32)":"0xfa6793d5","getLaunchFeePolicy(address)":"0x470ef5fc","createGraduatedPool(address)":"0x2f53ef2f","approve(address,uint256)":"0x095ea7b3","approve(address,address,uint160,uint48)":"0x87517c45","quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"0xaa9d21cb","execute(bytes,bytes[],uint256)":"0x3593564c","sweepFees(uint256)":"0x3729bb9a","sweepPoolFees(bytes32,uint256,uint256)":"0x3d61055e","claim()":"0x4e71d92d","claimToken(address)":"0x32f289cf","balanceOf(address)":"0x70a08231","balanceOfToken(address,address)":"0xf59e38b7","getTokenInfo()":"0xabb1dc44","launchFee()":"0xcf3cf573","previewLaunchEconomics(uint256,address)":"0xf718b78c","launchToken((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address)":"0xf35abbcf","launchAndBuy((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address,uint256,uint256,address,address[])":"0xf85f8e41","WrongGraduationPhase()":"0x9465dbd4","CurveGraduated()":"0x025ac17e","V4TooLittleReceived(uint256,uint256)":"0x8b063d73","SlippageExceeded(uint256,uint256)":"0x71c4efed"}},meridian:{"/selectors":{PredictionMarketEscrow:{"mint(((address,bytes,uint8)[],uint256,uint256,address,address,uint256,uint256,uint256,uint256,bytes,bytes,bytes32,bytes,bytes,address,bytes))":"0x2e3f9da8","settle(bytes32,bytes32)":"0xd32a9cd9","redeem(address,uint256,bytes32)":"0x992c3e4b","getClaimableAmount(bytes32,address,uint256)":"0x0f5f7793","getNonce(address)":"0x2d0335ab","getMintApprovalHash(bytes32,address,uint256,uint256,uint256)":"0x5f85aa75","getPrediction(bytes32)":"0xdc6423ab","getPickConfig(bytes32)":"0xaf6c986d","collateralToken()":"0xb2016bd4"},SecondaryMarketEscrow:{"executeTrade((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes32,bytes,bytes))":"0x52bb0979","getTradeApprovalHash(bytes32,address,uint256,uint256)":"0xb2cd9c7f","isNonceUsed(address,uint256)":"0xcab7e8eb"},ConditionResolver:{"isValidCondition(bytes)":"0x6443f7b5","getResolution(bytes)":"0x27919a3c","getResolutions(bytes[])":"0x87c428ea","isFinalized(bytes)":"0xbcdbda94","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"0x13137d65","endpoint()":"0x5e280f11"},ERC20_USDe:{"approve(address,uint256)":"0x095ea7b3","allowance(address,address)":"0xdd62ed3e","balanceOf(address)":"0x70a08231"}}},relay:{"/selectors":{"0x49290c1c":{signature:"depositNative(address,bytes32)",argument_types:["address","bytes32"],value:"1000000000000000"}}},erc8004:{"/selectors":{"register()":"0x1aa3a008","register(string)":"0xf2c298be","register(string,(string,bytes)[])":"0x8ea42286","setAgentURI(uint256,string)":"0x0af28bd3","ownerOf(uint256)":"0x6352211e","tokenURI(uint256)":"0xc87b56dd","setMetadata(uint256,string,bytes)":"0x466648da","getMetadata(uint256,string)":"0xcb4799f2","getAgentWallet(uint256)":"0x00339509","setAgentWallet(uint256,address,uint256,bytes)":"0x2d1ef5ae","unsetAgentWallet(uint256)":"0x3fddcf19","approve(address,uint256)":"0x095ea7b3","setApprovalForAll(address,bool)":"0xa22cb465","getApproved(uint256)":"0x081812fc","isApprovedForAll(address,address)":"0xe985e9c5","transferFrom(address,address,uint256)":"0x23b872dd","safeTransferFrom(address,address,uint256)":"0x42842e0e"}},vaults:{"/selectors":{"asset()":"0x38d52e0f","totalAssets()":"0x01e1d114","balanceOf(address)":"0x70a08231","approve(address,uint256)":"0x095ea7b3","deposit(uint256,address)":"0x6e553f65","withdraw(uint256,address,address)":"0xb460af94","redeem(uint256,address,address)":"0xba087652","previewDeposit(uint256)":"0xef8b30f7","previewWithdraw(uint256)":"0x0a28a477","previewRedeem(uint256)":"0x4cdad506","convertToAssets(uint256)":"0x07a2d13a","maxDeposit(address)":"0x402d267d","maxWithdraw(address)":"0xce96cb77","maxRedeem(address)":"0xd905777e","performanceFee()":"0x87788782","managementFee()":"0xa6f7f5d6","want()":"0x1f1fcd51","balance()":"0xb69ef8a8","getPricePerFullShare()":"0x77c7b8fc","deposit(uint256)":"0xb6b55f25","withdraw(uint256)":"0x2e1a7d4d","withdrawAll()":"0x853828b6","deposit(address,address,uint256,uint256)":"0x20e8c565","redeem(address,uint256,address,uint256,bool)":"0x769f8e5d","assetInfo()":"0xa40bee50","exchangeRate()":"0x3ba0b9a9","getTokensIn()":"0x213cae63","getTokensOut()":"0x071bc3c9","deposit(uint224,address,bytes32[])":"0x1dbd773b","redeem(uint256)":"0xdb006a75","claim(address,uint32[])":"0xc12e43e6","requestsOf(address,uint256,uint256)":"0xd4935972","shareManager()":"0x5c60173d","sharesOf(address)":"0xf5eb42dc","activeSharesOf(address)":"0x9d66201b","flags()":"0x64cc4aa5","depositFeeD6()":"0xe3707d18","redeemFeeD6()":"0xbf9587fb","performanceFeeD6()":"0xa51fac22","protocolFeeD6()":"0x8005c6de"}}},46630:{source:"Recorded chain and API observations",pointer:"/read_only_call_probes",writesProven:!1}},E={4663:{pons:{source:"Recorded chain and API observations",callPointers:["/pons/selectors","/ponsFeeClaim","/ponsRecipientTransfer"]},ponsClaims:{source:"Recorded chain and API observations",callPointers:["/stackResolution/calls","/claim_fees","/find_launches"]},ponsTrade:{source:"Recorded chain and API observations",callPointers:["/selectors","/http_checks","/v4_execution"]},uniswap:{source:"Recorded chain and API observations",callPointers:["/selectors","/calls","/endpoints"]},kyberswap:{source:"Recorded chain and API observations",callPointers:["/routers/kyberswap"]},velora:{source:"Recorded chain and API observations",callPointers:["/routers/velora"]},stocks:{source:"Recorded chain and API observations",callPointers:["/stockTokenApi"]},orbio:{source:"Recorded chain and API observations",callPointers:["/orbio"]},vaults:{source:"Recorded chain and API observations",callPointers:["/interfaces","/selectors","/endpoints","/projects"]},morpho:{source:"Recorded chain and API observations",callPointers:["/methods","/api"]},erc8004:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors"]},clanker:{source:"Recorded chain and API observations",callPointers:["/calls","/http_endpoints"]},hoodag:{source:"Recorded chain and API observations",callPointers:["/oakToolCallPlan","/selectors","/httpEndpoints"]},hoodlock:{source:"Recorded chain and API observations",callPointers:["/contracts","/selectorCensus","/http"]},hookr:{source:"Recorded chain and API observations",callPointers:["/q2_exact_calls"]},merkl:{source:"Recorded chain and API observations",callPointers:["/abiAndSelectors/functions","/api"]},poolsTrade:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors","/http"]},priors:{source:"Recorded chain and API observations",callPointers:["/calls","/selectors","/endpoints"]},tickerSpring:{source:"Recorded chain and API observations",callPointers:["/selectors","/httpEndpoints"]},meridian:{source:"Recorded chain and API observations",callPointers:["/selectors","/endpoints"]},relay:{source:"Recorded chain and API observations",callPointers:["/selectors","/endpoints","/quotes"]},heyResearch:{source:"Recorded chain and API observations",callPointers:["/oakTools","/endpointsProbed"]},lighter:{source:"Recorded chain and API observations",callPointers:["/endpoints"]}},46630:{source:"Recorded chain and API observations",callPointers:["/read_only_call_probes","/dependencies","/limits"]}},w={4663:{kyberswap:"0xe21fd0e9",velora:"0xe3ead59e"}},b={4663:{kyberswap:{address:"0x8F10B468b06c6FD214B65F87778827F7D113f996",source:"https://raw.githubusercontent.com/KyberNetwork/kyberswap-documentation/main/developer-guide/aggregator-api/contracts.md",pointer:"Robinhood / AggregationExecutorProxy",block:"100861304",blockKind:"read",caveat:"Corroborated by successful transaction 0x4a2474960f846f412d4d1cbdebb86727c81f92a0859ad743425fdc544d8973e8; approveTarget is zero."},velora:{address:"0x006d0e0d006109f0020f3050000a713780b7b000",source:"https://rpc.mainnet.chain.robinhood.com",pointer:"eth_getTransactionByHash / 0x70bc411f8427d622798ff82e6088d6cf3c011ae04b063c731664215f982ecfba / input / executor",block:"100861280",blockKind:"read",caveat:"Observed v6.2 executor, corroborated by six fresh Velora builds on 2026-10-29; no vendor executor list for 4663. Inner route targets vary; this pin does not authenticate them."}}},D=BigInt("0x45a6e007c874ffc6321d6fb90eac272dd6864bfa")<<96n|1n<<92n|1n,K=[b[4663].velora.address,"0x082738d007001080a00099a000004f3006152085"];export{a,o as b,p as c,f as d,x as e,h as f,A as g,v as h,s as i,i as j,d as k,g as l,m,y as n,P as o,R as p,l as q,u as r,_ as s,t,I as u,F as v,C as w,B as x,E as y,w as z,b as A,D as B,K as C};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as U}from"./Z53DADZ4.js";import{a as q}from"./VBWJOG3N.js";import{a as l,i as H}from"./5BP72XOA.js";import{a as P}from"./XAB4OIE3.js";import{a as d}from"./Z3FZWNAJ.js";import{encodeAbiParameters as Q,encodeFunctionData as A,erc20Abi as D,keccak256 as $,parseAbi as L,zeroAddress as b}from"viem";var s=L(["function launchFactory() view returns (address)","function curve() view returns (address)","function factory() view returns (address)","function feeEscrow() view returns (address)","function memeHook() view returns (address)","function getLaunchedToken(address) view returns ((address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists))","function balanceOf(address) view returns (uint256)","function quoteFeeBalance() view returns (uint256)","function creatorTaxBalance() view returns (uint256)","function pendingFees(bytes32,address) view returns (uint256)","function pendingCreatorTax(bytes32,address) view returns (uint256)"]),h=L(["function sweepFees(uint256 minBuybackTokensOut)","function sweepPoolFees(bytes32 poolId,uint256 minConversionQuoteOut,uint256 minBuybackTokensOut)","function claim()","error InternalSwapRequiresOperator()"]),F={address:U,chainId:l,symbol:"ETH",decimals:18};function u(n){if(typeof n!="string")throw new d("Provide a valid Pons coin address.");if(q(n),n.toLowerCase()===b)throw new d("Provide a nonzero Pons coin or contract address.");return n.toLowerCase()}function G(n){let p=new Set;for(;n&&typeof n=="object"&&!p.has(n)&&p.size<16;){p.add(n);let r=n;if(r.data==="0x31cdb504"||r.data&&typeof r.data=="object"&&r.data.errorName==="InternalSwapRequiresOperator")return!0;n=r.cause}return!1}async function J(n,p,r){if(!p||Object.keys(p).some(o=>o!=="token"))throw new d("Unsupported input. Provide only the Pons coin token address.");let i=u(p.token),S=u(r),e=n.clientFor(l);if(await e.getChainId()!==l)throw new d(`Pons claims require chain ${l}.`);let t=await e.getBlockNumber(),[M,R]=await Promise.all([e.readContract({address:i,abi:s,functionName:"launchFactory",blockNumber:t}),e.readContract({address:i,abi:s,functionName:"curve",blockNumber:t})]),k=u(H[l].pons.factory.address);if(u(M)!==k)throw new d("The coin must belong to the pinned Pons factory.");let f=u(R),[a,_,j]=await Promise.all([e.readContract({address:k,abi:s,functionName:"getLaunchedToken",args:[i],blockNumber:t}),e.readContract({address:f,abi:s,functionName:"factory",blockNumber:t}),e.readContract({address:f,abi:s,functionName:"feeEscrow",blockNumber:t})]);if(!a.exists||u(a.token)!==i||u(a.curve)!==f||u(_)!==k)throw new d("The coin does not resolve to a consistent Pons launch.");if(a.phase<0||a.phase>3)throw new d("This Pons launch phase is unsupported.");let x=u(a.creatorFeeRecipient);if(x!==S)throw new d("Only the current creator fee recipient can claim these fees. Use the recipient wallet or Safe.");if(a.pairToken.toLowerCase()!==b)throw new d("This claim tool supports native ETH pairs. Custom-pair token claims are not supported.");let T=u(j),E=await e.readContract({address:T,abi:s,functionName:"balanceOf",args:[S],blockNumber:t}),w=[],m=[],v=!1,C=!1,N=(o,c,g)=>n.unsignedTx({to:o,data:c,value:"0",chainId:l,description:g});if(a.phase===0){let[o,c]=await Promise.all([e.readContract({address:f,abi:s,functionName:"quoteFeeBalance",blockNumber:t}),e.readContract({address:f,abi:s,functionName:"creatorTaxBalance",blockNumber:t})]);o+c>0n&&(m.push({token:F,amount:(o+c).toString()}),a.buybackEnabled?C=!0:(await e.simulateContract({address:f,abi:h,functionName:"sweepFees",args:[0n],account:r,gas:P,blockNumber:t}),w.push(N(f,A({abi:h,functionName:"sweepFees",args:[0n]}),"Sweep native curve fees into the recipient escrow."))))}else if(a.phase===2){let o=u(await e.readContract({address:k,abi:s,functionName:"memeHook",blockNumber:t})),c=$(Q([{type:"address"},{type:"address"},{type:"uint24"},{type:"int24"},{type:"address"}],[b,i,a.poolFee,a.tickSpacing,o])),[g,B,I,O]=await Promise.all([e.readContract({address:o,abi:s,functionName:"pendingFees",args:[c,b],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingCreatorTax",args:[c,b],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingFees",args:[c,i],blockNumber:t}),e.readContract({address:o,abi:s,functionName:"pendingCreatorTax",args:[c,i],blockNumber:t})]);if(g+B>0n&&m.push({token:F,amount:(g+B).toString()}),I+O>0n){let[y,K]=await Promise.all([e.readContract({address:i,abi:D,functionName:"symbol",blockNumber:t}),e.readContract({address:i,abi:D,functionName:"decimals",blockNumber:t})]);m.push({token:{address:i,chainId:l,symbol:y,decimals:K},amount:(I+O).toString()})}if(m.length)if(a.buybackEnabled)C=!0;else try{await e.simulateContract({address:o,abi:h,functionName:"sweepPoolFees",args:[c,0n,0n],account:r,gas:P,blockNumber:t}),w.push(N(o,A({abi:h,functionName:"sweepPoolFees",args:[c,0n,0n]}),"Sweep native pool fees into the recipient escrow."))}catch(y){if(!G(y))throw y;v=!0}}(E>0n||w.length>0)&&w.push(N(T,A({abi:h,functionName:"claim"}),"Claim the caller\u2019s full native ETH escrow balance across all coins."));let V=await n.preview(w,r),z=[w.length?"Unsigned Pons fee claim prepared for the current recipient. The claim withdraws all native ETH owed to this wallet on this escrow across its coins.":"No native ETH claim is available from this escrow.",v?"Pending token-side conversion is awaiting Pons\u2019s keeper; the hook sweep was skipped.":"",C?"Buyback-enabled fee sweeps are not built here; pending fees await Pons\u2019s operator.":"","Pending amounts are pre-sweep fee and tax totals, not a guaranteed creator payout. Preview excludes gas. No transaction was sent."].filter(Boolean).join(" ");return{txs:w,summary:z,preview:V,claimable:{token:F,amount:E.toString()},pendingBeforeSweep:m,waitingForKeeper:v,recipient:x,escrow:T,phase:a.phase,blockNumber:t.toString()}}var te=n=>({tools:[{name:"pons_claim",inputSchema:{type:"object",additionalProperties:!1,required:["token"],properties:{token:{type:"string",pattern:"^0x[0-9a-fA-F]{40}$",description:"Pons coin address on chain 4663."}}},execute:async(p,r)=>{try{return await J(n,p,r)}catch(i){throw new d(n.plainError(i))}}}]});export{te as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as r}from"./Z3FZWNAJ.js";function o(t){if(typeof t!="string"||!/^\d+$/.test(t))throw new r("Amount must be a non-negative integer string in base units.");return BigInt(t)}function u(t){if(!Number.isInteger(t)||t<0||t>255)throw new r("Token decimals must be an integer from 0 to 255.");return 10n**BigInt(t)}function f(t,i,n){if(i<=0n)throw new r("The denominator must be positive.");if(n!=="floor"&&n!=="ceil")throw new r("Choose floor or ceil rounding.");return t/i+(n==="ceil"&&t%i!==0n?1n:0n)}function a(t,i,n){let e=u(i);if(typeof t!="string"||!/^\d+(\.\d+)?$/.test(t))throw new r("Amount must be a non-negative decimal string.");let[c="0",g=""]=t.split("."),s=g.slice(i);if(n===void 0&&/[1-9]/.test(s))throw new r("Amount exceeds the token precision. Choose floor or ceil rounding.");if(n!==void 0&&n!=="floor"&&n!=="ceil")throw new r("Choose floor or ceil rounding.");return(BigInt(c)*e+BigInt(g.slice(0,i).padEnd(i,"0")||"0")+(n==="ceil"&&/[1-9]/.test(s)?1n:0n)).toString()}function p(t,i){let n=o(t),e=u(i),c=(n%e).toString().padStart(i,"0").replace(/0+$/,"");return`${n/e}${c?`.${c}`:""}`}function b(t,i,n,e){return f(o(t)*o(i),o(n),e).toString()}function S(t,i,n,e,c,g){return f(o(t)*o(e)*u(n),o(c)*u(i),g).toString()}export{o as a,a as b,p as c,b as d,S as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as $}from"./UB5U6SI2.js";import{a as y}from"./VBWJOG3N.js";import{t as C}from"./5BP72XOA.js";import{a as d}from"./Z3FZWNAJ.js";import{a as S}from"./XN4WDN3O.js";import{Buffer as H}from"node:buffer";import{decodeEventLog as B,encodeFunctionData as U,parseAbi as V,parseAbiItem as W,toEventSelector as D}from"viem";var m=V(["function register(string agentURI) returns (uint256 agentId)","function setMetadata(uint256 agentId,string metadataKey,bytes metadataValue)","event MetadataSet(uint256 indexed agentId,string indexed indexedMetadataKey,string metadataKey,bytes metadataValue)","function setAgentURI(uint256 agentId,string newURI)","function balanceOf(address owner) view returns (uint256)","function ownerOf(uint256 agentId) view returns (address)","function tokenURI(uint256 agentId) view returns (string)","function getApproved(uint256 agentId) view returns (address)","function isApprovedForAll(address owner,address operator) view returns (bool)","function getAgentWallet(uint256 agentId) view returns (address)","function getMetadata(uint256 agentId,string metadataKey) view returns (bytes)","event Registered(uint256 indexed agentId,string agentURI,address indexed owner)","event URIUpdated(uint256 indexed agentId,string newURI,address indexed updatedBy)"]),oe={register:"erc8004_register"};function h(e){let{chainId:t,identityRegistry:n}=C[e.network??"mainnet"];return{chainId:t,registry:n,registryId:`eip155:${t}:${n}`}}var j="https://eips.ethereum.org/EIPS/eip-8004#registration-v1",v="oak.registrar",M="0x6f616b",_="Profile contents and oak.registrar are mutable, self-asserted metadata, not registry-validated claims or proof of provenance.",N={type:"string",pattern:"^[0-9]+$",description:"Agent ID as a decimal uint256 integer string."},J={type:"object",required:["type","name","description","image","services","x402Support","active","registrations"],properties:{type:{const:j},name:{type:"string",minLength:1},description:{type:"string"},image:{type:"string"},services:{type:"array",items:{type:"object",required:["name","endpoint"]}},x402Support:{type:"boolean"},active:{type:"boolean"},registrations:{type:"array"},tags:{type:"array",items:{type:"string"}},supportedTrust:{type:"array",items:{type:"string"}}}};function R(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function l(e,t){return e.toLowerCase()===t.toLowerCase()}function I(e){if(typeof e!="string"||!/^[0-9]+$/.test(e)||e.length>78||BigInt(e)>=2n**256n)throw new d("Provide an agent ID as a decimal uint256 integer string.");return BigInt(e)}function b(e,t,n=!1){if(typeof e!="string"||!n&&!e.trim())throw new d(`Provide a valid profile ${t}.`)}function E(e,t){b(e,t);try{let n=new URL(e);if(!["https:","ipfs:"].includes(n.protocol)||!n.hostname||n.username||n.password)throw new Error}catch{throw new d(`Profile ${t} must be an HTTPS or IPFS URI without credentials.`)}}function z(e,t,n,r){let{registryId:s}=h(e);if(!R(t))throw new d("Provide a registration-v1 profile object.");if(n!==void 0&&typeof n!="boolean")throw new d("The tag option must be a boolean.");if(t.type!==j)throw new d("Use the ERC-8004 registration-v1 profile type.");if(b(t.name,"name"),b(t.description,"description",!0),E(t.image,"image"),typeof t.active!="boolean"||typeof t.x402Support!="boolean")throw new d("Profile active and x402Support must be booleans.");if(!Array.isArray(t.services)||!Array.isArray(t.registrations))throw new d("Profile services and registrations must be arrays.");for(let o of t.services){if(!R(o))throw new d("Provide valid profile services.");b(o.name,"service name"),E(o.endpoint,"service endpoint"),o.version!==void 0&&b(o.version,"service version")}for(let o of["tags","supportedTrust"])if(t[o]!==void 0&&(!Array.isArray(t[o])||!t[o].every(p=>typeof p=="string"&&p.trim())))throw new d(`Profile ${o} must be an array of nonempty strings.`);let c=t.registrations.map(o=>{if(!R(o)||typeof o.agentRegistry!="string"||!/^eip155:[1-9][0-9]*:0x[0-9a-fA-F]{40}$/.test(o.agentRegistry))throw new d("Provide a valid agentRegistry for every registration.");let p=typeof o.agentId=="number"&&Number.isSafeInteger(o.agentId)?String(o.agentId):o.agentId,u=I(p);if(l(o.agentRegistry,s)){if(r===void 0)throw new d("Do not predict a registration ID; obtain it from the mined Registered receipt.");if(u!==r)throw new d("Profile registration ID does not match the agent being updated.")}return{...o}});r!==void 0&&!c.some(o=>l(o.agentRegistry,s))&&c.push({agentId:r.toString(),agentRegistry:s});let i=[...new Set((t.tags??[]).filter(o=>o!==v))];n!==!1&&i.push(v);let g={...t,registrations:c,...i.length?{tags:i}:{}};i.length||delete g.tags;let a;try{if(a=JSON.stringify(g),H.byteLength(a)>65536)throw new Error;JSON.parse(a)}catch{throw new d("Profile must be JSON data no larger than 64 KiB.")}return`data:application/json;base64,${H.from(a,"utf8").toString("base64")}`}async function A(e,t){try{let{chainId:n,registry:r}=h(e),s=I(t),c=e.clientFor(n),i=await c.readContract({address:r,abi:m,functionName:"ownerOf",args:[s]});y(i);let[g,a,o]=await Promise.all([c.readContract({address:r,abi:m,functionName:"tokenURI",args:[s]}),c.readContract({address:r,abi:m,functionName:"getAgentWallet",args:[s]}),c.readContract({address:r,abi:m,functionName:"getMetadata",args:[s,v]})]);if(y(a),typeof g!="string"||typeof o!="string"||!/^0x([0-9a-fA-F]{2})*$/.test(o))throw new d("The registry returned invalid identity data.");return{agentId:s.toString(),chainId:n,registry:r,owner:i,uri:g,agentWallet:a,registrarMetadata:o,registryValidated:!1,summary:_}}catch(n){throw new d(e.plainError(n))}}async function se(e,t){let n=await A(e,t);return{...n,uri:S(n.uri)}}async function F(e,t,n){let{chainId:r,registry:s}=h(e),c=e.clientFor(r),i=await c.readContract({address:s,abi:m,functionName:"ownerOf",args:[t]});if(y(i),l(i,n))return;let[g,a]=await Promise.all([c.readContract({address:s,abi:m,functionName:"getApproved",args:[t]}),c.readContract({address:s,abi:m,functionName:"isApprovedForAll",args:[i,n]})]);if(y(g),typeof a!="boolean")throw new d("The registry returned invalid operator approval data.");if(!l(g,n)&&!a)throw new d("Only the agent owner or an approved operator can update this profile.")}async function L(e,t,n,r){let{chainId:s,registry:c}=h(e);if(typeof t!="string"||!/^0x[0-9a-fA-F]{64}$/.test(t))throw new d("Provide the mined transaction hash.");let i=e.clientFor(s),g=await i.getTransactionReceipt({hash:t});if(!g)throw new d("The transaction is not mined yet. Try again after confirmation.");if(g.status!=="success"||!g.to||!l(g.to,c)||!l(g.from,n)||!l(g.transactionHash,t))throw new d("The receipt is not a successful matching registry transaction.");let a=await i.getTransaction({hash:t});if(a.chainId!==s||a.value!==0n||!a.to||!l(a.to,c)||!l(a.from,n))throw new d("The transaction does not match this chain, registry and wallet.");if(typeof a.input!="string"||!l(a.input,r))throw new d("The mined transaction calldata does not match the exact operation Oak built.");return g}async function G(e,t,n,r,s,c){let{registry:i}=h(e),g=await L(e,t,n,s),a=c===void 0?"Registered":"URIUpdated",o=D(c===void 0?"Registered(uint256,string,address)":"URIUpdated(uint256,string,address)"),p=g.logs.filter(x=>l(x.address,i)&&x.topics[0]===o&&!x.removed);if(p.length!==1)throw new d(`The receipt must contain one matching ${a} event.`);let u=p[0],f=B({abi:m,eventName:a,topics:u.topics,data:u.data,strict:!0}),w=f.args.agentId,q=f.eventName==="Registered"?f.args.agentURI:f.args.newURI,K=f.eventName==="Registered"?f.args.owner:f.args.updatedBy;if(c!==void 0&&w!==c||q!==r||!l(K,n))throw new d("The registry event does not match the expected agent, URI and wallet.");let k=await A(e,w.toString());if(k.uri!==r||c===void 0&&!l(k.owner,n))throw new d("The current agent owner or URI does not match the confirmed operation.");return k}function T(e,t){let{chainId:n,registry:r}=h(e);return e.unsignedTx({to:r,chainId:n,value:"0",data:U({abi:m,functionName:"setMetadata",args:[t,v,M]}),description:`Set mutable oak.registrar metadata to oak for agent ${t}.`})}async function Q(e,t,n,r){let{registry:s}=h(e),c=I(r.agentId),i=await L(e,t,n,T(e,c).data),g=D("MetadataSet(uint256,string,string,bytes)"),a=i.logs.filter(f=>l(f.address,s)&&f.topics[0]===g&&!f.removed);if(a.length!==1)throw new d("The receipt must contain one matching MetadataSet event.");let o=a[0],{args:p}=B({abi:m,eventName:"MetadataSet",topics:o.topics,data:o.data,strict:!0});if(p.agentId!==c||p.metadataKey!==v||p.metadataValue!==M)throw new d("The metadata event does not match this agent and registrar marker.");let u=await A(e,r.agentId);if(u.registrarMetadata!==M||u.uri!==r.uri||!l(u.owner,r.owner))throw new d("The current agent metadata, owner or URI does not match the confirmed operation.");return u}async function P(e,t,n,r){let s=await e.preview(t,n),c=s.changes.map(({amount:i,token:g})=>{let a=i.startsWith("-");return`${a?"-":""}${e.formatAmount(a?i.slice(1):i,g.decimals)} ${g.symbol} (${g.address}, chain ${g.chainId})`});return{txs:t,summary:`${s.summary} ${c.join("; ")} ${_} ${r}`}}async function X(e,t){let{chainId:n,registry:r}=h(e),s=e.clientFor(n),c=await s.readContract({address:r,abi:m,functionName:"balanceOf",args:[t]});if(c===0n)return;if(typeof c!="bigint"||c<0n)throw new d("Registry balance is unavailable; registration was not built.");let i=await s.getBlockNumber({cacheTime:0}),g=new Set;for(;;){let a=i>9999999n?i-9999999n:0n,o=await s.getLogs({address:r,event:W("event Transfer(address indexed from,address indexed to,uint256 indexed tokenId)"),args:{to:t},fromBlock:a,toBlock:i,strict:!0});for(let p of o){let u=p.args.tokenId.toString();if(p.removed||g.has(u))continue;g.add(u);let f=await A(e,u);if(l(f.owner,t))return f}if(a===0n)throw new d("Owned identity could not be located; registration was not built. Run oak setup link <agentId>.");i=a-1n}}async function O(e,t,n,r){let{chainId:s,registry:c}=h(e);if(y(r),n.chainId!==void 0&&n.chainId!==s)throw new d(`ERC-8004 actions are supported only on chain ${s}.`);let i=t?I(n.agentId):void 0,g=z(e,n.profile,n.tag,i),a=n.tag!==!1;if(n.metadataTransactionHash!==void 0&&(!a||n.transactionHash===void 0))throw new d("A metadata transaction hash requires tagging and the profile transaction hash.");let o=i===void 0?U({abi:m,functionName:"register",args:[g]}):U({abi:m,functionName:"setAgentURI",args:[i,g]});if(n.transactionHash!==void 0){let u=await G(e,n.transactionHash,r,g,o,i);if(!a)return u;if(n.metadataTransactionHash!==void 0)return Q(e,n.metadataTransactionHash,r,u);let f=I(u.agentId);await F(e,f,r);let w=await P(e,[T(e,f)],r,`Profile transaction confirmed for agent ${f}; onchain registrar metadata is pending. Submit this metadata transaction locally if not already submitted, then repeat the original arguments with transactionHash and metadataTransactionHash to verify both calls.`);return{...u,...w}}if(!t){let u=await X(e,r);if(u){let f={...u,registrationResumed:!0};if(!a||u.registrarMetadata===M)return f;let w=await P(e,[T(e,I(u.agentId))],r,`Resume registrar metadata for owned agent ${u.agentId}; no new identity will be minted.`);return{...f,...w}}}i!==void 0&&await F(e,i,r);let p=[e.unsignedTx({to:c,data:o,value:"0",chainId:s,description:i===void 0?"Register an ERC-8004 agent profile.":`Update ERC-8004 agent ${i} profile.`})];return i!==void 0&&a&&p.push(T(e,i)),P(e,p,r,`Submit locally, then repeat the original arguments with transactionHash to verify the profile receipt and URI.${a?i===void 0?" The mined Registered event supplies the actual agent ID; confirmation then builds a separate setMetadata transaction for oak.registrar. Both transactions require network gas.":" Submit the profile and metadata transactions in order, then supply metadataTransactionHash as well to verify the onchain oak.registrar marker. Both transactions require network gas.":" No registrar metadata transaction is built; --no-tag does not clear existing onchain metadata."}${i===void 0?" Update the profile registrations with the mined ID afterward.":""}`)}var Y=e=>{let t=(r,s,c)=>({name:r,inputSchema:s,execute:async(i,g)=>{try{let a=await c(i,g);return R(a)&&typeof a.uri=="string"?{...a,uri:S(a.uri)}:a}catch(a){throw new d(e.plainError(a))}}}),n=r=>({type:"object",additionalProperties:!1,required:r?["agentId","profile"]:["profile"],properties:{profile:J,tag:{type:"boolean",default:!0,description:"Set false for --no-tag; removes the profile tag and skips setMetadata, leaving existing onchain metadata unchanged."},transactionHash:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$",description:"After local submission, verify exact calldata, event and URI; if tagged, build the metadata follow-up unless metadataTransactionHash is supplied."},metadataTransactionHash:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$",description:"Hash of the separate setMetadata transaction; supplied with transactionHash to complete tagged confirmation."},...r?{agentId:N}:{}}});return{tools:[t("erc8004_register",n(!1),(r,s)=>O(e,!1,r,s)),t("erc8004_update",n(!0),(r,s)=>O(e,!0,r,s)),t("erc8004_identity",{type:"object",additionalProperties:!1,required:["agentId"],properties:{agentId:N}},r=>A(e,r.agentId))]}},de=e=>$("erc8004",[Y(e)]);export{m as a,oe as b,se as c,Y as d,de as e};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{b as ge,o as be}from"./XEN45QST.js";import{a as fe}from"./Z53DADZ4.js";import{c as he}from"./TU3KHOZK.js";import{a as pe}from"./VBWJOG3N.js";import{a as l,i as re,l as u}from"./5BP72XOA.js";import{a as me}from"./7I6TXFXR.js";import{a}from"./Z3FZWNAJ.js";import{a as I}from"./XN4WDN3O.js";import{decodeEventLog as Re,encodeAbiParameters as Ee,encodeFunctionData as j,erc20Abi as V,getAddress as Ae,keccak256 as _e,parseAbi as Q,parseAbiItem as Le,toHex as Oe,zeroAddress as N}from"viem";var ce=re[l].pons.launchAndBuyRouter.address,ye=re[l].ponsTrade.state_view.address,X={address:N,chainId:l,symbol:"ETH",decimals:18},f=Q(["function getLaunchedToken(address) view returns ((address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists))","function previewLaunchEconomics(uint256,address) view returns (bytes32)","function launchFee() view returns (uint256)","function canLaunch(address) view returns (bool)","function launchConfigCount() view returns (uint256)","function approvedPairTokens(address) view returns (bool)","function pairTokenEconomics(address) view returns (uint256 phantomQuote,uint256 graduationThreshold,uint8 decimals)","function transferCreatorFeeRecipient(address token,address newRecipient)","function setBuybackEnabled(address token,bool enabled)","function getLaunchConfig(uint256) view returns ((uint256 supply,uint256 curveFeeBps,uint256 phantomQuote,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,bool enabled))","function maxCreatorTaxBps() view returns (uint256)","function getLaunchFeePolicy(address) view returns ((address,uint16,uint16,uint16,uint16))","function memeHook() view returns (address)","function createGraduatedPool(address)"]),z=Q(["function factory() view returns (address)","function feeEscrow() view returns (address)","function getReserves() view returns (uint256,uint256)","function realQuoteReserve() view returns (uint256)","function feeBps() view returns (uint256)"]),Ue=Q(["function launchFactory() view returns (address)"]),qe=Q(["function currentFeePolicy() view returns ((address,uint16,uint16,uint16,uint16))"]),we=Q(["function getSlot0(bytes32) view returns (uint160,int24,uint24,uint24)","function getLiquidity(bytes32) view returns (uint128)"]),ae=Q(["function launchToken((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address) payable","function launchToken((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address,address[]) payable","function launchAndBuy((string,string,string,string,(string,string,string,string,string),address,uint16,bool,bytes32,bytes32),uint256,address,uint256,uint256,address,address[]) payable"]),xe=Le("event TokenLaunched(address indexed token,address indexed curve,address indexed deployer,address pairToken,uint256 launchConfigId,uint256 graduationThreshold)"),He=["curve","pending pool creation","graduated","rescued"],Me=10000n,ke=2000n,M={type:"string",pattern:"^[0-9]+$"},_={type:"string",pattern:"^0x[0-9a-fA-F]{40}$"};function F(n){if(typeof n!="string")throw new a("Provide a token or wallet address.");return pe(n),Ae(n)}function p(n,e){return n.toLowerCase()===e.toLowerCase()}function D(n){if(typeof n!="string")throw new a("Amounts must be integer strings in base units.");let e=me(n);if(e>=1n<<256n)throw new a("Amount exceeds the uint256 range.");return e}function Te(n,e){if(typeof n!="string"||!n.trim())throw new a(`Provide ${e}.`);return n}function L(n,e){return{token:n,amount:e.toString()}}function Be(n,e,t,i,o){let r=n*BigInt(t)/10000n,s=i?(n-r)*BigInt(o)/10000n:0n;return{baseBps:n.toString(),creatorTaxBps:e.toString(),totalBps:(n+BigInt(e)).toString(),protocolBps:r.toString(),creatorBps:(n-r-s+BigInt(e)).toString(),buybackBps:s.toString(),buybackEnabled:i}}async function J(n,e,t){if(p(e,N))return X;let i=n.clientFor(l),[o,r]=await Promise.all([i.readContract({address:e,abi:V,functionName:"symbol",blockNumber:t}),i.readContract({address:e,abi:V,functionName:"decimals",blockNumber:t})]);return{address:Ae(e),chainId:l,symbol:I(o),decimals:r}}async function Z(n,e,t){let i=n.clientFor(l),[o,r]=await Promise.all([i.readContract({address:e,abi:Ue,functionName:"launchFactory",blockNumber:t}),i.readContract({address:u,abi:f,functionName:"getLaunchedToken",args:[e],blockNumber:t})]);if(!p(o,u)||!r.exists||!p(r.token,e))throw new a("This token is not a launch from the supported Pons factory.");if(r.phase>3)throw new a("Pons returned an unknown launch phase.");return r}async function Fe(n,e,t){let i=n.clientFor(l),o=await Z(n,e,t),[r,s,c,d,h,T,b]=await Promise.all([J(n,e,t),J(n,o.pairToken,t),i.readContract({address:e,abi:V,functionName:"totalSupply",blockNumber:t}),i.readContract({address:o.curve,abi:z,functionName:"factory",blockNumber:t}),i.readContract({address:o.curve,abi:z,functionName:"feeEscrow",blockNumber:t}),i.readContract({address:u,abi:f,functionName:"memeHook",blockNumber:t}),i.readContract({address:u,abi:f,functionName:"getLaunchFeePolicy",args:[e],blockNumber:t})]);if(!p(d,u))throw new a("The Pons curve does not belong to the supported factory.");let m=BigInt(b[3]),C=o.sweptQuote,g=null,S=null,v=null;if(o.phase===0){let[$,w,A]=await Promise.all([i.readContract({address:o.curve,abi:z,functionName:"getReserves",blockNumber:t}),i.readContract({address:o.curve,abi:z,functionName:"realQuoteReserve",blockNumber:t}),i.readContract({address:o.curve,abi:z,functionName:"feeBps",blockNumber:t})]);if(C=w,m=A,o.graduationThreshold<=0n||$[1]<=0n)throw new a("Pons returned unavailable curve reserves or threshold.");g=w*1000000n/o.graduationThreshold,g>1000000n&&(g=1000000n),S=L(s,$[0]*10n**BigInt(r.decimals)/$[1])}else if(o.phase===2){let $=[e,o.pairToken].sort((H,x)=>BigInt(H)<BigInt(x)?-1:1),w=_e(Ee([{type:"address"},{type:"address"},{type:"uint24"},{type:"int24"},{type:"address"}],[$[0],$[1],o.poolFee,o.tickSpacing,T])),[A,R]=await Promise.all([i.readContract({address:ye,abi:we,functionName:"getSlot0",args:[w],blockNumber:t}),i.readContract({address:ye,abi:we,functionName:"getLiquidity",args:[w],blockNumber:t})]);if(A[0]===0n)throw new a("The graduated Pons pool price is unavailable.");let E=A[0]**2n,q=10n**BigInt(r.decimals);S=L(s,p($[0],e)?E*q/(1n<<192n):(1n<<192n)*q/E),v={id:w,sqrtPriceX96:A[0].toString(),tick:A[1],protocolFee:A[2],lpFee:A[3],liquidity:R.toString()},g=1000000n}else o.phase===1&&(g=1000000n);return{token:r,pairToken:s,blockNumber:t.toString(),factory:u,curve:o.curve,hook:T,escrow:h,creator:o.deployer,creatorFeeRecipient:o.creatorFeeRecipient,phase:o.phase,phaseName:He[o.phase],tradable:o.phase===0||o.phase===2,graduationThreshold:L(s,o.graduationThreshold),raised:L(s,C),sweptTokens:L(r,o.sweptTokens),sweptAt:o.sweptAt.toString(),progressPpm:g?.toString()??null,totalSupply:L(r,c),fees:Be(m,o.creatorTaxBps,b[1],o.buybackEnabled,b[2]),pool:v,spot:S,priceKind:"Marginal spot per whole token; not an execution quote or time average."}}async function je(n,e){try{return await Fe(n,F(e),await n.clientFor(l).getBlockNumber({cacheTime:0}))}catch(t){throw new a(n.plainError(t))}}async function ve(n,e={}){try{let t=n.clientFor(l),i=await t.getBlockNumber({cacheTime:0}),o=e.toBlock===void 0?i:D(e.toBlock),r=e.fromBlock===void 0?o>=ke?o-ke+1n:0n:D(e.fromBlock),s=e.limit??20;if(typeof s!="number"||!Number.isInteger(s)||s<1||s>100)throw new a("Choose a launch limit from 1 to 100.");if(r>o||o>i||o-r+1n>Me)throw new a("Choose an ordered range of at most 10000 mined blocks.");let c=await t.getLogs({address:u,event:xe,fromBlock:r,toBlock:o,strict:!0}),d=new Map;for(let b of c.filter(m=>p(m.address,u)&&!m.removed&&m.blockNumber!==null&&m.blockNumber>=r&&m.blockNumber<=o).sort((m,C)=>m.blockNumber===C.blockNumber?(C.logIndex??0)-(m.logIndex??0):m.blockNumber>C.blockNumber?-1:1)){let m=F(b.args.token);d.set(m.toLowerCase(),m)}let h=[...d.values()];return{items:await Promise.all(h.slice(0,s).map(b=>Fe(n,b,i))),fromBlock:r.toString(),toBlock:o.toString(),statusBlock:i.toString(),truncated:h.length>s,coverage:"Only launches in the requested block range; this is not a complete launch history."}}catch(t){throw new a(n.plainError(t))}}async function Y(n,e,t,i){let o=(Array.isArray(e)?e:[e]).map(n.unsignedTx),r=await n.preview(o,t),s=r.changes.map(c=>{let d=c.amount.startsWith("-");return`${d?"-":""}${n.formatAmount(d?c.amount.slice(1):c.amount,c.token.decimals)} ${c.token.symbol} (${c.token.chainId}:${c.token.address})`});return{txs:o,preview:r,summary:`${i} ${r.summary}${s.length?` Changes: ${s.join(", ")}.`:""}`}}var K=["twitter","telegram","discord","website","farcaster"],Pe=5242880,Ce="https://ponsfamily.com/api/ipfs/image";function se(n,e){if(n==="")return"";if(typeof n!="string"||n.length>2048)throw new a(`Provide a public HTTPS or IPFS ${e}.`);try{let t=new URL(n);if(!["https:","ipfs:"].includes(t.protocol)||!t.hostname||t.username||t.password)throw new Error}catch{throw new a(`Provide a public HTTPS or IPFS ${e}.`)}return n}function De(n){if(n===void 0)return;if(!n||typeof n!="object"||Array.isArray(n))throw new a("Provide image mimeType and base64.");let e=n,t={"image/png":"png","image/jpeg":"jpg","image/webp":"webp"};if(Object.keys(e).some(s=>!["mimeType","base64"].includes(s))||typeof e.mimeType!="string"||!t[e.mimeType])throw new a("Use a PNG, JPEG, or WebP image.");if(typeof e.base64!="string"||!e.base64.length||e.base64.length>4*Math.ceil(Pe/3)||e.base64.length%4!==0||!/^[A-Za-z0-9+/]*={0,2}$/.test(e.base64))throw new a("Provide a base64 image of 1 to 5242880 bytes.");let i=atob(e.base64);if(!i.length||i.length>Pe||btoa(i)!==e.base64)throw new a("Provide a base64 image of 1 to 5242880 bytes.");let o=Uint8Array.from(i,s=>s.charCodeAt(0));if(!(e.mimeType==="image/png"?i.startsWith(`\x89PNG\r
|
|
2
|
-
|
|
3
|
-
`):e.mimeType==="image/jpeg"?o[0]===255&&o[1]===216&&o[2]===255:i.startsWith("RIFF")&&i.slice(8,12)==="WEBP"))throw new a("Image bytes do not match the declared PNG, JPEG, or WebP type.");return{bytes:o,mimeType:e.mimeType,extension:t[e.mimeType]}}async function Qe(n,e,t){if(typeof e!="string"||!/^0x[0-9a-fA-F]{64}$/.test(e))throw new a("Provide a mined Pons launch transaction hash.");let o=await n.clientFor(l).getTransactionReceipt({hash:e});if(o.status!=="success"||!p(o.from,t))throw new a("The Pons launch must be a successful transaction from this wallet.");let r=o.logs.flatMap(d=>{if(!p(d.address,u))return[];try{return[Re({abi:[xe],data:d.data,topics:d.topics,strict:!0}).args]}catch{return[]}}).filter(d=>p(d.deployer,t));if(r.length!==1)throw new a("The receipt does not contain exactly one Pons launch for this wallet.");let s=r[0].token,c=await Z(n,s,o.blockNumber);return{transactionHash:e,token:await J(n,s,o.blockNumber),curve:c.curve,creator:c.deployer,creatorFeeRecipient:c.creatorFeeRecipient,chainId:l,summary:`Pons launch mined: ${s}. Creator fee recipient ${c.creatorFeeRecipient}.`}}async function We(n,e,t){let i=Te(e.name,"a coin name"),o=Te(e.symbol,"a coin symbol");if(e.creatorFeeRecipient===void 0)throw new a("Provide an explicit nonzero creatorFeeRecipient; it is never defaulted to the agent wallet.");let r=F(e.creatorFeeRecipient);if(p(r,N))throw new a("Provide a nonzero creator fee recipient.");let s=p(r,t)?"":`Warning: creator fees go to ${r}, not the signing wallet ${t}; this wallet cannot claim those fees.`,c=F(e.pairToken??N),d=D(e.launchConfigId??"0"),h=D(e.initialBuy??"0"),T=F(e.buyRecipient??t);if(p(T,N))throw new a("Provide a nonzero initial buy recipient.");if(h===0n&&e.buyRecipient!==void 0)throw new a("A buy recipient requires an initial buy.");let b=D(e.minTokensOut??"0");if(h>0n&&e.minTokensOut!==void 0&&b<=1n)throw new a("Initial buy minimum must exceed one token base unit.");if(h>0n&&!p(T,t)&&e.minTokensOut===void 0)throw new a("Provide minTokensOut for an initial buy sent to another wallet.");if(h===0n&&b!==0n)throw new a("A launch without an initial buy must have a zero token minimum.");let m=e.creatorTaxBps??100;if(typeof m!="number"||!Number.isInteger(m)||m<0||m>65535)throw new a("Creator tax must be an integer number of basis points.");let C=e.buybackEnabled??!1;if(typeof C!="boolean")throw new a("Buyback enabled must be true or false.");let g=e.metadata??["",""],S=e.links??["","","","",""];if(!Array.isArray(g)||g.length!==2||!g.every(y=>typeof y=="string")||!Array.isArray(S)||S.length!==5||!S.every(y=>typeof y=="string"))throw new a("Provide two metadata strings and five link strings in ABI order.");if(e.metadata!==void 0&&(e.logo!==void 0||e.description!==void 0||e.image!==void 0))throw new a("Use named logo, description and image inputs or legacy metadata, not both.");if(e.links!==void 0&&e.socials!==void 0)throw new a("Use named socials or legacy links, not both.");let v=se(e.logo??g[0],"coin image URI"),$=e.description??g[1];if(typeof $!="string")throw new a("Provide a coin description string.");let w=e.socials;if(w!==void 0&&(!w||typeof w!="object"||Array.isArray(w)||Object.keys(w).some(y=>!K.includes(y))))throw new a("Provide twitter, telegram, discord, website and farcaster social links.");let A=K.map((y,k)=>se(w===void 0?S[k]:w[y]??"",`${y} link`)),R=De(e.image);if(R&&v)throw new a("Provide an image upload or an existing logo URI, not both.");let E=e.snipeTaxExemptions??[];if(!Array.isArray(E)||E.length>32)throw new a("Provide at most 32 snipe tax exemption addresses.");let q=E.map(F),H=e.salt??Oe(crypto.getRandomValues(new Uint8Array(32)));if(typeof H!="string"||!/^0x[0-9a-fA-F]{64}$/.test(H))throw new a("Salt must be 32 hex-encoded bytes.");let x=n.clientFor(l),B=await x.getBlockNumber({cacheTime:0}),[ue,Ie]=await Promise.all([x.readContract({address:u,abi:f,functionName:"canLaunch",args:[t],blockNumber:B}),x.readContract({address:u,abi:f,functionName:"launchConfigCount",blockNumber:B})]);if(!ue)throw new a("This wallet cannot launch on Pons. Ask Pons for launch access and retry when canLaunch is true.");if(d>=Ie)throw new a("Choose an existing Pons launchConfigId using pons_launch_options.");let[ee,W,Ne,Se]=await Promise.all([x.readContract({address:u,abi:f,functionName:"launchFee",blockNumber:B}),x.readContract({address:u,abi:f,functionName:"getLaunchConfig",args:[d],blockNumber:B}),x.readContract({address:u,abi:f,functionName:"maxCreatorTaxBps",blockNumber:B}),x.readContract({address:u,abi:f,functionName:"memeHook",blockNumber:B})]);if(!W.enabled)throw new a("This Pons launch configuration is disabled. Choose an enabled launchConfigId.");let O=X,de=W.phantomQuote,le=W.graduationThreshold;if(!p(c,N)){let[y,k]=await Promise.all([x.readContract({address:u,abi:f,functionName:"approvedPairTokens",args:[c],blockNumber:B}),x.readContract({address:u,abi:f,functionName:"pairTokenEconomics",args:[c],blockNumber:B})]);if(!y||k[0]<=0n||k[1]<=0n)throw new a("This pair token is not approved with usable Pons economics. Choose a supported pair.");if(O=await J(n,c,B),k[2]!==O.decimals)throw new a("Pair token decimals disagree with Pons. Ask Pons to refresh pair economics.");[de,le]=k}if(BigInt(m)>Ne)throw new a("Creator tax exceeds the current Pons maximum.");let[ne,te]=await Promise.all([x.readContract({address:u,abi:f,functionName:"previewLaunchEconomics",args:[d,c],blockNumber:B}),x.readContract({address:Se,abi:qe,functionName:"currentFeePolicy",blockNumber:B})]);if(e.expectedEconomics!==void 0&&e.expectedEconomics!==ne)throw new a("Pons launch economics changed. Refresh the launch preview.");let G=Be(W.curveFeeBps,m,te[1],C,te[2]),oe="";if(R){let y=new FormData;y.append("image",new Blob([R.bytes],{type:R.mimeType}),`coin.${R.extension}`);let k=await he(n.http,Ce,{method:"POST",body:y,redirect:"error"},P=>!!P&&typeof P=="object"&&typeof P.uri=="string");if(v=se(k.uri,"uploaded coin image URI"),!v)throw new a("Pons returned an empty image URI. Retry with a public image URI.");oe=`Image (${R.bytes.length} bytes, ${R.mimeType}) uploaded via multipart POST to ${Ce}; URI ${I(v)}. This off-chain upload persists even if launch is cancelled or fails; Pons retention/deletion is unknown.`}let ie=y=>{let k=[i,o,v,$,A,r,m,C,ne,H],P={to:h===0n?u:ce,chainId:l,value:(ee+(p(c,N)?h:0n)).toString(),data:h===0n?q.length?j({abi:ae,functionName:"launchToken",args:[k,d,c,q]}):j({abi:ae,functionName:"launchToken",args:[k,d,c]}):j({abi:ae,functionName:"launchAndBuy",args:[k,d,c,h,y,T,q]}),description:`Launch ${I(i)} through the Pons ${h===0n?"factory":"router"} from ${t}; creator fees to ${r}. ${s} ${oe}`.trim()};return h>0n&&!p(c,N)?[n.approval(c,ce,h.toString(),l),P]:[P]};if(h>0n&&e.minTokensOut===void 0){let k=(await n.preview(ie(0n).map(n.unsignedTx),t)).changes.filter(P=>P.token.chainId===l&&!p(P.token.address,N)&&!p(P.token.address,fe)&&!p(P.token.address,c)&&P.token.decimals===18&&/^\d+$/.test(P.amount)&&BigInt(P.amount)>0n);if(k.length!==1)throw new a("Pons launch preview did not identify a unique initial buy token output.");if(b=BigInt(be(k[0].amount,ge)),b<=1n)throw new a("Initial buy minimum must exceed one token base unit.")}let U=await Y(n,ie(b),t,`Unsigned Pons launch from ${t}: ${I(i)} (${I(o)}), image ${v?I(v):"none"}, description ${I($)}, links ${JSON.stringify(Object.fromEntries(K.map((y,k)=>[y,I(A[k])])))}. canLaunch=true at block ${B}; config ${d}, supply ${W.supply}, phantom quote ${de}, graduation threshold ${le} pair base units. Pair ${O.symbol} (${l}:${O.address}, ${O.decimals} decimals). Initial buy ${n.formatAmount(h.toString(),O.decimals)} ${O.symbol} to ${T}; minimum ${b} token base units (18 decimals). Launch fee ${n.formatAmount(ee.toString(),18)} ETH plus gas; exact transaction value ${ie(b).at(-1).value} wei. Curve fees ${G.totalBps} bps total, ${G.protocolBps} bps protocol, ${G.creatorBps} bps creator, ${G.buybackBps} bps buyback; creator tax ${m} bps, buybacks ${C?"on":"off"}, graduated hook fee ${te[3]} bps plus creator tax. Creator fee recipient ${r}. Extra opening-tax exemptions ${JSON.stringify(q)}. Name, metadata, pair, tax and launch economics are fixed after launch. ${oe}`);return s&&(U.preview.summary.includes(s)||(U.preview={...U.preview,summary:`${s} ${U.preview.summary}`}),U.summary.includes(s)||(U.summary=`${s} ${U.summary}`)),{...U,creatorFeeWarning:s||void 0,preview:{...U.preview,warnings:s?[s]:[]},canLaunch:ue,blockNumber:B.toString(),launchConfigId:d.toString(),pairToken:O,salt:H,logo:v&&I(v),economics:ne,launchFee:L(X,ee),initialBuy:L(O,h),minimum:{amount:b.toString(),decimals:18,token:{chainId:l,address:null,name:I(i),symbol:I(o)},addressStatus:"Read the mined token address with pons_launch transactionHash; the local bridge does this automatically."},fees:G}}async function Ge(n,e,t){let i=n.clientFor(l),o=await i.getBlockNumber({cacheTime:0}),r=F(e.pairToken??N),[s,c,d,h]=await Promise.all([i.readContract({address:u,abi:f,functionName:"canLaunch",args:[t],blockNumber:o}),i.readContract({address:u,abi:f,functionName:"launchConfigCount",blockNumber:o}),i.readContract({address:u,abi:f,functionName:"launchFee",blockNumber:o}),i.readContract({address:u,abi:f,functionName:"maxCreatorTaxBps",blockNumber:o})]),T=D(e.offset??"0"),b=await Promise.all(Array.from({length:Number(c>T?c-T>100n?100n:c-T:0n)},async(v,$)=>{let w=T+BigInt($),A=await i.readContract({address:u,abi:f,functionName:"getLaunchConfig",args:[w],blockNumber:o});return{id:w.toString(),...Object.fromEntries(Object.entries(A).map(([R,E])=>[R,typeof E=="bigint"?E.toString():E]))}})),m=p(r,N),[C,g,S]=await Promise.all([m?!0:i.readContract({address:u,abi:f,functionName:"approvedPairTokens",args:[r],blockNumber:o}),m?void 0:i.readContract({address:u,abi:f,functionName:"pairTokenEconomics",args:[r],blockNumber:o}),J(n,r,o)]);return{chainId:l,factory:u,router:ce,blockNumber:o.toString(),canLaunch:s,launchFee:L(X,d),maxCreatorTaxBps:h.toString(),configs:b,configCount:c.toString(),nextOffset:T+BigInt(b.length)<c?(T+BigInt(b.length)).toString():null,pairToken:S,pairApproved:C&&(!g||g[0]>0n&&g[1]>0n&&g[2]===S.decimals),pairEconomics:g?{phantomQuote:g[0].toString(),graduationThreshold:g[1].toString(),decimals:g[2]}:null,pairDiscovery:"Native ETH or any approved ERC-20 address with usable pairTokenEconomics; query each candidate address. The factory has no pair enumeration read."}}async function $e(n,e,t,i){let o=F(e.token),r=await Z(n,o,await n.clientFor(l).getBlockNumber({cacheTime:0}));if(!p(r.creatorFeeRecipient,t))throw new a(`Only the current creator fee recipient ${r.creatorFeeRecipient} can change this setting. Use that wallet.`);if(i){let s=F(e.creatorFeeRecipient);if(p(s,N))throw new a("Provide a nonzero creator fee recipient.");return Y(n,{to:u,chainId:l,value:"0",data:j({abi:f,functionName:"transferCreatorFeeRecipient",args:[o,s]}),description:`Transfer future creator fees and the buyback vest beneficiary for ${o} to ${s}.`},t,`Unsigned Pons fee recipient transfer to ${s}; previously credited fees stay with ${t}. This wallet loses future fee controls. Cost: gas only.`)}if(typeof e.enabled!="boolean")throw new a("Buyback enabled must be true or false.");return Y(n,{to:u,chainId:l,value:"0",data:j({abi:f,functionName:"setBuybackEnabled",args:[o,e.enabled]}),description:`Turn Pons buybacks ${e.enabled?"on":"off"} for ${o}.`},t,`Unsigned Pons buyback change: ${e.enabled?"on; funded from the creator fee share, tokens vest over five years":"off; existing vest stays locked on its schedule"}. Cost: gas only.`)}var ze=n=>{function e(t,i,o,r){return{name:t,inputSchema:{type:"object",properties:i,required:o,additionalProperties:!1,...t==="pons_launch"?{anyOf:[{required:["transactionHash"]},{required:["name","symbol","creatorFeeRecipient"]}]}:{}},execute:async(s,c)=>{try{F(c);for(let d of Object.keys(s))if(!(d in i))throw new a(`Unknown ${t} input: ${d}.`);return await r(s,c)}catch(d){throw new a(n.plainError(d))}}}}return{tools:[e("pons_browse",{fromBlock:M,toBlock:M,limit:{type:"integer",minimum:1,maximum:100}},[],t=>ve(n,t)),e("pons_status",{token:_},["token"],t=>je(n,F(t.token))),e("pons_launch_options",{pairToken:_,offset:M},[],(t,i)=>Ge(n,t,i)),e("pons_transfer_creator_fee_recipient",{token:_,creatorFeeRecipient:_},["token","creatorFeeRecipient"],(t,i)=>$e(n,t,i,!0)),e("pons_set_buyback",{token:_,enabled:{type:"boolean"}},["token","enabled"],(t,i)=>$e(n,t,i,!1)),e("pons_launch",{name:{type:"string",minLength:1},symbol:{type:"string",minLength:1},creatorFeeRecipient:_,pairToken:_,launchConfigId:M,buyRecipient:_,logo:{type:"string"},description:{type:"string"},socials:{type:"object",properties:Object.fromEntries(K.map(t=>[t,{type:"string"}])),additionalProperties:!1},image:{type:"object",properties:{mimeType:{type:"string",enum:["image/png","image/jpeg","image/webp"]},base64:{type:"string",minLength:1,maxLength:6990508}},required:["mimeType","base64"],additionalProperties:!1},snipeTaxExemptions:{type:"array",items:_,maxItems:32},transactionHash:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"},initialBuy:M,minTokensOut:M,creatorTaxBps:{type:"integer",minimum:0,maximum:65535},buybackEnabled:{type:"boolean"},expectedEconomics:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"},salt:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"},metadata:{type:"array",items:{type:"string"},minItems:2,maxItems:2},links:{type:"array",items:{type:"string"},minItems:5,maxItems:5}},[],(t,i)=>t.transactionHash===void 0?We(n,t,i):Qe(n,t.transactionHash,i)),e("pons_graduate",{token:_},["token"],async(t,i)=>{let o=F(t.token);if((await Z(n,o,await n.clientFor(l).getBlockNumber({cacheTime:0}))).phase!==1)throw new a("Graduation requires a launch pending pool creation (phase 1).");return Y(n,{to:u,chainId:l,value:"0",data:j({abi:f,functionName:"createGraduatedPool",args:[o]}),description:`Create the graduated Pons pool for ${o}.`},i,"Unsigned permissionless graduation retry; recheck status after the transaction is mined.")})],positions:async t=>{try{F(t);let i=await ve(n,{limit:100}),o=i.items.filter(r=>p(r.creator,t)||p(r.creatorFeeRecipient,t));return await Promise.all(o.map(async r=>{let s=await n.clientFor(l).readContract({address:r.token.address,abi:V,functionName:"balanceOf",args:[t],blockNumber:BigInt(r.blockNumber)});return{module:"pons",id:`${l}:${r.token.address}`,chainId:l,assets:[L(r.token,s)],description:`Pons ${r.phaseName}; creator fee recipient ${r.creatorFeeRecipient}. Discovery covers recent launches only (${i.fromBlock}-${i.toBlock}${i.truncated?", truncated":""}).`}}))}catch(i){throw new a(n.plainError(i))}}}},on=ze;export{je as a,ve as b,ze as c,on as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as re}from"./RYOVSHKO.js";import{b as ge,o as ke}from"./XEN45QST.js";import{a as ie}from"./Z53DADZ4.js";import{a as S,b as be}from"./VBWJOG3N.js";import{a as l,d as Me,i as G,j as qe}from"./5BP72XOA.js";import{a as I}from"./7I6TXFXR.js";import{a as r,b as Te,d as oe}from"./Z3FZWNAJ.js";import{encodeAbiParameters as b,encodeFunctionData as J,erc20Abi as Ee,getAddress as y,isAddress as an,keccak256 as cn,pad as un,parseAbi as me,parseAbiParameters as U,toEventSelector as dn,toHex as De}from"viem";var Vn=y(G[4663].uniswap.v4_pool_manager.address),L=y(G[4663].uniswap.v4_position_manager.address),Xe=y(G[4663].uniswap.v4_state_view.address),xe=y(G[4663].uniswap.permit2.address),_e=y(G[4663].ponsTrade.universal_router.address),ee=y(G[4663].uniswap.WETH.address),E=y(qe),f="0x0000000000000000000000000000000000000000",je=8388608,Ie=-887272,ue=887272,ze=(1n<<48n)-1n,F=(1n<<128n)-1n,pn=(1n<<160n)-1n,ae=1n<<96n,$e=1800n,ln="0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",Hn={DECREASE_LIQUIDITY:1,MINT_POSITION:2,BURN_POSITION:3,SWAP_EXACT_IN_SINGLE:6,SETTLE_ALL:12,SETTLE_PAIR:13,TAKE_ALL:15,TAKE_PAIR:17,SWEEP:20},We=[{poolId:"0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",key:{currency0:f,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0x06a889870c8f83640d6816319f72e2aa579b6080")},liquidity:"5532026605872066941",sqrtPriceX96:"3839897026469220985301794",tick:-198703,protocolFee:0,lpFee:0},{poolId:"0x387bf619da4d3fb62bb276482693dba1b9b3520f573cabdfe033384a24125982",key:{currency0:f,currency1:E,fee:500,tickSpacing:10,hooks:f},liquidity:"225820987949255613",sqrtPriceX96:"3840577772610961024680304",tick:-198700,protocolFee:512125,lpFee:500},{poolId:"0x54f7883914619af9105355bf83ed678bcf9f63560218ac61c9963b9503d0ba32",key:{currency0:f,currency1:E,fee:460,tickSpacing:9,hooks:f},liquidity:"85654324417347171",sqrtPriceX96:"3840419018843648722761192",tick:-198701,protocolFee:479349,lpFee:460},{poolId:"0xc7b615a3721594f73664eb3f62d8290d0fcc8d9d1156aed1ddecbd7f32efd9f5",key:{currency0:f,currency1:E,fee:8388608,tickSpacing:10,hooks:y("0xcb787a5cdea8b3715d984d82f1203fd7bfebe0c4")},liquidity:"50517446454827887",sqrtPriceX96:"3840495145865430860317598",tick:-198700,protocolFee:0,lpFee:0},{poolId:"0x24107d152f14a76d292123265ae3f3c71f863fc2f4ef7ba49d64e78d28ea379e",key:{currency0:f,currency1:E,fee:100,tickSpacing:1,hooks:f},liquidity:"36478878201789434",sqrtPriceX96:"3840363370720475418748563",tick:-198701,protocolFee:102425,lpFee:100},{poolId:"0x84bd4e2d8be11aeb0afc1195b38f587b61e90068548f1063fdbe448fb8cad0b6",key:{currency0:ee,currency1:E,fee:200,tickSpacing:4,hooks:f},liquidity:"5980655057479791",sqrtPriceX96:"3839891926195366283625355",tick:-198703,protocolFee:213044,lpFee:200},{poolId:"0x3b0cbf0603ecc67b5fc9bb4fbb6ac9e08d3b2f406b63d1662a36063a7fe5e866",key:{currency0:f,currency1:E,fee:87,tickSpacing:1,hooks:f},liquidity:"5486760264498148",sqrtPriceX96:"3840563617639470134132117",tick:-198700,protocolFee:90134,lpFee:87}],mn=new Set(We.map(e=>e.key.hooks.toLowerCase())),fn=U("address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks"),yn=U("(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"),wn=U("address currency0, address currency1"),bn=U("address currency, address recipient"),he=U("uint256 tokenId, uint256 liquidity, uint128 amount0Min, uint128 amount1Min, bytes hookData"),gn=U("uint256 tokenId, uint128 amount0Min, uint128 amount1Min, bytes hookData"),ve=U("address currency0, address currency1, address recipient"),se=U("bytes actions, bytes[] params"),kn=U("((address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks) poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)"),Ue=U("address currency, uint256 amount"),V=me(["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)"]),Ge=me(["function getSlot0(bytes32 poolId) view returns (uint160 sqrtPriceX96, int24 tick, uint24 protocolFee, uint24 lpFee)","function getLiquidity(bytes32 poolId) view returns (uint128 liquidity)"]),hn=me(["function approve(address token, address spender, uint160 amount, uint48 expiration)"]),vn=me(["function execute(bytes commands, bytes[] inputs, uint256 deadline) payable"]),An=dn("Transfer(address,address,uint256)");function de(e){if(typeof e!="string"||!an(e,{strict:!1}))throw new r("Provide a valid v4 currency address.");let n=e.toLowerCase();return n===f||n===ie.toLowerCase()?f:y(e)}function $(e){let n=e.toLowerCase();return n===f||n===ie.toLowerCase()}function pe(e){let n=de(e.currency0),o=de(e.currency1);S(e.hooks);let s=y(e.hooks);return cn(b(fn,[n,o,e.fee,e.tickSpacing,s]))}function Ze(e){return((typeof e=="number"?e:e.fee)&je)!==0}function Pn(e,n){return Ze(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 le(e,n){if(!e||typeof e!="object")throw new r("Provide a valid v4 PoolKey.");let o=de(e.currency0),s=de(e.currency1);if(BigInt(o)>=BigInt(s))throw new r("PoolKey currencies must be strictly sorted (currency0 < currency1).");if(!Number.isInteger(e.tickSpacing)||e.tickSpacing<=0||e.tickSpacing>32767)throw new r("PoolKey tickSpacing must be a positive integer.");if(!Number.isInteger(e.fee)||e.fee<0||e.fee>16777215)throw new r("PoolKey fee must be a valid uint24.");S(e.hooks);let c=y(e.hooks),t=Ze(e.fee);if(t&&e.fee!==je)throw new r("Dynamic-fee PoolKey must use exact fee flag 0x800000 (8388608).");if(t&&c.toLowerCase()===f)throw new r("Dynamic-fee PoolKey requires a non-zero hook address.");if(!mn.has(c.toLowerCase()))throw new r(`Unsupported v4 hook ${c}: Oak does not assure arbitrary v4 hooks outside measured PoolKeys.`);let i={currency0:o,currency1:s,fee:e.fee,tickSpacing:e.tickSpacing,hooks:c},a=pe(i);if(n!==void 0){if(typeof n!="string"||!/^0x[0-9a-fA-F]{64}$/.test(n))throw new r("Provide a 32-byte hex poolId.");if(a.toLowerCase()!==n.toLowerCase())throw new r(`PoolKey hash (${a}) does not match expected poolId (${n}).`)}return i}function xn(e){if(!Number.isInteger(e)||e<=0||e>ue)throw new r("tickSpacing must be a positive integer.");let n=Math.trunc(Ie/e)*e,o=Math.trunc(ue/e)*e;return{tickLower:n===0?0:n,tickUpper:o===0?0:o}}function In(e,n,o){if(!Number.isInteger(o)||o<=0)throw new r("tickSpacing must be a positive integer.");if(!Number.isInteger(e)||!Number.isInteger(n))throw new r("tickLower and tickUpper must be integers.");if(e<Ie||n>ue)throw new r(`Ticks [${e}, ${n}] are outside Uniswap bounds [${Ie}, ${ue}].`);if(e>=n)throw new r("tickLower must be strictly less than tickUpper.");if(e%o!==0||n%o!==0)throw new r(`Ticks [${e}, ${n}] must be divisible by tickSpacing ${o}.`)}function Ke(e,n,o,s,c=l){if(S(e),S(n),$(e))throw new r("Native ETH does not use Permit2 approval.");let t=I(o);if(t<=0n||t>pn)throw new r("Permit2 approval amount must be a positive integer within uint160.");let i=I(String(s));if(i<=0n||i>ze)throw new r("Permit2 expiration must be a positive timestamp within uint48.");let a=J({abi:hn,functionName:"approve",args:[e,n,t,Number(i)]});return be({to:xe,data:a,value:"0",chainId:c,description:`Approve Permit2 allowance of ${t} base units of ${e} for ${n} until ${i}.`})}function Bn(e){let n=le(e.poolKey),o=I(e.amountIn),s=I(e.amountOutMinimum),c=I(String(e.deadline));if(o<=0n||o>F)throw new r("Swap amountIn must be a positive uint128.");if(s>F)throw new r("Swap amountOutMinimum exceeds uint128.");let t=e.hookData??"0x",i=e.zeroForOne?n.currency0:n.currency1,a=e.zeroForOne?n.currency1:n.currency0,d=b(kn,[{poolKey:{currency0:n.currency0.toLowerCase(),currency1:n.currency1.toLowerCase(),fee:n.fee,tickSpacing:n.tickSpacing,hooks:n.hooks.toLowerCase()},zeroForOne:e.zeroForOne,amountIn:o,amountOutMinimum:s,hookData:t}]),u=b(Ue,[i.toLowerCase(),o]),k=b(Ue,[a.toLowerCase(),s]),p=b(se,["0x060c0f",[d,u,k]]),m=J({abi:vn,functionName:"execute",args:["0x10",[p],c]});return be({to:_e.toLowerCase(),data:m,value:$(i)?o.toString():"0",chainId:e.chainId??l,description:`Execute Uniswap v4 swap of ${o} base units on UniversalRouter (${_e}).`})}function Ne(e){return BigInt(e&16777215)}function Fe(e){let n=Number(e&0xffffffn);return(n&8388608)!==0?n-16777216:n}function On(e){if(typeof e.poolId!="string"||!/^0x[0-9a-fA-F]{50,64}$/.test(e.poolId))throw new r("Provide a valid poolId hex string.");let n=e.poolId.slice(2,52),o=BigInt(`0x${n}`)<<56n,s=Ne(e.tickUpper)<<32n,c=Ne(e.tickLower)<<8n,t=e.hasSubscriber?1n:0n;return o|s|c|t}function Sn(e){let n=(e&0xffn)!==0n,o=Fe(e>>8n&0xffffffn),s=Fe(e>>32n&0xffffffn);return{poolIdBytes25:`0x${(e>>56n&(1n<<200n)-1n).toString(16).padStart(50,"0")}`,tickLower:o,tickUpper:s,hasSubscriber:n}}function Ve(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e];if(c<=0n||t<=0n)return 0n;let i=(o<<96n)*(t-c),a=t*c;return s?(i+a-1n)/a:i/a}function He(e,n,o,s=!1){let[c,t]=e<=n?[e,n]:[n,e],i=o*(t-c);return s?(i+ae-1n)/ae:i/ae}function Qe(e){if(e.liquidity<=0n)return{amount0:0n,amount1:0n};let n=re(e.tickLower),o=re(e.tickUpper);return e.sqrtPriceX96<=n?{amount0:Ve(n,o,e.liquidity,e.roundUp),amount1:0n}:e.sqrtPriceX96<o?{amount0:Ve(e.sqrtPriceX96,o,e.liquidity,e.roundUp),amount1:He(n,e.sqrtPriceX96,e.liquidity,e.roundUp)}:{amount0:0n,amount1:He(n,o,e.liquidity,e.roundUp)}}function Ln(e){let n=re(e.tickLower),o=re(e.tickUpper),s=(t,i,a)=>i<=t||a<=0n?0n:a*t*i/ae/(i-t),c=(t,i,a)=>i<=t||a<=0n?0n:a*ae/(i-t);if(e.sqrtPriceX96<=n)return s(n,o,e.amount0);if(e.sqrtPriceX96<o){let t=s(e.sqrtPriceX96,o,e.amount0),i=c(n,e.sqrtPriceX96,e.amount1);return t<i?t:i}return c(n,o,e.amount1)}function Ae(e,n){return e.map(o=>{let s=o.amount.trim(),c=s.startsWith("-"),t=c||s.startsWith("+")?s.slice(1):s,i=n(t,o.token.decimals);return`${c?"-":""}${i} ${o.token.symbol}`})}function Be(e,n=l){if($(e))return{address:ie,symbol:"ETH",decimals:18,chainId:n};let o=y(e);return o.toLowerCase()===E.toLowerCase()?{address:E,symbol:"USDG",decimals:Me,chainId:n}:o.toLowerCase()===ee.toLowerCase()?{address:ee,symbol:"WETH",decimals:18,chainId:n}:{address:o,symbol:o.slice(0,10),decimals:18,chainId:n}}async function X(e,n,o=l){if($(n))return Be(n,o);let s=y(n);if(s.toLowerCase()===E.toLowerCase()||s.toLowerCase()===ee.toLowerCase())return Be(s,o);let[c,t]=await Promise.all([e.readContract({address:s,abi:Ee,functionName:"symbol"}),e.readContract({address:s,abi:Ee,functionName:"decimals"})]);return{address:s,symbol:String(c),decimals:Number(t),chainId:o}}function Z(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new r(`${n} must be a non-negative integer string in base units.`);return I(e)}function Oe(e,n,o,s){let c=e===void 0?I(ke(n.toString(),o)):Z(e,s);if(c<=1n||c>F)throw new r(`${s} must exceed 1 base unit and fit in uint128; the simulated amount may be too small.`);return c}async function Ye(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 o=await e.request({method:"eth_getBlockByNumber",params:["latest",!1]});if(o&&typeof o.timestamp=="string")return BigInt(o.timestamp)}catch{}return BigInt(Math.floor(Date.now()/1e3))}async function Pe(e,n,o){let s=await Ye(e,o);if(n==null)return s+1800n;let c=I(String(n));if(c<=s)throw new r(`Transaction deadline ${c} has expired (current timestamp ${s}).`);return c}async function Je(e,n){let o=typeof n.poolId=="string"?n.poolId.trim():void 0,s=n.poolKey&&typeof n.poolKey=="object"&&!Array.isArray(n.poolKey)?n.poolKey:void 0,c=s?{currency0:String(s.currency0??f),currency1:String(s.currency1??E),fee:Number(s.fee),tickSpacing:Number(s.tickSpacing),hooks:String(s.hooks??f)}: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??f)}:void 0;if(c){if($(c.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ee.toLowerCase())throw new r("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");let w=le(c,o);return{poolId:pe(w),poolKey:w}}let t=(o??ln).toLowerCase(),i=We.find(w=>w.poolId.toLowerCase()===t);if(i){if($(i.key.currency0)&&typeof n.token0=="string"&&n.token0.toLowerCase()===ee.toLowerCase())throw new r("Native ETH currency0 differs from WETH; do not supply WETH for a native-ETH v4 pool.");return{poolId:i.poolId,poolKey:i.key}}let a=t.slice(0,52),d=await e.readContract({address:L,abi:V,functionName:"poolKeys",args:[a]}),[u,k,p,m,T]=d;if(u.toLowerCase()===f&&k.toLowerCase()===f&&Number(m)===0)throw new r(`Unknown or uninitialized v4 poolId ${t}.`);let v=le({currency0:u,currency1:k,fee:Number(p),tickSpacing:Number(m),hooks:T},t);return{poolId:t,poolKey:v}}async function Se(e,n,o){try{let[s,c]=await e.readContract({address:L,abi:V,functionName:"getPoolAndPositionInfo",args:[n]}),t=le({currency0:s.currency0,currency1:s.currency1,fee:Number(s.fee),tickSpacing:Number(s.tickSpacing),hooks:s.hooks});if((o.poolKey||o.poolId)&&(await Je(e,o)).poolId.toLowerCase()!==pe(t).toLowerCase())throw new r("The supplied PoolKey does not match this v4 position.");let i=Sn(BigInt(c));return{poolKey:t,poolId:pe(t),tickLower:i.tickLower,tickUpper:i.tickUpper}}catch(s){throw new r(`Could not read v4 position #${n}. ${oe(s)}`)}}async function Re(e,n,o={}){S(n);let s=y(n),c=e.clientFor(l),t=new Set;if(o.tokenIds)for(let a of o.tokenIds)t.add(I(String(a)).toString());try{let a=await c.getBlockNumber(),d=10000000n;for(let u=0n;u<=a;u+=d){let k=u+d-1n<a?u+d-1n:a,p=await c.request({method:"eth_getLogs",params:[{address:L.toLowerCase(),topics:[An,null,un(s)],fromBlock:De(u),toBlock:De(k)}]});if(!Array.isArray(p))throw new r("Invalid v4 position log response.");for(let m of p){if(!Array.isArray(m.topics)||m.topics.length!==4||!/^0x[0-9a-fA-F]{64}$/.test(m.topics[3]??""))throw new r("Invalid v4 position transfer log.");t.add(BigInt(m.topics[3]).toString())}}}catch(a){if(!o.tokenIds)throw new r(`Could not discover v4 positions. ${oe(a)}`)}let i=[];for(let a of t){let d=BigInt(a);try{let u;try{u=await c.readContract({address:L,abi:V,functionName:"ownerOf",args:[d]})}catch(P){if(Te(P,3))continue;throw P}if(u.toLowerCase()!==s.toLowerCase())continue;let k=await c.readContract({address:L,abi:V,functionName:"getPositionLiquidity",args:[d]}),p=BigInt(k);if(p===0n&&!o.includeZero)continue;let{poolKey:m,poolId:T,tickLower:v,tickUpper:w}=await Se(c,d,{}),A=await c.readContract({address:Xe,abi:Ge,functionName:"getSlot0",args:[T]}),x=BigInt(A[0]),{amount0:h,amount1:D}=Qe({liquidity:p,tickLower:v,tickUpper:w,sqrtPriceX96:x}),[g,C]=await Promise.all([X(c,m.currency0,l),X(c,m.currency1,l)]);i.push({module:"uniswap",id:`uniswap:v4:${d.toString()}`,chainId:l,assets:[{token:g,amount:h.toString()},{token:C,amount:D.toString()}],description:`Uniswap v4 LP position #${d.toString()} (${g.symbol}/${C.symbol}, liquidity=${p.toString()}, ticks=[${v},${w}], poolId=${T})`})}catch(u){throw new r(`Could not read v4 position #${d}. ${oe(u)}`)}}return i}var Cn={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:{type:"string",description:"Position liquidity in base units."},amount0Max:{type:"string",description:"Maximum currency0 base units to spend."},amount1Max:{type:"string",description:"Maximum currency1 base units to spend."},recipient:{type:"string"},deadline:{type:"string"},permit2Expiration:{type:"string"},hookData:{type:"string"}}},Tn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:{type:"string"},poolId:{type:"string"},poolKey:{type:"object"},amount0Min:{type:"string"},amount1Min:{type:"string"},recipient:{type:"string"},deadline:{type:"string"},hookData:{type:"string"}},required:["tokenId"]},Mn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenId:{type:"string"},liquidity:{type:"string",description:"Positive base-unit liquidity amount, or all for a full burn."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:ge},fullExit:{type:"boolean"},burn:{type:"boolean"},amount0Min:{type:"string"},amount1Min:{type:"string"},poolId:{type:"string"},poolKey:{type:"object"},recipient:{type:"string"},deadline:{type:"string"},hookData:{type:"string"}},required:["tokenId"]},qn={type:"object",properties:{version:{type:"string",enum:["v4"]},tokenIds:{type:"array",items:{type:"string"}},includeZero:{type:"boolean"}}},Le=e=>({tools:[{name:"uniswap_add",inputSchema:Cn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');if(t.tokenId!==void 0)throw new r("Increasing an existing v4 position is not implemented by this mint-only tool.");if(t.amount0Min!==void 0||t.amount1Min!==void 0||t.slippageBps!==void 0)throw new r("V4 mint encodes fixed liquidity and amount0Max/amount1Max; amount minima and slippageBps are not supported for minting.");let a=e.clientFor(l),{poolId:d,poolKey:u}=await Je(a,t),k=xn(u.tickSpacing),p=t.fullRange===!0&&t.tickLower===void 0?k.tickLower:Number(t.tickLower),m=t.fullRange===!0&&t.tickUpper===void 0?k.tickUpper:Number(t.tickUpper);In(p,m,u.tickSpacing);let[T,v]=await Promise.all([X(a,u.currency0,l),X(a,u.currency1,l)]),w=Z(t.amount0Max??t.amount0Desired,"amount0Max"),A=Z(t.amount1Max??t.amount1Desired,"amount1Max");if(w<=0n&&A<=0n||w>F||A>F)throw new r("Provide positive amount0Max/amount1Max within uint128.");let x=await a.readContract({address:Xe,abi:Ge,functionName:"getSlot0",args:[d]}),h=BigInt(x[0]),D=Number(x[3]);if(h<=0n)throw new r(`Pool ${d} is not initialized on StateView.`);let g=t.liquidity!==void 0?Z(t.liquidity,"liquidity"):Ln({amount0:w,amount1:A,tickLower:p,tickUpper:m,sqrtPriceX96:h});if(g<=0n||g>F)throw new r("Position liquidity must be a positive integer within uint128.");let{amount0:C,amount1:P}=Qe({liquidity:g,tickLower:p,tickUpper:m,sqrtPriceX96:h,roundUp:!0});if(C>w||P>A)throw new r("Liquidity requires more tokens than amount0Max or amount1Max.");let M=t.recipient!==void 0?String(t.recipient):i;if(S(M),y(M)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let K=await Ye(a),Q=await Pe(a,t.deadline,K.toString()),ne=Q<K+$e?Q:K+$e,H=t.permit2Expiration===void 0?ne:I(String(t.permit2Expiration));if(H<=K||H>ne||H>ze)throw new r("Permit2 expiration must be in the next 30 minutes and no later than the transaction deadline.");let fe=typeof t.hookData=="string"?t.hookData:"0x",N=(j,z)=>{let R=[];if(!$(u.currency0)&&j>0n){let te=u.currency0.toLowerCase();R.push(e.approval(te,xe.toLowerCase(),j.toString(),l)),R.push(Ke(te,L.toLowerCase(),j.toString(),H.toString(),l))}if(!$(u.currency1)&&z>0n){let te=u.currency1.toLowerCase();R.push(e.approval(te,xe.toLowerCase(),z.toString(),l)),R.push(Ke(te,L.toLowerCase(),z.toString(),H.toString(),l))}let W={currency0:u.currency0.toLowerCase(),currency1:u.currency1.toLowerCase(),fee:u.fee,tickSpacing:u.tickSpacing,hooks:u.hooks.toLowerCase()},we=b(yn,[W,p,m,g,j,z,M.toLowerCase(),fe]),nn=b(wn,[W.currency0,W.currency1]),tn=b(bn,[f,M.toLowerCase()]),on=b(se,["0x020d14",[we,nn,tn]]),rn=J({abi:V,functionName:"modifyLiquidities",args:[on,Q]}),sn=$(u.currency0)?j.toString():"0";return R.push(e.unsignedTx({to:L.toLowerCase(),data:rn,value:sn,chainId:l,description:`Mint Uniswap v4 position on pool ${d} (ticks [${p}, ${m}], liquidity ${g}).`})),R},Y=N(C,P),B=await e.preview(Y,i),O=(j,z)=>{let R=$(z)?ie:z.toLowerCase();return-j.changes.filter(W=>W.token.address.toLowerCase()===R).reduce((W,we)=>W+BigInt(we.amount),0n)},q=O(B,u.currency0),_=O(B,u.currency1);if(q<0n||_<0n||q>C||_>P||q===0n&&_===0n)throw new r("Invalid simulated v4 mint spend. Refresh the liquidity preview.");let Ce=N(q,_),ce=q===C&&_===P?B:await e.preview(Ce,i);if(O(ce,u.currency0)!==q||O(ce,u.currency1)!==_)throw new r("V4 mint spend changed. Refresh the liquidity preview.");let en=Ae(ce.changes,e.formatAmount),ye=Pn(u,D);return{txs:Ce,preview:ce,poolId:d,poolKey:u,tickLower:p,tickUpper:m,liquidity:g.toString(),amount0Max:{token:T,amount:w.toString()},amount1Max:{token:v,amount:A.toString()},dynamicFee:ye.dynamicFee,swapsAreFree:ye.swapsAreFree,summary:`Add Uniswap v4 liquidity (${g} L, ticks [${p}, ${m}]) on pool ${d}. Preview deltas: ${en.join(", ")||"none"}. ${ye.feeNote}`}}},{name:"uniswap_collect",inputSchema:Tn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=I(String(t.tokenId??""));if(a<=0n)throw new r("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):i;if(S(u),y(u)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let k=await Pe(d,t.deadline,t.now),p=t.amount0Min!==void 0?Z(t.amount0Min,"amount0Min"):0n,m=t.amount1Min!==void 0?Z(t.amount1Min,"amount1Min"):0n;if(p>F||m>F)throw new r("amount0Min and amount1Min must fit in uint128.");let T=typeof t.hookData=="string"?t.hookData:"0x",{poolKey:v,poolId:w}=await Se(d,a,t),[A,x]=await Promise.all([X(d,v.currency0,l),X(d,v.currency1,l)]),h=b(he,[a,0n,p,m,T]),D=b(ve,[v.currency0.toLowerCase(),v.currency1.toLowerCase(),u.toLowerCase()]),g=b(se,["0x0111",[h,D]]),C=J({abi:V,functionName:"modifyLiquidities",args:[g,k]}),P=[e.unsignedTx({to:L.toLowerCase(),data:C,value:"0",chainId:l,description:`Collect Uniswap v4 fees from position #${a} to ${u}.`})],M=await e.preview(P,i),K=Ae(M.changes,e.formatAmount);return{txs:P,preview:M,tokenId:a.toString(),poolId:w,recipient:u,currencies:[A,x],summary:`Collect Uniswap v4 fees for position #${a} (actions 0x0111). Preview deltas: ${K.join(", ")||"0"}.`}}},{name:"uniswap_remove",inputSchema:Mn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=I(String(t.tokenId??""));if(a<=0n)throw new r("Provide a positive v4 position tokenId.");let d=e.clientFor(l),u=t.recipient!==void 0?String(t.recipient):i;if(S(u),y(u)!==y(i))throw new r("Uniswap recipient must be the signing wallet.");let k=await Pe(d,t.deadline,t.now),{poolKey:p,poolId:m}=await Se(d,a,t),[T,v]=await Promise.all([X(d,p.currency0,l),X(d,p.currency1,l)]),w=t.slippageBps??ge;if(typeof w!="number")throw new r("Slippage must be an integer from 0 to 9999 bps.");ke("0",w);let A=typeof t.hookData=="string"?t.hookData:"0x",x=t.fullExit===!0||t.burn===!0||t.liquidity==="all";if(!x&&t.liquidity===void 0)throw new r('Provide a liquidity amount or explicitly choose liquidity "all" for a full exit.');let h=t.liquidity===void 0||t.liquidity==="all"?void 0:Z(t.liquidity,"liquidity");if(h!==void 0&&(h<=0n||h>F))throw new r("Provide positive liquidity within uint128 for v4 removal.");let D;try{D=BigInt(await d.readContract({address:L,abi:V,functionName:"getPositionLiquidity",args:[a]}))}catch(N){throw new r(`Could not read v4 position liquidity. ${oe(N)}`)}if(D<=0n||h!==void 0&&h>D)throw new r("Removal requires a nonempty position and cannot exceed its liquidity.");if(x&&h!==void 0&&h!==D)throw new r("A full burn must match the position liquidity; omit the amount when explicitly choosing all.");let g=x?"0x0311":"0x0111",C=(N,Y,B)=>{let O=x?b(gn,[a,N,Y,A]):b(he,[a,h,N,Y,A]),q=b(ve,[p.currency0,p.currency1,B]);return e.unsignedTx({to:L.toLowerCase(),data:J({abi:V,functionName:"modifyLiquidities",args:[b(se,[g,[O,q]]),k]}),value:"0",chainId:l,description:`${x?"Burn and exit":"Decrease"} Uniswap v4 position #${a} (${g}).`})},P=0n,M=0n;if(t.amount0Min===void 0||t.amount1Min===void 0){let N=e.unsignedTx({to:L.toLowerCase(),data:J({abi:V,functionName:"modifyLiquidities",args:[b(se,["0x0111",[b(he,[a,0n,0n,0n,A]),b(ve,[p.currency0,p.currency1,L])]]),k]}),value:"0",chainId:l,description:"Simulation only: separate fees from removal principal."}),Y=await e.preview([N,C(2n,2n,i)],i),B=O=>Y.changes.reduce((q,_)=>_.token.chainId===l&&_.token.address.toLowerCase()===O.address.toLowerCase()?q+BigInt(_.amount):q,0n);if(P=B(T),M=B(v),P<0n||M<0n)throw new r("Removal simulation did not return the expected currencies.")}let K=Oe(t.amount0Min,P,w,"amount0Min"),Q=Oe(t.amount1Min,M,w,"amount1Min"),ne=[C(K,Q,u)],H=await e.preview(ne,i),fe=Ae(H.changes,e.formatAmount);return{txs:ne,preview:H,action:g,tokenId:a.toString(),poolId:m,amount0Min:{token:T,amount:K.toString()},amount1Min:{token:v,amount:Q.toString()},summary:`${x?"Full exit":"Partial remove"} Uniswap v4 position #${a} (${g}). Preview deltas: ${fe.join(", ")||"none"}.`}}},{name:"uniswap_list_positions",inputSchema:qn,async execute(t,i){if(S(i),t.version!==void 0&&t.version!=="v4")throw new r('Uniswap v4 part only handles version "v4".');let a=Array.isArray(t.tokenIds)?t.tokenIds:void 0,d=t.includeZero===!0,u=await Re(e,i,{tokenIds:a,includeZero:d});return{version:"v4",positions:u,summary:`Found ${u.length} active Uniswap v4 position(s) for ${i}.`}}}],positions:t=>Re(e,t)}),Rn=Le,Xn=Le,jn=Le;export{Vn as a,L as b,Xe as c,xe as d,_e as e,ee as f,E as g,f as h,je as i,Ie as j,ue as k,ln as l,Hn as m,We as n,$ as o,pe as p,Ze as q,Pn as r,le as s,xn as t,In as u,Ke as v,Bn as w,On as x,Sn as y,Qe as z,Ln as A,Ae as B,Be as C,Re as D,Cn as E,Tn as F,Mn as G,qn as H,Le as I,Rn as J,Xn as K,jn as L};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as i,i as d}from"./5BP72XOA.js";import{a as n}from"./Z3FZWNAJ.js";import{encodeAbiParameters as y,keccak256 as g,parseAbi as p,zeroAddress as w}from"viem";var u=d[i].pons,m=p(["function getLaunchedToken(address) view returns ((address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists))","function memeHook() view returns (address)"]),h=p(["function factory() view returns (address)","function getReserves() view returns (uint256 quoteReserve,uint256 tokenReserve)"]),l=p(["function getSlot0(bytes32) view returns (uint160,int24,uint24,uint24)","function getLiquidity(bytes32) view returns (uint128)"]);async function P(t,r,s){if(t.chainId!==i||!Number.isInteger(t.decimals)||t.decimals<0||t.decimals>255)throw new n("No supported Pons reference price on this chain or for these token decimals.");let e=await r.readContract({address:u.factory.address,abi:m,functionName:"getLaunchedToken",args:[t.address],blockNumber:s});if(!e.exists||e.token.toLowerCase()!==t.address.toLowerCase()||e.pairToken.toLowerCase()!==w)throw new n("No supported native-ETH Pons launch reference price.");let f=10n**BigInt(t.decimals);if(e.phase===0){let[c,[a,o]]=await Promise.all([r.readContract({address:e.curve,abi:h,functionName:"factory",blockNumber:s}),r.readContract({address:e.curve,abi:h,functionName:"getReserves",blockNumber:s})]);if(c.toLowerCase()!==u.factory.address.toLowerCase()||a<=0n||o<=0n)throw new n("The Pons curve reference price is unavailable.");return{numerator:a*f,denominator:o*10n**18n}}if(e.phase===2){let c=await r.readContract({address:u.factory.address,abi:m,functionName:"memeHook",blockNumber:s}),a=g(y([{type:"address"},{type:"address"},{type:"uint24"},{type:"int24"},{type:"address"}],[w,t.address,e.poolFee,e.tickSpacing,c])),[o,v]=await Promise.all([r.readContract({address:d[i].ponsTrade.state_view.address,abi:l,functionName:"getSlot0",args:[a],blockNumber:s}),r.readContract({address:d[i].ponsTrade.state_view.address,abi:l,functionName:"getLiquidity",args:[a],blockNumber:s})]);if(o[0]<=0n||v<=0n)throw new n("The graduated Pons pool reference price is unavailable.");return{numerator:(1n<<192n)*f,denominator:o[0]**2n*10n**18n}}throw new n("The Pons launch has no active reference price in this phase.")}export{P as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as le,b as fe,g as W,h as Y,i as be,m as _,n as Z,y as ee,z as he}from"./XEN45QST.js";import{a as me,b as q}from"./Z53DADZ4.js";import{a as D}from"./VBWJOG3N.js";import{a as w,i as J}from"./5BP72XOA.js";import{a as pe}from"./XAB4OIE3.js";import{a as de}from"./7I6TXFXR.js";import{a as i}from"./Z3FZWNAJ.js";import{a as ce}from"./XN4WDN3O.js";import{randomUUID as xe}from"node:crypto";import{encodeAbiParameters as L,encodeFunctionData as te,erc20Abi as we,getAddress as Ae,parseAbi as C,parseAbiParameters as Q,zeroAddress as F}from"viem";var ke=J[w].pons,B=J[w].ponsTrade,Se=C(["function getLaunchedToken(address) view returns ((address token,address curve,address deployer,address creatorFeeRecipient,address pairToken,uint256 graduationThreshold,uint24 poolFee,int24 tickSpacing,uint16 creatorTaxBps,bool buybackEnabled,uint8 phase,uint256 sweptQuote,uint256 sweptTokens,uint256 sweptAt,bool exists))"]),H=C(["function getReserves() view returns (uint256 quoteReserve,uint256 tokenReserve)","function feeBps() view returns (uint256)","function creatorTaxBps() view returns (uint256)","function currentSnipeTaxBps(address) view returns (uint256)","function sellableTokens() view returns (uint256)","function buy(uint256 quoteIn,uint256 minTokensOut,address recipient) payable returns (uint256)","function sell(uint256 tokensIn,uint256 minQuoteOut,address recipient) returns (uint256)"]),Pe=C(["function quoteExactInputSingle(((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut,uint256 gasEstimate)"]),Ie=C(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]),Ne=C(["function approve(address token,address spender,uint160 amount,uint48 expiration)"]),Ee=Q("((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,uint256 minHopPriceX36,bytes hookData)"),O={address:me,chainId:w,decimals:18,symbol:"ETH"},Te="There is no on-chain expiry. The signed transaction is protected by its minimum output.",qe=`Quote expiry is enforced by Oak before signing only. ${Te}`,v=10000n,ne=(1n<<256n)-1n,ge=(1n<<128n)-1n,T=(a,o)=>({token:a,amount:o.toString()}),ve=(a,o)=>(a+o-1n)/o,Be={type:"object",additionalProperties:!1,required:["token","amountIn"],properties:{token:{type:"string",pattern:"^0x[0-9a-fA-F]{40}$",description:"Pons launch token address on chain 4663."},amountIn:{type:"string",pattern:"^[0-9]+$",description:"Positive base units: native ETH for buy, launch token for sell."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:100}}};async function ye(a,o,l,e,f=!1){if(D(l),Object.keys(o).some(m=>!["token","amountIn","slippageBps"].includes(m)))throw new i("Provide only token, amountIn and optional slippageBps.");if(typeof o.token!="string")throw new i("Provide a launch token address.");D(o.token);let t=Ae(o.token),n=de(o.amountIn);if(n===0n||n>ne)throw new i("Trade amount must be positive and within the uint256 range.");let u=o.slippageBps??100;if(typeof u!="number"||!Number.isInteger(u)||u<0||u>=1e4)throw new i("Slippage must be an integer from 0 to 9999 basis points.");let k=m=>m*(v-BigInt(u))/v,r=a.clientFor(w),c=await r.getBlock(),s=await r.readContract({address:ke.factory.address,abi:Se,functionName:"getLaunchedToken",args:[t],blockNumber:c.number});if(!s.exists||s.token.toLowerCase()!==t.toLowerCase())throw new i("This address is not a Pons launch token.");if(f&&s.phase!==0)throw new W("Pons curve quotes are only available before graduation.");if(s.phase===1)throw new i("Pons graduation is pending; the curve is closed and the pool is not ready.");if(s.phase===3)throw new i("This Pons launch was rescued and has no active trade route.");if(s.phase!==0&&s.phase!==2)throw new i("This Pons launch has an unknown trade phase.");if(s.pairToken.toLowerCase()!==F)throw new i("This trade route supports native ETH pairs only.");let[U,x]=await Promise.all([r.readContract({address:t,abi:we,functionName:"symbol",blockNumber:c.number}),r.readContract({address:t,abi:we,functionName:"decimals",blockNumber:c.number})]),y={address:t,chainId:w,symbol:ce(U),decimals:x},N=e?O:y,z=e?y:O,A=[],K=(m,P,b,g)=>a.unsignedTx({to:m,data:P,value:b.toString(),chainId:w,description:g}),p,d,$,S=n,oe=null,X;if(s.phase===0){let m=h=>r.readContract({address:s.curve,abi:H,functionName:h,blockNumber:c.number}),[[P,b],g,I,se,M]=await Promise.all([r.readContract({address:s.curve,abi:H,functionName:"getReserves",blockNumber:c.number}),m("feeBps"),m("creatorTaxBps"),e?r.readContract({address:s.curve,abi:H,functionName:"currentSnipeTaxBps",args:[l],blockNumber:c.number}):Promise.resolve(0n),e?m("sellableTokens"):Promise.resolve(0n)]);if(P<=0n||b<=0n||g+I>v-100n)throw new i("Pons curve reserves or fee settings are unavailable.");let ie=v-g-I-100n,G=se<ie?se:ie,ae=h=>({base:h*g/v,creator:h*I/v,snipe:h*G/v}),ue=h=>{let E=ae(h);return h-E.base-E.creator-E.snipe},R;if(e){if(M<=0n||M>=b)throw new i("The curve has no available sellable tokens.");let h=ue(n);if(p=h*b/(P+h),p>=M){p=M;let E=p*P/(b-p)+1n;S=ve(E*v,v-g-I-G),S>n&&(S=n)}R=S,d=k(p),$=ve(d*n,S)}else R=n*P/(b+n),p=ue(R),d=k(p),A.push(a.approval(t,s.curve,n.toString(),w));let V=ae(R);oe={base:T(O,V.base),creator:T(O,V.creator),snipe:T(O,V.snipe)},X=`Curve fees included: ${g} base, ${I} creator and ${G} opening-tax basis points, each rounded separately.`,A.push(K(s.curve,te({abi:H,functionName:e?"buy":"sell",args:[n,$??d,l]}),e?n:0n,e?"Buy Pons curve tokens with native ETH.":"Sell Pons curve tokens for native ETH."))}else{if(n>ge)throw new i("Trade amount exceeds the router uint128 range.");let m={currency0:F,currency1:t,fee:s.poolFee,tickSpacing:s.tickSpacing,hooks:ke.memeHook.address};if(p=(await r.simulateContract({address:B.quoter.address,abi:Pe,functionName:"quoteExactInputSingle",args:[{poolKey:m,zeroForOne:e,exactAmount:n,hookData:"0x"}],account:l,gas:pe,blockNumber:c.number})).result[0],d=k(p),d>ge)throw new i("Minimum output exceeds the router uint128 range.");let b=c.timestamp+300n;if(b>=1n<<48n)throw new i("Permit2 expiry exceeds its timestamp range.");e||(A.push(a.approval(t,B.permit2.address,n.toString(),w)),A.push(K(B.permit2.address,te({abi:Ne,functionName:"approve",args:[t,B.universal_router.address,n,Number(b)]}),0n,"Approve the exact token amount to the Pons router through Permit2 for five minutes.")));let g=[L(Ee,[{poolKey:m,zeroForOne:e,amountIn:n,amountOutMinimum:d,minHopPriceX36:0n,hookData:"0x"}]),L(Q("address,uint256"),[e?F:t,n]),L(Q("address,uint256"),[e?t:F,d])],I=L(Q("bytes,bytes[]"),["0x060c0f",g]);A.push(K(B.universal_router.address,te({abi:Ie,functionName:"execute",args:["0x10",[I],b]}),e?n:0n,"Trade through Pons Universal Router v2.1.2.")),X="Quoter output is net of Pons hook fees; no additional fee is subtracted."}if(p<=0n||d<=0n||d>ne||($??d)>ne)throw new i("Trade output or minimum is outside the supported positive range.");let re=f?{changes:[],summary:"Quote only; preview is required before sending."}:await a.preview(A,l),j=n-S;return{txs:A,changes:re.changes,summary:`${e?"Buy":"Sell"} ${y.symbol} (${y.address}) on chain ${w}. ${X} ${s.phase===0?`${Te} `:""}${j>0n?`Expected native refund: ${a.formatAmount(j.toString(),18)} ETH; minimum output uses the expected spend after refund. `:""}${re.summary}`,quote:{phase:s.phase,amountIn:T(N,n),amountOut:T(z,p),minAmountOut:T(z,d),minimumKind:"absolute",calldataMinAmountOut:T(z,$??d),expectedSpend:T(N,S),expectedRefund:T(N,j),fees:oe,blockNumber:c.number.toString()}}}function Ue(a){let o=new Map,l=e=>{if(BigInt(_())>=BigInt(e.expiresAt))throw new Y};return{name:"pons",async quote(e,f){e={...e,from:q(e.from),to:q(e.to)};let t=Z(e.from);if(t===Z(e.to))throw new W("Pons curve quotes require native ETH and a launch token.");let n=String(_()+le),u=await ye(a,{token:t?e.to:e.from,amountIn:e.amountIn,slippageBps:e.slippageBps??fe},f,t,!0),k=u.txs.at(-1),r=u.quote,c=r.minAmountOut.amount,s=r.fees,U=`Pons curve fees included in net output: ${s.base.amount} base, ${s.creator.amount} creator and ${s.snipe.amount} opening tax, in native ETH base units (18 decimals). Oak swap fee: 0 (venue fee is never Oak income). ${qe}`,x=he({...e,quoteId:`pons:${xe()}`,provider:"pons",wallet:f,chainId:w,router:k.to,spender:k.to,expiresAt:n,data:k.data,value:k.value,amountOut:r.amountOut.amount,minAmountOut:c,blockNumber:r.blockNumber,ponsCurveToken:t?e.to:e.from,calldataMinAmountOut:r.calldataMinAmountOut.amount,expectedSpend:r.expectedSpend.amount,expectedRefund:r.expectedRefund.amount,feeDisclosure:U,oakFee:"0"});ee(k,x),l(x);for(let[y,N]of o)BigInt(_())>=BigInt(N.quote.expiresAt)&&o.delete(y);for(;o.size>=be;)o.delete(o.keys().next().value);return o.set(x.quoteId,{quote:{...x},txs:u.txs.map(y=>({...y})),summary:u.summary}),x},async build(e,f){let t=o.get(e);if(!t)throw new Y;if(l(t.quote),D(f),f.toLowerCase()!==t.quote.wallet.toLowerCase())throw new i("Quote was issued for a different wallet.");let n=t.txs.map(r=>({...r}));ee(n.at(-1),t.quote);let u=await a.preview(n,f);if(l(t.quote),u.changes.filter(r=>q(r.token.address).toLowerCase()===q(t.quote.to).toLowerCase()).reduce((r,c)=>r+BigInt(c.amount),0n)<BigInt(t.quote.minAmountOut))throw new i("Preview retained output is below the accepted minimum.");return{txs:n,summary:`${t.summary} ${u.summary} ${t.quote.feeDisclosure}`}}}}var Oe=a=>({tools:[!0,!1].map(o=>({name:o?"pons_buy":"pons_sell",inputSchema:Be,async execute(l,e){try{return await ye(a,l,e,o)}catch(f){throw new i(a.plainError(f))}}}))}),ze=Oe;export{Ue as a,Oe as b,ze as c};
|