wildcard-sdk
Version:
Node.js SDK for interacting with the Wildcard Deployer contract
1,401 lines (1,399 loc) • 259 kB
JavaScript
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"
},
{