UNPKG

wildcard-sdk

Version:

Node.js SDK for interacting with the Wildcard Deployer contract

1,401 lines (1,399 loc) 259 kB
var __defProp = Object.defineProperty; var __getOwnPropNames = Object.getOwnPropertyNames; var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; // src/abis/v2/deployer-abi.ts var DEPLOYER_ABI; var init_deployer_abi = __esm({ "src/abis/v2/deployer-abi.ts"() { "use strict"; DEPLOYER_ABI = [ { inputs: [ { internalType: "address", name: "_stateView", type: "address" }, { internalType: "address", name: "_lplocker", type: "address" }, { internalType: "address", name: "_universalRouter", type: "address" }, { internalType: "address", name: "_permit2", type: "address" }, { internalType: "address", name: "_poolManager", type: "address" }, { internalType: "address", name: "_quoter", type: "address" }, { internalType: "address", name: "_owner", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [], name: "BothTokensLaunched", type: "error" }, { inputs: [], name: "ETHBalanceTooLowForSwap", type: "error" }, { inputs: [], name: "ETHTransferFailed", type: "error" }, { inputs: [], name: "FailedToPullTokens", type: "error" }, { inputs: [], name: "FailedToTransferTokens", type: "error" }, { inputs: [], name: "IncorrectETHAmount", type: "error" }, { inputs: [], name: "InsufficientOutputAmount", type: "error" }, { inputs: [], name: "InvalidBaseToken", type: "error" }, { inputs: [], name: "InvalidCaller", type: "error" }, { inputs: [], name: "InvalidCurveParameters", type: "error" }, { inputs: [], name: "InvalidTokenDetails", type: "error" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }], name: "OwnableInvalidOwner", type: "error" }, { inputs: [{ internalType: "address", name: "account", type: "address" }], name: "OwnableUnauthorizedAccount", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { internalType: "uint256", name: "effectiveAmountIn", type: "uint256" } ], name: "QuoteAmount", type: "error" }, { inputs: [], name: "QuoteNotImplemented", type: "error" }, { inputs: [], name: "Reentrancy", type: "error" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "SafeERC20FailedOperation", type: "error" }, { inputs: [], name: "TokenAlreadyLaunched", type: "error" }, { inputs: [], name: "TokenNotLaunched", type: "error" }, { inputs: [], name: "TokenStateNotSet", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "bool", name: "whitelisted", type: "bool" } ], name: "BaseTokenWhitelisted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { inputs: [], name: "MAX_FEE_RECEIVER_COUNT", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [], name: "MIN_VESTING_START_TIME", outputs: [{ internalType: "uint64", name: "", type: "uint64" }], stateMutability: "view", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "address", name: "baseToken", type: "address" }, { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" }, { internalType: "string", name: "image", type: "string" }, { internalType: "string", name: "appIdentifier", type: "string" }, { internalType: "uint256", name: "teamSupply", type: "uint256" }, { internalType: "uint64", name: "vestingStartTime", type: "uint64" }, { internalType: "uint64", name: "vestingDuration", type: "uint64" }, { internalType: "address", name: "vestingWallet", type: "address" }, { internalType: "uint256", name: "bondingCurveSupply", type: "uint256" }, { internalType: "uint256", name: "liquidityPoolSupply", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "bondingCurveBuyFee", type: "uint256" }, { internalType: "uint256", name: "bondingCurveSellFee", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "bondingCurveFeeSplits", type: "tuple[]" }, { components: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" }, { internalType: "uint256", name: "numSteps", type: "uint256" }, { internalType: "uint256", name: "stepSize", type: "uint256" } ], internalType: "struct PriceCurve", name: "bondingCurveParams", type: "tuple" }, { internalType: "bool", name: "allowForcedGraduation", type: "bool" }, { internalType: "bool", name: "allowAutoGraduation", type: "bool" }, { internalType: "uint256", name: "graduationFeeBps", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "graduationFeeSplits", type: "tuple[]" }, { internalType: "uint24", name: "poolFees", type: "uint24" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "poolFeeSplits", type: "tuple[]" }, { internalType: "uint256", name: "surgeFeeStartingTime", type: "uint256" }, { internalType: "uint256", name: "surgeFeeDuration", type: "uint256" }, { internalType: "uint256", name: "maxSurgeFeeBps", type: "uint256" } ], internalType: "struct StateManager.TokenDeploymentConfig", name: "tokenDeploymentConfig", type: "tuple" } ], name: "_validateTokenDeploymentConfig", outputs: [], stateMutability: "view", type: "function" }, { inputs: [], name: "acceptOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }], name: "appIdentifiers", outputs: [{ internalType: "string", name: "", type: "string" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "buyQuote", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "address", name: "to", type: "address" } ], name: "buyToken", outputs: [], stateMutability: "payable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "claimFee", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getTokenPrice", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "bool", name: "allowPreGraduation", type: "bool" } ], name: "graduateToken", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "isBaseTokenWhitelisted", outputs: [{ internalType: "bool", name: "", type: "bool" }], stateMutability: "view", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "address", name: "baseToken", type: "address" }, { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" }, { internalType: "string", name: "image", type: "string" }, { internalType: "string", name: "appIdentifier", type: "string" }, { internalType: "uint256", name: "teamSupply", type: "uint256" }, { internalType: "uint64", name: "vestingStartTime", type: "uint64" }, { internalType: "uint64", name: "vestingDuration", type: "uint64" }, { internalType: "address", name: "vestingWallet", type: "address" }, { internalType: "uint256", name: "bondingCurveSupply", type: "uint256" }, { internalType: "uint256", name: "liquidityPoolSupply", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "bondingCurveBuyFee", type: "uint256" }, { internalType: "uint256", name: "bondingCurveSellFee", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "bondingCurveFeeSplits", type: "tuple[]" }, { components: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" }, { internalType: "uint256", name: "numSteps", type: "uint256" }, { internalType: "uint256", name: "stepSize", type: "uint256" } ], internalType: "struct PriceCurve", name: "bondingCurveParams", type: "tuple" }, { internalType: "bool", name: "allowForcedGraduation", type: "bool" }, { internalType: "bool", name: "allowAutoGraduation", type: "bool" }, { internalType: "uint256", name: "graduationFeeBps", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "graduationFeeSplits", type: "tuple[]" }, { internalType: "uint24", name: "poolFees", type: "uint24" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "poolFeeSplits", type: "tuple[]" }, { internalType: "uint256", name: "surgeFeeStartingTime", type: "uint256" }, { internalType: "uint256", name: "surgeFeeDuration", type: "uint256" }, { internalType: "uint256", name: "maxSurgeFeeBps", type: "uint256" } ], internalType: "struct StateManager.TokenDeploymentConfig", name: "tokenDeploymentConfig", type: "tuple" }, { internalType: "bytes32", name: "salt", type: "bytes32" } ], name: "launchToken", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "int24", name: "tickSpacing", type: "int24" }, { internalType: "int24", name: "startingTick", type: "int24" }, { internalType: "int24", name: "endingTick", type: "int24" }, { internalType: "int24", name: "targetTick", type: "int24" }, { internalType: "bool", name: "allowPreGraduation", type: "bool" } ], name: "launchV4Pool", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "nonpayable", type: "function" }, { inputs: [], name: "lplocker", outputs: [ { internalType: "contract ILpLockerWithOwnable", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "owner", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "pendingOwner", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "permit2", outputs: [{ internalType: "contract IPermit2", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "poolManager", outputs: [ { internalType: "contract IPoolManager", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "owner", type: "address" }, { internalType: "bytes32", name: "salt", type: "bytes32" } ], name: "predictTokenAddress", outputs: [ { internalType: "address", name: "addr", type: "address" }, { internalType: "bool", name: "exists", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "quoter", outputs: [ { internalType: "contract IV4Quoter", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "relinquishStateManager", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "sellQuote", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "address", name: "to", type: "address" } ], name: "sellToken", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "string", name: "appIdentifier", type: "string" } ], name: "setAppIdentifier", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "bool", name: "whitelisted", type: "bool" } ], name: "setBaseTokenWhitelist", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_protocolFeeRecipient", type: "address" } ], name: "setProtocolFeeRecipient", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [], name: "stateManager", outputs: [ { internalType: "contract StateManager", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "newOwner", type: "address" }], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [], name: "universalRouter", outputs: [ { internalType: "contract IUniversalRouter", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }], name: "whitelistedBaseTokens", outputs: [{ internalType: "bool", name: "", type: "bool" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "destination", type: "address" }, { internalType: "address", name: "token", type: "address" } ], name: "withdrawFunds", outputs: [], stateMutability: "nonpayable", type: "function" }, { stateMutability: "payable", type: "receive" } ]; } }); // src/abis/v2/statemanager-abi.ts var STATEMANAGER_ABI; var init_statemanager_abi = __esm({ "src/abis/v2/statemanager-abi.ts"() { "use strict"; STATEMANAGER_ABI = [ { inputs: [ { internalType: "address", name: "initialOwner", type: "address" }, { internalType: "address", name: "permit2Address", type: "address" }, { internalType: "address", name: "_positionManager", type: "address" }, { internalType: "address", name: "_stateView", type: "address" }, { internalType: "address", name: "_protocolFeeRecipient", type: "address" }, { internalType: "address", name: "_tokenIdRecipient", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [], name: "CurveSupplyExhausted", type: "error" }, { inputs: [], name: "FailedToPullTokens", type: "error" }, { inputs: [], name: "FailedToTransferTokens", type: "error" }, { inputs: [], name: "InsufficientETHSent", type: "error" }, { inputs: [], name: "InsufficientInputAmount", type: "error" }, { inputs: [], name: "InsufficientTokenBalanceInBondingCurve", type: "error" }, { inputs: [], name: "InvalidBondingCurveSupply", type: "error" }, { inputs: [], name: "InvalidFeeSplits", type: "error" }, { inputs: [], name: "InvalidPriceX96", type: "error" }, { inputs: [], name: "InvalidToken0Amount", type: "error" }, { inputs: [], name: "InvalidTokenBalance", type: "error" }, { inputs: [], name: "InvalidTokenSupply", type: "error" }, { inputs: [], name: "NoFeeToClaim", type: "error" }, { inputs: [], name: "NotEnoughTokensToSell", type: "error" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }], name: "OwnableInvalidOwner", type: "error" }, { inputs: [{ internalType: "address", name: "account", type: "address" }], name: "OwnableUnauthorizedAccount", type: "error" }, { inputs: [], name: "PriceCurveOutOfBounds", type: "error" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "SafeERC20FailedOperation", type: "error" }, { inputs: [], name: "SlippageExceeded", type: "error" }, { inputs: [], name: "StartTickTooLarge", type: "error" }, { inputs: [ { internalType: "uint256", name: "subBy", type: "uint256" }, { internalType: "uint256", name: "sqrtTargetPrice", type: "uint256" } ], name: "SubByTooLarge", type: "error" }, { inputs: [], name: "TickNotMultipleOfSpacing", type: "error" }, { inputs: [], name: "TickTooLarge", type: "error" }, { inputs: [], name: "TickTooSmall", type: "error" }, { inputs: [], name: "TokenAlreadyDeployed", type: "error" }, { inputs: [], name: "TokenAlreadyGraduated", type: "error" }, { inputs: [], name: "TokenInGraduationProcess", type: "error" }, { inputs: [], name: "TokenNotReadyForGraduation", type: "error" }, { inputs: [], name: "UnexpectedCrash", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "bool", name: "isBuy", type: "bool" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "address", name: "from", type: "address" }, { indexed: false, internalType: "uint256", name: "amountIn", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountOut", type: "uint256" }, { indexed: false, internalType: "uint256", name: "feeAmount", type: "uint256" } ], name: "BondingCurveSwap", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token0", type: "address" }, { indexed: false, internalType: "address", name: "token1", type: "address" }, { indexed: false, internalType: "uint256", name: "uniswapTokenId", type: "uint256" } ], name: "PoolLaunched", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "uint256", name: "mintedBondingCurveTokens", type: "uint256" }, { indexed: false, internalType: "uint256", name: "collectedBaseTokens", type: "uint256" } ], name: "TokenGraduated", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token", type: "address" }, { components: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "address", name: "baseToken", type: "address" }, { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" }, { internalType: "string", name: "image", type: "string" }, { internalType: "string", name: "appIdentifier", type: "string" }, { internalType: "uint256", name: "teamSupply", type: "uint256" }, { internalType: "uint64", name: "vestingStartTime", type: "uint64" }, { internalType: "uint64", name: "vestingDuration", type: "uint64" }, { internalType: "address", name: "vestingWallet", type: "address" }, { internalType: "uint256", name: "bondingCurveSupply", type: "uint256" }, { internalType: "uint256", name: "liquidityPoolSupply", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "bondingCurveBuyFee", type: "uint256" }, { internalType: "uint256", name: "bondingCurveSellFee", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "bondingCurveFeeSplits", type: "tuple[]" }, { components: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" }, { internalType: "uint256", name: "numSteps", type: "uint256" }, { internalType: "uint256", name: "stepSize", type: "uint256" } ], internalType: "struct PriceCurve", name: "bondingCurveParams", type: "tuple" }, { internalType: "bool", name: "allowForcedGraduation", type: "bool" }, { internalType: "bool", name: "allowAutoGraduation", type: "bool" }, { internalType: "uint256", name: "graduationFeeBps", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "graduationFeeSplits", type: "tuple[]" }, { internalType: "uint24", name: "poolFees", type: "uint24" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "poolFeeSplits", type: "tuple[]" }, { internalType: "uint256", name: "surgeFeeStartingTime", type: "uint256" }, { internalType: "uint256", name: "surgeFeeDuration", type: "uint256" }, { internalType: "uint256", name: "maxSurgeFeeBps", type: "uint256" } ], indexed: false, internalType: "struct StateManager.TokenDeploymentConfig", name: "config", type: "tuple" } ], name: "TokenLaunched", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address" } ], name: "TokenReadyForGraduation", type: "event" }, { inputs: [], name: "PROTOCOL_FEE_SHARE", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [], name: "acceptOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }], name: "bondingCurveFeeAccumulated", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "buyer", type: "address" }, { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "address", name: "to", type: "address" } ], name: "buyToken", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "bool", name: "", type: "bool" } ], stateMutability: "payable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "claimFee", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getAutoGraduationParams", outputs: [ { internalType: "int24", name: "tickSpacing", type: "int24" }, { internalType: "int24", name: "startingTick", type: "int24" }, { internalType: "int24", name: "endTick", type: "int24" }, { internalType: "int24", name: "targetTick", type: "int24" }, { internalType: "uint24", name: "poolFee", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getBaseToken", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "getBuyQuote", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getPoolKey", outputs: [ { components: [ { internalType: "Currency", name: "currency0", type: "address" }, { internalType: "Currency", name: "currency1", type: "address" }, { internalType: "uint24", name: "fee", type: "uint24" }, { internalType: "int24", name: "tickSpacing", type: "int24" }, { internalType: "contract IHooks", name: "hooks", type: "address" } ], internalType: "struct PoolKey", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "getSellQuote", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "address", name: "baseToken", type: "address" }, { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" }, { internalType: "string", name: "image", type: "string" }, { internalType: "string", name: "appIdentifier", type: "string" }, { internalType: "uint256", name: "teamSupply", type: "uint256" }, { internalType: "uint64", name: "vestingStartTime", type: "uint64" }, { internalType: "uint64", name: "vestingDuration", type: "uint64" }, { internalType: "address", name: "vestingWallet", type: "address" }, { internalType: "uint256", name: "bondingCurveSupply", type: "uint256" }, { internalType: "uint256", name: "liquidityPoolSupply", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "bondingCurveBuyFee", type: "uint256" }, { internalType: "uint256", name: "bondingCurveSellFee", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "bondingCurveFeeSplits", type: "tuple[]" }, { components: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" }, { internalType: "uint256", name: "numSteps", type: "uint256" }, { internalType: "uint256", name: "stepSize", type: "uint256" } ], internalType: "struct PriceCurve", name: "bondingCurveParams", type: "tuple" }, { internalType: "bool", name: "allowForcedGraduation", type: "bool" }, { internalType: "bool", name: "allowAutoGraduation", type: "bool" }, { internalType: "uint256", name: "graduationFeeBps", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "graduationFeeSplits", type: "tuple[]" }, { internalType: "uint24", name: "poolFees", type: "uint24" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "poolFeeSplits", type: "tuple[]" }, { internalType: "uint256", name: "surgeFeeStartingTime", type: "uint256" }, { internalType: "uint256", name: "surgeFeeDuration", type: "uint256" }, { internalType: "uint256", name: "maxSurgeFeeBps", type: "uint256" } ], internalType: "struct StateManager.TokenDeploymentConfig", name: "config", type: "tuple" } ], name: "getSurgeFee", outputs: [{ internalType: "uint256", name: "fee", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getTokenDeploymentConfig", outputs: [ { components: [ { internalType: "address", name: "creator", type: "address" }, { internalType: "address", name: "baseToken", type: "address" }, { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" }, { internalType: "string", name: "image", type: "string" }, { internalType: "string", name: "appIdentifier", type: "string" }, { internalType: "uint256", name: "teamSupply", type: "uint256" }, { internalType: "uint64", name: "vestingStartTime", type: "uint64" }, { internalType: "uint64", name: "vestingDuration", type: "uint64" }, { internalType: "address", name: "vestingWallet", type: "address" }, { internalType: "uint256", name: "bondingCurveSupply", type: "uint256" }, { internalType: "uint256", name: "liquidityPoolSupply", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "bondingCurveBuyFee", type: "uint256" }, { internalType: "uint256", name: "bondingCurveSellFee", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "bondingCurveFeeSplits", type: "tuple[]" }, { components: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" }, { internalType: "uint256", name: "numSteps", type: "uint256" }, { internalType: "uint256", name: "stepSize", type: "uint256" } ], internalType: "struct PriceCurve", name: "bondingCurveParams", type: "tuple" }, { internalType: "bool", name: "allowForcedGraduation", type: "bool" }, { internalType: "bool", name: "allowAutoGraduation", type: "bool" }, { internalType: "uint256", name: "graduationFeeBps", type: "uint256" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "graduationFeeSplits", type: "tuple[]" }, { internalType: "uint24", name: "poolFees", type: "uint24" }, { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "poolFeeSplits", type: "tuple[]" }, { internalType: "uint256", name: "surgeFeeStartingTime", type: "uint256" }, { internalType: "uint256", name: "surgeFeeDuration", type: "uint256" }, { internalType: "uint256", name: "maxSurgeFeeBps", type: "uint256" } ], internalType: "struct StateManager.TokenDeploymentConfig", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getTokenPrice", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getTokenState", outputs: [ { components: [ { internalType: "bool", name: "isGraduated", type: "bool" }, { internalType: "uint256", name: "tokensInBondingCurve", type: "uint256" }, { internalType: "uint256", name: "baseTokensInBondingCurve", type: "uint256" }, { internalType: "address", name: "poolAddress", type: "address" }, { internalType: "uint256", name: "uniswapTokenId", type: "uint256" } ], internalType: "struct StateManager.TokenState", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "getTokenSupply", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "bool", name: "allowPreGraduation", type: "bool" } ], name: "graduateToken", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "isGraduated", outputs: [{ internalType: "bool", name: "", type: "bool" }], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "int24", name: "tickSpacing", type: "int24" }, { internalType: "int24", name: "startingTick", type: "int24" }, { internalType: "int24", name: "endingTick", type: "int24" }, { internalType: "int24", name: "targetTick", type: "int24" }, { internalType: "bool", name: "allowPreGraduation", type: "bool" } ], name: "launchV4Pool", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "nonpayable", type: "function" }, { inputs: [], name: "owner", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "pendingOwner", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "permit2", outputs: [{ internalType: "contract IPermit2", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }], name: "poolFeeSplits", outputs: [ { components: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "bps", type: "uint256" } ], internalType: "struct FeeSplit[]", name: "", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }], name: "poolKeys", outputs: [ { internalType: "Currency", name: "currency0", type: "address" }, { internalType: "Currency", name: "currency1", type: "address" }, { internalType: "uint24", name: "fee", type: "uint24" }, { internalType: "int24", name: "tickSpacing", type: "int24" }, { internalType: "contract IHooks", name: "hooks", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "positionManager", outputs: [ { internalType: "contract IPositionManager", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [], name: "protocolFeeRecipient", outputs: [{ internalType: "address", name: "", type: "address" }], stateMutability: "view", type: "function" }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "buyer", type: "address" }, { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "address", name: "to", type: "address" } ], name: "sellToken", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "nonpayable", type: "function" }, {