/** * Minimal, exact ABIs for the launch stack. Each is `as const satisfies Abi` so viem/wagmi infer * argument and return types. Only the functions the SDK needs are included. */ /** * LiquidityLauncher. Tracks the tip of liquidity-launcher#227 (`fix: remove sweepNative and the * batch native invariant`, itself stacked on #223 `UniversalRouterStrategy`), which is what the * current chain-4663 launcher was deployed from. * * Every entry point is `payable`: `multicall` self-`delegatecall`s, so `msg.value` is inherited by * every frame and a non-payable callee would revert on solc's `callvalue` check inside a * value-carrying batch. Selectors are unchanged — `payable` is not part of a selector — but viem and * ethers refuse to attach `value` to a `nonpayable` entry, so this is what makes a native-carrying * launch expressible at all. * * Note there is deliberately no `sweepNative`: #223 added it and #227 removed it again (it was * unauthenticated and reachable mid-batch, so a contract gaining execution inside the transaction * could divert the launcher's un-forwarded native). #227 dropped the `NativeNotSwept` multicall * guard with it. The rule for callers is now that the `nativeAmount`s forwarded across a batch must * add up to `msg.value`: there is no refund path, and any excess is stranded in the launcher. */ export declare const LIQUIDITY_LAUNCHER_ABI: readonly [{ readonly type: "event"; readonly name: "TokenCreated"; readonly inputs: readonly [{ readonly name: "tokenAddress"; readonly type: "address"; readonly indexed: true; }]; }, { readonly type: "event"; readonly name: "TokenDistributed"; readonly inputs: readonly [{ readonly name: "tokenAddress"; readonly type: "address"; readonly indexed: true; }, { readonly name: "strategy"; readonly type: "address"; readonly indexed: true; }, { readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; }]; }, { readonly type: "function"; readonly name: "createToken"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "factory"; readonly type: "address"; }, { readonly name: "name"; readonly type: "string"; }, { readonly name: "symbol"; readonly type: "string"; }, { readonly name: "decimals"; readonly type: "uint8"; }, { readonly name: "initialSupply"; readonly type: "uint128"; }, { readonly name: "recipient"; readonly type: "address"; }, { readonly name: "tokenData"; readonly type: "bytes"; }]; readonly outputs: readonly [{ readonly name: "tokenAddress"; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "distributeToken"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; }, { readonly name: "distribution"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "strategy"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint128"; }, { readonly name: "configData"; readonly type: "bytes"; }]; }, { readonly name: "salt"; readonly type: "bytes32"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "depositToken"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint160"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "distributeWithNative"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "strategy"; readonly type: "address"; }, { readonly name: "configData"; readonly type: "bytes"; }, { readonly name: "salt"; readonly type: "bytes32"; }, { readonly name: "nativeAmount"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "multicall"; readonly stateMutability: "payable"; readonly inputs: readonly [{ readonly name: "data"; readonly type: "bytes[]"; }]; readonly outputs: readonly [{ readonly name: "results"; readonly type: "bytes[]"; }]; }]; export declare const LBP_STRATEGY_ABI: readonly [{ readonly type: "function"; readonly name: "registeredPoolIds"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "poolId"; readonly type: "bytes32"; }]; readonly outputs: readonly [{ readonly name: "initializer"; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "initializerFactory"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "migrate"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "initializer"; readonly type: "address"; }]; readonly outputs: readonly []; }]; /** * ContinuousClearingAuction instance — post-auction outcome views and the creator token-recovery * entrypoint. `sweepUnsoldTokens()` is callable only by `tokensRecipient()` after `endBlock`, once * (`sweepUnsoldTokensBlock() != 0` afterwards): on a failed (non-graduated) auction it returns the * full deposited supply; on a graduated one, `remainingSupply()`. There is no failure enum on-chain — * a failed auction is `currentBlock >= endBlock && !isGraduated()`. */ export declare const CCA_ABI: readonly [{ readonly type: "function"; readonly name: "sweepUnsoldTokens"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "isGraduated"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly type: "function"; readonly name: "sweepUnsoldTokensBlock"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "sweepCurrencyBlock"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "currencyRaised"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "remainingSupply"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly type: "function"; readonly name: "tokensRecipient"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "endBlock"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint64"; }]; }, { readonly type: "function"; readonly name: "claimBlock"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint64"; }]; }]; /** ContinuousClearingAuction factory — deterministic auction (initializer) address view. */ export declare const CCA_FACTORY_ABI: readonly [{ readonly type: "function"; readonly name: "getAddress"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "configData"; readonly type: "bytes"; }, { readonly name: "salt"; readonly type: "bytes32"; }, { readonly name: "sender"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }]; export declare const UERC20_FACTORY_ABI: readonly [{ readonly type: "function"; readonly name: "getUERC20Address"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "name"; readonly type: "string"; }, { readonly name: "symbol"; readonly type: "string"; }, { readonly name: "decimals"; readonly type: "uint8"; }, { readonly name: "creator"; readonly type: "address"; }, { readonly name: "graffiti"; readonly type: "bytes32"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }]; export declare const USUPERC20_FACTORY_ABI: readonly [{ readonly type: "function"; readonly name: "getUSUPERC20Address"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "name"; readonly type: "string"; }, { readonly name: "symbol"; readonly type: "string"; }, { readonly name: "decimals"; readonly type: "uint8"; }, { readonly name: "homeChainId"; readonly type: "uint256"; }, { readonly name: "creator"; readonly type: "address"; }, { readonly name: "graffiti"; readonly type: "bytes32"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }]; /** ERC20 `approve` — used to approve Permit2 to pull an existing token. */ export declare const ERC20_APPROVE_ABI: readonly [{ readonly type: "function"; readonly name: "approve"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }]; /** Permit2 `IAllowanceTransfer` — on-chain allowance read + signature-less approve. */ export declare const PERMIT2_ABI: readonly [{ readonly type: "function"; readonly name: "allowance"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "user"; readonly type: "address"; }, { readonly name: "token"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: "amount"; readonly type: "uint160"; }, { readonly name: "expiration"; readonly type: "uint48"; }, { readonly name: "nonce"; readonly type: "uint48"; }]; }, { readonly type: "function"; readonly name: "approve"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "token"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint160"; }, { readonly name: "expiration"; readonly type: "uint48"; }]; readonly outputs: readonly []; }]; /** * v4 View Quoter — off-chain swap quoting by revert-and-catch. `quoteExactInputSingle` is declared * `nonpayable` on-chain (it state-mutates then reverts internally), so it must be executed as an * `eth_call` simulation, never submitted as a transaction. */ export declare const V4_QUOTER_ABI: readonly [{ readonly type: "function"; readonly name: "quoteExactInputSingle"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "params"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "poolKey"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "currency0"; readonly type: "address"; }, { readonly name: "currency1"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "tickSpacing"; readonly type: "int24"; }, { readonly name: "hooks"; readonly type: "address"; }]; }, { readonly name: "zeroForOne"; readonly type: "bool"; }, { readonly name: "exactAmount"; readonly type: "uint128"; }, { readonly name: "hookData"; readonly type: "bytes"; }]; }]; readonly outputs: readonly [{ readonly name: "amountOut"; readonly type: "uint256"; }, { readonly name: "gasEstimate"; readonly type: "uint256"; }]; }]; /** * InstantLaunchStrategy — launch event plus the immutable views that identify a deployment variant * (`beneficiaryVault() == address(0)` ⇔ creator fees off). One ABI serves every instance; consult * the `INSTANT_LAUNCH_DEPLOYMENTS` registry for the deployed addresses. */ export declare const INSTANT_LAUNCH_STRATEGY_ABI: readonly [{ readonly type: "event"; readonly name: "TokenLaunched"; readonly inputs: readonly [{ readonly name: "poolId"; readonly type: "bytes32"; readonly indexed: true; }, { readonly name: "token"; readonly type: "address"; readonly indexed: true; }, { readonly name: "finalPositionRecipient"; readonly type: "address"; readonly indexed: true; }, { readonly name: "key"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "currency0"; readonly type: "address"; }, { readonly name: "currency1"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "tickSpacing"; readonly type: "int24"; }, { readonly name: "hooks"; readonly type: "address"; }]; readonly indexed: false; }]; }, { readonly type: "event"; readonly name: "DistributionInitialized"; readonly inputs: readonly [{ readonly name: "distributor"; readonly type: "address"; readonly indexed: true; }, { readonly name: "token"; readonly type: "address"; readonly indexed: true; }, { readonly name: "totalSupply"; readonly type: "uint256"; readonly indexed: false; }]; }, { readonly type: "function"; readonly name: "launcher"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "feeSplitter"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "beneficiaryVault"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "initialTick"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "int24"; }]; }]; /** * FeeSplitter — immutable-configuration custodian of the launch LP positions; permissionlessly * collects their fees and pushes the configured splits. One instance per strategy variant. */ export declare const FEE_SPLITTER_ABI: readonly [{ readonly type: "event"; readonly name: "FeesCollected"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; readonly indexed: true; }, { readonly name: "token"; readonly type: "address"; readonly indexed: true; }, { readonly name: "nativeAmount"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "tokenAmount"; readonly type: "uint256"; readonly indexed: false; }]; }, { readonly type: "event"; readonly name: "FeesForwarded"; readonly inputs: readonly [{ readonly name: "recipient"; readonly type: "address"; readonly indexed: true; }, { readonly name: "currency"; readonly type: "address"; readonly indexed: true; }, { readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; }]; }, { readonly type: "function"; readonly name: "collectFees"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "tokenIds"; readonly type: "uint256[]"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "getSplits"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "tuple[]"; readonly components: readonly [{ readonly name: "recipient"; readonly type: "address"; }, { readonly name: "nativeBps"; readonly type: "uint16"; }, { readonly name: "tokenBps"; readonly type: "uint16"; }, { readonly name: "useCallback"; readonly type: "bool"; }]; }]; }]; /** * UERC20BeneficiaryVault (and its BeneficiaryVault base) — a transferable ERC721 claim on each * registered position's creator fee share. Registration mints the ERC721 `Transfer` (from zero); * claims pay the current NFT holder and emit `Claimed`. */ export declare const BENEFICIARY_VAULT_ABI: readonly [{ readonly type: "event"; readonly name: "Transfer"; readonly inputs: readonly [{ readonly name: "from"; readonly type: "address"; readonly indexed: true; }, { readonly name: "to"; readonly type: "address"; readonly indexed: true; }, { readonly name: "id"; readonly type: "uint256"; readonly indexed: true; }]; }, { readonly type: "event"; readonly name: "Claimed"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; readonly indexed: true; }, { readonly name: "currency0Amount"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "currency1Amount"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "poolKey"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "currency0"; readonly type: "address"; }, { readonly name: "currency1"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "tickSpacing"; readonly type: "int24"; }, { readonly name: "hooks"; readonly type: "address"; }]; readonly indexed: false; }]; }, { readonly type: "function"; readonly name: "claim"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "minCurrency0Amount"; readonly type: "uint256"; }, { readonly name: "minCurrency1Amount"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "amounts"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: "currency0Amount"; readonly type: "uint128"; }, { readonly name: "currency1Amount"; readonly type: "uint128"; }]; }, { readonly type: "function"; readonly name: "ownerOf"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "id"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }]; /** * CompoundingClaimRecipient — the autocompound recipient of every FeeSplitter. `claim` pays the * caller and reverts unless the caller increases the same position's liquidity within the same * transaction, so each `Claimed` event proves a compounding. */ export declare const COMPOUNDING_CLAIM_RECIPIENT_ABI: readonly [{ readonly type: "event"; readonly name: "Claimed"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; readonly indexed: true; }, { readonly name: "currency0Amount"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "currency1Amount"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "poolKey"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "currency0"; readonly type: "address"; }, { readonly name: "currency1"; readonly type: "address"; }, { readonly name: "fee"; readonly type: "uint24"; }, { readonly name: "tickSpacing"; readonly type: "int24"; }, { readonly name: "hooks"; readonly type: "address"; }]; readonly indexed: false; }]; }, { readonly type: "function"; readonly name: "claim"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "minCurrency0Amount"; readonly type: "uint256"; }, { readonly name: "minCurrency1Amount"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly type: "function"; readonly name: "amounts"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "tokenId"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: "currency0Amount"; readonly type: "uint128"; }, { readonly name: "currency1Amount"; readonly type: "uint128"; }]; }]; /** v4 StateView — reads pool state by pool id. `sqrtPriceX96 == 0` means the pool is uninitialized. */ export declare const STATE_VIEW_ABI: readonly [{ readonly type: "function"; readonly name: "getSlot0"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly name: "poolId"; readonly type: "bytes32"; }]; readonly outputs: readonly [{ readonly name: "sqrtPriceX96"; readonly type: "uint160"; }, { readonly name: "tick"; readonly type: "int24"; }, { readonly name: "protocolFee"; readonly type: "uint24"; }, { readonly name: "lpFee"; readonly type: "uint24"; }]; }];