@oakagentkit/core 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.js +1 -1
- 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/deployments.d.ts +26 -0
- package/build/dist/api/deployments.js +1 -0
- package/build/dist/api/errors.js +1 -1
- package/build/dist/api/gas.js +1 -1
- package/build/dist/api/grandfather.js +1 -1
- package/build/dist/api/guards.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 +28 -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 +16 -0
- 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 +10 -2
- 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 +13 -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 +1 -14
- package/build/dist/api/pricing.js +1 -1
- package/build/dist/api/routes.d.ts +2 -0
- 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.js +1 -1
- 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 +61 -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 +6 -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 +2 -0
- package/build/dist/api/vendor-limits.js +1 -1
- package/build/dist/chunks/2EDXKJ3B.js +1 -0
- package/build/dist/chunks/2NA6JLEC.js +1 -0
- package/build/dist/chunks/2SNQWKHA.js +1 -0
- package/build/dist/chunks/3ACEWCKZ.js +1 -0
- package/build/dist/chunks/3CCBUYUM.js +1 -0
- package/build/dist/chunks/3RFSGU2Y.js +1 -0
- package/build/dist/chunks/46ZA2R5L.js +1 -0
- package/build/dist/chunks/4IPW5WZ4.js +1 -0
- package/build/dist/chunks/53N7PNJH.js +1 -0
- package/build/dist/chunks/55NX776C.js +1 -0
- package/build/dist/chunks/5EHQM6DM.js +1 -0
- package/build/dist/chunks/5FTSKYQH.js +1 -0
- package/build/dist/chunks/5HW6JKME.js +1 -0
- package/build/dist/chunks/5VXNQFYJ.js +1 -0
- package/build/dist/chunks/5XFXH2JT.js +1 -0
- package/build/dist/chunks/5YS5V2LK.js +1 -0
- package/build/dist/chunks/64AF7ECA.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/{A5ITAEUQ.js → 6IM6A5VA.js} +1 -1
- package/build/dist/chunks/6JCEJ66K.js +1 -0
- package/build/dist/chunks/6LLOTPH2.js +1 -0
- package/build/dist/chunks/6NR7SVRO.js +1 -0
- package/build/dist/chunks/6PU2CMQZ.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/7BTELNNI.js +1 -0
- package/build/dist/chunks/7LDAJ6BM.js +1 -0
- package/build/dist/chunks/7MR37STI.js +1 -0
- package/build/dist/chunks/7T4BYFD4.js +1 -0
- package/build/dist/chunks/7US6PD56.js +1 -0
- package/build/dist/chunks/7YU6DELJ.js +1 -0
- package/build/dist/chunks/7Z5IM2QZ.js +1 -0
- package/build/dist/chunks/A25P24G2.js +1 -0
- package/build/dist/chunks/AFHHRDPJ.js +1 -0
- package/build/dist/chunks/ANQ43XJA.js +1 -0
- package/build/dist/chunks/{UCMNB2UP.js → AXYOJBX6.js} +1 -1
- package/build/dist/chunks/AYM5L6L7.js +1 -0
- package/build/dist/chunks/BFVLBENV.js +1 -0
- package/build/dist/chunks/BV3AHLH5.js +1 -0
- package/build/dist/chunks/BXN3MDS4.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/CAU44UWP.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/{6SYTB6FB.js → D3OWLDVB.js} +1 -1
- package/build/dist/chunks/D6VP3N27.js +3 -0
- package/build/dist/chunks/DHXVYHT4.js +1 -0
- package/build/dist/chunks/DLIOZCEG.js +1 -0
- package/build/dist/chunks/EA6IYKIB.js +1 -0
- package/build/dist/chunks/EC5W3UZD.js +1 -0
- package/build/dist/chunks/{B4MLWDPM.js → EG6M6SSO.js} +1 -1
- package/build/dist/chunks/EVANKNJV.js +1 -0
- package/build/dist/chunks/EYYUWFUR.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/FSPNOVKB.js +1 -0
- package/build/dist/chunks/G4PDM3MX.js +1 -0
- package/build/dist/chunks/G7UKNO2I.js +1 -0
- package/build/dist/chunks/GHDDVBPK.js +1 -0
- package/build/dist/chunks/GSI5COTD.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/HFQS5344.js +1 -0
- package/build/dist/chunks/{Y3P6SUNL.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/HRG2VVPY.js +1 -0
- package/build/dist/chunks/IHGVCPVA.js +2 -0
- package/build/dist/chunks/ITV52TIE.js +1 -0
- package/build/dist/chunks/IUXOUKQN.js +1 -0
- package/build/dist/chunks/IWALIX7Q.js +1 -0
- package/build/dist/chunks/JC4SYMBV.js +18 -0
- package/build/dist/chunks/JREVERSC.js +1 -0
- package/build/dist/chunks/JRO6WTK4.js +1 -0
- package/build/dist/chunks/JRVTSGAT.js +1 -0
- package/build/dist/chunks/K463HFGC.js +1 -0
- package/build/dist/chunks/KQFDLDHL.js +1 -0
- package/build/dist/chunks/L24EOVLT.js +1 -0
- package/build/dist/chunks/LBEMCOND.js +1 -0
- package/build/dist/chunks/LI7FYINH.js +1 -0
- package/build/dist/chunks/MRWCFTMS.js +1 -0
- package/build/dist/chunks/MYBDO5SA.js +1 -0
- package/build/dist/chunks/N6RL3SUZ.js +1 -0
- package/build/dist/chunks/N77ANGBT.js +1 -0
- package/build/dist/chunks/{SJ7HDRI4.js → NBRMUFJP.js} +1 -1
- package/build/dist/chunks/NCQFWPAW.js +1 -0
- package/build/dist/chunks/NHCRJC5X.js +1 -0
- package/build/dist/chunks/NIOBE2LK.js +1 -0
- package/build/dist/chunks/NMFVXBTL.js +1 -0
- package/build/dist/chunks/NO57NGRV.js +1 -0
- package/build/dist/chunks/O47JXRXN.js +1 -0
- package/build/dist/chunks/O5SU2I3G.js +1 -0
- package/build/dist/chunks/{GIBF3YJO.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/OW7GOYKA.js +1 -0
- package/build/dist/chunks/P4UQGWCP.js +1 -0
- package/build/dist/chunks/PJ65ZOQ7.js +1 -0
- package/build/dist/chunks/Q2VMH2LB.js +1 -0
- package/build/dist/chunks/QCD33HMD.js +1 -0
- package/build/dist/chunks/QHHZDXRG.js +1 -0
- package/build/dist/chunks/QNPEKNWM.js +1 -0
- package/build/dist/chunks/QQWF6A4P.js +1 -0
- package/build/dist/chunks/QRUC7EFE.js +1 -0
- package/build/dist/chunks/QYKXWBZC.js +1 -0
- package/build/dist/chunks/QZM7CWZW.js +1 -0
- package/build/dist/chunks/QZTUMSQY.js +1 -0
- package/build/dist/chunks/R7D256HG.js +1 -0
- package/build/dist/chunks/RETS2ZEK.js +1 -0
- package/build/dist/chunks/RFJCG4NA.js +1 -0
- package/build/dist/chunks/RRSODRGT.js +1 -0
- package/build/dist/chunks/RTBOMWCB.js +1 -0
- package/build/dist/chunks/SDICP7BT.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/SXX52Y27.js +1 -0
- package/build/dist/chunks/T3NPRRTY.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/TNRDCBGO.js +1 -0
- package/build/dist/chunks/TRCP7X5P.js +1 -0
- package/build/dist/chunks/TWR7BF72.js +1 -0
- package/build/dist/chunks/U3FMCX3L.js +1 -0
- package/build/dist/chunks/UIIJWIR6.js +1 -0
- package/build/dist/chunks/UMK564HS.js +1 -0
- package/build/dist/chunks/UPPYXY74.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/{GDP4JSAX.js → VJ3W2V3B.js} +1 -1
- package/build/dist/chunks/{BOFA26WU.js → VXLJRRKV.js} +1 -1
- package/build/dist/chunks/VY3P34PY.js +1 -0
- package/build/dist/chunks/WCKMQFGS.js +1117 -0
- package/build/dist/chunks/WDGPCPQJ.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/XKRWJCYE.js +1 -0
- 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/Y2IWPNEW.js +1 -0
- package/build/dist/chunks/YHPOXAKA.js +1 -0
- package/build/dist/chunks/YR3QJVJQ.js +1 -0
- package/build/dist/chunks/ZCGVBK5K.js +1 -0
- package/build/dist/chunks/ZGXNTWYG.js +1 -0
- package/build/dist/chunks/ZPM2MFXZ.js +1 -0
- package/build/dist/chunks/ZT67OMLW.js +1 -0
- package/build/dist/chunks/ZYR5LSVB.js +1 -0
- package/package.json +13 -9
- package/build/dist/chunks/2IRORNOH.js +0 -1
- package/build/dist/chunks/3PA2XT75.js +0 -1
- package/build/dist/chunks/52TGAWSI.js +0 -1
- package/build/dist/chunks/66DWJWDA.js +0 -1
- package/build/dist/chunks/73EABRFC.js +0 -1
- package/build/dist/chunks/A5KSG6LW.js +0 -1
- package/build/dist/chunks/B4FOHEBE.js +0 -1
- package/build/dist/chunks/BHR46XNW.js +0 -3
- package/build/dist/chunks/CQNZWL7F.js +0 -1
- package/build/dist/chunks/GN4QZ4JA.js +0 -1
- package/build/dist/chunks/I5CQ64EU.js +0 -1
- package/build/dist/chunks/ICCJ3TOO.js +0 -1
- package/build/dist/chunks/KL5YE7JA.js +0 -1
- package/build/dist/chunks/KVVTKM6E.js +0 -1
- package/build/dist/chunks/M6JGTQRY.js +0 -1
- package/build/dist/chunks/MK6L6TGI.js +0 -1
- package/build/dist/chunks/MOVRI5IV.js +0 -1
- package/build/dist/chunks/NA7HV7BR.js +0 -1
- package/build/dist/chunks/NGAI6GTU.js +0 -1
- package/build/dist/chunks/OBX7IZG5.js +0 -1
- package/build/dist/chunks/OSQ4AAM2.js +0 -2
- package/build/dist/chunks/OWEUVFB6.js +0 -1
- package/build/dist/chunks/P4G3EKF7.js +0 -1
- package/build/dist/chunks/QGDHMVPE.js +0 -1
- package/build/dist/chunks/SPAKOCR7.js +0 -1
- package/build/dist/chunks/T6O2L6HF.js +0 -1
- package/build/dist/chunks/TEVKPJV5.js +0 -1
- package/build/dist/chunks/YX4NVVSX.js +0 -1
- package/build/dist/chunks/ZUC6ILK2.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as R,s as g}from"./XPFVT2EA.js";import{a as w}from"./5YS5V2LK.js";import{isDeepStrictEqual as b}from"node:util";import{isAddress as x}from"viem";var O=2592e3,v=1n<<128n,m=new Set(["order","offer","link","consent"]),y=new Set(["order","offer","consent"]),E=new Set(["order","offer","link"]),I=3600,S=1e11;function l(e){return new w(`Local signing guard: ${e}; nothing was signed.`)}var V=e=>m.has(e.class);function T(e,r){let t=new Map,n=(s,a,o)=>{let u=e[s];if(!u||o>8)throw l("typed-data types changed");for(let c of u){let f=c.type.replace(/(\[[0-9]*\])+$/,""),i=`${a}${c.name}${c.type===f?"":"[]"}`;e[f]?n(f,`${i}.`,o+1):t.set(i,c.type)}};return n(r,"",0),t}function N(e,r){let t=new Set,n=s=>{if(!(t.has(s)||!e[s])){t.add(s);for(let a of e[s])n(a.type.replace(/(\[[0-9]*\])+$/,""))}};return n(r),t}function A(e=[]){let r=new Set(e.map(n=>n.toLowerCase())),t=(n,s)=>{if(!(s>12)){if(typeof n=="string"){x(n,{strict:!1})&&r.add(n.toLowerCase());return}if(n&&typeof n=="object")for(let a of Object.values(n))t(a,s+1)}};return t(R,0),t(g,0),r}function j(e,r=A()){let t=[],n=(i,d)=>t.push(`${i} ${e.id}: ${d}`),s=Object.entries(e.fields),a=i=>s.filter(([,d])=>d.role===i),o=i=>s.filter(([,d])=>d.role==="derived"&&d.yields?.includes(i)).length;["order","cancel","link","offer","consent","auth","relayed"].includes(e.class)||n("R5","unknown signature class; link-accept is a display role only"),e.expiryBinding&&!["signed","program-link","auth-window","cancel-only"].includes(e.expiryBinding)&&n("R5","unknown expiry binding"),(!e.id||!/^[a-z0-9]+(?:[.-][a-z0-9]+)+$/.test(e.id))&&n("ID","id must be dotted lower-case"),(!e.tools.length||new Set(e.tools).size!==e.tools.length)&&n("ID","tools must be a non-empty unique list");let u=e.network==="testnet"?g.testnet.chainId:g.mainnet.chainId;if(e.encoding==="eip712"){let i=e.domain;i?(Object.hasOwn(i,"salt")&&n("R1","domain must not carry a salt"),i.name||n("R1","domain name is missing"),!i.version&&e.class!=="relayed"&&n("R1","domain version is missing"),i.chainId!==u&&n("R1",`domain chain must be ${u}`),i.verifyingContract?r.has(i.verifyingContract.toLowerCase())||n("R1","verifying contract is not a pinned address"):e.class!=="cancel"&&e.class!=="auth"&&n("R1","verifying contract is missing")):n("R1","EIP-712 spec has no domain")}else e.domain&&n("R1","only EIP-712 specs carry a domain");if(e.encoding==="eip191-packed-hash"){let i=a("pinned").map(([,d])=>d.value);i.some(d=>d===u||d===String(u))||n("R1","packed layout must pin the chain id"),i.some(d=>typeof d=="string"&&r.has(d.toLowerCase()))||n("R1","packed layout must pin the verifying contract")}let c=new Map,f=e.class==="relayed"&&!Object.keys(e.types).length;if(e.encoding==="eip712"&&!f){Object.hasOwn(e.types,"EIP712Domain")&&n("R2","types must never carry EIP712Domain");try{c=T(e.types,e.primaryType);let i=N(e.types,e.primaryType);for(let d of Object.keys(e.types))i.has(d)||n("R2",`type ${d} is not reachable from ${e.primaryType}`)}catch{n("R2",`types do not resolve from ${e.primaryType}`)}for(let i of c.keys())Object.hasOwn(e.fields,i)||n("R3",`message path ${i} has no role`);for(let[i]of s)c.has(i)||n("R3",`declared field ${i} is not in the typed struct`)}else e.encoding!=="eip712"&&Object.keys(e.types).length&&n("R2","only EIP-712 specs carry types");for(let[i,d]of s)(!d.meaning||d.meaning.length>160)&&n("R3",`field ${i} needs a plain-English meaning`);(e.class==="order"||e.class==="offer")&&!s.some(([,i])=>i.role==="amount"&&i.side==="out")&&!o("amount-out")&&n("R4",`${e.class} must show the most that can leave`);for(let[i,d]of s){if(d.role==="amount"||d.role==="fee"){let h=d.token;(x(h,{strict:!1})?r.has(h.toLowerCase()):e.fields[h]?.role==="token")||n("R4",`amount ${i} does not name a token field or a pinned token`)}c.get(i)==="bytes"&&d.role!=="pinned"&&d.role!=="derived"&&n("R4",`bytes field ${i} must be pinned or derived`)}if(e.maxLifetimeSeconds>0&&e.maxLifetimeSeconds<=O||n("R5","maxLifetimeSeconds must be within 30 days"),y.has(e.class)){let i=a("expiry").length+o("expiry");i!==1&&n("R5",`${e.class} needs exactly one expiry (found ${i})`),e.expiry&&n("R5","API-only expiry is not a signed expiry"),e.expiryBinding&&e.expiryBinding!=="signed"&&n("R5",`${e.class} requires signed expiry`)}if(e.expiryBinding==="program-link"&&e.class!=="link"&&n("R5","only link can use program-link"),e.class==="link"&&e.expiryBinding!=="program-link"&&a("expiry").length+o("expiry")!==1&&n("R5","link needs signed expiry or program-link binding"),e.expiryBinding==="auth-window"){let i=e.authWindow;(e.class!=="auth"||!i||!c.has(i.field)||!Number.isSafeInteger(i.maxAgeSeconds)||i.maxAgeSeconds<=0||i.maxAgeSeconds>e.maxLifetimeSeconds||!Number.isSafeInteger(i.maxFutureSeconds)||i.maxFutureSeconds<0||i.maxFutureSeconds>e.maxLifetimeSeconds)&&n("R5","auth-window needs a signed timestamp and pinned acceptance window")}else e.authWindow&&n("R5","authWindow requires auth-window binding");return e.expiryBinding==="cancel-only"&&(e.class!=="cancel"||!a("nonce").length&&!o("nonce")&&!e.revoke?.staysExecutableUntilExpiry)&&n("R5","cancel-only needs a single-use nonce or targeted non-revoking hide"),(e.class==="auth"||e.class==="cancel")&&(s.some(([,i])=>i.role==="amount"&&i.side==="out")||o("amount-out"))&&n("R4","auth and cancel cannot grant spending authority"),E.has(e.class)&&!(e.revoke?.onchainTool||e.revoke?.offchainSpec)&&!(e.revoke?.none&&e.maxLifetimeSeconds<=I)&&n("R6",`${e.class} needs a revocation path (only a one-shot approval of at most one hour may declare none)`),e.submit.by==="addon"&&(!/^[a-z0-9-]+(\.[a-z0-9-]+)+$/.test(e.submit.host)||!/^\/[A-Za-z0-9/_.-]*$/.test(e.submit.path))&&n("R9","add-on submission needs a bare HTTPS host and a fixed path"),e.submit.by==="server-continuation"&&!e.submit.reason&&n("R9","server-continuation needs its recorded reason"),e.submit.by==="transaction"&&e.class!=="relayed"&&e.class!=="consent"&&n("R9","only relayed and consent signatures are consumed by a transaction"),(!/^[A-Za-z0-9 .'-]{1,40}$/.test(e.program)||!/^[A-Za-z0-9 .'-]{1,60}$/.test(e.purpose))&&n("R10","program and purpose must be short constant text"),m.has(e.class)&&!e.requireHuman&&!e.humanException&&n("C13",`${e.class} must require a human`),!m.has(e.class)&&e.humanException&&n("C13","only a value class can name a human exception"),e.relayedPaths&&e.class!=="relayed"&&n("ID","only relayed specs accept caller signatures"),e.enabled===!1&&!e.disabledReason&&n("ID","a disabled spec states why"),t}function z(e,r=A()){let t=e.filter(a=>a.enabled!==!1).flatMap(a=>j(a,r)),n=new Set,s=new Set;for(let a of e){n.has(a.id)&&t.push(`ID ${a.id}: duplicate spec id`),n.add(a.id);let o=C(a);s.has(o)&&t.push(`ID ${a.id}: another spec already covers ${o}`),s.add(o)}return t}function C(e){return`${e.network??"mainnet"}:${e.encoding}:${(e.domain?.verifyingContract??"-").toLowerCase()}:${e.primaryType}`}function k(e,r,t,n,s){let a=r.replace(/(\[[0-9]*\])+$/,"");if(a!==r){if(!Array.isArray(t))throw l(`message field ${n||r} is not declared`);for(let i of t)k(e,r.replace(/\[[0-9]*\]$/,""),i,`${n}[]`,s+1);return}let o=e[a];if(!o)return;if(s>8||!t||typeof t!="object"||Array.isArray(t))throw l(`message field ${n||r} is not declared`);let u=Object.keys(t),c=o.map(i=>i.name);if(u.find(i=>!c.includes(i))!==void 0)throw l(`an undeclared message field${n?` under ${n}`:""} is present`);for(let i of o){if(!Object.hasOwn(t,i.name))throw l(`message field ${n?`${n}.`:""}${i.name} is missing`);k(e,i.type,t[i.name],`${n?`${n}.`:""}${i.name}`,s+1)}}function W(e,r){if(e.encoding!=="eip712"||!e.domain)throw l("Oak has no signing contract for this request");if(!r||typeof r!="object"||!r.domain||typeof r.domain!="object")throw l("domain, chain or verifying contract is not the pinned one");let t=Object.fromEntries(Object.entries(e.domain).filter(([,n])=>n!==void 0));if(!b(Object.keys(r.domain).sort(),Object.keys(t).sort())||!b({...r.domain},t))throw l("domain, chain or verifying contract is not the pinned one");if(!r.types||typeof r.types!="object"||Object.hasOwn(r.types,"EIP712Domain")||!b(r.types,e.types)||r.primaryType!==e.primaryType)throw l("typed-data types changed");k(e.types,e.primaryType,r.message,"",0)}function p(e,r){let t=e;for(let n of r.split(".")){if(n.endsWith("[]")||!t||typeof t!="object"||Array.isArray(t))return;t=t[n]}return t}var $=e=>typeof e=="string"?e:typeof e=="number"||typeof e=="bigint"?String(e):void 0;function D(e,r){let t={},n=s=>x(s,{strict:!1})?s:$(p(r,s));for(let[s,a]of Object.entries(e.fields)){let o=$(p(r,s));if(o!==void 0)switch(a.role){case"signer":t.signer=o;break;case"account":t.account=o;break;case"recipient":t.recipient=o;break;case"delegate":t.delegate=o;break;case"counterparty":t.counterparty=o;break;case"token":a.side==="out"?t.tokenOut=o:t.tokenIn=o;break;case"amount":a.side==="out"?(t.amountOut=o,t.tokenOut??=n(a.token)):(t.minAmountIn=o,t.tokenIn??=n(a.token));break;case"fee":(t.fees??=[]).push({token:n(a.token)??a.token,value:o});break;case"expiry":t.expiry=/^[0-9]+$/.test(o)?Number(o):Number.NaN;break;case"nonce":t.nonce=o;break;default:break}}return t}function L(e,r,t){let n=Math.min(e.maxLifetimeSeconds,O),s=y.has(e.class)||e.humanException?60:1;if(!Number.isSafeInteger(t)||t<0||!Number.isFinite(n)||n<=0||r===void 0||!Number.isSafeInteger(r)||r<=0||r>=S||r<t+s||r>t+n)throw l(`expiry is missing, past or beyond ${n>=86400?`${Math.floor(n/86400)} days`:`${Math.ceil(n/60)} minutes`}`)}function U(e,r,t,n){if(e.enabled===!1)throw l("Oak has no signing contract for this request");if(!Number.isSafeInteger(t)||t<0||t>=S)throw l("signing time is unavailable");if(e.expiryBinding==="auth-window"){let o=e.authWindow,u=o&&p(r,o.field),c=typeof u=="number"?u:typeof u=="string"&&/^[0-9]+$/.test(u)?Number(u):NaN;if(e.class!=="auth"||!o||!Number.isSafeInteger(c)||c<=0||c>=S||c<t-o.maxAgeSeconds||c>t+o.maxFutureSeconds)throw l("authentication time is outside the pinned window");return c+o.maxAgeSeconds}if(e.expiryBinding==="cancel-only"){if(e.class!=="cancel")throw l("Oak has no signing contract for this request");return n}if(e.expiryBinding==="program-link")throw l("program link authority is not configured");if(y.has(e.class)&&(e.expiry||e.expiryBinding&&e.expiryBinding!=="signed"))throw l("order expiry must be signed");let s=D(e,r).expiry??n,a=Object.values(e.fields).some(o=>o.role==="expiry"||o.role==="derived"&&o.yields?.includes("expiry"));if(y.has(e.class)&&!a)throw l("order expiry must be signed");return(a||m.has(e.class))&&L(e,s,t),s}function H(e){if(e===void 0||!/^[0-9]{1,78}$/.test(e))throw l("open-ended or out-of-range amount");let r=BigInt(e);if(r<=0n||r>=v)throw l("open-ended or out-of-range amount");return r}function J(e,r){return Object.entries(e.fields).map(([t,n])=>{let s=t.includes("[]")?"(each item, listed below)":p(r,t),a=typeof s=="object"&&s!==null?JSON.stringify(s):String(s);a.length>200&&(a=`${a.slice(0,200)}\u2026`);let o=JSON.stringify(a).replace(/[\u007f-\u009f\u2028\u2029\u202a-\u202e\u2066-\u2069]/g,u=>`\\u${u.charCodeAt(0).toString(16).padStart(4,"0")}`);return`${t} = ${o} - ${n.meaning}`})}export{O as a,v as b,m as c,l as d,V as e,T as f,A as g,j as h,z as i,C as j,W as k,p as l,D as m,L as n,U as o,H as p,J as q};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as T}from"./6IM6A5VA.js";import{a as C}from"./UWOFA6GV.js";import{g as k,m as I,n as _}from"./73N3TOJL.js";import{a as u,i as G,j as N}from"./XPFVT2EA.js";import{a as n}from"./5YS5V2LK.js";import{encodeFunctionData as w,erc20Abi as R,getAddress as D,parseAbi as z}from"viem";var d=D(G[u].vaults.spark.address),l={address:D(N),symbol:"USDG",decimals:6,chainId:u},E={address:d,symbol:"spUSDG",decimals:6,chainId:u},m=z(["function asset() view returns (address)","function decimals() view returns (uint8)","function maxMint(address) view returns (uint256)","function maxRedeem(address) view returns (uint256)","function maxDeposit(address) view returns (uint256)","function previewMint(uint256) view returns (uint256)","function previewRedeem(uint256) view returns (uint256)","function previewDeposit(uint256) view returns (uint256)","function mint(uint256 shares,address receiver) returns (uint256)","function mint(uint256 shares,address receiver,uint16 referral) returns (uint256)","function deposit(uint256 assets,address receiver,uint16 referral) returns (uint256)","function redeem(uint256 shares,address receiver,address owner) returns (uint256)"]),Q=C("Positive decimal base-unit integer; USDG and spUSDG both have 6 decimals."),J={type:"integer",minimum:0,maximum:65535};function M(s){return _(s,"Amount must be positive and fit uint256.",{notString:"Amount must be a positive base-unit integer string.",positive:!0})}function j(s){return I(s,"Invalid Spark integer read.")}function Z(s){return["mint","redeem","deposit_referral","return_liquidity"].map(r=>{let t=r==="mint",a=r==="redeem",h=r==="deposit_referral",x=t?["shares","maxAssets","referral"]:a?["shares"]:h?["amount","referral"]:["amount"],O=t?["shares","maxAssets"]:a?["shares"]:h?["amount","referral"]:["amount"];return{name:`spark_${r}`,inputSchema:{type:"object",additionalProperties:!1,required:O,properties:Object.fromEntries(x.map(c=>[c,c==="referral"?J:Q]))},execute:async(c,o)=>{try{if(T(o),Object.keys(c).some(p=>!x.includes(p)))throw new n("Unexpected Spark action argument.");let e=M(c[t||a?"shares":"amount"]),P=t?M(c.maxAssets):void 0,i=c.referral;if((h||i!==void 0)&&(typeof i!="number"||!Number.isInteger(i)||i<0||i>65535))throw new n("Referral must be a uint16 integer.");let f=s.clientFor(u);if(await f.getChainId()!==u)throw new n("Spark requires chain 4663.");let[q,B,F]=await Promise.all([f.readContract({address:d,abi:m,functionName:"asset"}),f.readContract({address:d,abi:m,functionName:"decimals"}),f.readContract({address:l.address,abi:R,functionName:"decimals"})]);if(typeof q!="string"||D(q)!==l.address||B!==6||F!==6)throw new n("Spark requires the pinned USDG/share metadata.");let v=r==="return_liquidity"?e:j(await f.readContract({address:d,abi:m,functionName:t?"previewMint":a?"previewRedeem":"previewDeposit",args:[e]}));if(v===0n)throw new n("Spark returned a zero action quote.");if(r!=="return_liquidity"){let p=j(await f.readContract({address:d,abi:m,functionName:t?"maxMint":a?"maxRedeem":"maxDeposit",args:[o]}));if(e>p)throw new n("The amount exceeds Spark\u2019s current action capacity.")}if(t&&v>P)throw new n("The mint quote exceeds maxAssets.");let U=t?v:e,H=t?i===void 0?w({abi:m,functionName:"mint",args:[e,o]}):w({abi:m,functionName:"mint",args:[e,o,i]}):a?w({abi:m,functionName:"redeem",args:[e,o,o]}):h?w({abi:m,functionName:"deposit",args:[e,o,i]}):w({abi:R,functionName:"transfer",args:[d,e]}),A=`${r} ${e} ${t||a?"spUSDG share":"USDG asset"} base units; ${r==="return_liquidity"?`USDG goes to ${d}, with no shares minted`:`beneficiary ${o}`}${i===void 0?"":`; event-only referral ${i}`}.`,$=[...t||h?[s.approval(l.address,d,U.toString(),u)]:[],s.unsignedTx({to:r==="return_liquidity"?l.address:d,data:H,value:"0",chainId:u,description:A})],g=await s.preview($,o),S=p=>g.changes.filter(b=>b.token.chainId===u&&k(b.token.address,p.address)).reduce((b,y)=>{if(y.token.decimals!==p.decimals||!/^-?\d+$/.test(y.amount))throw new n("Invalid Spark preview metadata.");return b+BigInt(y.amount)},0n);if(a?S(E)!==-e||S(l)<=0n:S(l)!==-U||r!=="return_liquidity"&&S(E)<(t?e:1n))throw new n("Spark preview does not match the requested outflow and receipt.");return{txs:$,preview:g,summary:`${A} Quoted ${v} ${a?"USDG asset":t||r==="return_liquidity"?"USDG input":"spUSDG share"} base units. ${g.summary} Standard ERC-4626 encodes no output minimum; the exact mint approval can become insufficient as interest accrues. Re-preview before signing.`}}catch(e){throw new n(s.plainError(e))}}}})}export{Z as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m}from"./
|
|
1
|
+
import{a as m}from"./RETS2ZEK.js";import{a as i}from"./5YS5V2LK.js";import{encodeFunctionData as d,erc20Abi as f,isAddress as g,parseAbi as h}from"viem";var p=h(["function deposit(uint256 assets,address receiver) returns (uint256 shares)","function redeem(uint256 shares,address receiver,address owner) returns (uint256 assets)"]),l=(1n<<256n)-1n;function a(e){if(typeof e!="string"||!g(e,{strict:!1}))throw new i("Provide a valid contract or wallet address.")}function o(e){let t=m(e);if(t>l)throw new i("Amount exceeds the uint256 range.");return t}function u(e){a(e.to);let t=e.chainId??4663;if(!Number.isSafeInteger(t)||t<=0)throw new i("Provide a positive integer chain ID.");if(typeof e.data!="string"||!/^0x([0-9a-fA-F]{2})*$/.test(e.data))throw new i("Transaction data must be hex-encoded bytes.");if(typeof e.description!="string"||!e.description.trim())throw new i("Provide a transaction description.");return{to:e.to,data:e.data,value:o(e.value).toString(),chainId:t,description:e.description}}function A(e,t,s,r=4663){a(t);let n=o(s);return u({to:e,data:d({abi:f,functionName:"approve",args:[t,n]}),value:"0",chainId:r,description:`Approve ${n} token base units for ${t}.`})}function w(e,t,s,r,n=4663){a(r);let c=o(s);return{txs:[A(t,e,s,n),u({to:e,data:d({abi:p,functionName:"deposit",args:[c,r]}),value:"0",chainId:n,description:`Deposit ${c} asset base units into ${e}.`})],summary:"Approve the exact asset amount, then deposit into the vault."}}function y(e,t,s,r=4663){a(s);let n=o(t);return{txs:[u({to:e,data:d({abi:p,functionName:"redeem",args:[n,s,s]}),value:"0",chainId:r,description:`Redeem the full ${n} share base units from ${e}.`})],summary:"Redeem the supplied full share balance to the wallet."}}export{a,u as b,A as c,w as d,y as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{parseAbi as t}from"viem";var i={staking:"0xe0710011278bfb63e57c5f227e5980984b1eddca",orbio:"0xaa07a0e9209e16ac99708c3ec70159c6ef3128a3",agentVault:"0x0e1651aec67b2a049a4fa6aeb6c1c305aabfc35b",payout:"0x4cbbbf652b11ed1294df0ac49d8322394310cfc5"},e=["BudgetSpent","LiquidityExhausted","UnitUnaffordable","WorkLimit"],u=t(["function getQuote(uint256 usdgIn, uint256 maxFills) view returns (uint256 creditOut, uint256 usdgSpent, uint256 feeAtoms, uint256 fills, uint256 reason)","function getActivationQuote(uint256 usdgIn, uint256 maxFills) view returns (uint256 creditOut, uint256 usdgSpent, uint256 feeAtoms, uint256 fills, uint256 reason, uint256 creditedAtoms, uint256 activationFeeAtoms)","function buy(uint256 usdgIn, uint256 minCreditOut, address recipient, uint256 maxFills) returns (uint256 creditOut, uint256 usdgSpent)","function buyAndActivate(uint256 usdgIn, uint256 minCreditOut, bytes32 beneficiary, uint256 maxFills) returns (uint256 creditOut, uint256 usdgSpent, uint256 activationId)"]),s=t(["function activate(uint256 amount) returns (uint256 activationId)","function activate(uint256 amount, bytes32 beneficiary) returns (uint256 activationId)","function previewActivation(uint256 amount) view returns (uint256 credited, uint256 feeAtoms)","function activationFeeBps() view returns (uint16)","function transfer(address to, uint256 amount) returns (bool)"]),a=t(["event Activated(uint256 indexed activationId, address indexed from, bytes32 indexed beneficiary, uint256 amount)","event ActivationFeeCharged(uint256 indexed activationId, uint256 feeAtoms)"]),r=t(["function stake(uint256 orbioWei)","function unstake(uint256 orbioWei) returns (uint256 positionWei)","function claim() returns (uint256 creditMinted)","function positionOf(address account) view returns (uint256 orbioWei)","function settledOf(address account) view returns (uint256 creditAtoms)","function MIN_POSITION() view returns (uint256)"]),o=t(["struct Socials { string twitter; string telegram; string discord; string website; string farcaster; }","struct TokenParams { string name; string symbol; string logo; string description; Socials socials; address creatorFeeRecipient; uint16 creatorTaxBps; bool buybackEnabled; bytes32 expectedEconomics; bytes32 salt; }","function launch(TokenParams params, address agentWallet) payable returns (uint256 agentId, address token)","function claimCredit(uint256 agentId, bool activate) returns (uint256 creditAtoms)","function harvest(uint256[] agentIds) returns (uint256 stakedWei)","function withdrawPrincipal(uint256 agentId, uint256 orbioWei)","function setAgentWallet(uint256 agentId, address wallet)","function stakeOf(uint256 agentId) view returns (uint256 orbioWei)","function unlocksAt(uint256 agentId) view returns (uint64)","function nextAgentId() view returns (uint256)","event AgentLaunched(uint256 indexed agentId, address indexed token, address indexed owner, address receiver, address agentWallet, bytes32 beneficiary, uint16 feeBps, uint64 launchedAt)"]);export{i as a,e as b,u as c,s as d,a as e,r as f,o as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as ee}from"./HQVC6X3T.js";import{a as B}from"./VJ3W2V3B.js";import{a as q}from"./EG6M6SSO.js";import{c as J,d as X,j as Y,l as Z}from"./73N3TOJL.js";import{a as w,i as G}from"./XPFVT2EA.js";import{a as f}from"./5YS5V2LK.js";import{a as Q}from"./JXOEJPJ4.js";import{encodeAbiParameters as de,encodeFunctionData as N,erc20Abi as ne,keccak256 as ue,parseAbi as oe,zeroAddress as le}from"viem";var s=oe(["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 buybackVault() 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 balanceOfToken(address account,address token) 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)","function releasable(address token) view returns (uint256)","function vestedAmount(address token) view returns (uint256)"]),h=oe(["function sweepFees(uint256 minBuybackTokensOut)","function sweepPoolFees(bytes32 poolId,uint256 minConversionQuoteOut,uint256 minBuybackTokensOut)","function claim()","function claimToken(address token)","function release(address token)","error InternalSwapRequiresOperator()"]),ae={address:B,chainId:w,symbol:"ETH",decimals:18},te=G[w].pons;function c(o){let d=Y(o,"Provide a valid Pons coin address.",X);return Z(d,"Provide a nonzero Pons coin or contract address.")}function pe(o){let d=new Set;for(;o&&typeof o=="object"&&!d.has(o)&&d.size<16;){d.add(o);let l=o;if(l.data==="0x31cdb504"||l.data&&typeof l.data=="object"&&l.data.errorName==="InternalSwapRequiresOperator")return!0;o=l.cause}return!1}async function fe(o,d,l,k=!1,t){let i=c(d),b=c(l),e=o.clientFor(w);if(t===void 0&&await e.getChainId()!==w)throw new f(`Pons claims require chain ${w}.`);let n=t??await e.getBlockNumber(),[R,se]=await Promise.all([e.readContract({address:i,abi:s,functionName:"launchFactory",blockNumber:n}),e.readContract({address:i,abi:s,functionName:"curve",blockNumber:n})]),P=c(te.factory.address);if(c(R)!==P)throw new f("The coin must belong to the pinned Pons factory.");let y=c(se),[r,re,ie]=await Promise.all([e.readContract({address:P,abi:s,functionName:"getLaunchedToken",args:[i],blockNumber:n}),e.readContract({address:y,abi:s,functionName:"factory",blockNumber:n}),e.readContract({address:y,abi:s,functionName:"feeEscrow",blockNumber:n})]);if(!r.exists||c(r.token)!==i||c(r.curve)!==y||c(re)!==P)throw new f("The coin does not resolve to a consistent Pons launch.");if(r.phase<0||r.phase>3)throw new f("This Pons launch phase is unsupported.");let H=c(r.creatorFeeRecipient),A=H===b;if(k&&!A)throw new f("Only the current creator fee recipient can claim these fees. Use the recipient wallet or Safe.");let g=r.pairToken.toLowerCase(),S=g===le,m=c(ie),M=async a=>{let[u,p]=await Promise.all([e.readContract({address:a,abi:ne,functionName:"symbol",blockNumber:n}),e.readContract({address:a,abi:ne,functionName:"decimals",blockNumber:n})]);return{address:a,chainId:w,symbol:Q(u),decimals:p}},[v,T,_,j,$]=await Promise.all([M(i),S?ae:M(g),e.readContract({address:m,abi:s,functionName:"balanceOf",args:[b],blockNumber:n}),S?0n:e.readContract({address:m,abi:s,functionName:"balanceOfToken",args:[b,g],blockNumber:n}),e.readContract({address:m,abi:s,functionName:"balanceOfToken",args:[b,i],blockNumber:n})]),x=[],F=[],E,C=(a,u,p)=>o.unsignedTx({to:a,data:u,value:"0",chainId:w,description:p});if(r.phase===0){let[a,u]=await Promise.all([e.readContract({address:y,abi:s,functionName:"quoteFeeBalance",blockNumber:n}),e.readContract({address:y,abi:s,functionName:"creatorTaxBalance",blockNumber:n})]);a+u>0n&&(F.push({token:T,amount:(a+u).toString()}),r.buybackEnabled?E="buyback":A&&(await e.simulateContract({address:y,abi:h,functionName:"sweepFees",args:[0n],account:b,gas:q,blockNumber:n}),x.push(C(y,N({abi:h,functionName:"sweepFees",args:[0n]}),`Sweep ${T.symbol} curve fees into the recipient escrow.`))))}else if(r.phase===2){let a=c(await e.readContract({address:P,abi:s,functionName:"memeHook",blockNumber:n})),u=ee(g,i,r.poolFee,r.tickSpacing),p=ue(de([{type:"address"},{type:"address"},{type:"uint24"},{type:"int24"},{type:"address"}],[u.currency0,u.currency1,r.poolFee,r.tickSpacing,a])),[V,z,W,U]=await Promise.all([e.readContract({address:a,abi:s,functionName:"pendingFees",args:[p,g],blockNumber:n}),e.readContract({address:a,abi:s,functionName:"pendingCreatorTax",args:[p,g],blockNumber:n}),e.readContract({address:a,abi:s,functionName:"pendingFees",args:[p,i],blockNumber:n}),e.readContract({address:a,abi:s,functionName:"pendingCreatorTax",args:[p,i],blockNumber:n})]);if(V+z>0n&&F.push({token:T,amount:(V+z).toString()}),W+U>0n&&F.push({token:v,amount:(W+U).toString()}),F.length)if(r.buybackEnabled)E="buyback";else if(A)try{await e.simulateContract({address:a,abi:h,functionName:"sweepPoolFees",args:[p,0n,0n],account:b,gas:q,blockNumber:n}),x.push(C(a,N({abi:h,functionName:"sweepPoolFees",args:[p,0n,0n]}),`Sweep ${T.symbol} pool fees into the recipient escrow.`))}catch(K){if(!pe(K))throw K;E="conversion"}else W+U>0n&&(E="conversion")}let I=0n,L=0n,D;if(r.buybackEnabled||$>0n||A){let a=c(await e.readContract({address:P,abi:s,functionName:"buybackVault",blockNumber:n}));if(a===c(te.buybackVault.address)){let[u,p,V]=await Promise.all([e.readContract({address:a,abi:s,functionName:"feeEscrow",blockNumber:n}),e.readContract({address:a,abi:s,functionName:"releasable",args:[i],blockNumber:n}),e.readContract({address:a,abi:s,functionName:"vestedAmount",args:[i],blockNumber:n})]);if(c(u)!==m)throw new f("The Pons buyback vault credits a different escrow than this coin.");[D,I,L]=[a,p,V]}else if(k)throw new f("The Pons factory reports a buyback vault outside the pinned deployment.")}let O=[...x];if(k){I>0n&&O.push(C(D,N({abi:h,functionName:"release",args:[i]}),`Release the vested ${v.symbol} buyback into the recipient escrow.`));let a=S&&x.length>0,u=!S&&x.length>0;(_>0n||a)&&O.push(C(m,N({abi:h,functionName:"claim"}),"Claim the caller\u2019s full native ETH escrow balance across all coins.")),(j>0n||u)&&O.push(C(m,N({abi:h,functionName:"claimToken",args:[g]}),`Claim the caller\u2019s full ${T.symbol} escrow balance across all coins.`)),($>0n||I>0n)&&O.push(C(m,N({abi:h,functionName:"claimToken",args:[i]}),`Claim the caller\u2019s released ${v.symbol} escrow balance.`))}let ce=[{token:ae,amount:_.toString()},...S?[]:[{token:T,amount:j.toString()}],{token:v,amount:$.toString()}];return{coin:v,pair:T,phase:r.phase,recipient:H,holder:b,isRecipient:A,escrow:m,blockNumber:n.toString(),credited:ce,pendingBeforeSweep:F,operatorWait:E,txs:O,buybackVest:{enabled:r.buybackEnabled,vault:D??null,releasable:{token:v,amount:I.toString()},vested:{token:v,amount:L.toString()},note:"Releasable is the gross vested amount; the release splits it with the Pons protocol before crediting the recipient escrow, and the preview shows the net claim."}}}function be(o){return o==="buyback"?"Buyback-enabled fee sweeps are not built here; pending fees await Pons\u2019s operator.":o==="conversion"?"Pending token-side conversion is awaiting Pons\u2019s keeper; the hook sweep was skipped.":""}async function me(o,d,l){if(!d||Object.keys(d).some(R=>R!=="token"))throw new f("Unsupported input. Provide only the Pons coin token address.");let k=c(d.token),t=await fe(o,k,c(l),!0),{txs:i}=t,b=await o.preview(i,l),e=t.credited[t.pair.address===B?0:1],n=[i.length?`Unsigned Pons fee claim prepared for the current recipient. Claims withdraw every ${t.pair.address===B?"native ETH":`native ETH and ${t.pair.symbol}`} balance owed to this wallet on this escrow across its coins.`:"No claim is available from this escrow.",be(t.operatorWait),BigInt(t.buybackVest.releasable.amount)>0n?`The buyback vest has ${t.buybackVest.releasable.amount} ${t.coin.symbol} base units releasable (gross); the release credits the escrow and the claim withdraws it.`:"","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:i,summary:n,preview:b,claimable:e,credited:t.credited,pendingBeforeSweep:t.pendingBeforeSweep,waitingForKeeper:t.operatorWait!==void 0,operatorWait:t.operatorWait??null,buybackVest:t.buybackVest,recipient:t.recipient,escrow:t.escrow,phase:t.phase,blockNumber:t.blockNumber}}var Ne=o=>({tools:[{name:"pons_claim",inputSchema:{type:"object",additionalProperties:!1,required:["token"],properties:{token:{...J,description:"Pons coin address on chain 4663."}}},execute:async(d,l)=>{try{return await me(o,d,l)}catch(k){throw new f(o.plainError(k))}}}]});export{fe as a,be as b,Ne as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as b,h as v,l as I,n as k,r as S}from"./2EDXKJ3B.js";import{a as T}from"./X5V2Z2NM.js";import{e as c,g as y}from"./73N3TOJL.js";import{a as i}from"./5YS5V2LK.js";import{a as l}from"./JXOEJPJ4.js";import{lookup as C}from"node:dns/promises";import{isIP as p}from"node:net";var N="/.well-known/agent-registration.json",P=262144;function R(n){let r=/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i.exec(n);if(r)return R(r[1]);if(p(n)===4){let[e,t]=n.split(".").map(Number);return!(e===0||e===10||e===127||e>=224||e===100&&t>=64&&t<=127||e===169&&t===254||e===172&&t>=16&&t<=31||e===192&&t===168||e===192&&t===0||e===198&&(t===18||t===19))}if(p(n)===6){let e=n.toLowerCase();return!(e==="::"||e==="::1"||/^f[cd]/.test(e)||/^fe[89ab]/.test(e)||e.startsWith("ff")||e.startsWith("2001:db8")||e.startsWith("64:ff9b"))}return!1}async function E(n){let r;try{r=new URL(n)}catch{throw new i("Not a valid URL.")}if(r.protocol!=="https:"||r.username||r.password||r.port||p(r.hostname.replace(/^\[|\]$/g,""))!==0||!r.hostname.includes(".")||/\.(?:local|internal|localhost|lan)$/i.test(r.hostname))throw new i("Only public HTTPS hostnames on the default port are checked.");let e=await C(r.hostname,{all:!0});if(!e.length||!e.every(t=>R(t.address)))throw new i("That hostname does not resolve to a public address.");return r.hostname}async function L(n,r){let e=await n.http(r,{method:"GET",headers:{accept:"application/json"},redirect:"error",signal:AbortSignal.timeout(8e3)});if(!e.ok)throw new i(`The server answered HTTP ${e.status}.`);if(Number(e.headers.get("content-length")??0)>P)throw new i("The file is larger than 256 KiB.");let a=await e.text();if(a.length>P)throw new i("The file is larger than 256 KiB.");try{return JSON.parse(a)}catch{throw new i("The file is not JSON.")}}function O(n,r,e){return Array.isArray(n)&&n.some(t=>c(t)&&typeof t.agentRegistry=="string"&&y(t.agentRegistry,r)&&(typeof t.agentId=="number"||typeof t.agentId=="string")&&String(t.agentId)===e.toString())}var J=n=>({tools:[{name:"erc8004_verify_domain",inputSchema:{type:"object",additionalProperties:!1,required:["agentId"],description:"Read-only, optional ERC-8004 endpoint-domain verification: for each HTTPS service endpoint in the agent's on-chain profile, fetch https://{domain}/.well-known/agent-registration.json and check it lists this registry and agent ID. Only public HTTPS names are fetched; the profile itself is read only from a data: URI.",properties:{agentId:b,endpoint:{type:"string",description:"Check only this HTTPS endpoint (must be one of the profile's services)."}}},async execute(e){try{k(n,e.chainId);let t=I(e.agentId),{chainId:a,registry:H,registryId:u}=v(n),h=await n.clientFor(a).readContract({address:H,abi:T,functionName:"tokenURI",args:[t]});if(typeof h!="string")throw new i("The registry returned an invalid URI.");let f=S(h);if(!f)return{agentId:t.toString(),verified:null,reason:"The agent profile is not a base64 data: URI, so Oak will not fetch it from an agent-controlled location. Pass the endpoint host check yourself, or update the profile to a data: URI.",uri:l(h)};let g=(Array.isArray(f.services)?f.services.filter(c):[]).map(o=>String(o.endpoint??"")).filter(o=>/^https:\/\//i.test(o)),m=e.endpoint===void 0?g:g.filter(o=>o===e.endpoint);if(e.endpoint!==void 0&&!m.length)throw new i("That endpoint is not an HTTPS service in the agent's profile.");let U=[...new Set(m.map(o=>{try{return new URL(o).hostname}catch{return""}}).filter(Boolean))].slice(0,10),s=[];for(let o of U)try{await E(`https://${o}/`);let d=await L(n,`https://${o}${N}`),A=c(d)?d.registrations:void 0,w=O(A,u,t);s.push({domain:l(o),verified:w,reason:w?"The well-known file lists this registry and agent ID.":"The well-known file does not list this registry and agent ID."})}catch(d){s.push({domain:l(o),verified:!1,reason:n.plainError(d)})}return{agentId:t.toString(),registry:u,domains:s,checked:s.length,note:s.length?"Verified means that domain publishes a file naming this agent; it proves domain control by the agent, not that the endpoint is safe.":"The profile lists no HTTPS service endpoints to verify."}}catch(t){throw new i(n.plainError(t))}}}]});export{R as a,J as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as z}from"./JC4SYMBV.js";import{b as K,c as U}from"./OJLMF5AR.js";import{a as T}from"./JRVTSGAT.js";import{c as N}from"./UXG67LH3.js";import{c as F,f as R,g as L,h as H,i as W}from"./EC5W3UZD.js";import{a as M}from"./6IM6A5VA.js";import{a as u}from"./UWOFA6GV.js";import{g as I}from"./73N3TOJL.js";import{a as y}from"./XPFVT2EA.js";import{a as o}from"./5YS5V2LK.js";import{encodeFunctionData as P,erc20Abi as j,getAddress as q,parseAbi as k}from"viem";var w=k(["function asset() view returns (address)","function decimals() view returns (uint8)","function balanceOf(address) view returns (uint256)","function previewMint(uint256) view returns (uint256)","function previewRedeem(uint256) view returns (uint256)","function previewWithdraw(uint256) view returns (uint256)","function mint(uint256 shares,address receiver) returns (uint256)","function redeem(uint256 shares,address receiver,address owner) returns (uint256)","function withdraw(uint256 assets,address receiver,address owner) returns (uint256)"]);function S(t,i=!1){if(typeof t!="string"||!/^\d+$/.test(t)||t.length>78||BigInt(t)>=1n<<256n||!i&&BigInt(t)===0n)throw new o("Provide a positive uint256 decimal base-unit string.");return BigInt(t)}function le(t,i,g){return["details","analytics","manage","mint",i==="netnet"?"redeem":"withdraw_assets","force_exit","in_kind_exit"].map(e=>{let $=[...i==="longbow"?["vault"]:[],...e==="mint"?["shares","maxAssets"]:e==="redeem"?["shares"]:e==="withdraw_assets"?["amount"]:e==="force_exit"?["maxPenaltyAssets","minAmountOut"]:[]],m={...i==="longbow"?{vault:{type:"string",enum:g.map(s=>s.vault)}}:{}};e==="in_kind_exit"&&(Object.assign(m,{amount:u(),maxShares:u(),maxPenaltyAssets:u(),deadline:u()}),$.push("amount","maxShares","maxPenaltyAssets","deadline")),e==="mint"&&Object.assign(m,{shares:u(),maxAssets:u()}),e==="redeem"&&(m.shares=u()),e==="withdraw_assets"&&(m.amount=u()),e==="force_exit"&&Object.assign(m,{maxPenaltyAssets:u(),minAmountOut:u()});let G=N(t,`${i}_manage`,g[0].vault,g[0].asset),J=T(t,`${i}_analytics`,g[0].vault);if(e==="manage"||e==="analytics"){let s=e==="manage"?G.inputSchema:J.inputSchema;Object.assign(m,s.properties),e==="analytics"&&i==="longbow"&&(m.view={type:"string",enum:["apy","published_apy","allocations","history","pending_governance"]}),$.push(...s.required)}return{name:`${i}_${e}`,inputSchema:{type:"object",properties:m,required:$,additionalProperties:!1},execute:async(s,r)=>{try{if(M(r),Object.keys(s).some(l=>!Object.hasOwn(m,l)))throw new o("Unsupported vault feature argument.");let A=i==="netnet"?g[0]:g.find(l=>typeof s.vault=="string"&&I(l.vault,s.vault));if(!A)throw new o("Choose a current vault returned by the project list tool.");let{vault:n,asset:a}=A,b={...s};if(delete b.vault,e==="details")return L(t,`${i}_details`,n,a).execute(b,r);if(e==="manage")return N(t,`${i}_manage`,n,a).execute(b,r);if(e==="analytics")return i==="longbow"&&s.view==="published_apy"?U(t,n,a,b):i==="longbow"&&s.view==="apy"?K(t,n,a,b):{...await T(t,`${i}_analytics`,n).execute(b,r),asset:{...a,address:q(a.address)},shareToken:{address:n,symbol:`${i} shares`,decimals:18,chainId:y}};if(e==="in_kind_exit")return z(t,n,a,s,r);let f=t.clientFor(y);if(await f.getChainId()!==y)throw new o("Vault actions require chain 4663.");let[Q,X,Y]=await Promise.all([f.readContract({address:n,abi:w,functionName:"asset"}),f.readContract({address:n,abi:w,functionName:"decimals"}),f.readContract({address:a.address,abi:j,functionName:"decimals"})]);if(q(Q)!==q(a.address)||X!==18||Y!==a.decimals)throw new o("Vault metadata does not match the pinned asset and shares.");let E=e==="force_exit"?await f.readContract({address:n,abi:w,functionName:"balanceOf",args:[r]}):void 0;if(e==="force_exit"){let l=await R(t,f,n,r,E,F(s.maxPenaltyAssets),a),C=S(s.minAmountOut),p=[l.tx],v=await t.preview(p,r);return W(v.changes,n,E,C,a),{txs:p,preview:v,summary:`${H(l.plan,a.symbol)} ${v.summary}`}}let d=e==="mint",x=e==="redeem",c=S(d||x?s.shares:s.amount),_=await f.readContract({address:n,abi:w,functionName:d?"previewMint":x?"previewRedeem":"previewWithdraw",args:[c]});if(_<=0n||d&&_>S(s.maxAssets))throw new o("Vault quote is zero or exceeds maxAssets.");let V=d?void 0:await f.readContract({address:n,abi:w,functionName:"balanceOf",args:[r]});if(!d&&(x?c:_)>V)throw new o("The wallet share balance cannot cover this exit.");let Z=d?P({abi:w,functionName:"mint",args:[c,r]}):x?P({abi:w,functionName:"redeem",args:[c,r,r]}):P({abi:w,functionName:"withdraw",args:[c,r,r]}),B=`${e} ${c} ${d||x?"18-decimal share":`${a.decimals}-decimal ${a.symbol}`} base units on ${n}; beneficiary ${r}.`,D=[...d?[t.approval(a.address,n,_.toString(),y)]:[],t.unsignedTx({to:n,data:Z,value:"0",chainId:y,description:B})],O=await t.preview(D,r),h=(l,C)=>O.changes.filter(p=>p.token.chainId===y&&I(p.token.address,l)).reduce((p,v)=>{if(v.token.decimals!==C||!/^-?\d+$/.test(v.amount))throw new o("Invalid vault preview metadata.");return p+BigInt(v.amount)},0n);if(d?h(a.address,a.decimals)!==-_||h(n,18)!==c:x?h(n,18)!==-c||h(a.address,a.decimals)<=0n:h(a.address,a.decimals)!==c||-h(n,18)<=0n||-h(n,18)>V)throw new o("Vault preview does not match the requested amount and beneficiary.");return{txs:D,preview:O,summary:`${B} Counterpart quote ${_} base units. Mint approval is exact; accrual may require a fresh quote. Standard ERC-4626 calls encode no minimum receipt. ${O.summary}`}}catch(A){throw new o(t.plainError(A))}}}})}export{le as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function c(r,t){return r==="hoodlock_airdrop_claim"&&!Object.hasOwn(t,"id")}var h=new Map([]),_="find_tool",l="run_tool",n=["oak_setup","oak_identity_unlink","oak_subscribe","oak_renew","send","hoodlock_feature_buy","hoodlock_feature_claim","hoodlock_referral_register"],d={oak:["account","balances","find_token","price","quote","swap","positions","send","oak_setup","oak_subscribe","oak_renew","oak_identity_unlink"],kyberswap:[],velora:[],steakhouse:["steakhouse_deposit","steakhouse_withdraw"],spark:["spark_deposit","spark_withdraw"],netnet:["netnet_deposit","netnet_withdraw"],longbow:["longbow_list","longbow_deposit","longbow_withdraw"],grove:["grove_deposit","grove_withdraw"],beefy:["beefy_list","beefy_deposit","beefy_withdraw"],pons:["pons_browse","pons_buy","pons_sell","pons_launch"],orbio:["orbio_credit_status","orbio_buy_credit"],hoodlock:["hoodlock_list_locks","hoodlock_lock","hoodlock_withdraw"],merkl:["merkl_rewards","merkl_claim"],relay:["relay_bridge_in","relay_bridge_out","relay_status"],lighter:["lighter_funding"],erc8004:["erc8004_identity"],hoodag:["hoodag_resolve","hoodag_register"],heyresearch:["heyresearch_research_project"],priors:["priors_status","priors_lend","priors_withdraw","priors_borrow","priors_repay"],morpho:["morpho_status","morpho_supply","morpho_withdraw","morpho_supply_collateral","morpho_withdraw_collateral","morpho_borrow","morpho_repay"],uniswap:["uniswap_list_positions","uniswap_add","uniswap_remove","uniswap_collect"],hookr:["hookr_orders","hookr_create","hookr_cancel"],meridian:["meridian_browse","meridian_positions","meridian_sell","meridian_redeem"],tickerspring:["tickerspring_account","tickerspring_create","tickerspring_cancel","tickerspring_claim"],clanker:["clanker_browse","clanker_launch"],poolstrade:["poolstrade_status","poolstrade_buy","poolstrade_sell","poolstrade_launch"]};function w(r,t){let i=new Set(r),s=new Set;for(let[e,a]of Object.entries(d))for(let o of a){if(s.has(o))throw new Error(`Visible tool ${o} is listed twice.`);if(e!=="oak"&&!o.startsWith(`${e}_`))throw new Error(`Visible tool ${o} is filed under ${e}.`);if(n.includes(o)||i.has(o))s.add(o);else if(t==="mainnet")throw new Error(`Visible tool ${o} is not registered.`)}for(let e of[_,l,...n])if(i.has(e))throw new Error(`Tool name ${e} is reserved for the add-on.`);return s}export{c as a,h as b,_ as c,l as d,n as e,d as f,w as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as d}from"./RETS2ZEK.js";import{a as o}from"./5YS5V2LK.js";import{getAddress as w,isAddress as c,zeroAddress as g}from"viem";var u="^0x[0-9a-fA-F]{40}$",m=new RegExp(u),y={type:"string",pattern:u},R="Provide a valid contract or wallet address.";function a(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function h(n,t){if(!a(n))throw new o(t);return n}function A(n,t){return n.toLowerCase()===t.toLowerCase()}function S(n,t){return typeof n=="string"&&typeof t=="string"&&A(n,t)}function s(n,t,r){if(typeof n!="string")throw new o(t);if(!c(n,{strict:!1}))throw new o(r);return n}function E(n,t,r=t){return w(s(n,t,r))}function D(n,t,r=t){return s(n,t,r).toLowerCase()}function T(n,t,r=t){return s(n,t,r)}function L(n,t){if(n.toLowerCase()===g)throw new o(t);return n}function B(n,t){if(typeof n!="bigint"||n<0n||n>=1n<<256n)throw new o(t);return n}function C(n,t,r={}){let{notString:i,bits:f=256,positive:p=!1}=r;if(i!==void 0&&typeof n!="string")throw new o(i);let e=d(n);if(e>=1n<<BigInt(f)||p&&e===0n)throw new o(t);return e}export{u as a,m as b,y as c,R as d,a as e,h as f,A as g,S as h,E as i,D as j,T as k,L as l,B as m,C as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as p,e as C}from"./HNMOB76J.js";import{a as A}from"./UWOFA6GV.js";import{a as u}from"./XPFVT2EA.js";import{a as f}from"./5YS5V2LK.js";import{encodeFunctionData as E,erc20Abi as v,getAddress as i,parseAbi as F}from"viem";var s={chainId:4663,usdg:"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",v4:{poolManager:"0x8366a39CC670B4001A1121B8F6A443A643e40951",swapper:"0x7Cd4E04E433E69e588728c86A3832753B5F846d4",quoter:"0x8dc178efb8111bb0973dd9d722ebeff267c98f94",stateView:"0xf3334192d15450cdd385c8b70e03f9a6bd9e673b"},v3:{router:"0xCaf681a66D020601342297493863E78C959E5cb2",quoter:"0x33e885eD0Ec9bF04EcfB19341582aADCb4c8A9E7",factory:"0x1f7d7550B1b028f7571E69A784071F0205FD2EfA"},tokens:[{symbol:"AAPL",token:"0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9",pools:[{v:3,fee:500,pool:"0xAae0d815EE56e4092a5E5C2911E676Fea50B2d6D"},{v:4,fee:3e3,tickSpacing:60,id:"0xc748f4671a867db48b552f6b7650bf3255e05f80f00e3f7aad1b17ccb7898fdb"},{v:3,fee:3e3,pool:"0x783C9bbB765047CFdD2b84b92b2Ca9F11D34b7Ed"}]},{symbol:"AMD",token:"0x86923f96303D656E4aa86D9d42D1e57ad2023fdC",pools:[{v:3,fee:3e3,pool:"0x48D284A2A4d3DC1b3Da08231Fe44317e7e7Aa51f"}]},{symbol:"AMZN",token:"0x12f190a9F9d7D37a250758b26824B97CE941bF54",pools:[{v:3,fee:3e3,pool:"0x8AC92DA74AB5F3b1d024Dc1943Ad7e15Dc4179Ef"},{v:4,fee:2400,tickSpacing:24,id:"0xefc94885c96b02696b9b45de43eeeb8ac53c0199cab42b4daae4911b96fb8825"}]},{symbol:"ASML",token:"0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA",pools:[{v:3,fee:1e4,pool:"0xedb22516B14Eb2d1C86927Db373B0E8bF70F5cD1"}]},{symbol:"BABA",token:"0xad25Ac6C84D497db898fa1E8387bf6Af3532a1c4",pools:[{v:4,fee:1e3,tickSpacing:10,id:"0x1791fc651cc794a282e5dbcb56d0b2b38eff8754b677c8876e86901521ecc439"},{v:3,fee:3e3,pool:"0xa57ab582b310dd6f9e934EA1EEEa152741545E6A"}]},{symbol:"COIN",token:"0x6330D8C3178a418788dF01a47479c0ce7CCF450b",pools:[{v:4,fee:2500,tickSpacing:25,id:"0xe2e1a0e32205e854525e0fb1d3667a53bd3b4919f032b9bcd2a038b6b6dac314"},{v:4,fee:1e4,tickSpacing:200,id:"0x007a13fa152f6dc383cad20a8eaab4e1e2538b606936eae2a424f8aa47d6db31"}]},{symbol:"CRCL",token:"0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5",pools:[{v:3,fee:3e3,pool:"0x654E4143e82a5824445Ade0824351C2A9ACD95a8"},{v:4,fee:3e3,tickSpacing:30,id:"0x628c98ab436ee34a6a7decd606242890582591bdf7c9a35d90e0d08021c31ea0"},{v:4,fee:1500,tickSpacing:15,id:"0x5177eac8c2176468bbf15e44081e151d35c2e7d068e96d3db94f496a4dc944b2"}]},{symbol:"CRWV",token:"0x5f10A1C971B69e47e059e1dC91901B59b3fB49C3",pools:[{v:4,fee:9e3,tickSpacing:90,id:"0x237014478f7ef98afbe7412ac35b6a3f96b8fb111de48b7c4dbf49dba4bd9c4b"}]},{symbol:"DELL",token:"0x941AE714EC6D8130c7B75d67160Ca08f1e7d11Dd",pools:[{v:3,fee:1e4,pool:"0xc30c89cB7815A1488b7998D15eEC73961707Fc5a"}]},{symbol:"GME",token:"0x1b0E319c6A659F002271B69dB8A7df2F911c153E",pools:[{v:3,fee:500,pool:"0xE2b46c905E12Ab8E2f864e4821a4325884C1B126"}]},{symbol:"GOOGL",token:"0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3",pools:[{v:3,fee:500,pool:"0x34D0dC122CF9A8Eb296fC5e0D3A233625D7d19b7"},{v:4,fee:300,tickSpacing:3,id:"0x43fe16b75cabbf38f5b185d16142b02d1d9200d8f1ba17cb6cf899f562c6197f"},{v:4,fee:3e3,tickSpacing:60,id:"0xd4ecb79fdc521d7725d22b33ed43cb4e47aa96bfad76aa29577e3151f723ac5e"}]},{symbol:"INTC",token:"0xc72b96e0E48ecd4DC75E1e45396e26300BC39681",pools:[{v:3,fee:3e3,pool:"0x2e5a92f5013a64661A49312111be2e8aBd33F56a"}]},{symbol:"META",token:"0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35",pools:[{v:4,fee:310,tickSpacing:3,id:"0xc58bb68060bcb7b3ea0f6d4a4afef1e57f628722e808db12afb6d1733552872f"},{v:3,fee:3e3,pool:"0x107a7Cb40d8665360ba10E59471Af06150A50922"},{v:4,fee:3e3,tickSpacing:60,id:"0x5875d407a42965b0e768c8925cea290e06fa50603ef34fc99eb92a1050e6ae36"}]},{symbol:"MSFT",token:"0xe93237C50D904957Cf27E7B1133b510C669c2e74",pools:[{v:3,fee:3e3,pool:"0xeb60bCD1D920ad6E102690CCFC6fB488899E1510"},{v:4,fee:3e3,tickSpacing:60,id:"0x9194a557b6a6bb2236b49ea7e2bbccec5d3eeb705aef00903be4b3de1d949579"}]},{symbol:"MSTR",token:"0xec262a75e413fAfD0dF80480274532C79D42da09",pools:[{v:4,fee:2500,tickSpacing:25,id:"0x319bac87e616a89e241c10aeb8afd4892a852cdd8b373cd9765ecddc40b87cfe"},{v:4,fee:2400,tickSpacing:24,id:"0xc105b8300ff65d750a0e4e63c7a879e20504069b770713464a5315e797735326"}]},{symbol:"MU",token:"0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD",pools:[{v:3,fee:3e3,pool:"0xd057B1Bc54917855BBee58eAd58647f47caB35E5"}]},{symbol:"NBIS",token:"0x9D9c6684F596F66a64C030B93A886D51Fd4D7931",pools:[{v:4,fee:9900,tickSpacing:99,id:"0x7c2f9ce1214ba9baf56d1b6a1fc640c1b63e9a711172c0c7d10e5a9c4a3d4f0c"}]},{symbol:"NVDA",token:"0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC",pools:[{v:3,fee:500,pool:"0xd4EB21209C4D6093f80B5b84f5C45cc093EA14a3"},{v:4,fee:100,tickSpacing:1,id:"0x6444a8e0b267406a15db74ca00c4a24bdfa81ed3180f5b6d0851f8ed6f4f29c5"},{v:4,fee:3e3,tickSpacing:60,id:"0x3bb34a44f1b2b5f32c034c38a53065a521a47b199700fa9bd19d60985ff24bf1"}]},{symbol:"ORCL",token:"0xb0992820E760d836549ba69BC7598b4af75dEE03",pools:[{v:4,fee:1e4,tickSpacing:200,id:"0xc2ce4784e1e72cf0221b51b30c8aaadf6c0b12863cf03ab3687854fb7b1d850a"}]},{symbol:"PLTR",token:"0x894E1EC2D74FFE5AEF8Dc8A9e84686acCB964F2A",pools:[{v:4,fee:1500,tickSpacing:15,id:"0xc59eaeda6d1a6f031bc7e1d039772f2d675e7b4de2c8668610f4471bd60b3802"},{v:3,fee:3e3,pool:"0x851680416A4f4E1c463d45171d61ACDdBc8554c0"}]},{symbol:"QQQ",token:"0xD5f3879160bc7c32ebb4dC785F8a4F505888de68",pools:[{v:3,fee:500,pool:"0xD60A5d14dB690B7Afad71F76B108071D7175597d"}]},{symbol:"SGOV",token:"0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5",pools:[{v:3,fee:500,pool:"0x6Ba50150B17Ffd0972915Aaf04fFd5E8f4Fa49b4"},{v:3,fee:3e3,pool:"0xfAb520051f96F4D2a32c22B6a3dD7fFfdf231bFe"}]},{symbol:"SLV",token:"0x411eFb0E7f985935DAec3D4C3ebaEa0d0AD7D89f",pools:[{v:3,fee:3e3,pool:"0x8cB787e6c315D464775289BaD00FDD67d53Ecb3D"},{v:3,fee:1e4,pool:"0x0Fa7BC480885DCf58Ad2ef63eC7289cF2481D51c"}]},{symbol:"SNDK",token:"0xB90A19fF0Af67f7779afF50A882A9CfF42446400",pools:[{v:4,fee:1e4,tickSpacing:200,id:"0x2707cb88a6a40fa0f948f58958051ba097d6f6a3cf7f87929bd68ccc5becea24"}]},{symbol:"SPCX",token:"0x4a0E65A3EcceC6dBe60AE065F2e7bb85Fae35eEa",pools:[{v:3,fee:500,pool:"0xc61284332117c3FB23A2A56cceFFD07F7aF60029"},{v:3,fee:3e3,pool:"0xEb07d9587eFD1778dFb9c385Ec43EF6d5F9fE401"}]},{symbol:"SPY",token:"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C",pools:[{v:4,fee:100,tickSpacing:1,id:"0xe1ae6a4c6ccc9f037389a8d50a4f577bde1a9fe01d85d88ecbbd39955ce53288"},{v:3,fee:500,pool:"0xa7Bb1AC63BBaB0C44316E6c8C455213441689167"},{v:4,fee:500,tickSpacing:5,id:"0xe5923c8a8be481ec89a2ca784a2bbfa4235de6d88f92260fd66b660c4babf907"}]},{symbol:"TSLA",token:"0x322F0929c4625eD5bAd873c95208D54E1c003b2d",pools:[{v:3,fee:3e3,pool:"0xf4ACdAEEB7022862A763C9B1B885e11191c889E3"},{v:4,fee:3e3,tickSpacing:60,id:"0x8517f8071ae5b831b738052f12125e8e3d6c158b78728aa44ce3b25e5104d32e"}]},{symbol:"TSM",token:"0x58FfE4a942d3885bAa22D7520691F611EF09e7AA",pools:[{v:4,fee:7500,tickSpacing:75,id:"0x0ba5d53d2f6255f334b7c8ead4f56b6aef5af3402c5e4d11180afd38c6b85fb1"},{v:3,fee:1e4,pool:"0x07e8Ea83D4C1340774c8965125e26e12bf943bf1"}]},{symbol:"USAR",token:"0xd917B029C761D264c6A312BBbcDA868658eF86a6",pools:[{v:3,fee:3e3,pool:"0x04391780F519B7d3ba59c9590459D76e23d225C4"}]},{symbol:"USO",token:"0xa30FA36Db767ad9eD3f7a60fC79526fB4d56D344",pools:[{v:4,fee:1200,tickSpacing:15,id:"0x1f2ad5a274a776d8e1408292bde1d92d8fa7b6444acf14ad60b9c3e4e5b66420"},{v:3,fee:3e3,pool:"0x02175608F1b5E6b5ed221cCFdC7Be197D111D915"}]}],notOffered:{CLSK:"thin",EWY:"thin",IONQ:"thin",RGTI:"thin",RKLB:"thin"},sourceCommit:"02230282d8888e00794207ed271ee01b4ce30309"};var g="(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)",w="(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)",y=F([`function swapExactIn(${g} key,bool zeroForOne,uint128 amountIn,uint256 minOut,uint160 sqrtPriceLimitX96,address to,uint256 deadline) returns (uint256 paid,uint256 out)`,`function exactInputSingle(${w} params) payable returns (uint256 amountOut)`,"function multicall(uint256 deadline,bytes[] data) payable returns (bytes[] results)"]),O=F(["function quoteExactInputSingle((address tokenIn,address tokenOut,uint256 amountIn,uint24 fee,uint160 sqrtPriceLimitX96) params) returns (uint256 amountOut,uint160 sqrtPriceX96After,uint32 initializedTicksCrossed,uint256 gasEstimate)"]),P=F([`function quoteExactInputSingle((${g} poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256 amountOut,uint256 gasEstimate)`]),q="0x0000000000000000000000000000000000000000",D={symbol:{type:"string",enum:s.tokens.map(o=>o.symbol)},side:{type:"string",enum:["buy","sell"]},amountIn:A()};function B(o){let t=s.tokens.find(e=>e.symbol===o.symbol);if(!t||o.side!=="buy"&&o.side!=="sell")throw new f("Choose a published stock symbol and buy or sell.");let a=C(o.amountIn,"amountIn",128);if(a===0n)throw new f("amountIn must be positive base units.");return{token:t,amount:a,input:o.side==="buy"?p.usdg:i(t.token),output:o.side==="buy"?i(t.token):p.usdg}}function S(o,t,a){let[e,n]=BigInt(p.usdg)<BigInt(o)?[p.usdg,o]:[o,p.usdg];return{currency0:e,currency1:n,fee:t,tickSpacing:a,hooks:q}}function j(o){return{tools:[{name:"priors_stock_quote",inputSchema:{type:"object",properties:D,required:Object.keys(D),additionalProperties:!1},async execute(t,a){if(o.network==="testnet")throw new f("Priors stock swaps require mainnet chain 4663.");let e=B(t),n=o.clientFor(u),c=await n.getBlockNumber({cacheTime:0}),m=await Promise.all(e.token.pools.map(async(b,l)=>{try{let r=S(i(e.token.token),b.fee,"tickSpacing"in b?b.tickSpacing:0),x=b.v===3?await n.simulateContract({address:i(s.v3.quoter),abi:O,functionName:"quoteExactInputSingle",args:[{tokenIn:e.input,tokenOut:e.output,amountIn:e.amount,fee:b.fee,sqrtPriceLimitX96:0n}],account:a,blockNumber:c}):await n.simulateContract({address:i(s.v4.quoter),abi:P,functionName:"quoteExactInputSingle",args:[{poolKey:r,zeroForOne:e.input===r.currency0,exactAmount:e.amount,hookData:"0x"}],account:a,blockNumber:c});return{poolIndex:l,version:b.v,amountOut:x.result[0].toString()}}catch(r){return{poolIndex:l,version:b.v,error:o.plainError(r)}}})),[d,k]=await Promise.all([n.readContract({address:i(e.token.token),abi:v,functionName:"decimals"}),n.readContract({address:i(e.token.token),abi:v,functionName:"symbol"})]);return{chainId:u,blockNumber:c.toString(),token:{address:i(e.token.token),symbol:k,decimals:d,chainId:u},quotes:m,warning:"Use explicit minimum output with priors_stock_swap and inspect its preview. Issuer restrictions can prevent sale. Quote is no promise of an exit; local regional eligibility remains required."}}},{name:"priors_stock_swap",inputSchema:{type:"object",properties:{...D,poolIndex:{type:"integer",minimum:0,maximum:2},minOut:A(),deadline:A(),eligible:{type:"boolean",description:"Operator/user affirms eligibility for this stock-token trade in their jurisdiction."}},required:[...Object.keys(D),"poolIndex","minOut","deadline","eligible"],additionalProperties:!1},async execute(t,a){if(o.network==="testnet")throw new f("Priors stock swaps require mainnet chain 4663.");if(a=i(a),t.eligible!==!0)throw new f("Confirm local eligibility for Robinhood stock tokens before trading.");let e=B(t),n=C(t.minOut,"minOut"),c=C(t.deadline,"deadline"),m=BigInt(Math.floor(Date.now()/1e3));if(n===0n||c<=m||c>m+1800n||!Number.isSafeInteger(t.poolIndex))throw new f("Provide positive minOut, poolIndex and a deadline within 30 minutes.");let d=e.token.pools[t.poolIndex];if(!d)throw new f("No published pool at that index. Read priors_stock_quote.");let k=S(i(e.token.token),d.fee,"tickSpacing"in d?d.tickSpacing:0),b=e.input===k.currency0,l=i(d.v===3?s.v3.router:s.v4.swapper),r=d.v===3?E({abi:y,functionName:"multicall",args:[c,[E({abi:y,functionName:"exactInputSingle",args:[{tokenIn:e.input,tokenOut:e.output,fee:d.fee,recipient:a,amountIn:e.amount,amountOutMinimum:n,sqrtPriceLimitX96:0n}]})]]}):E({abi:y,functionName:"swapExactIn",args:[k,b,e.amount,n,b?4295128740n:1461446703485210103287273052203988822378723970341n,a,c]}),x=[o.approval(e.input,l,e.amount.toString(),u),o.unsignedTx({to:l,data:r,value:"0",chainId:u,description:`Priors stock ${t.side}: ${e.amount} input base units; minimum ${n}; pinned V${d.v} pool.`})],I=await o.preview(x,a);return{txs:x,expiresAt:c.toString(),summary:`Stock ${t.side} ${t.symbol}: input ${e.amount} base units (${e.input}), minimum output ${n} (${e.output}), receiver ${a}, deadline ${c}. Issuer transfer/sale restrictions apply. Price impact is not measured by this builder; inspect minOut and the preview. ${I.summary}`}}}]}}export{y as a,j as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as h}from"./O47JXRXN.js";import{a as O}from"./6IM6A5VA.js";import{a as l}from"./UWOFA6GV.js";import{h as g}from"./73N3TOJL.js";import{a as w,i as B}from"./XPFVT2EA.js";import{a as n}from"./5YS5V2LK.js";import{encodeFunctionData as k,getAddress as T,parseAbi as D,parseAbiItem as _,zeroAddress as E}from"viem";var b=T("0x23e99d72e24dc538c955b9bade710d2ce3a7fca4"),v={address:T(B[w].tokens.USDG.address),symbol:"USDG",decimals:6,chainId:w},f=D(["function rewardToken() view returns (address)","function owner() view returns (address)","function publisher() view returns (address)","function epochs(uint256) view returns (bytes32 root,uint128 total,uint128 claimed,uint64 expiry,bool swept)","function hasClaimed(uint256,address) view returns (bool)","function claimable(uint256 epochId,address account,uint256 amount,bytes32[] proof) view returns (bool)","function claim(uint256 epochId,uint256 amount,bytes32[] proof)","function setPublisher(address publisher)","function sweep(uint256 epochId,address to)","function fundEpoch(uint256 epochId,bytes32 root,uint256 total,uint64 expiry)","function transferOwnership(address newOwner)","function renounceOwnership()"]),N=_("event EpochFunded(uint256 indexed epochId,bytes32 root,uint256 total,uint64 expiry)"),P=p=>{if(typeof p!="string"||!/^0x[0-9a-f]{64}$/i.test(p))throw new n("Provide a bytes32 Merkle root or proof element.");return p};function R(p){if(!Array.isArray(p)||p.length>64)throw new n("Provide the publisher\u2019s Merkle proof array (at most 64 elements).");return p.map(P)}var M=p=>{async function x(){let e=p.clientFor(w);if(await e.getChainId()!==w)throw new n("Longbow rebates require chain 4663.");let a=await e.getBlock(),s=(o,c=[])=>e.readContract({address:b,abi:f,functionName:o,args:c,blockNumber:a.number}),i=await s("rewardToken");if(!g(i,v.address))throw new n("The Longbow rebate distributor does not report canonical USDG.");return{client:e,block:a,read:s}}async function A(e,a,s,i){let[o,c]=await Promise.all([s("epochs",[e]),s("hasClaimed",[e,a])]);if(!Array.isArray(o)||o.length!==5||typeof c!="boolean")throw new n("Invalid rebate epoch state.");let[r,d,u,m,t]=o;if(typeof d!="bigint"||typeof u!="bigint"||u>d||typeof m!="bigint"||typeof t!="boolean")throw new n("Invalid rebate epoch amounts.");return{epochId:e.toString(),root:P(r),total:d.toString(),claimedAmount:u.toString(),outstanding:(t?0n:d-u).toString(),expiry:m.toString(),swept:t,hasClaimed:c,open:r!==`0x${"0".repeat(64)}`&&!t&&i<m}}let S=(e,a,s,i)=>({name:e,inputSchema:{type:"object",properties:a,required:s,additionalProperties:!1},execute:async(o,c)=>{try{if(O(c),Object.keys(o).some(r=>!Object.hasOwn(a,r)))throw new n("Unsupported Longbow rebate argument.");return await i(o,c)}catch(r){throw new n(p.plainError(r))}}});return{tools:[S("longbow_rebates",{epochIds:{type:"array",maxItems:100,items:l()},fromBlock:l()},[],async(e,a)=>{let{client:s,read:i,block:o}=await x();if(e.epochIds!==void 0&&e.fromBlock!==void 0)throw new n("Use epochIds or fromBlock, not both.");let c,r;if(e.epochIds!==void 0){if(!Array.isArray(e.epochIds)||e.epochIds.length>100)throw new n("Provide at most 100 rebate epochIds.");c=e.epochIds.map(t=>h(t))}else{if(r=e.fromBlock===void 0?o.number>100000n?o.number-100000n:0n:h(e.fromBlock),r>o.number||o.number-r>1000000n)throw new n("Read at most 1000000 blocks per rebate discovery window.");let t=await s.getLogs({address:b,event:N,fromBlock:r,toBlock:o.number,strict:!0});if(c=[...new Set(t.map(y=>y.args.epochId))],c.length>100)throw new n("Too many rebate epochs; narrow the block window.")}let[d,u,m]=await Promise.all([i("owner"),i("publisher"),Promise.all(c.map(t=>A(t,a,i,o.timestamp)))]);return{chainId:w,distributor:b,token:v,blockNumber:o.number.toString(),owner:d,publisher:u,epochs:m,scannedFromBlock:r?.toString()??null,caveat:"Discovery covers only these IDs or this event window. Amounts/proofs require the publisher\u2019s tree; the app does not expose a verified proof endpoint. Claims expire at each on-chain expiry, even if app prose says otherwise."}}),S("longbow_claim_rebate",{epochId:l(),amount:l(),proof:{type:"array",maxItems:64,items:{type:"string"}}},["epochId","amount","proof"],async(e,a)=>{let s=h(e.epochId),i=h(e.amount),o=R(e.proof),{read:c,block:r}=await x(),d=await A(s,a,c,r.timestamp);if(!d.open||d.hasClaimed||i===0n||await c("claimable",[s,a,i,o])!==!0)throw new n("Rebate is closed, already claimed or not proven for this wallet and amount.");let u=`Claim ${i} USDG base units from Longbow rebate epoch ${s} to this wallet ${a}. No approvals.`,m=[p.unsignedTx({to:b,data:k({abi:f,functionName:"claim",args:[s,i,o]}),value:"0",chainId:w,description:u})],t=await p.preview(m,a);if(t.changes.filter(I=>I.token.chainId===w&&g(I.token.address,v.address)&&I.token.decimals===6).reduce((I,C)=>I+BigInt(C.amount),0n)!==i)throw new n("Rebate preview does not return the exact proven USDG amount.");return{txs:m,preview:t,summary:`${u} ${t.summary}`}}),S("longbow_manage_rebates",{operation:{enum:["setPublisher","fundEpoch","sweep","transferOwnership","renounceOwnership"]},epochId:l(),root:{type:"string"},amount:l(),expiry:l(),account:{type:"string"}},["operation"],async(e,a)=>{let{read:s,block:i}=await x(),o=e.operation==="fundEpoch";if(!g(await s(o?"publisher":"owner"),a))throw new n("This wallet lacks the rebate publisher/owner role.");let c=o?["operation","epochId","root","amount","expiry"]:e.operation==="sweep"?["operation","epochId","account"]:e.operation==="renounceOwnership"?["operation"]:["operation","account"];if(Object.keys(e).some(t=>!c.includes(t)))throw new n("Unexpected fields for this rebate management operation.");let r,d=0n;if(o){let t=h(e.expiry,64);if(d=h(e.amount,128),d===0n||t<i.timestamp+30n*86400n)throw new n("Fund a positive rebate amount with at least 30 days to claim.");r=k({abi:f,functionName:"fundEpoch",args:[h(e.epochId),P(e.root),d,t]})}else if(e.operation==="renounceOwnership")r=k({abi:f,functionName:"renounceOwnership"});else{if(typeof e.account!="string")throw new n("Provide the explicit publisher, owner or sweep recipient.");O(e.account);let t=T(e.account);if(t===E)throw new n("The rebate recipient/role cannot be zero.");if(e.operation==="sweep"){let y=await A(h(e.epochId),a,s,i.timestamp);if(y.swept||i.timestamp<BigInt(y.expiry))throw new n("Only expired, unswept rebate epochs can be swept.");r=k({abi:f,functionName:"sweep",args:[h(e.epochId),t]})}else if(e.operation==="setPublisher"||e.operation==="transferOwnership")r=k({abi:f,functionName:e.operation,args:[t]});else throw new n("Choose a supported rebate management operation.")}let u=`Longbow rebate ${String(e.operation)}: ${JSON.stringify(e)}. ${e.operation==="renounceOwnership"?"Owner administration is permanently relinquished.":""}`,m=[...o?[p.approval(v.address,b,d.toString(),w)]:[],p.unsignedTx({to:b,data:r,value:"0",chainId:w,description:u})];return{txs:m,preview:await p.preview(m,a),summary:u}})]}};export{b as a,f as b,M as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as h}from"./2SNQWKHA.js";import{c as k}from"./MYBDO5SA.js";import{a as p}from"./UWOFA6GV.js";import{i as u}from"./73N3TOJL.js";import{a as n}from"./5YS5V2LK.js";var _="hoodlock_public",t="https://hoodlock.tech",f=["lp_locks","lp_lock","airdrop_history","airdrop_list","airdrop_list_by_root","featured","feature_tiers","buyback_status","referral_available","links"];function x(c){return{tools:[{name:_,inputSchema:{type:"object",properties:{route:{type:"string",enum:[...f]},id:p(),account:{type:"string"},token:{type:"string"},root:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"},code:{type:"string",minLength:1,maxLength:64}},required:["route"],additionalProperties:!1},async execute(e,b){try{let i=String(e.route);if(!f.includes(i))throw new n("Choose a published HoodLock public read route.");let m=e.account??b,s=r=>u(r,"Provide a checksummed wallet or token address."),a=()=>h(e.id,"id").toString(),o;switch(i){case"links":{let r=e.id===void 0?void 0:a();return{source:t,links:{lockChecker:`${t}/lock-checker`,liquidityChecker:`${t}/liquidity-lock-checker`,burnChecker:`${t}/burn-checker`,vestingChecker:`${t}/vesting-checker`,embedDocs:`${t}/docs/embed`,badgeDocs:`${t}/docs/badge`,...e.token===void 0?{}:{token:`${t}/token/${s(e.token)}`},...r===void 0?{}:Object.fromEntries(["lock","burn","vesting","position"].map(l=>[l,`${t}/proof/${l}/${r}`]))},summary:"HoodLock-only records and integration links. Empty HoodLock results do not establish that no external locks or burns exist."}}case"lp_locks":o="/api/lp/locks";break;case"lp_lock":o=`/api/lp/lock/${a()}`;break;case"airdrop_history":o=`/api/airdrop/history?address=${s(m)}`;break;case"airdrop_list":o=`/api/airdrop/${a()}/list.json`;break;case"airdrop_list_by_root":if(typeof e.root!="string"||!/^0x[0-9a-fA-F]{64}$/.test(e.root))throw new n("Provide a bytes32 Merkle root.");o=`/api/airdrop/list-by-root/${e.root}.json`;break;case"featured":o="/api/featured";break;case"feature_tiers":o="/api/feature/tiers";break;case"referral_available":if(typeof e.code!="string"||e.code.length<1||e.code.length>64)throw new n("Provide a referral code with 1 to 64 characters.");o=`/api/aff/available?code=${encodeURIComponent(e.code)}`;break;default:o="/api/revenue/pool"}let d=`${t}${o}`,y=await k(c.http,d,{method:"GET",redirect:"error",signal:AbortSignal.timeout(1e4)},r=>r!==null&&typeof r=="object");return{source:d,data:y,untrusted:!0,summary:"Public off-chain HoodLock data. Verify custody, proofs, balances and authority on chain; API labels and indexes may lag. No transaction, authentication, payment or publication was performed."}}catch(i){throw new n(c.plainError(i))}}}]}}export{_ as a,x as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as R}from"./UXG67LH3.js";import{a as w}from"./6IM6A5VA.js";import{g as S}from"./73N3TOJL.js";import{a as o,i as k,j as v}from"./XPFVT2EA.js";import{a as t}from"./5YS5V2LK.js";import{encodeFunctionData as x,getAddress as h,keccak256 as A,parseAbi as O,parseAbiItem as T,toHex as C,zeroHash as E}from"viem";var i=h(k[o].vaults.spark.address),g={admin:E,setter:A(C("SETTER_ROLE")),taker:A(C("TAKER_ROLE"))},D=[["drip()","any"],["setVsr(uint256 rate)","setter"],["setVsrBounds(uint256 minimum,uint256 maximum)","admin"],["setDepositCap(uint256 cap)","admin"],["take(uint256 assets)","taker"],["grantRole(bytes32 role,address account)","admin"],["revokeRole(bytes32 role,address account)","admin"],["renounceRole(bytes32 role,address account)","any"],["upgradeToAndCall(address implementation,bytes data)","admin"]],N=D.map(([r,a])=>({abi:T(`function ${r}`),authority:a})),p=O(["function asset() view returns (address)","function hasRole(bytes32,address) view returns (bool)","function getRoleMemberCount(bytes32) view returns (uint256)","function getRoleMember(bytes32,uint256) view returns (address)"]);function _(r){return[{name:"spark_roles",inputSchema:{type:"object",properties:{},additionalProperties:!1},execute:async(a,s)=>{try{if(w(s),Object.keys(a).length)throw new t("Spark roles takes no arguments.");let e=r.clientFor(o);if(await e.getChainId()!==o)throw new t("Spark requires chain 4663.");let u=await e.getBlockNumber({cacheTime:0}),c=await Promise.all(Object.entries(g).map(async([f,d])=>{let l=await e.readContract({address:i,abi:p,functionName:"getRoleMemberCount",args:[d],blockNumber:u});if(l>256n)throw new t("Spark role membership exceeds this reader\u2019s supported size.");let[b,n]=await Promise.all([e.readContract({address:i,abi:p,functionName:"hasRole",args:[d,s],blockNumber:u}),Promise.all(Array.from({length:Number(l)},(y,m)=>e.readContract({address:i,abi:p,functionName:"getRoleMember",args:[d,BigInt(m)],blockNumber:u})))]);return{name:f,role:d,heldByWallet:b,members:n.map(y=>h(y))}}));return{vault:i,chainId:o,blockNumber:u.toString(),roles:c}}catch(e){throw new t(r.plainError(e))}}},{name:"spark_manage",inputSchema:{type:"object",additionalProperties:!1,required:["operation","values"],properties:{operation:{type:"string",enum:N.map(a=>a.abi.name)},values:{type:"array",maxItems:2,items:{type:"string"},description:"Ordered contract inputs; all integers are decimal base-unit strings."}}},execute:async(a,s)=>{try{if(w(s),Object.keys(a).some(n=>!["operation","values"].includes(n)))throw new t("Unexpected Spark management argument.");let e=N.find(n=>n.abi.name===a.operation);if(!e||!Array.isArray(a.values)||a.values.length!==e.abi.inputs.length)throw new t("Provide a supported Spark operation and its exact ordered values.");let u=e.abi.inputs.map((n,y)=>{let m=a.values[y];if(n.type==="bytes32"){if(typeof m!="string"||!Object.values(g).includes(m))throw new t("Provide a documented Spark role identifier.");return m}return R(n.type,m)});if(e.abi.name==="renounceRole"&&!S(String(u[1]),s))throw new t("Role renunciation must name this wallet.");let c=r.clientFor(o);if(await c.getChainId()!==o)throw new t("Spark requires chain 4663.");let f=await c.readContract({address:i,abi:p,functionName:"asset"});if(h(f)!==h(v))throw new t("Spark does not use canonical USDG.");if(e.authority!=="any"&&await c.readContract({address:i,abi:p,functionName:"hasRole",args:[g[e.authority],s]})!==!0)throw new t("This wallet does not hold the required Spark role. No transaction was built.");let d=`${e.abi.name} on Spark ${i}; ordered values ${JSON.stringify(a.values)}. ${e.abi.name==="upgradeToAndCall"?"Replaces vault implementation; Oak must review and re-pin upgraded code before subsequent use.":e.abi.name==="take"?"Pulls vault liquidity to this role-authorized wallet; it mints no savings shares.":""}`,l=[r.unsignedTx({to:i,data:x({abi:[e.abi],functionName:e.abi.name,args:u}),value:"0",chainId:o,description:d})],b=await r.preview(l,s);return{txs:l,preview:b,summary:`${d} ${b.summary} Role and rate bounds are enforced again by the contract at execution.`}}catch(e){throw new t(r.plainError(e))}}}]}export{N as a,_ as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[{name:"BLUE",type:"function",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{name:"PUBLIC_ALLOCATOR",type:"function",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{name:"blueBundlesV1MigrateBorrowPosition",type:"function",inputs:[{name:"sourceMarketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"destMarketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"maxLtv",type:"uint256",internalType:"uint256"},{name:"signedAuthorization",type:"tuple",components:[{name:"signature",type:"tuple",components:[{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],internalType:"struct Signature"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}],internalType:"struct SignedAuthorization"},{name:"reallocations",type:"tuple[]",components:[{name:"vault",type:"address",internalType:"address"},{name:"adapter",type:"address",internalType:"address"},{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"fromIdle",type:"bool",internalType:"bool"},{name:"sourceAdapter",type:"address",internalType:"address"},{name:"sourceMarketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"assets",type:"uint128",internalType:"uint128"},{name:"penalty",type:"uint64",internalType:"uint64"}],internalType:"struct PublicAllocations[]"},{name:"referralFeePct",type:"uint256",internalType:"uint256"},{name:"referralFeeRecipient",type:"address",internalType:"address"},{name:"deadline",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{name:"blueBundlesV1RepayAndWithdrawCollateral",type:"function",inputs:[{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"repayAssets",type:"uint256",internalType:"uint256"},{name:"repayShares",type:"uint256",internalType:"uint256"},{name:"maxRepayAssets",type:"uint256",internalType:"uint256"},{name:"collateralAssets",type:"uint256",internalType:"uint256"},{name:"maxLtv",type:"uint256",internalType:"uint256"},{name:"loanTokenPermit",type:"tuple",components:[{name:"kind",type:"uint8",internalType:"enum PermitKind"},{name:"data",type:"bytes",internalType:"bytes"}],internalType:"struct TokenPermit"},{name:"signedAuthorization",type:"tuple",components:[{name:"signature",type:"tuple",components:[{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],internalType:"struct Signature"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}],internalType:"struct SignedAuthorization"},{name:"referralFeePct",type:"uint256",internalType:"uint256"},{name:"referralFeeRecipient",type:"address",internalType:"address"},{name:"deadline",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{name:"blueBundlesV1Supply",type:"function",inputs:[{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"assets",type:"uint256",internalType:"uint256"},{name:"loanTokenPermit",type:"tuple",components:[{name:"kind",type:"uint8",internalType:"enum PermitKind"},{name:"data",type:"bytes",internalType:"bytes"}],internalType:"struct TokenPermit"},{name:"referralFeePct",type:"uint256",internalType:"uint256"},{name:"referralFeeRecipient",type:"address",internalType:"address"},{name:"deadline",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{name:"blueBundlesV1SupplyCollateralAndBorrow",type:"function",inputs:[{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"collateralAssets",type:"uint256",internalType:"uint256"},{name:"borrowAssets",type:"uint256",internalType:"uint256"},{name:"maxLtv",type:"uint256",internalType:"uint256"},{name:"collateralPermit",type:"tuple",components:[{name:"kind",type:"uint8",internalType:"enum PermitKind"},{name:"data",type:"bytes",internalType:"bytes"}],internalType:"struct TokenPermit"},{name:"signedAuthorization",type:"tuple",components:[{name:"signature",type:"tuple",components:[{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],internalType:"struct Signature"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}],internalType:"struct SignedAuthorization"},{name:"reallocations",type:"tuple[]",components:[{name:"vault",type:"address",internalType:"address"},{name:"adapter",type:"address",internalType:"address"},{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"fromIdle",type:"bool",internalType:"bool"},{name:"sourceAdapter",type:"address",internalType:"address"},{name:"sourceMarketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"assets",type:"uint128",internalType:"uint128"},{name:"penalty",type:"uint64",internalType:"uint64"}],internalType:"struct PublicAllocations[]"},{name:"referralFeePct",type:"uint256",internalType:"uint256"},{name:"referralFeeRecipient",type:"address",internalType:"address"},{name:"deadline",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{name:"blueBundlesV1Withdraw",type:"function",inputs:[{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"withdrawAssets",type:"uint256",internalType:"uint256"},{name:"withdrawShares",type:"uint256",internalType:"uint256"},{name:"signedAuthorization",type:"tuple",components:[{name:"signature",type:"tuple",components:[{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],internalType:"struct Signature"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}],internalType:"struct SignedAuthorization"},{name:"reallocations",type:"tuple[]",components:[{name:"vault",type:"address",internalType:"address"},{name:"adapter",type:"address",internalType:"address"},{name:"marketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"fromIdle",type:"bool",internalType:"bool"},{name:"sourceAdapter",type:"address",internalType:"address"},{name:"sourceMarketParams",type:"tuple",components:[{name:"loanToken",type:"address",internalType:"address"},{name:"collateralToken",type:"address",internalType:"address"},{name:"oracle",type:"address",internalType:"address"},{name:"irm",type:"address",internalType:"address"},{name:"lltv",type:"uint256",internalType:"uint256"}],internalType:"struct MarketParams"},{name:"assets",type:"uint128",internalType:"uint128"},{name:"penalty",type:"uint64",internalType:"uint64"}],internalType:"struct PublicAllocations[]"},{name:"referralFeePct",type:"uint256",internalType:"uint256"},{name:"referralFeeRecipient",type:"address",internalType:"address"},{name:"deadline",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"}];export{e as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ie,b as fe,g as Y,h as he,i as $e,m as Z,n as _,y as be,z as qe}from"./CAU44UWP.js";import{b as y,c as Se}from"./HQVC6X3T.js";import{a as le,b as z}from"./VJ3W2V3B.js";import{a as R}from"./6IM6A5VA.js";import{a as Pe}from"./EG6M6SSO.js";import{a as Ae}from"./UWOFA6GV.js";import{c as me,g as P}from"./73N3TOJL.js";import{a as xe}from"./RETS2ZEK.js";import{a as h,i as pe}from"./XPFVT2EA.js";import{a as d}from"./5YS5V2LK.js";import{a as ce}from"./JXOEJPJ4.js";import{randomUUID as Fe}from"node:crypto";import{encodeAbiParameters as ee,encodeFunctionData as ke,erc20Abi as Be,getAddress as D,parseAbi as K,parseAbiParameters as te,zeroAddress as L}from"viem";var Ne=pe[h].pons,Q=pe[h].ponsTrade,Ce=K(["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))"]),ne=K(["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)"]),Ue=K(["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)"]),He=K(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]),ze=K(["function approve(address token,address spender,uint160 amount,uint48 expiration)"]),Le=te("((address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks) poolKey,bool zeroForOne,uint128 amountIn,uint128 amountOutMinimum,uint256 minHopPriceX36,bytes hookData)"),Ke={address:le,chainId:h,decimals:18,symbol:"ETH"},Me="There is no on-chain expiry. The signed transaction is protected by its minimum output.",Xe=`Quote expiry is enforced by Oak before signing only. ${Me}`,I=10000n,we=(1n<<256n)-1n,Oe=(1n<<128n)-1n,$=(n,o)=>({token:n,amount:o.toString()}),Ee=(n,o)=>(n+o-1n)/o,je={type:"object",additionalProperties:!1,required:["token","amountIn"],properties:{token:{...me,description:"Pons launch token address on chain 4663."},amountIn:Ae("Positive base units: the launch pair token for buy (native ETH wei for ETH pairs; pons_status shows pairToken), the launch token for sell."),pairToken:{...me,description:"The launch pair from pons_status. Required to buy a custom-pair launch, so amountIn is never read in the wrong units; omit or use the zero address for native ETH."},slippageBps:{type:"integer",minimum:0,maximum:9999,default:fe}}};function Re(n,o,i,s){if(n===void 0){if(i&&y(o)!==L)throw new d(`This Pons launch is paired with ${s}; amountIn is in that token's base units. Repeat with pairToken "${o}" to confirm the input asset.`);return}if(typeof n!="string")throw new d("pairToken must be a token address.");if(R(n),!P(y(n),y(o)))throw new Y(`This Pons launch trades only against ${s}.`)}async function _e(n,o,i,s,{quoteOnly:f=!1,curveOnly:e=!1,blockNumber:c}={}){if(R(i),Object.keys(o).some(m=>!["token","amountIn","slippageBps","pairToken"].includes(m)))throw new d("Provide only token, amountIn, optional pairToken and optional slippageBps.");if(typeof o.token!="string")throw new d("Provide a launch token address.");R(o.token);let t=D(o.token),r=xe(o.amountIn);if(r===0n||r>we)throw new d("Trade amount must be positive and within the uint256 range.");let p=o.slippageBps??fe;if(typeof p!="number"||!Number.isInteger(p)||p<0||p>=1e4)throw new d("Slippage must be an integer from 0 to 9999 basis points.");let x=m=>m*(I-BigInt(p))/I,a=n.clientFor(h),l=c===void 0?await a.getBlock():await a.getBlock({blockNumber:c});if(c!==void 0&&l.number!==c)throw new d("Pons quote snapshot is unavailable.");let u=await a.readContract({address:Ne.factory.address,abi:Ce,functionName:"getLaunchedToken",args:[t],blockNumber:l.number});if(!u.exists||!P(u.token,t))throw new d("This address is not a Pons launch token.");if(e&&u.phase!==0)throw new Y("Pons curve quotes are only available before graduation.");if(u.phase===1)throw new d("Pons graduation is pending; the curve is closed and the pool is not ready.");if(u.phase===3)throw new d("This Pons launch was rescued and has no active trade route.");if(u.phase!==0&&u.phase!==2)throw new d("This Pons launch has an unknown trade phase.");let v=y(u.pairToken)===L,E=D(u.pairToken);if(P(E,t))throw new d("This Pons launch has an invalid pair.");let X=m=>Promise.all([a.readContract({address:m,abi:Be,functionName:"symbol",blockNumber:l.number}),a.readContract({address:m,abi:Be,functionName:"decimals",blockNumber:l.number})]),[[B,F],U]=await Promise.all([X(t),v?void 0:X(E)]),w=U?{address:E,chainId:h,symbol:ce(U[0]),decimals:U[1]}:Ke,j=v?"native ETH":`${w.symbol} (${w.address})`;Re(o.pairToken,E,s,`${j}, ${w.decimals} decimals`);let G={address:t,chainId:h,symbol:ce(B),decimals:F},oe=s?w:G,se=s?G:w,q=[],re=(m,k,S,A)=>n.unsignedTx({to:m,data:k,value:S.toString(),chainId:h,description:A}),T,b,V,O=r,Te=null,ie;if(u.phase===0){let m=g=>a.readContract({address:u.curve,abi:ne,functionName:g,blockNumber:l.number}),[[k,S],A,N,C,M]=await Promise.all([a.readContract({address:u.curve,abi:ne,functionName:"getReserves",blockNumber:l.number}),m("feeBps"),m("creatorTaxBps"),s?a.readContract({address:u.curve,abi:ne,functionName:"currentSnipeTaxBps",args:[i],blockNumber:l.number}):Promise.resolve(0n),s?m("sellableTokens"):Promise.resolve(0n)]);if(k<=0n||S<=0n||A+N>I-100n)throw new d("Pons curve reserves or fee settings are unavailable.");let J=I-A-N-100n,ue=C<J?C:J,ge=g=>({base:g*A/I,creator:g*N/I,snipe:g*ue/I}),ye=g=>{let H=ge(g);return g-H.base-H.creator-H.snipe},W;if(s){if(M<=0n||M>=S)throw new d("The curve has no available sellable tokens.");let g=ye(r);if(T=g*S/(k+g),T>=M){T=M;let H=T*k/(S-T)+1n;O=Ee(H*I,I-A-N-ue),O>r&&(O=r)}W=O,b=x(T),V=Ee(b*r,O),v||q.push(n.approval(w.address,u.curve,r.toString(),h))}else W=r*k/(S+r),T=ye(W),b=x(T),q.push(n.approval(t,u.curve,r.toString(),h));let de=ge(W);Te={base:$(w,de.base),creator:$(w,de.creator),snipe:$(w,de.snipe)},ie=`Curve fees included: ${A} base, ${N} creator and ${ue} opening-tax basis points, each rounded separately.`,q.push(re(u.curve,ke({abi:ne,functionName:s?"buy":"sell",args:[r,V??b,i]}),s&&v?r:0n,s?`Buy Pons curve tokens with ${j}.`:`Sell Pons curve tokens for ${j}.`))}else{if(r>Oe)throw new d("Trade amount exceeds the router uint128 range.");let m=Se(u.pairToken,t,u.poolFee,u.tickSpacing),k=s?y(u.pairToken):t,S=s?t:y(u.pairToken),A=P(k,m.currency0);if(T=(await a.simulateContract({address:Q.quoter.address,abi:Ue,functionName:"quoteExactInputSingle",args:[{poolKey:m,zeroForOne:A,exactAmount:r,hookData:"0x"}],account:i,gas:Pe,blockNumber:l.number})).result[0],b=x(T),b>Oe)throw new d("Minimum output exceeds the router uint128 range.");let C=l.timestamp+300n;if(C>=1n<<48n)throw new d("Permit2 expiry exceeds its timestamp range.");k!==L&&(q.push(n.approval(k,Q.permit2.address,r.toString(),h)),q.push(re(Q.permit2.address,ke({abi:ze,functionName:"approve",args:[k,Q.universal_router.address,r,Number(C)]}),0n,"Approve the exact token amount to the Pons router through Permit2 for five minutes.")));let M=[ee(Le,[{poolKey:m,zeroForOne:A,amountIn:r,amountOutMinimum:b,minHopPriceX36:0n,hookData:"0x"}]),ee(te("address,uint256"),[k,r]),ee(te("address,uint256"),[S,b])],J=ee(te("bytes,bytes[]"),["0x060c0f",M]);q.push(re(Q.universal_router.address,ke({abi:He,functionName:"execute",args:["0x10",[J],C]}),k===L?r:0n,"Trade through Pons Universal Router v2.1.2.")),ie="Quoter output is net of Pons hook fees; no additional fee is subtracted."}if(T<=0n||b<=0n||b>we||(V??b)>we)throw new d("Trade output or minimum is outside the supported positive range.");let ve=f?{changes:[],summary:"Quote only; preview is required before sending."}:await n.preview(q,i),ae=r-O;return{txs:q,changes:ve.changes,summary:`${s?"Buy":"Sell"} ${G.symbol} (${G.address}) on chain ${h}${v?"":` ${s?"with":"for"} ${j}`}. ${ie} ${u.phase===0?`${Me} `:""}${ae>0n?`Expected ${v?"native refund":"refund"}: ${n.formatAmount(ae.toString(),w.decimals)} ${w.symbol}; minimum output uses the expected spend after refund. `:""}${ve.summary}`,pairToken:w,quote:{phase:u.phase,amountIn:$(oe,r),amountOut:$(se,T),minAmountOut:$(se,b),minimumKind:"absolute",calldataMinAmountOut:$(se,V??b),expectedSpend:$(oe,O),expectedRefund:$(oe,ae),fees:Te,blockNumber:l.number.toString(),blockTimestamp:l.timestamp.toString()}}}function cn(n){return Qe(n,!0)}function Qe(n,o=!1,i){let s=new Map,f=e=>{if(BigInt(Z())>=BigInt(e.expiresAt))throw new he};return{name:"pons",async quote(e,c){if(e={...e,from:z(e.from),to:z(e.to)},_(e.from)&&_(e.to))throw new Y("Pons quotes require a launch token and its pair token.");let t=_(e.from)||!_(e.to)&&await Ge(n,e.from,e.to,i),r=Z(),p=await _e(n,{token:t?e.to:e.from,amountIn:e.amountIn,slippageBps:e.slippageBps,pairToken:y(t?e.from:e.to)},c,t,{quoteOnly:!0,curveOnly:o,blockNumber:i}),x=p.txs.at(-1),a=p.quote,l=String(BigInt(i===void 0?r:a.blockTimestamp)+BigInt(Ie)),u=a.minAmountOut.amount,v=a.fees,E=_(p.pairToken.address)?"native ETH base units (18 decimals)":`${p.pairToken.symbol} (${p.pairToken.address}) base units (${p.pairToken.decimals} decimals)`,X=v?`Pons curve fees included in net output: ${v.base.amount} base, ${v.creator.amount} creator and ${v.snipe.amount} opening tax, in ${E}. Oak swap fee: 0 (venue fee is never Oak income). ${Xe}`:"Quoter output is net of Pons hook fees; no additional fee is subtracted. Oak swap fee: 0.",B=qe({...e,quoteId:`pons:${Fe()}`,provider:"pons",wallet:c,chainId:h,router:x.to,spender:a.phase===0?x.to:Q.permit2.address,expiresAt:l,data:x.data,value:x.value,amountOut:a.amountOut.amount,minAmountOut:u,blockNumber:a.blockNumber,...a.phase===0?{ponsCurveToken:t?e.to:e.from,calldataMinAmountOut:a.calldataMinAmountOut.amount}:{ponsPoolToken:t?e.to:e.from},expectedSpend:a.expectedSpend.amount,expectedRefund:a.expectedRefund.amount,feeDisclosure:X,oakFee:"0"});be(x,B),f(B);for(let[F,U]of s)BigInt(Z())>=BigInt(U.quote.expiresAt)&&s.delete(F);for(;s.size>=$e;)s.delete(s.keys().next().value);return s.set(B.quoteId,{quote:{...B},txs:p.txs.map(F=>({...F})),summary:p.summary}),B},async build(e,c){let t=s.get(e);if(!t)throw new he;if(f(t.quote),R(c),!P(c,t.quote.wallet))throw new d("Quote was issued for a different wallet.");let r=t.txs.map(a=>({...a}));be(r.at(-1),t.quote);let p=await n.preview(r,c);if(f(t.quote),p.changes.filter(a=>P(z(a.token.address),z(t.quote.to))).reduce((a,l)=>a+BigInt(l.amount),0n)<BigInt(t.quote.minAmountOut))throw new d("Preview retained output is below the accepted minimum.");return{txs:r,summary:`${t.summary} ${p.summary} ${t.quote.feeDisclosure}`}}}}async function De(n,o,i){return n.clientFor(h).readContract({address:Ne.factory.address,abi:Ce,functionName:"getLaunchedToken",args:[D(o)],...i===void 0?{}:{blockNumber:i}})}async function Ge(n,o,i,s){let f=await De(n,i,s);return f.exists&&P(f.token,i)&&P(y(f.pairToken),y(o))}async function pn(n,o,i,s,f){if(typeof i.token!="string")throw new d("Provide a launch token address.");R(i.token);let e=D(i.token),c=await De(n,e,f);if(!c.exists||!P(c.token,e))throw new d("This address is not a Pons launch token.");let t=y(c.pairToken)===L?le:D(c.pairToken);return Re(i.pairToken,D(c.pairToken),o,t),{quote:await Qe(n,!1,f).quote({from:o?t:e,to:o?e:t,amountIn:String(i.amountIn),...i.slippageBps===void 0?{}:{slippageBps:i.slippageBps}},s),input:o?t:e}}var Ve=n=>({tools:[!0,!1].map(o=>({name:o?"pons_buy":"pons_sell",inputSchema:je,async execute(i,s){try{return await _e(n,i,s,o)}catch(f){throw new d(n.plainError(f))}}}))}),mn=Ve;export{cn as a,Qe as b,pn as c,Ve as d,mn as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as L}from"./N77ANGBT.js";import{a as D}from"./RRSODRGT.js";import{b as _}from"./AXYOJBX6.js";import{a as P}from"./6IM6A5VA.js";import{c as z}from"./MYBDO5SA.js";import{c as y,e as b,g as A,i as E,l as N}from"./73N3TOJL.js";import{a as S}from"./RETS2ZEK.js";import{a as l,i as I}from"./XPFVT2EA.js";import{a as u}from"./5YS5V2LK.js";import{encodeFunctionData as C,parseAbi as X,zeroAddress as v}from"viem";import{encodeAbiParameters as H,encodeFunctionData as q,keccak256 as B,parseAbi as G}from"viem";var R=I[l].merkl.distributor.address,w="Claim rewards on Merkl (Powered by Merkl \u2014 https://app.merkl.xyz)",O=`${w}. No claimable rewards on Robinhood Chain. Pending rewards must settle into a Merkle root before they can be claimed.`,T=G(["function claimed(address user,address token) view returns (uint208 amount,uint48 timestamp,bytes32 merkleRoot)","function getMerkleRoot() view returns (bytes32)","function claim(address[] users,address[] tokens,uint256[] amounts,bytes32[][] proofs)"]);function U(o){return typeof o=="string"&&/^0x[0-9a-fA-F]{64}$/.test(o)}function p(){throw new u("Merkl returned an unexpected response. Please refetch rewards.")}function x(o){typeof o!="string"&&p();let d=S(o);if(d>=1n<<256n)throw new u("The Merkl reward amount exceeds the uint256 range.");return d.toString()}function J(o){let d=[],m=new Set;for(let c of o)if((!b(c)||!b(c.chain)||!Number.isSafeInteger(c.chain.id))&&p(),c.chain.id===l){Array.isArray(c.rewards)||p();for(let r of c.rewards){if((!b(r)||typeof r.distributionLayer!="string"||!b(r.token))&&p(),r.distributionLayer!=="TREE"||(Number.isSafeInteger(r.token.chainId)||p(),r.token.chainId!==l)||(Array.isArray(r.proofs)||p(),!r.proofs.length))continue;(!r.proofs.every(U)||typeof r.token.address!="string"||typeof r.token.symbol!="string"||!r.token.symbol.trim()||typeof r.token.decimals!="number"||!Number.isInteger(r.token.decimals)||r.token.decimals<0||r.token.decimals>255)&&p(),P(r.token.address);let t=x(r.amount),e=x(r.pending);if(BigInt(t)===0n)continue;let n=r.token.address.toLowerCase();if(m.has(n))throw new u("Merkl returned duplicate token leaves. Please refetch rewards.");m.add(n),d.push({token:{address:r.token.address,chainId:l,decimals:r.token.decimals,symbol:r.token.symbol},amount:t,pending:e,proofs:r.proofs})}}return d}function K(o,d,m){let c=B(H([{type:"address"},{type:"address"},{type:"uint256"}],[o,d.token.address,BigInt(d.amount)]));for(let r of d.proofs){let t=BigInt(c)<BigInt(r)?[c,r]:[r,c];c=B(H([{type:"bytes32"},{type:"bytes32"}],t))}if(!A(c,m))throw new u("The Merkl proof does not match the active root. Please refetch rewards.")}function j(o){if(!b(o)||Object.keys(o).length)throw new u("This Merkl tool takes no arguments and uses the connected wallet.")}async function Q(o,d){let m=await W(o,d),c=[],r=new Set;for(let t of m)if((!b(t)||!b(t.chain)||!Number.isSafeInteger(t.chain.id))&&p(),t.chain.id===l){Array.isArray(t.rewards)||p();for(let e of t.rewards){if((!b(e)||typeof e.distributionLayer!="string"||!b(e.token)||!Number.isSafeInteger(e.token.chainId))&&p(),e.token.chainId!==l)continue;(typeof e.token.address!="string"||typeof e.token.symbol!="string"||!e.token.symbol.trim()||typeof e.token.decimals!="number"||!Number.isInteger(e.token.decimals)||e.token.decimals<0||e.token.decimals>255)&&p(),P(e.token.address);let n=x(e.amount),i=x(e.pending),s=`${e.distributionLayer}:${e.token.address.toLowerCase()}`;if(r.has(s))throw new u("Merkl returned duplicate earning rows. Please refetch rewards.");r.add(s);let a={address:e.token.address,symbol:e.token.symbol,decimals:e.token.decimals,chainId:l},k="0";if(e.distributionLayer==="TREE"){let h=await o.clientFor(l).readContract({address:R,abi:T,functionName:"claimed",args:[d,a.address]});(!Array.isArray(h)||typeof h[0]!="bigint"||h[0]<0n||h[0]>=1n<<208n)&&p(),k=h[0].toString()}c.push({token:a,amount:n,pending:i,claimed:k,claimable:"0",distributionLayer:e.distributionLayer,status:e.distributionLayer!=="TREE"?"unsupported_distribution_layer":BigInt(n)>BigInt(k)?"awaiting_verified_proof":BigInt(i)>0n?"pending_settlement":"settled"})}}return{body:m,earnings:c}}async function W(o,d){return P(d),z(o.http,`https://api.merkl.xyz/v4/users/${d}/rewards/summary?chainId=${l}`,{method:"GET",headers:{"User-Agent":"oak-core/merkl"}},m=>Array.isArray(m))}async function $(o,d,m){P(d);let c=J(m??await W(o,d)),r=o.clientFor(l),t=[];for(let n of c){let i=await r.readContract({address:R,abi:T,functionName:"claimed",args:[d,n.token.address]});if(!Array.isArray(i)||typeof i[0]!="bigint"||i[0]<0n||i[0]>=1n<<208n)throw new u("The Merkl claimed balance could not be read. Please try again.");BigInt(n.amount)<=i[0]||t.push({...n,claimed:i[0].toString(),claimable:(BigInt(n.amount)-i[0]).toString()})}if(!t.length)return[];let e=await r.readContract({address:R,abi:T,functionName:"getMerkleRoot"});if(!U(e))throw new u("The active Merkl root could not be read. Please try again.");for(let n of t)K(d,n,e);return t}var V=o=>{async function d(t){try{return await t()}catch(e){throw new u(o.plainError(e))}}function m(t){let e=t.amount.startsWith("-"),n=e?t.amount.slice(1):t.amount;return`${e?"-":""}${o.formatAmount(n,t.token.decimals)} ${t.token.symbol} (${t.token.address}, chain ${t.token.chainId}, ${t.token.decimals} decimals)`}let c=t=>$(o,t);return{tools:[{name:"merkl_rewards",description:"Read claimable rewards (Powered by Merkl \u2014 https://app.merkl.xyz).",inputSchema:{type:"object",properties:{},additionalProperties:!1,description:"Read rewards (Powered by Merkl \u2014 https://app.merkl.xyz)."},execute:(t,e)=>d(async()=>{j(t);let{body:n,earnings:i}=await Q(o,e),s=await $(o,e,n);for(let a of i){let k=s.find(h=>A(h.token.address,a.token.address)&&a.distributionLayer==="TREE");k&&(a.claimed=k.claimed,a.claimable=k.claimable,a.status="claimable")}return{earnings:i,rewards:s.map(({proofs:a,...k})=>k),summary:s.length?`${w}. Claimable reward leaves: ${s.map(a=>m({token:a.token,amount:a.claimable})).join("; ")}. Wrapped leaves may transfer underlying tokens; claim preview shows the received assets. Pending rewards appear separately in earnings and are excluded from claimable amounts.`:`${O} Earnings include pending-only and unsupported distribution layers; an unverified amount is never presented as claimable.`}})},{name:"merkl_claim",description:w,inputSchema:{type:"object",properties:{},additionalProperties:!1,description:w},execute:(t,e)=>d(async()=>{j(t);let n=await c(e);if(!n.length)return{txs:[],summary:O};let i=[o.unsignedTx({to:R,chainId:l,value:"0",description:w,data:q({abi:T,functionName:"claim",args:[n.map(()=>e),n.map(a=>a.token.address),n.map(a=>BigInt(a.amount)),n.map(a=>a.proofs)]})})],s=await o.preview(i,e);return{txs:i,summary:`${w}. Prepared unsigned claim. Expected wallet changes: ${s.changes.length?s.changes.map(m).join("; "):"no token transfers in simulation"}. ${s.summary}`}})}],positions:t=>d(async()=>(await c(t)).map(e=>({module:"merkl",id:`${l}:${e.token.address.toLowerCase()}`,chainId:l,assets:[{token:e.token,amount:e.claimable}],description:`${w}. Unclaimed reward leaf; wrapped rewards may transfer underlying assets. Pending rewards are excluded.`})))}},me=o=>_("merkl",[V(o),D(o),F(o),L(o)]);var M=I[l].merkl.distributor.address,g=X(["function operators(address,address) view returns (uint256)","function claimRecipient(address,address) view returns (address)","function toggleOperator(address,address)","function setClaimRecipient(address,address)","function claim(address[],address[],uint256[],bytes32[][])","function claimWithRecipient(address[],address[],uint256[],bytes32[][],address[],bytes[])"]),Z="Provide a valid address.";function f(o,d=!1){let m=E(o,Z);return d?m:N(m,Z)}var F=o=>{let d=()=>o.clientFor(l),m=async(r,t,e)=>{let n=[o.unsignedTx({to:M,chainId:l,value:"0",data:r,description:t})],i=await o.preview(n,e);return{txs:n,preview:i,summary:`Powered by Merkl \u2014 https://app.merkl.xyz. ${t} ${i.summary}`}},c=(r,t,e,n)=>({name:`merkl_${r}`,inputSchema:{type:"object",properties:t,required:e,additionalProperties:!1},execute:async(i,s)=>{try{let a=Object.keys(i).find(k=>!Object.hasOwn(t,k));if(a)throw new u(`Unsupported Merkl input: ${a}.`);return await n(i,f(s))}catch(a){throw new u(o.plainError(a))}}});return{tools:[c("claim_config",{token:y,operator:y},[],async(r,t)=>{let e=f(r.token??v,!0),n=f(await d().readContract({address:M,abi:g,functionName:"claimRecipient",args:[t,v]}),!0),i=f(await d().readContract({address:M,abi:g,functionName:"claimRecipient",args:[t,e]}),!0),s;if(r.operator!==void 0){let a=await d().readContract({address:M,abi:g,functionName:"operators",args:[t,f(r.operator,!0)]});if(a!==0n&&a!==1n)throw new u("Merkl returned invalid operator authorization.");s=a===1n}return{chainId:l,wallet:t,token:e,defaultRecipient:n,tokenRecipient:i,effectiveRecipient:i!==v?i:n!==v?n:t,...s===void 0?{}:{operatorEnabled:s},summary:"Powered by Merkl \u2014 https://app.merkl.xyz. Zero recipient restores self-claims. Token overrides take precedence over the global recipient."}}),c("set_operator",{operator:y,enabled:{type:"boolean"}},["operator","enabled"],async(r,t)=>{let e=f(r.operator,!0);if(typeof r.enabled!="boolean")throw new u("Provide enabled as boolean.");let n=await d().readContract({address:M,abi:g,functionName:"operators",args:[t,e]});if(n!==0n&&n!==1n)throw new u("Merkl returned invalid operator authorization.");return n===1n===r.enabled?{txs:[],summary:"Powered by Merkl \u2014 https://app.merkl.xyz. Operator already has the requested state; no transaction needed."}:m(C({abi:g,functionName:"toggleOperator",args:[t,e]}),`${r.enabled?"Authorize":"Revoke"} Merkl claims by ${e} for ${t}. Zero operator grants permissionless claiming; configured recipients still apply. The contract toggles the observed state; preview and confirmation must remain current.`,t)}),c("set_recipient",{recipient:y,token:y},["recipient"],async(r,t)=>{let e=f(r.recipient,!0),n=f(r.token??v,!0);return m(C({abi:g,functionName:"setClaimRecipient",args:[e,n]}),`Set Merkl reward recipient for ${n===v?"all tokens":n} to ${e===v?`self (${t})`:e}. This redirects future claims; token-specific overrides remain authoritative.`,t)}),c("claim_to",{recipient:y,token:y,data:{type:"string",pattern:"^0x([0-9a-fA-F]{2})*$",maxLength:16386}},["recipient"],async(r,t)=>{let e=f(r.recipient),n=r.token===void 0?void 0:f(r.token),i=r.data??"0x";if(typeof i!="string"||!/^0x([0-9a-fA-F]{2})*$/.test(i)||i.length>16386)throw new u("Provide callback data as at most 8192 hexadecimal bytes.");let s=(await $(o,t)).filter(a=>!n||A(a.token.address,n));return s.length?m(C({abi:g,functionName:"claimWithRecipient",args:[s.map(()=>t),s.map(a=>a.token.address),s.map(a=>BigInt(a.amount)),s.map(a=>a.proofs),s.map(()=>e),s.map(()=>i)]}),`Claim ${s.map(a=>`${a.claimable} ${a.token.symbol} base units (token ${a.token.address}, decimals ${a.token.decimals})`).join("; ")} to ${e}, overriding saved claim recipients for this claim only. Callback data for each leaf: ${i}. Inspect all callback effects in preview.`,t):{txs:[],summary:"Powered by Merkl \u2014 https://app.merkl.xyz. No verified claimable rewards for the selected token."}}),c("claim_for",{user:y,token:y},["user"],async(r,t)=>{let e=f(r.user),n=r.token===void 0?void 0:f(r.token),i=(await $(o,e)).filter(s=>!n||A(s.token.address,n));return i.length?m(C({abi:g,functionName:"claim",args:[i.map(()=>e),i.map(s=>s.token.address),i.map(s=>BigInt(s.amount)),i.map(s=>s.proofs)]}),`Claim Merkl rewards for ${e}; caller ${t} pays gas. The user's saved recipients control payment. Claim authorization and actual receipts must pass preview.`,t):{txs:[],summary:"Powered by Merkl \u2014 https://app.merkl.xyz. No verified claimable rewards for this user."}})]}};export{F as a,$ as b,V as c,me as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as ne}from"./EVANKNJV.js";import{a as ee,b as re,d as te,e as B,f as X,g as ie}from"./LBEMCOND.js";import{a as z,c as f,d as L,f as i,g,h as C,i as S,j as G,k as w,l as F,m as v,n as Z,p as A,q as R,s as W,t as V}from"./C3TJLARP.js";import{b as M}from"./UWOFA6GV.js";import{c as N,h as I}from"./73N3TOJL.js";import{a as Y}from"./5YS5V2LK.js";import{randomInt as ye,randomUUID as le}from"node:crypto";import{isDeepStrictEqual as H}from"node:util";import{encodeFunctionData as ae,erc20Abi as se,pad as he,recoverTypedDataAddress as qe,zeroHash as fe}from"viem";var $={funding:{path:"/v1/funding",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"productId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!0,schema:{type:"number"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["chargedAt"]}}]},"funding/projected-rate":{path:"/v1/funding/projected-rate",parameters:[{name:"productIds",in:"query",required:!0,schema:{type:"array",items:{type:"string",format:"uuid"},maxItems:50,minItems:1,uniqueItems:!0}}]},"linked-signer":{path:"/v1/linked-signer",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"statuses",in:"query",required:!1,schema:{type:"array",items:{type:"string",enum:["PENDING","ACTIVE","PENDING_REVOKE","REVOKED","REJECTED"]}}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt","expiresAt"]}}]},"linked-signer/address/{address}":{path:"/v1/linked-signer/address/{address}",parameters:[{name:"address",in:"path",required:!0,schema:{type:"string",format:"hex"}}]},"linked-signer/quota":{path:"/v1/linked-signer/quota",parameters:[{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}}]},"linked-signer/{id}":{path:"/v1/linked-signer/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},maintenance:{path:"/v1/maintenance",parameters:[]},order:{path:"/v1/order",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"clientOrderId",in:"query",required:!1,schema:{type:"string"}},{name:"productIds",in:"query",required:!1,schema:{type:"array",items:{type:"string",format:"uuid"},minItems:1,uniqueItems:!0}},{name:"createdAfter",in:"query",required:!1,schema:{type:"integer"}},{name:"createdBefore",in:"query",required:!1,schema:{type:"integer"}},{name:"side",in:"query",required:!1,schema:{type:"integer",enum:[0,1],"x-enum-varnames":["BUY","SELL"]}},{name:"close",in:"query",required:!1,schema:{type:"boolean"}},{name:"stopTypes",in:"query",required:!1,schema:{type:"array",items:{type:"integer",enum:[0,1],"x-enum-varnames":["GAIN","LOSS"]}}},{name:"isWorking",in:"query",required:!1,schema:{type:"boolean",enum:[!0]}},{name:"isPending",in:"query",required:!1,schema:{type:"boolean",enum:[!0]}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"order/fill":{path:"/v1/order/fill",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"productIds",in:"query",required:!1,schema:{type:"array",items:{type:"string",format:"uuid"},minItems:1,uniqueItems:!0}},{name:"createdAfter",in:"query",required:!1,schema:{type:"integer"}},{name:"createdBefore",in:"query",required:!1,schema:{type:"integer"}},{name:"side",in:"query",required:!1,schema:{type:"integer",enum:[0,1],"x-enum-varnames":["BUY","SELL"]}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["productId","filled","price","createdAt"]}},{name:"includeSelfTrades",in:"query",required:!1,schema:{type:"boolean"}},{name:"expandSelfTrades",in:"query",required:!1,schema:{type:"boolean"}}]},"order/trade":{path:"/v1/order/trade",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"productId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"order/{id}":{path:"/v1/order/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},"order/{id}/group":{path:"/v1/order/{id}/group",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}},{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},points:{path:"/v1/points",parameters:[{name:"address",in:"query",required:!0,schema:{type:"string",format:"hex"}},{name:"season",in:"query",required:!0,schema:{type:"integer",maximum:10,minimum:0}},{name:"epoch",in:"query",required:!0,schema:{type:"integer",maximum:256,minimum:1}}]},"points/summary":{path:"/v1/points/summary",parameters:[{name:"address",in:"query",required:!0,schema:{type:"string",format:"hex"}}]},"points/total":{path:"/v1/points/total",parameters:[{name:"season",in:"query",required:!1,schema:{type:"integer",maximum:10,minimum:0}},{name:"epoch",in:"query",required:!1,schema:{type:"integer",maximum:256,minimum:1}}]},position:{path:"/v1/position",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"productIds",in:"query",required:!1,schema:{type:"array",items:{type:"string",format:"uuid"},minItems:1,uniqueItems:!0}},{name:"open",in:"query",required:!1,schema:{type:"boolean"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["size","createdAt","updatedAt","realizedPnl"]}},{name:"createdAfter",in:"query",required:!1,schema:{type:"integer"}},{name:"createdBefore",in:"query",required:!1,schema:{type:"integer"}},{name:"side",in:"query",required:!1,schema:{type:"integer",enum:[0,1],"x-enum-varnames":["BUY","SELL"]}},{name:"isLiquidated",in:"query",required:!1,schema:{type:"boolean"}}]},"position-fee":{path:"/v1/position-fee",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"productId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!0,schema:{type:"number"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["chargedAt"]}}]},"position-fee/projected-rate":{path:"/v1/position-fee/projected-rate",parameters:[{name:"productIds",in:"query",required:!0,schema:{type:"array",items:{type:"string",format:"uuid"},maxItems:50,minItems:1,uniqueItems:!0}}]},"position/active":{path:"/v1/position/active",parameters:[{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"productId",in:"query",required:!0,schema:{type:"string",format:"uuid"}}]},"position/fill":{path:"/v1/position/fill",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"positionId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["price","filled","createdAt"]}}]},"position/liquidation":{path:"/v1/position/liquidation",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"position/{id}":{path:"/v1/position/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},product:{path:"/v1/product",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt","openInterest","baseTokenName","quoteTokenName"]}},{name:"ticker",in:"query",required:!1,schema:{type:"string",pattern:"^[a-zA-Z0-9]{1,32}$"}}]},"product/mark-price-gap":{path:"/v1/product/mark-price-gap",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"productIds",in:"query",required:!0,schema:{type:"array",items:{type:"string",format:"uuid"},maxItems:50,minItems:1,uniqueItems:!0}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!0,schema:{type:"number"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["startTime"]}}]},"product/market-liquidity":{path:"/v1/product/market-liquidity",parameters:[{name:"productId",in:"query",required:!0,schema:{type:"string",format:"uuid"}}]},"product/market-price":{path:"/v1/product/market-price",parameters:[{name:"productIds",in:"query",required:!0,schema:{type:"array",items:{type:"string",format:"uuid"},maxItems:50,minItems:1,uniqueItems:!0}}]},"product/{id}":{path:"/v1/product/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},"rate-limit/config":{path:"/v1/rate-limit/config",parameters:[]},"rpc/config":{path:"/v1/rpc/config",parameters:[]},subaccount:{path:"/v1/subaccount",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"name",in:"query",required:!1,schema:{type:"string",format:"hex"}},{name:"sender",in:"query",required:!0,schema:{type:"string",format:"hex"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt","name"]}}]},"subaccount/all":{path:"/v1/subaccount/all",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"subaccount/balance":{path:"/v1/subaccount/balance",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["tokenName","updatedAt","amount"]}}]},"subaccount/{id}":{path:"/v1/subaccount/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},time:{path:"/v1/time",parameters:[]},token:{path:"/v1/token",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"depositEnabled",in:"query",required:!1,schema:{type:"boolean"}},{name:"withdrawEnabled",in:"query",required:!1,schema:{type:"boolean"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"token/transfer":{path:"/v1/token/transfer",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"statuses",in:"query",required:!1,schema:{type:"array",items:{type:"string",enum:["SUBMITTED","PENDING","COMPLETED","REJECTED"]},uniqueItems:!0}},{name:"types",in:"query",required:!1,schema:{type:"array",items:{type:"string",enum:["DEPOSIT","WITHDRAW","CONVERT"]}}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}},{name:"createdAfter",in:"query",required:!1,schema:{type:"integer"}},{name:"createdBefore",in:"query",required:!1,schema:{type:"integer"}}]},"token/withdraw":{path:"/v1/token/withdraw",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"subaccountId",in:"query",required:!0,schema:{type:"string",format:"uuid"}},{name:"isActive",in:"query",required:!1,schema:{type:"boolean"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["createdAt"]}}]},"token/{id}":{path:"/v1/token/{id}",parameters:[{name:"id",in:"path",required:!0,schema:{type:"string"}}]},"usde/transfer":{path:"/v1/usde/transfer",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"address",in:"query",required:!0,schema:{type:"string",format:"hex"}},{name:"excludeTransferAddresses",in:"query",required:!1,schema:{type:"array",items:{type:"string",format:"hex"},maxItems:10,uniqueItems:!0}},{name:"statuses",in:"query",required:!1,schema:{type:"array",items:{type:"string",enum:["PENDING","COMPLETED"]},uniqueItems:!0}},{name:"types",in:"query",required:!1,schema:{type:"array",items:{type:"string",enum:["DEPOSIT","WITHDRAW","TRANSFER"]},uniqueItems:!0}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["initiatedAt"]}},{name:"initiatedAfter",in:"query",required:!1,schema:{type:"integer"}},{name:"initiatedBefore",in:"query",required:!1,schema:{type:"integer"}}]},"archive/subaccount/balance":{path:"/v1/subaccount/balance",host:"archive",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!1,schema:{type:"number"}},{name:"resolution",in:"query",required:!0,schema:{type:"string",enum:["hour1","hour2","hour4","hour8","hour12","day1","week1","month1"]}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["time"]}},{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}},{name:"tokenIds",in:"query",required:!1,schema:{minItems:1,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}}]},"archive/subaccount/funding":{path:"/v1/subaccount/funding",host:"archive",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!1,schema:{type:"number"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["time"]}},{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}},{name:"positionIds",in:"query",required:!1,schema:{minItems:1,maxItems:128,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}},{name:"productIds",in:"query",required:!1,schema:{minItems:1,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}}]},"archive/subaccount/position-fee":{path:"/v1/subaccount/position-fee",host:"archive",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!1,schema:{type:"number"}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["time"]}},{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}},{name:"positionIds",in:"query",required:!1,schema:{minItems:1,maxItems:128,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}},{name:"productIds",in:"query",required:!1,schema:{minItems:1,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}}]},"archive/subaccount/unrealized-pnl":{path:"/v1/subaccount/unrealized-pnl",host:"archive",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!1,schema:{type:"number"}},{name:"resolution",in:"query",required:!0,schema:{type:"string",enum:["hour1","hour2","hour4","hour8","hour12","day1","week1","month1"]}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["time"]}},{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}},{name:"productIds",in:"query",required:!1,schema:{minItems:1,uniqueItems:!0,type:"array",items:{type:"string",format:"uuid"}}}]},"archive/subaccount/volume":{path:"/v1/subaccount/volume",host:"archive",parameters:[{name:"order",in:"query",required:!1,schema:{type:"string",enum:["asc","desc"]}},{name:"limit",in:"query",required:!1,schema:{type:"integer"}},{name:"cursor",in:"query",required:!1,schema:{type:"string"}},{name:"startTime",in:"query",required:!0,schema:{type:"number"}},{name:"endTime",in:"query",required:!1,schema:{type:"number"}},{name:"resolution",in:"query",required:!0,schema:{type:"string",enum:["hour1","hour2","hour4","hour8","hour12","day1","week1","month1"]}},{name:"orderBy",in:"query",required:!1,schema:{type:"string",enum:["time"]}},{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}}]},"archive/subaccount/total-volume":{path:"/v1/subaccount/total-volume",host:"archive",parameters:[{name:"subaccountId",in:"query",required:!0,schema:{format:"uuid",type:"string"}}]},"candles/last-price/config":{path:"/v1/last-price/config",host:"candles",parameters:[]},"candles/last-price/time":{path:"/v1/last-price/time",host:"candles",parameters:[]},"candles/last-price/symbols":{path:"/v1/last-price/symbols",host:"candles",parameters:[{name:"symbol",in:"query",required:!0,schema:{type:"string"}}]},"candles/last-price/search":{path:"/v1/last-price/search",host:"candles",parameters:[{name:"query",in:"query",schema:{type:"string"}},{name:"type",in:"query",schema:{type:"string"}},{name:"exchange",in:"query",schema:{type:"string"}},{name:"limit",in:"query",schema:{type:"integer",minimum:1,maximum:100}}]},"candles/last-price/history":{path:"/v1/last-price/history",host:"candles",parameters:[{name:"symbol",in:"query",required:!0,schema:{type:"string"}},{name:"resolution",in:"query",required:!0,schema:{type:"string",enum:["1","3","5","15","30","60","120","240","480","720","1D","3D","1W","1M"]}},{name:"from",in:"query",required:!0,schema:{type:"integer",minimum:0}},{name:"to",in:"query",required:!0,schema:{type:"integer",minimum:0}},{name:"countback",in:"query",required:!1,schema:{type:"integer",minimum:0}}]},"candles/oracle-price/config":{path:"/v1/oracle-price/config",host:"candles",parameters:[]},"candles/oracle-price/time":{path:"/v1/oracle-price/time",host:"candles",parameters:[]},"candles/oracle-price/symbols":{path:"/v1/oracle-price/symbols",host:"candles",parameters:[{name:"symbol",in:"query",required:!0,schema:{type:"string"}}]},"candles/oracle-price/search":{path:"/v1/oracle-price/search",host:"candles",parameters:[{name:"query",in:"query",schema:{type:"string"}},{name:"type",in:"query",schema:{type:"string"}},{name:"exchange",in:"query",schema:{type:"string"}},{name:"limit",in:"query",schema:{type:"integer",minimum:1,maximum:100}}]},"candles/oracle-price/history":{path:"/v1/oracle-price/history",host:"candles",parameters:[{name:"symbol",in:"query",required:!0,schema:{type:"string"}},{name:"resolution",in:"query",required:!0,schema:{type:"string",enum:["1","3","5","15","30","60","120","240","480","720","1D","3D","1W","1M"]}},{name:"from",in:"query",required:!0,schema:{type:"integer",minimum:0}},{name:"to",in:"query",required:!0,schema:{type:"integer",minimum:0}},{name:"countback",in:"query",required:!1,schema:{type:"integer",minimum:0}}]}};var O={type:"string",format:"uuid"},oe={type:"string",description:"ASCII subaccount name (default primary) or bytes32. Query IDs are UUIDs."},ue={subaccount:oe,subaccountId:O};function de(t,a){return a.type==="array"?((!Array.isArray(t)||t.length<Number(a.minItems??1)||t.length>Number(a.maxItems??200)||a.uniqueItems&&new Set(t).size!==t.length)&&i("Invalid Meridian perps query array."),t.flatMap(s=>de(s,g(a.items)))):(a.type==="integer"||a.type==="number"?(typeof t!="number"||!Number.isSafeInteger(t)||t<Number(a.minimum??0)||t>Number(a.maximum??Number.MAX_SAFE_INTEGER))&&i("Invalid Meridian perps query integer."):a.type==="boolean"?typeof t!="boolean"&&i("Invalid Meridian perps query flag."):((typeof t!="string"||t.length<1||t.length>4096)&&i("Invalid Meridian perps query string."),a.format==="uuid"&&w(t),a.format==="hex"&&!/^0x(?:[0-9a-fA-F]{2})+$/.test(t)&&i("Invalid Meridian perps hexadecimal query.")),Array.isArray(a.enum)&&!a.enum.includes(t)&&i("Invalid Meridian perps query option."),[String(t)])}async function ge(t,a,s){if(t.network==="testnet"&&i("Meridian perps extended reads require mainnet."),Object.keys(a).some(r=>!["resource","params"].includes(r))&&i("Use resource and params for Meridian perps reads."),a.resource===void 0&&a.params===void 0)return{chainId:f,resources:$,scope:"Fixed official public read routes and their exact query/path parameter schemas."};(typeof a.resource!="string"||!Object.hasOwn($,a.resource))&&i("Choose a Meridian perps resource from the tool schema.");let b=$[a.resource],l=a.params===void 0?{}:{...g(a.params)};a.resource==="subaccount"&&l.sender===void 0&&(l.sender=s),Object.keys(l).some(r=>!b.parameters.some(e=>e.name===r))&&i("Unsupported Meridian perps query parameter.");let h=new URLSearchParams,m=b.path;for(let r of b.parameters){let e=l[r.name];if(e===void 0){r.required&&i(`Meridian perps ${a.resource} needs ${r.name}.`);continue}r.name==="limit"&&(typeof e!="number"||e<1||e>100)&&i("Choose a page limit from 1 to 100.");let n=de(e,r.schema);if(r.in==="path")r.name==="id"&&w(e),r.name==="address"&&S(e),m=m.replace(`{${r.name}}`,encodeURIComponent(n[0]));else for(let p of n)h.append(r.name,p)}let u=await A(t,`${m}${h.size?`?${h}`:""}`,void 0,b.host);if(u&&typeof u=="object"&&"hasNext"in u){let r=g(u);(typeof r.hasNext!="boolean"||!Array.isArray(r.data)||r.hasNext&&(typeof r.nextCursor!="string"||!r.nextCursor))&&i("Meridian perps returned invalid pagination metadata.")}return{chainId:f,resource:a.resource,data:u,scope:"One API response. Follow hasNext/nextCursor using the same filters; an accepted action or API balance is not proof of final on-chain delivery."}}async function D(t,a){let s=[],b=new Set,l;for(let h=0;h<100;h++){let m=g(await A(t,`${a}${a.includes("?")?"&":"?"}limit=100${l?`&cursor=${encodeURIComponent(l)}`:""}`));if((!Array.isArray(m.data)||typeof m.hasNext!="boolean")&&i("Meridian perps listing is incomplete."),s.push(...m.data.map(g)),!m.hasNext)return s;(typeof m.nextCursor!="string"||!m.nextCursor||b.has(m.nextCursor))&&i("Meridian perps pagination did not advance."),l=m.nextCursor,b.add(l)}return i("Meridian perps listing exceeded the safety bound; retry after indexing stabilizes.")}async function me(t,a,s,b,l){let h={};if(a!=="referral"&&!(a==="signer"&&s.mode==="extend")&&await W(t,s.subaccountId,b,F(s.subaccount)),a==="order"){let m=(await D(t,"/v1/product?order=asc")).filter(o=>o.onchainId===s.onchainId&&o.engineType===0);m.length!==1&&i("No unique Meridian perps product matches this onchainId.");let u=m[0];u.status!=="ACTIVE"&&i("The Meridian perps product is not active.");let r=BigInt(C(s.quantity,"the D9 quantity")),e=v(u.lotSize),n=v(u.tickSize);(!e||!n||r%e||r>v(u.maxQuantity)||!s.close&&r<v(u.minQuantity))&&i("Meridian perps quantity violates the current product limits or lot size.");for(let o of["price","stopPrice"])if(s[o]!==void 0){let d=BigInt(C(s[o],`the D9 ${o}`));(d%n||d<v(u.minPrice)||d>v(u.maxPrice))&&i("Meridian perps price violates current bounds or tick size.")}let p=g(await A(t,"/v1/order/dry-run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({data:l})}));p.code!=="Ok"&&i("Meridian perps dry run did not accept this order. Inspect balances, isolated-pool conversions and current risk limits."),h={marginMode:u.marginMode,quoteTokenAddress:u.quoteTokenAddress,currentApiFeeFractions:{maker:u.makerFee,taker:u.takerFee},dryRun:p}}if(a==="withdraw"){let m=await V(t,s.tokenId);(!I(m.address,s.token)||m.withdrawEnabled!==!0)&&i("The chosen Meridian perps token is not enabled for withdrawal.");let u=(await D(t,`/v1/subaccount/balance?subaccountId=${w(s.subaccountId)}`)).find(r=>r.tokenId===s.tokenId);(!u||v(u.available)<BigInt(C(s.amount,"the D9 withdrawal amount")))&&i("Not enough available Meridian perps collateral. Unrealized trading profit is not withdrawable."),h={availableD9:v(u.available).toString(),withdrawFeeD9:v(m.withdrawFee).toString(),tokenSymbol:m.erc20Symbol,tokenNativeDecimals:m.erc20Decimals}}if(a==="convert"){let m=await D(t,"/v1/token?order=asc"),u=m.find(e=>I(e.address,s.fromToken)),r=m.find(e=>I(e.address,s.toToken));(!u||!r||(u.backingTokenId??u.id)!==(r.backingTokenId??r.id))&&i("The Meridian perps quote-token pools do not share a backing token."),h={fromTokenId:u.id,toTokenId:r.id,conversionFeeD9:"0",conversionRate:"1:1 in D9 accounting units"}}if(a==="signer"){let m=S(s.mode==="extend"?b:s.signer),r=(s.mode==="extend"?[g(await A(t,`/v1/linked-signer/address/${m}`))]:await D(t,`/v1/linked-signer?subaccountId=${w(s.subaccountId)}`)).filter(e=>I(e.signer,m));if(r.length!==1&&i("The Meridian linked signer does not match the requested subaccount."),s.mode==="extend"&&(r[0].status!=="ACTIVE"||typeof r[0].expiresAt!="number"||r[0].expiresAt<=Date.now())&&i("Only an active unexpired local Meridian signer can extend itself."),h={currentSignerStatus:r[0].status,expiresAtMilliseconds:r[0].expiresAt},s.mode==="revoke"){let e=g(await A(t,`/v1/order?subaccountId=${w(s.subaccountId)}&statuses=NEW&statuses=PENDING&statuses=FILLED_PARTIAL&limit=1`));(!Array.isArray(e.data)||e.data.length||e.hasNext!==!1)&&i("Cancel every working order and confirm cancellation before revoking a Meridian signer.")}}return h}var Pe=t=>{let a=new Map;async function s(){(t.network==="testnet"||await t.clientFor(f).getChainId()!==f)&&i("Meridian perps requires the mainnet RPC on chain 4663.")}async function b(r,e,n){if(te(r,e),B(r,e,n,"0",Math.floor(Date.now()/1e3)),e.continuation!==void 0){let k=g(e.continuation),E=typeof k.requestId=="string"?a.get(k.requestId):void 0;(!E||!I(E.round.wallet,n)||!H(E.round,k)||!H(E.args,Object.fromEntries(Object.entries(e).filter(([x])=>!["continuation","signature"].includes(x)))))&&i("Meridian perps continuation is lost, expired or belongs to different arguments. Check history before starting again.");let j=g(k.request);ie(`meridian_perps_${r}`,e,n,[{kind:"typedData",request:j}],k,void 0,Math.floor(Date.now()/1e3)),(typeof e.signature!="string"||!/^0x[0-9a-fA-F]{130}$/.test(e.signature))&&i("The local Meridian perps signature is missing."),clearTimeout(E.timer),a.delete(k.requestId),I(await qe({...j,signature:e.signature}),n)||i("The Meridian perps signature does not match this wallet."),await s();let ce=await R(t);H(X(B(r,e,n,String(k.nonce),Number(k.signedAt)),ce),j)||i("Meridian perps signing configuration changed; start again after checking history.");let P=B(r,e,n,String(k.nonce),Number(k.signedAt)),Q=P.path,U={};if(P.method==="GET"){Object.assign(U,{"X-Meridian-Auth":"EIP712Auth","X-Meridian-Sender":n,"X-Meridian-Signature":e.signature,"X-Meridian-Intent":"2","X-Meridian-SignedAt":String(k.signedAt)});let x=new URLSearchParams;e.cursor!==void 0&&((typeof e.cursor!="string"||!e.cursor||e.cursor.length>4096)&&i("Provide the returned Meridian referral cursor."),x.set("cursor",e.cursor)),e.limit!==void 0&&((typeof e.limit!="number"||!Number.isInteger(e.limit)||e.limit<1||e.limit>100)&&i("Choose a referral page limit from 1 to 100."),x.set("limit",String(e.limit))),x.size&&(Q+=`?${x}`)}else U["content-type"]="application/json";return{result:await A(t,Q,{method:P.method,headers:U,...P.method==="GET"?{}:{body:JSON.stringify({data:P.data,signature:e.signature})}}),chainId:f,summary:"Meridian API responded. This is not a fill or final withdrawal receipt. Check order, position and transfer status before a dependent action or retry."}}e.signature!==void 0&&i("A Meridian perps signature requires an active local signing round."),a.size>=1e3&&i("Too many pending Meridian perps signing rounds. Try again shortly."),await s();let p=await R(t),o=g(await A(t,"/v1/time")).time;(typeof o!="number"||!Number.isSafeInteger(o)||Math.abs(o-Date.now())>3e4)&&i("Meridian perps server time differs from the local clock; synchronize the clock before signing.");let d=Math.floor(o/1e3),y=(BigInt(o)*1000000n+BigInt(ye(1e6))).toString(),c=B(r,e,n,y,d),q=await me(t,r,e,n,c.data),T=X(c,p),_=le(),J={stage:"perps_sign",requestId:_,chainId:f,wallet:n,expiresAt:d+90,signedAt:d,nonce:y,request:T,signatureTypes:{[c.primaryType]:p[c.primaryType]},data:c.data,path:c.path,method:c.method,review:q},K=setTimeout(()=>a.delete(_),9e4);return K.unref?.(),a.set(_,{args:structuredClone(e),round:structuredClone(J),timer:K}),{steps:[{kind:"typedData",request:T}],continuation:J,summary:"Review every Meridian perps field and sign locally. Amounts and prices in the typed message use D9 base units (9 decimals). An API acceptance is not an executed trade. No gasless signature simulates future sequencer execution."}}function l(r,e,n,p,o){return{name:r,inputSchema:{type:"object",properties:e,required:n,additionalProperties:!1,description:p},execute:async(d,y)=>{try{return g(d),S(y),(Object.keys(d).some(c=>!Object.hasOwn(e,c))||n.some(c=>d[c]===void 0))&&i("Provide the required Meridian perps tool inputs only."),await o(d,y)}catch(c){throw new Y(t.plainError(c))}}}}let h={...ue,continuation:{type:"object"},signature:{type:"string"},type:{type:"string",enum:["LIMIT","MARKET"]},side:{type:"integer",enum:[0,1]},onchainId:{type:"integer",minimum:1,maximum:4294967295},quantity:M("D9 product quantity base units (9 decimals); 0 only for a full close."),price:M("D9 limit price base units (9 decimals)."),stopPrice:M("D9 trigger price base units (9 decimals)."),amount:M("D9 amount base units (9 decimals)."),timeInForce:{type:"string",enum:["GTD","IOC","FOK"]},postOnly:{type:"boolean"},reduceOnly:{type:"boolean"},close:{type:"boolean"},clientOrderId:{type:"string"},stopType:{type:"integer",enum:[0,1]},expiresAt:M("Unix seconds order expiry."),groupId:O,groupContingencyType:{type:"integer",enum:[0,1]},all:{type:"boolean"},orderIds:{type:"array",items:O,maxItems:200},clientOrderIds:{type:"array",items:{type:"string"},maxItems:200},token:N,tokenId:O,fromToken:N,toToken:N,mode:{type:"string"},signer:N,code:{type:"string"},cursor:{type:"string"},limit:{type:"integer",minimum:1,maximum:100}},m={order:["subaccountId","type","side","onchainId","quantity"],cancel:["subaccountId"],withdraw:["subaccountId","token","tokenId","amount"],convert:["subaccountId","fromToken","toToken","amount"],signer:["mode"],referral:["mode"]},u=ee.map(r=>l(`meridian_perps_${r}`,Object.fromEntries([...re[r],"subaccount","subaccountId","continuation","signature"].map(e=>[e,h[e]])),m[r],`Prepare and locally sign a Meridian perps ${r}. Internal continuation only; never supply a signature manually. Requires the perps bridge integration.`,(e,n)=>b(r,e,n)));return u.unshift(l("meridian_perps_read",{resource:{type:"string",enum:Object.keys($),description:"Official mainnet public GET route. Includes products, accounts, balances, orders, fills, risk, transfers, signers, points and configuration."},params:{type:"object",description:"Exact documented query/path parameters; API decimals are returned verbatim, while Oak action inputs use base-unit strings."}},[],"Omit resource to discover every parameter schema locally. Otherwise read one official Meridian perps API page. Use nextCursor while hasNext is true.",(r,e)=>ge(t,r,e))),u.push(ne(t,(r,e,n,p)=>me(t,r,e,n,p))),u.push(l("meridian_perps_deposit",{subaccount:oe,tokenId:O,amount:M("Deposit token native base units; use erc20Decimals from token metadata."),referralCode:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"}},["tokenId","amount"],"Preview an exact ERC-20 approval and exchange deposit. First deposit registers the subaccount. Wait for sequencer processing before trading.",async(r,e)=>{await s(),await R(t);let n=await V(t,r.tokenId),p=S(n.address);(n.depositEnabled!==!0||typeof n.erc20Decimals!="number"||!Number.isInteger(n.erc20Decimals)||n.erc20Decimals<0||n.erc20Decimals>36||typeof n.erc20Symbol!="string")&&i("The Meridian perps token is not enabled for ERC-20 deposits.");let o=C(r.amount,"the deposit amount",!0);Z(o,n.erc20Decimals)<v(n.minDeposit)&&i(`Meridian perps deposit is below the current minimum ${n.minDeposit} ${n.erc20Symbol}.`);let d=t.clientFor(f),[y,c]=await Promise.all([d.readContract({address:p,abi:se,functionName:"balanceOf",args:[e]}),d.readContract({address:p,abi:se,functionName:"decimals"})]);(c!==n.erc20Decimals||y<BigInt(o))&&i("Meridian perps deposit token decimals or wallet balance do not match the requested deposit.");let q=[t.approval(p,z,o,f),t.unsignedTx({to:z,chainId:f,value:"0",data:ae({abi:L,functionName:"deposit",args:[F(r.subaccount),p,BigInt(o),r.referralCode===void 0?fe:G(r.referralCode)]}),description:`Deposit ${o} ${n.erc20Symbol} base units (${c} decimals) into Meridian perps.`})],T=await t.preview(q,e);return{txs:q,preview:T,token:{address:p,decimals:c,symbol:n.erc20Symbol,chainId:f},depositFee:n.depositFee,summary:`${T.summary} Approve exactly ${o} token base units and deposit. Sequencer registration and available margin must be checked separately.`}})),u.push(l("meridian_perps_finalize",{...ue,withdrawDigest:{type:"string",pattern:"^0x[0-9a-fA-F]{64}$"}},["subaccountId","withdrawDigest"],"Preview same-chain withdrawal finalization for this owner after on-chain initiation. API acceptance alone does not permit finalization.",async(r,e)=>{await s(),await R(t);let n=await W(t,r.subaccountId,e,F(r.subaccount)),p=G(r.withdrawDigest),o=(await D(t,`/v1/token/withdraw?subaccountId=${w(n.id)}&order=desc`)).filter(q=>I(q.withdrawDigest,p));o.length!==1&&i("The withdrawal digest is not uniquely present in this subaccount history. Reconcile the request before retrying.");let d=o[0];(!I(d.subaccount,n.name)||d.finalizedBlockNumber!==void 0||typeof d.initiatedBlockNumber!="string"||d.lzDestinationEid!==0||!I(d.lzDestinationAddress,he(e)))&&i("The withdrawal is not an initiated, unfinalized same-chain withdrawal to this wallet.");let y=[t.unsignedTx({to:z,chainId:f,value:"0",data:ae({abi:L,functionName:"finalizeWithdraw",args:[e,p]}),description:"Finalize the pending Meridian perps withdrawal to this wallet."})],c=await t.preview(y,e);return c.changes.some(q=>I(q.token.address,d.token)&&q.token.chainId===f&&BigInt(q.amount)>0n)||i("Meridian perps finalization preview did not show the token payout to this wallet."),{txs:y,preview:c,summary:`${c.summary} Finalize the same-chain withdrawal. Check the mined receipt and wallet balance; do not submit a digest twice.`}})),{tools:u,positions:async r=>{t.network==="testnet"&&i("Meridian perps positions require mainnet."),S(r);let e=await D(t,`/v1/subaccount?sender=${r}&order=asc`),n=[],p=new Set;for(let o of e){I(o.account,r)||i("Meridian perps returned another owner in the subaccount listing.");let d=w(o.id);for(let y of await D(t,`/v1/position?subaccountId=${d}&open=true`)){let c=v(y.size);if(c===0n)continue;let q=`perps:${d}:${w(y.id)}`,T=w(y.productId);(p.has(q)||y.side!==0&&y.side!==1)&&i("Meridian perps returned a repeated or invalid position."),p.add(q),n.push({module:"meridian",id:q,chainId:f,assets:[],description:`Meridian perps ${y.side===0?"long":"short"} product ${T}: ${c} D9 quantity base units (9 decimals), subaccount ${d}. Derivatives exposure; inspect perps account balances, funding and position fees separately.`})}}return n}}};export{ge as a,Pe as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as J,e as Y}from"./FSPNOVKB.js";import{d as U,e as D,v as _}from"./ANQ43XJA.js";import{a as R,b as Q,c as H,d as L,e as $,f as G,g as W}from"./64AF7ECA.js";import{a as E}from"./EG6M6SSO.js";import{a as S}from"./UWOFA6GV.js";import{c as l,g as B}from"./73N3TOJL.js";import{a as g,i as N}from"./XPFVT2EA.js";import{a as o}from"./5YS5V2LK.js";import{encodeAbiParameters as x,encodeFunctionData as Z,encodePacked as pe,getAddress as ie,parseAbi as V,parseAbiParameters as A,zeroAddress as w}from"viem";var ee=ie("0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7"),te=ie(N[4663].ponsTrade.quoter.address),de=V(["function execute(bytes commands,bytes[] inputs,uint256 deadline) payable"]),me=V(["function approve(address token,address spender,uint160 amount,uint48 expiration)"]),ne=V(["function factory() view returns (address)","function quoteExactInput(bytes path,uint256 amountIn) returns (uint256,uint160[],uint32[],uint256)","function quoteExactOutput(bytes path,uint256 amountOut) returns (uint256,uint160[],uint32[],uint256)"]),M="(address intermediateCurrency,uint24 fee,int24 tickSpacing,address hooks,bytes hookData)",z="(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)",oe=V([`function quoteExactInput((address exactCurrency,${M}[] path,uint128 exactAmount) params) returns (uint256,uint256)`,`function quoteExactOutput((address exactCurrency,${M}[] path,uint128 exactAmount) params) returns (uint256,uint256)`,`function quoteExactInputSingle((${z} poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256,uint256)`,`function quoteExactOutputSingle((${z} poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData) params) returns (uint256,uint256)`]),fe=A(`(address exactCurrency,${M}[] path,uint256[] minHopPriceX36,uint128 amount,uint128 limit)`);function ye(u,t,i,d){let a=[],e=d?i:t,r=new Set([e]);for(let n of d?[...u].reverse():u){let s=n.currency0===e?n.currency1:n.currency1===e?n.currency0:void 0;if(!s||r.has(s))throw new o("V4 poolKeys must form a continuous route without repeated currencies.");a.push({intermediateCurrency:s,fee:n.fee,tickSpacing:n.tickSpacing,hooks:n.hooks,hookData:"0x"}),e=s,r.add(e)}if(e!==(d?t:i))throw new o("V4 route does not end at the requested currency.");return a}var le=A(`(${z} poolKey,bool zeroForOne,uint128 amount,uint128 limit,uint256 minHopPriceX36,bytes hookData)`),he=A("address recipient,uint256 amount,uint256 limit,bytes path,bool payerIsUser,uint256[] minHopPriceX36"),xe=A("address recipient,uint256 amount,uint256 limit,address[] path,bool payerIsUser,uint256[] minHopPriceX36"),re=A("address,uint256"),be=A("bytes,bytes[]");function we(u,t,i){let d=i?[...u].reverse():u,a=i?[...t].reverse():t,e=d[0];return a.forEach((r,n)=>{e=`${e}${pe(["uint24","address"],[r,d[n+1]]).slice(2)}`}),e}var ue={version:{type:"string",enum:["v2","v3","v4"]},tokenIn:l,tokenOut:l,path:{type:"array",minItems:2,maxItems:6,items:l},fees:{type:"array",items:{type:"integer",minimum:0,maximum:1e6}},poolKeys:{type:"array",minItems:1,maxItems:5,items:{type:"object",required:["currency0","currency1","fee","tickSpacing","hooks"],properties:{currency0:l,currency1:l,fee:{type:"integer"},tickSpacing:{type:"integer"},hooks:l},additionalProperties:!1}},poolKey:{type:"object",properties:{currency0:l,currency1:l,fee:{type:"integer"},tickSpacing:{type:"integer"},hooks:l},required:["currency0","currency1","fee","tickSpacing","hooks"],additionalProperties:!1},amountIn:S(),amountOut:S(),minAmountOut:S(),maxAmountIn:S(),slippageBps:{type:"integer",minimum:0,maximum:9999}};async function Ae(u,t,i,d=!1){W(t,Object.keys(ue));let a=t.version;if(!["v2","v3","v4"].includes(String(a)))throw new o("Provide version v2, v3 or v4.");let e=t.amountOut!==void 0;if(t.amountIn!==void 0===e)throw new o("Provide exactly one of amountIn or amountOut.");if(e&&t.minAmountOut!==void 0||!e&&t.maxAmountIn!==void 0)throw new o("Use maxAmountIn for exact output, minAmountOut for exact input.");let r=R(e?t.amountOut:t.amountIn,e?"amountOut":"amountIn",a==="v4"?128:160),n=H(t.tokenIn),s=H(t.tokenOut);if(n===s)throw new o("Swap requires different input and output currencies.");let v=u.clientFor(g),y=await v.getBlock(),F=L(t.slippageBps),I,m,q,k,h,c,C;if(a==="v4"){if(t.path!==void 0||t.fees!==void 0)throw new o("V4 uses poolKey or poolKeys; omit path and fees.");if(t.poolKey===void 0==(t.poolKeys===void 0))throw new o("Provide poolKey or poolKeys, not both.");if(t.poolKeys!==void 0){if(!Array.isArray(t.poolKeys)||t.poolKeys.length<1||t.poolKeys.length>5)throw new o("Provide 1 to 5 v4 poolKeys.");let p=t.poolKeys.map(P=>_(P));I=ye(p,n,s,e),m=(await v.simulateContract({address:te,abi:oe,functionName:e?"quoteExactOutput":"quoteExactInput",args:[{exactCurrency:e?s:n,path:I,exactAmount:r}],account:i,gas:E,blockNumber:y.number})).result[0]}else{if(h=_(t.poolKey),![h.currency0,h.currency1].includes(n)||![h.currency0,h.currency1].includes(s))throw new o("PoolKey currencies differ from the requested swap.");m=(await v.simulateContract({address:te,abi:oe,functionName:e?"quoteExactOutputSingle":"quoteExactInputSingle",args:[{poolKey:h,zeroForOne:n===h.currency0,exactAmount:r,hookData:"0x"}],account:i,gas:E,blockNumber:y.number})).result[0]}k="0x10"}else{if(t.poolKey!==void 0||t.poolKeys!==void 0||n===w||s===w)throw new o("V2/v3 routes use ERC-20 tokens; wrap ETH to WETH first.");if(c=Array.isArray(t.path)?t.path.map(Q):[n,s],c.length<2||c.length>6||c[0]!==n||c.at(-1)!==s||new Set(c).size!==c.length||c.includes(w))throw new o("Path must contain 2 to 6 distinct ERC-20 tokens in input-to-output order.");if(a==="v2"){if(t.fees!==void 0)throw new o("V2 fees are fixed by the pair; omit fees.");let p=await v.readContract({address:J,abi:Y,functionName:e?"getAmountsIn":"getAmountsOut",args:[r,c],blockNumber:y.number});m=e?p[0]:p.at(-1),k=e?"0x09":"0x08"}else{let p=t.fees;if(!Array.isArray(p)||p.length!==c.length-1||p.some(P=>typeof P!="number"||!Number.isInteger(P)||P<0||P>1e6))throw new o("Provide one integer v3 fee in pips per path hop.");if(!B(await v.readContract({address:ee,abi:ne,functionName:"factory",blockNumber:y.number}),N[4663].uniswap.v3_factory.address))throw new o("V3 quoter is not configured for the pinned factory.");C=we(c,p,e),m=(await v.simulateContract({address:ee,abi:ne,functionName:e?"quoteExactOutput":"quoteExactInput",args:[C,r],account:i,gas:E,blockNumber:y.number})).result[0],k=e?"0x01":"0x00"}}if(m<=0n)throw new o("No positive Uniswap quote is available.");let T=e?t.maxAmountIn:t.minAmountOut;if(!d&&T===void 0)throw new o(`Provide ${e?"maxAmountIn":"minAmountOut"} from uniswap_quote to confirm the trade bound.`);let f=T===void 0?e?(m*BigInt(1e4+F)+9999n)/10000n:m*BigInt(1e4-F)/10000n:R(T,e?"maxAmountIn":"minAmountOut",a==="v4"?128:160);if(f<=0n||(e?f<m:f>m))throw new o("The fresh quote does not satisfy the confirmed swap bound.");let b=e?f:r;if(b>=1n<<160n||a==="v4"&&(b>=1n<<128n||f>=1n<<128n))throw new o("Swap bounds exceed the router amount range.");let[ae,se]=await Promise.all([$(u,n,y.number),$(u,s,y.number)]),j={version:a,input:{token:ae,amount:(e?m:r).toString()},output:{token:se,amount:(e?r:m).toString()},[e?"maxAmountIn":"minAmountOut"]:f.toString(),blockNumber:y.number.toString(),expiresAt:(y.timestamp+60n).toString()};if(d)return{quote:j,summary:"Read-only on-chain quote. Repeat the same route with the returned bound in uniswap_swap; execution gets a fresh quote and preview."};let O=y.timestamp+300n,K=[];if(n!==w&&(K.push(u.approval(n,U,b.toString(),g)),K.push(u.unsignedTx({to:U,data:Z({abi:me,functionName:"approve",args:[n,D,b,Number(O)]}),value:"0",chainId:g,description:`Permit exactly ${b} input base units to Universal Router until ${O}.`}))),a==="v4"){let p=I?x(fe,[{exactCurrency:e?s:n,path:I,minHopPriceX36:[],amount:r,limit:f}]):x(le,[{poolKey:h,zeroForOne:n===h.currency0,amount:r,limit:f,minHopPriceX36:0n,hookData:"0x"}]);q=x(be,[I?e?"0x090c0f":"0x070c0f":e?"0x080c0f":"0x060c0f",[p,x(re,[n,b]),x(re,[s,e?r:f])]])}else a==="v2"?q=x(xe,[i,r,f,c,!0,[]]):q=x(he,[i,r,f,C,!0,[]]);let X=[q];return n===w&&e&&(k=`${k}04`,X.push(x(A("address,address,uint256"),[w,i,0n]))),K.push(u.unsignedTx({to:D,data:Z({abi:de,functionName:"execute",args:[k,X,O]}),value:n===w?b.toString():"0",chainId:g,description:`Uniswap ${a} ${e?"exact output":"exact input"} swap; recipient ${i}; deadline ${O}.`})),{...await G(u,K,i,"Swap through Universal Router 2.1.2. Exact approvals, fixed output/input bound and five-minute on-chain deadline. Venue fees included; gas excluded."),quote:j}}function Ee(u){return{tools:[!0,!1].map(t=>({name:t?"uniswap_quote":"uniswap_swap",inputSchema:{type:"object",additionalProperties:!1,required:["version","tokenIn","tokenOut"],properties:ue},execute:(i,d)=>Ae(u,i,d,t)}))}}export{ee as a,te as b,de as c,me as d,ne as e,oe as f,fe as g,ye as h,le as i,he as j,xe as k,we as l,Ae as m,Ee as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as V,H as W,I as D,L as X,a as w,z as B}from"./HRG2VVPY.js";import{a as Q}from"./UWOFA6GV.js";import{f as J,g as E}from"./73N3TOJL.js";import{a as K,c as U}from"./RETS2ZEK.js";import{a as b}from"./XPFVT2EA.js";import{a as r}from"./5YS5V2LK.js";import{encodeFunctionData as ee,erc20Abi as oe,getAddress as I,parseAbi as te}from"viem";var N="https://hookr.fun/api/mcp",Y=te(["function fill(uint256 orderId) returns (uint256)","function fillGasFloor(uint256 orderId) view returns (uint256)"]),P={type:"string",pattern:"^[1-9][0-9]*$"},Z={type:"string",pattern:"^0x[0-9a-fA-F]{64}$"},ne={cursor:P,limit:{type:"integer",minimum:1,maximum:32}};function C(t,m){if(typeof t!="string"||!/^[1-9][0-9]*$/.test(t)||t.length>78||BigInt(t)>=1n<<256n)throw new r(`Provide ${m} as a positive decimal integer string.`);return BigInt(t)}function h(t){return J(t,"Hookr returned an invalid read response. Retry later.")}function v(t,m,e,o){return{name:t,inputSchema:{type:"object",description:`Read ${t.replace("hookr_","Hookr ")}. No signature or transaction.`,properties:m,required:e,additionalProperties:!1},execute:async(n,s)=>{if(Object.keys(n).some(a=>!Object.hasOwn(m,a))||e.some(a=>n[a]===void 0))throw new r(`Provide the documented arguments for ${t}.`);return o(n,s)}}}function F(t){if(typeof t!="string"||!/^0x[0-9a-fA-F]{64}$/.test(t))throw new r("Provide a 32-byte Hookr poolId.");return t}function $(t,m){let e=h(t),o=h(e.key);if(typeof o.fee!="number"||!Number.isInteger(o.fee)||o.fee<0||o.fee>16777215||typeof o.tickSpacing!="number"||!Number.isInteger(o.tickSpacing)||o.tickSpacing<=0||o.tickSpacing>8388607)throw new r("Hookr pool key is invalid.");let n={currency0:I(String(o.currency0)),currency1:I(String(o.currency1)),fee:o.fee,tickSpacing:o.tickSpacing,hooks:I(String(o.hooks))},s=m??F(e.poolId);if(BigInt(n.currency0)>=BigInt(n.currency1)||!E(V(n),s))throw new r("Hookr pool key does not match its PoolId.");let a=h(e.token),u=h(e.quote),c=i=>{let k=I(String(i.address));if(typeof i.symbol!="string"||!i.symbol.trim()||typeof i.decimals!="number"||!Number.isInteger(i.decimals)||i.decimals<0||i.decimals>255||![n.currency0,n.currency1].includes(k))throw new r("Hookr listed token metadata is invalid.");return{...i,address:k,chainId:b}},d=c(a),l=c(u);if(d.address===l.address)throw new r("Hookr listed token pair is invalid.");return{...e,poolId:s,key:n,token:d,quote:l}}async function re(t,m,e){try{let o=await t.http(N,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"tools/call",params:{name:m,arguments:e}}),signal:AbortSignal.timeout(15e3),redirect:"error"});if(!o.ok)throw new Error(`HTTP ${o.status}`);let n=h(await o.json());if(n.error||n.id!==1)throw new Error("RPC failure");let s=h(n.result);if(s.isError)throw new Error("Tool failure");let a=h(s.structuredContent);if(a.status==="unavailable"||a.error)throw new Error("Unavailable");return a}catch{throw new r(`Hookr ${m} read is unavailable. Retry later; unavailable data is not an empty result.`)}}var O=re;function me(t){let m=e=>v(e?"hookr_orders":"hookr_open_orders",ne,[],async(o,n)=>{let s=o.limit??16;if(typeof s!="number"||!Number.isInteger(s)||s<1||s>32)throw new r("Hookr page limit must be an integer from 1 to 32.");let a=t.clientFor(b),u=await a.getBlock();if(typeof u.number!="bigint"||typeof u.timestamp!="bigint"||u.timestamp<=0n)throw new r("Hookr order reads need a valid chain block and timestamp.");let c=new Proxy(X(a),{get(y,f,p){return f==="readContract"?g=>y.readContract({...g,blockNumber:u.number}):Reflect.get(y,f,p)}}),d={...t,clientFor:()=>c},l=await c.readContract({address:w,abi:B,functionName:"lastOrderId"});if(typeof l!="bigint"||l<0n)throw new r("Could not read the last Hookr order ID. Coverage is unknown.");let i=o.cursor===void 0?l:C(o.cursor,"cursor");if(i>l)throw new r("Hookr cursor exceeds the latest order ID. Restart pagination.");let k=[],T=new Map,A=i,S=i>BigInt(s)?i-BigInt(s):0n;for(;i>S;){let y=i--,f=W(await c.readContract({address:w,abi:B,functionName:"getOrder",args:[y]}));if(Number(f.status)===0||BigInt(f.owner)===0n)throw new r(`Hookr order #${y} is missing. Coverage is unknown.`);if(e?!E(f.owner,n):Number(f.status)!==1)continue;let p=await D(d,y,{order:f,tokens:T});if(e){k.push(p);continue}let g=null,q=null,M=null,j=null,z=BigInt(p.expiry)<u.timestamp,G=p.fillable&&!z;if(G)try{let _=await c.readContract({address:w,abi:Y,functionName:"fillGasFloor",args:[BigInt(p.orderId)]}),R=await a.estimateGas({account:n,to:w,data:ee({abi:Y,functionName:"fill",args:[BigInt(p.orderId)]}),blockNumber:u.number}),H=await a.getGasPrice();if(typeof _!="bigint"||_<0n||typeof R!="bigint"||R<=0n||typeof H!="bigint"||H<0n)throw new Error("Invalid gas data");let L=(_*6n+4n)/5n,x=R>L?R:L;g=x.toString(),q=H.toString(),M=(x*H).toString(),j=(BigInt(p.bounty)-x*H).toString()}catch{}k.push({...p,fillable:G,expired:z,economics:{gasLimit:g,gasPrice:q,estimatedGasCost:M,bountyLessEstimatedGas:j,note:"Estimate only; excludes bounty claim gas and competition. Recheck the fill preview."}})}return{chainId:b,book:w,blockNumber:u.number.toString(),chainTime:u.timestamp.toString(),orders:k,scanned:{from:A.toString(),through:(i+1n).toString()},nextCursor:i>0n?i.toString():null,complete:i===0n}});return[m(!1),m(!0),v("hookr_order",{orderId:P},["orderId"],async e=>D(t,C(e.orderId,"orderId"))),v("hookr_pools",{token:{type:"string"},limit:{type:"integer",minimum:1,maximum:50},cursor:{type:"string",pattern:"^[0-9]{1,6}$"}},[],async e=>{if(e.token!==void 0)try{I(String(e.token))}catch{throw new r("Provide a valid token address.")}if(e.limit!==void 0&&(typeof e.limit!="number"||!Number.isInteger(e.limit)||e.limit<1||e.limit>50))throw new r("Pool page limit must be from 1 to 50.");if(e.cursor!==void 0&&(typeof e.cursor!="string"||!/^[0-9]{1,6}$/.test(e.cursor)))throw new r("Provide the pool nextCursor from the previous page.");let o=await O(t,"hookr_pools",e);if(!Array.isArray(o.pools))throw new r("Hookr pool coverage is unknown. Retry later.");return{...o,pools:o.pools.map(n=>$(n)),chainId:b,source:N}}),v("hookr_pool",{poolId:Z,side:{type:"string",enum:["buy","sell"]},amountIn:P,minAmountOut:P},["poolId"],async e=>{let o=F(e.poolId),n=[e.side,e.amountIn,e.minAmountOut].some(g=>g!==void 0);if(n&&(e.side!=="buy"&&e.side!=="sell"||e.amountIn===void 0||e.minAmountOut===void 0))throw new r("Provide side, amountIn and minAmountOut together for order-specific bounty bounds.");let s=n?C(e.amountIn,"amountIn"):void 0,a=n?C(e.minAmountOut,"minAmountOut"):void 0;if(s!==void 0&&(s>=1n<<128n||a>=1n<<128n))throw new r("Hookr order amounts must fit uint128 base units.");let u=await O(t,"hookr_pool",{poolId:o}),c=u.listing?$(u.listing,o):void 0,d={...u,...c?{listing:c}:{},chainId:b,source:N};if(!n)return{...d,bountyBounds:{status:"requires-order-terms",note:"The keeper bounty floor depends on the order. Supply side, amountIn and minAmountOut in base units. The batch-1 0.0005 ETH observation is not a permanent floor."}};if(!c)throw new r("Hookr pool key is unavailable; bounty floor is unknown.");let l=c.key,i=h(e.side==="buy"?c.quote:c.token),k=I(String(i.address))===l.currency0,T=t.clientFor(b),A=await T.getBlock(),S=await T.readContract({address:w,abi:B,functionName:"bountyBounds",args:[l,k,s,a],blockNumber:A.number});if(!Array.isArray(S)||S.length!==3||S.some(g=>typeof g!="bigint"||g<0n||g>=1n<<128n))throw new r("Hookr bounty bounds are unavailable; the floor is unknown.");let[y,f,p]=S;return{...d,bountyBounds:{status:"available",blockNumber:A.number.toString(),token:{address:"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",symbol:"ETH",decimals:18,chainId:b},minBounty:y.toString(),defaultBounty:f.toString(),maxBounty:p.toString(),effectiveFloor:(y>0n?y:f).toString(),note:"ETH wei for this order at this block. Oak create uses the positive minimum, or the default when minimum is zero; recheck at creation."}}}),v("hookr_quote",{poolId:Z,side:{type:"string",enum:["buy","sell"]},amountIn:Q()},["poolId","side","amountIn"],async(e,o)=>{let n=F(e.poolId);if(e.side!=="buy"&&e.side!=="sell")throw new r("Hookr side must be buy or sell.");if(typeof e.amountIn!="string"||K(e.amountIn)<=0n)throw new r("Provide a positive amountIn in base units.");let s=await O(t,"hookr_pool",{poolId:n}),a=$(s.listing,n),u=h(e.side==="buy"?a.quote:a.token),c=I(String(u.address)),d=c==="0x0000000000000000000000000000000000000000"?18:await t.clientFor(b).readContract({address:c,abi:oe,functionName:"decimals"});if(typeof d!="number"||!Number.isInteger(d)||d<0||d>255||typeof u.symbol!="string")throw new r("Hookr input token metadata is unavailable.");let l=U(e.amountIn,d),i=await O(t,"hookr_quote",{poolId:n,side:e.side,amount:l,payer:o}),k=await O(t,"hookr_check_trade",{poolId:n,side:e.side,amount:l,wallet:o});return{chainId:b,source:N,input:{token:{address:c,symbol:u.symbol,decimals:d,chainId:b},amount:e.amountIn},quote:i,check:k,note:"Informational quote. Review pool rules; unknown trade checks do not authorize a trade."}})]}export{re as a,me as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as B}from"./MYBDO5SA.js";import{b as x,e as d,g as k}from"./73N3TOJL.js";import{a as l}from"./5YS5V2LK.js";import{getAddress as C,keccak256 as I,toHex as D}from"viem";var R="https://balancesapi.ponsfamily.com/v1",P=/^(0|[1-9][0-9]{0,77})$/,$=/^[0-9A-Za-z_.-]{1,128}$/,y=e=>typeof e=="number"&&Number.isSafeInteger(e)&&e>=0,p=e=>typeof e=="string"&&P.test(e),S=e=>typeof e=="string"&&x.test(e);function M(e){return d(e)&&S(e.token)&&y(e.holders)&&p(e.supply)&&p(e.burned)&&p(e.circulating)&&d(e.as_of)&&y(e.as_of.rollup_bucket)&&y(e.as_of.tail_from_block)&&(e.next_cursor===null||e.next_cursor===void 0||typeof e.next_cursor=="string"&&$.test(e.next_cursor))&&Array.isArray(e.page)&&e.page.length<=50&&e.page.every(t=>d(t)&&S(t.wallet)&&p(t.balance)&&(t.label===void 0||t.label===null||typeof t.label=="string"))}var A=new WeakMap,c=()=>new l("The Pons holder index changed or returned an incomplete directory. Retry pons_holders without a cursor.");async function T(e,t){let n=A.get(e);n||(n=new Map,A.set(e,n));let f=n.get(t);if(f&&f.expires>Date.now())return f.directory;let o,g,m=new Set,_=new Set,s=[];for(let b=0;b<2e3;b++){let h=new URL(`${R}/tokens/${t.toLowerCase()}/holders`);h.searchParams.set("limit","50"),g&&h.searchParams.set("cursor",g);let r=await B(e.http,h.toString(),{method:"GET",redirect:"error",headers:{accept:"application/json"}},M);if(!k(r.token,t))throw c();if(r.holders>1e5)throw new l("The Pons holder directory exceeds 100000 indexed holders. No total or rank was computed.");if(o??=r,r.holders!==o.holders||r.supply!==o.supply||r.burned!==o.burned||r.circulating!==o.circulating||r.as_of.rollup_bucket!==o.as_of.rollup_bucket||r.as_of.tail_from_block!==o.as_of.tail_from_block)throw c();for(let u of r.page){let i=C(u.wallet);if(_.has(i)||BigInt(u.balance)===0n)throw c();_.add(i),s.push({...u,wallet:i})}if(s.length>o.holders)throw c();if(!r.next_cursor){if(s.length!==o.holders)throw c();s.sort((a,w)=>BigInt(a.balance)>BigInt(w.balance)?-1:BigInt(a.balance)<BigInt(w.balance)?1:a.wallet.toLowerCase().localeCompare(w.wallet.toLowerCase()));let u=I(D(JSON.stringify([t,o.as_of,s.map(a=>[a.wallet,a.balance])]))).slice(2,18),i={body:o,rows:s,fingerprint:u,fetchedAt:new Date().toISOString()};return n.delete(t),n.size>=4&&n.delete(n.keys().next().value),n.set(t,{directory:i,expires:Date.now()+15e3}),i}if(!r.page.length||m.has(r.next_cursor))throw c();m.add(r.next_cursor),g=r.next_cursor}throw new l("The Pons holder directory exceeds 100000 indexed holders. No total or rank was computed.")}function U(e){if(e===void 0)return{offset:0};if(typeof e!="string")throw new l("Use the nextCursor returned by the previous pons_holders page.");let t=/^holders_([0-9]{1,6})_([0-9a-f]{16})$/.exec(e);if(!t)throw new l("Use the nextCursor returned by the previous pons_holders page.");return{offset:Number(t[1]),fingerprint:t[2]}}function z(e,t){if(BigInt(t)===0n)return null;let n=BigInt(e)*10n**18n/BigInt(t);return`${n/10n**18n}.${(n%10n**18n).toString().padStart(18,"0")}`}export{R as a,T as b,U as c,z as d};
|