wildcard-sdk
Version:
Node.js SDK for interacting with the Wildcard Deployer contract
3,340 lines • 114 kB
TypeScript
import { Signer, ContractTransactionReceipt, ethers, BigNumberish, ContractTransactionResponse } from 'ethers';
import * as viem from 'viem';
import { WalletClient, createPublicClient } from 'viem';
type SupportedNetworks = "base-sepolia" | "base-mainnet";
interface EthersSDKConfig {
rpcUrl: string;
signer?: Signer;
privateKey?: string;
network: SupportedNetworks;
version: "v2" | "v3";
}
interface ViemSDKConfig {
rpcUrl: string;
walletClient?: WalletClient;
privateKey?: string;
network: SupportedNetworks;
version: "v2" | "v3";
}
type Address = `0x${string}`;
interface FeeSplit {
recipient: Address;
bps: bigint;
}
interface PriceCurve {
prices: bigint[];
numSteps: bigint;
stepSize: bigint;
}
interface TokenDeploymentConfig {
creator: Address;
baseToken: Address;
name: string;
symbol: string;
image: string;
appIdentifier: string;
teamSupply: bigint;
vestingStartTime: bigint;
vestingDuration: bigint;
vestingWallet: Address;
bondingCurveSupply: bigint;
liquidityPoolSupply: bigint;
totalSupply: bigint;
bondingCurveBuyFee: bigint;
bondingCurveSellFee: bigint;
bondingCurveFeeSplits: FeeSplit[];
bondingCurveParams: PriceCurve;
allowAutoGraduation: boolean;
allowForcedGraduation: boolean;
graduationFeeBps: bigint;
graduationFeeSplits: FeeSplit[];
poolFees: number;
poolFeeSplits: FeeSplit[];
surgeFeeStartingTime: bigint;
surgeFeeDuration: bigint;
maxSurgeFeeBps: bigint;
}
interface BuyQuote {
amountOut?: bigint;
amountInUsed?: bigint;
}
interface SellQuote {
amountOut?: bigint;
amountInUsed?: bigint;
}
type SDKConfig = (EthersSDKConfig & {
client: "ethers";
}) | (ViemSDKConfig & {
client: "viem";
});
interface TransactionOptions {
gasLimit?: bigint;
gasPrice?: bigint;
value?: bigint;
}
interface LaunchTokenParams {
name: string;
symbol: string;
image: string;
creator: Address;
baseToken: Address;
totalSupply: string;
teamSupply: string;
bondingCurveSupply: string;
liquidityPoolSupply: string;
bondingCurveBuyFee: string;
bondingCurveSellFee: string;
bondingCurveFeeSplits: FeeSplit[];
bondingCurveParams: {
prices: string[];
numSteps: string;
stepSize: string;
};
allowAutoGraduation: boolean;
allowForcedGraduation: boolean;
graduationFeeBps: string;
graduationFeeSplits: FeeSplit[];
poolFees: number;
poolFeeSplits: FeeSplit[];
surgeFeeDuration: string;
maxSurgeFeeBps: string;
vestingStartTime?: string;
vestingDuration?: string;
vestingWallet?: Address;
protocolFeeBps: number;
}
interface BuyTokenParams {
token: string;
amountIn: string;
amountOutMin: string;
to: string;
value?: string;
}
interface SellTokenParams {
token: string;
amountIn: string;
amountOutMin: string;
to: string;
}
type AutoGraduationParams = {
tickSpacing: number;
startingTick: number;
endTick: number;
targetTick: number;
poolFee: number;
};
type PoolKey = {
token0: string;
token1: string;
fee: number;
tickSpacing: number;
};
type TokenState = {
tokensInBondingCurve: bigint;
baseTokensInBondingCurve: bigint;
lastPrice?: bigint;
totalFees?: bigint;
isGraduated: boolean;
poolAddress: Address;
};
type SwapTokenResult = {
success: boolean;
transactionHash: string;
receipt: ContractTransactionReceipt;
};
/**
* The breakdown of fees due to a specific recipient address.
*/
type FeeBreakdown = {
/**
* Total amount of fee in base token (ETH/USDC etc) due to the address,
* both before and after graduation.
*/
baseTokenFeeShare: string;
/**
* Total amount of fee in the launched token due to the address,
* both before and after graduation.
*/
tokenFeeShare: string;
/**
* Base token fee accumulated before the token graduated.
*/
bondingCurveBaseTokenFee: string;
/**
* Base token fee accumulated after the token graduated.
*/
uniswapBaseTokenFee: string;
/**
* Launched token fee accumulated after the token graduated.
*/
uniswapTokenFee: string;
};
/**
* The response object containing fee information for a token.
*/
type FeeResponse = {
/**
* The pay split by address to which the fee is due.
* Keyed by recipient address.
*/
tokenFeeShare: Record<string, FeeBreakdown>;
/**
* The sum total of fees due across all the fee recipient addresses,
* accumulated before graduation.
*/
bondingCurveFeeAccumulated: {
baseFee: string;
tokenFee: string;
};
/**
* The sum total of fees due across all the fee recipient addresses,
* accumulated after graduation (i.e., in the liquidity pool).
*/
lpFeeAccumulated: {
baseFee: string;
tokenFee: string;
};
};
interface BaseTokenConfig {
chainId: number;
address: string;
name: string;
symbol: string;
logoURI?: string;
decimals: number;
}
declare class DeployerReader {
protected contract: ethers.Contract;
protected stateManagerContract: ethers.Contract;
protected lpLockerContract: ethers.Contract;
protected provider: ethers.Provider;
private DEPLOYER_ABI;
private STATEMANAGER_ABI;
private LP_LOCKER_ABI;
constructor(config: EthersSDKConfig);
getBuyQuote(token: string, amountIn: string): Promise<BuyQuote>;
getSellQuote(token: string, amountIn: string): Promise<SellQuote>;
getTokenPrice(token: string): Promise<number>;
getPredictedTokenAddress(owner: `0x${string}`, salt: `0x${string}`): Promise<{
addr: `0x${string}`;
exists: boolean;
}>;
getOwner(): Promise<string>;
isBaseTokenWhitelisted(token: string): Promise<boolean>;
getTokenState(token: string): Promise<TokenState>;
getProtocolFeeShare(): Promise<number>;
getBondingCurveFeeAccumulated(token: string): Promise<string>;
getComputerUnclamiedFee(token: string): Promise<string>;
getAutoGraduationParams(token: string): Promise<AutoGraduationParams>;
getBaseToken(token: string): Promise<string>;
getPoolKey(token: string): Promise<PoolKey>;
getSurgeFee(config: TokenDeploymentConfig): Promise<string>;
getTokenDeploymentConfig(token: string): Promise<TokenDeploymentConfig>;
getTokenSupply(token: string): Promise<string>;
isGraduated(token: string): Promise<boolean>;
getProtocolFeeRecipient(): Promise<string>;
getPoolFeeSplits(token: string): Promise<FeeSplit[]>;
getFees(token: string): Promise<FeeResponse>;
getPositionManager(): Promise<string>;
getStateView(): Promise<string>;
getTokenIdRecipient(): Promise<string>;
getTokenDeploymentConfigsMapping(token: string): Promise<TokenDeploymentConfig>;
getTokenStatesMapping(token: string): Promise<TokenState>;
static formatEther(wei: BigNumberish): string;
static parseEther(ether: string): bigint;
}
declare class DeployerWriter {
private contract;
private provider;
private signer?;
private DEPLOYER_ABI;
private STATEMANAGER_ABI;
constructor(config: EthersSDKConfig);
/**
* Buy a token by sending base tokens to the bonding curve
* @param params Parameters including token address, input amount, minimum output amount, and recipient
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
buyToken(params: BuyTokenParams, options?: TransactionOptions): Promise<SwapTokenResult>;
/**
* Sell tokens from the bonding curve
* @param params Parameters including token address, input amount, minimum output amount, and recipient
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
sellToken(params: SellTokenParams, options?: TransactionOptions): Promise<SwapTokenResult>;
/**
* Approve the deployer contract to spend a specific token on the user's behalf
* @param token ERC20 token address
* @param amount Amount to approve
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
approveToken(token: string, amount: string, options?: TransactionOptions): Promise<ContractTransactionResponse>;
/**
* Approve the deployer contract to spend tokens and then sell them in a single flow
* @param params Parameters including token address, input amount, minimum output amount, and recipient
* @param options Optional transaction parameters like gas limit and gas price
* @returns Sell transaction response
*/
approveAndSell(params: SellTokenParams, options?: TransactionOptions): Promise<SwapTokenResult>;
/**
* Claim accumulated bonding curve fees for a specific token
* @param token Token address
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
claimFee(token: string, options?: TransactionOptions): Promise<ContractTransactionResponse>;
/**
* Launch a new token using the bonding curve
* @param params Token launch parameters including supplies, fees, and configuration
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
* Protocol fee in basis points (bps).
* Required. This fee will automatically be allocated to the protocol.
* Example: 500 = 5%
*/
launchToken(params: LaunchTokenParams, salt?: string, options?: TransactionOptions): Promise<{
tx: ContractTransactionResponse;
createdTokenAddress: string;
}>;
/**
* Graduate a token from the bonding curve (can allow forced graduation)
* @param token Token address
* @param allowPreGraduation Allow forced graduation if true
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
graduateToken(token: string, allowPreGraduation?: boolean, options?: TransactionOptions): Promise<ContractTransactionResponse>;
/**
* Set the whitelist status of a base token
* @param token Token address
* @param whitelisted Boolean flag to whitelist (true) or remove from whitelist (false)
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
setBaseTokenWhitelist(token: string, whitelisted: boolean, options?: TransactionOptions): Promise<ContractTransactionResponse>;
/**
* Relinquish control of the state manager to the protocol
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
relinquishStateManager(options?: TransactionOptions): Promise<ContractTransactionResponse>;
/**
* Withdraw residual (dust) base tokens from the contract
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
*/
withdrawDust(options?: TransactionOptions): Promise<ContractTransactionResponse>;
waitForTransaction(txHash: string): Promise<ethers.TransactionReceipt | null>;
}
declare class EthersDeployer {
read: DeployerReader;
write: DeployerWriter;
constructor(config: EthersSDKConfig);
}
declare class ViemDeployerReader {
protected publicClient: ReturnType<typeof createPublicClient>;
protected deployerAddress: Address;
protected stateManagerAddress: Address;
protected lpLockerAddress: Address;
private DEPLOYER_ABI;
private STATEMANAGER_ABI;
private LP_LOCKER_ABI;
constructor(config: ViemSDKConfig);
private callDeployer;
private callStateManager;
private callLpLocker;
getBuyQuote(token: string, amountIn: string): Promise<BuyQuote>;
getSellQuote(token: string, amountIn: string): Promise<SellQuote>;
getTokenPrice(token: Address): Promise<number>;
getPredictedTokenAddress(owner: `0x${string}`, salt: `0x${string}`): Promise<{
addr: string;
exists: boolean;
}>;
getOwner(): Promise<string>;
isBaseTokenWhitelisted(token: Address): Promise<boolean>;
getTokenState(token: Address): Promise<TokenState>;
getProtocolFeeShare(): Promise<number>;
getBondingCurveFeeAccumulated(token: Address): Promise<string>;
getComputeUnclamiedFee(token: Address): Promise<string>;
getAutoGraduationParams(token: Address): Promise<AutoGraduationParams>;
getBaseToken(token: Address): Promise<string>;
getPoolKey(token: Address): Promise<PoolKey>;
getSurgeFee(config: TokenDeploymentConfig): Promise<string>;
getTokenDeploymentConfig(token: Address): Promise<TokenDeploymentConfig>;
getTokenSupply(token: Address): Promise<string>;
isGraduated(token: Address): Promise<boolean>;
getProtocolFeeRecipient(): Promise<string>;
getPoolFeeSplits(token: Address): Promise<FeeSplit[]>;
getFees(token: Address): Promise<FeeResponse>;
getPositionManager(): Promise<string>;
getStateView(): Promise<string>;
getTokenIdRecipient(): Promise<string>;
getTokenDeploymentConfigsMapping(token: Address): Promise<TokenDeploymentConfig>;
getTokenStatesMapping(token: Address): Promise<TokenState>;
}
declare class ViemDeployerWriter {
protected config: ViemSDKConfig;
protected publicClient: ReturnType<typeof createPublicClient>;
protected walletClient: WalletClient;
protected deployerAddress: string;
protected stateManagerAddress: string;
private DEPLOYER_ABI;
private STATEMANAGER_ABI;
constructor(config: ViemSDKConfig);
private buildTxOptions;
buyToken(params: BuyTokenParams, options?: TransactionOptions): Promise<{
hash: `0x${string}`;
success: "success" | "reverted";
receipt: viem.TransactionReceipt;
}>;
sellToken(params: SellTokenParams, options?: TransactionOptions): Promise<{
hash: `0x${string}`;
success: boolean;
receipt: viem.TransactionReceipt;
}>;
approveToken(token: string, amount: string, options?: TransactionOptions): Promise<`0x${string}`>;
approveAndSell(params: SellTokenParams, options?: TransactionOptions): Promise<{
hash: `0x${string}`;
success: boolean;
receipt: viem.TransactionReceipt;
}>;
claimFee(token: string, options?: TransactionOptions): Promise<`0x${string}`>;
/**
* Launch a new token using the bonding curve
* @param params Token launch parameters including supplies, fees, and configuration
* @param options Optional transaction parameters like gas limit and gas price
* @returns Transaction response
* Protocol fee in basis points (bps).
* Required. This fee will automatically be allocated to the protocol.
* Example: 500 = 5%
*/
launchToken(params: LaunchTokenParams, salt?: string, options?: TransactionOptions): Promise<{
tx: `0x${string}`;
createdTokenAddress: string;
}>;
graduateToken(token: string, allowPreGraduation?: boolean, options?: TransactionOptions): Promise<{
success: boolean;
receipt: viem.TransactionReceipt;
}>;
setBaseTokenWhitelist(token: string, whitelisted: boolean, options?: TransactionOptions): Promise<`0x${string}`>;
relinquishStateManager(options?: TransactionOptions): Promise<`0x${string}`>;
withdrawDust(options?: TransactionOptions): Promise<`0x${string}`>;
waitForTransaction(txHash: `0x${string}`): Promise<viem.TransactionReceipt>;
}
declare class ViemDeployer {
read: ViemDeployerReader;
write: ViemDeployerWriter | null;
constructor(config: ViemSDKConfig);
}
declare class DeployerSDK {
static getDeployer<T extends SDKConfig>(config: T): Promise<T['client'] extends 'ethers' ? EthersDeployer : ViemDeployer>;
}
declare const MINTED_TOKEN_DECIMALS: bigint;
declare const SCALE_EXPONENT: bigint;
declare const SCALE_FACTOR: bigint;
declare const SCALE_FACTOR_SQRT: bigint;
declare const DEFAULT_TICK_SPACING: bigint;
declare enum CurveType {
FLAT = "flat",
LINEAR = "linear",
QUADRATIC = "quadratic",
CUBIC = "cubic",
SQUARE_ROOT = "square_root"
}
declare const initlaizeCurve: (curveType: CurveType, startPrice: bigint, endPrice: bigint, numSteps: bigint, approxBondingCurveSupply: bigint) => PriceCurve;
declare const getBaseTokenDetails: (baseTokenChainId: number, baseTokenAddress: string) => BaseTokenConfig;
/**
* Formats a base token string precise amount to a curve price entry.
* @param baseTokenAmountFormattedString - The base token string amount
* @param baseTokenChainId - The chain id of the base token
* @param baseTokenAddress - The address of the base token
* @returns The formatted curve price entry
*/
declare const formatBaseTokenAmountForCurve: (baseTokenAmountFormattedString: string, baseTokenChainId: number, baseTokenAddress: string) => bigint;
/**
* Formats a curve price entry to a base token amount. In string for precision
* @param curvePrice - The price of the curve
* @param baseTokenChainId - The chain id of the base token
* @param baseTokenAddress - The address of the base token
* @returns The formatted base token string amount
*/
declare const formatCurveToBaseTokenStringAmount: (curvePrice: bigint, baseTokenChainId: number, baseTokenAddress: string) => string;
declare function flatCurve(startPrice: bigint, totalSupply: bigint): PriceCurve;
declare function linearCurve(startPrice: bigint, endPrice: bigint, numSteps: bigint, bondingCurveSupply: bigint): PriceCurve;
declare function quadraticCurve(startPrice: bigint, endPrice: bigint, numSteps: bigint, bondingCurveSupply: bigint): PriceCurve;
declare function acceleratingPowerCurve(startPrice: bigint, endPrice: bigint, numSteps: bigint, bondingCurveSupply: bigint): PriceCurve;
declare function sqrtCurve(startPrice: bigint, endPrice: bigint, numSteps: bigint, bondingCurveSupply: bigint): PriceCurve;
declare function customCurve(prices: bigint[], bondingCurveSupply: bigint): PriceCurve;
declare function analyzeCurve(curve: PriceCurve): AnalyzeCurveResponse;
declare function analyzeCurveUntil(curve: PriceCurve, tokensConsumed: bigint): bigint;
declare class InvalidPriceCurveInput extends Error {
constructor();
}
interface AnalyzeCurveResponse {
bondingCurveSupply: bigint;
baseTokenAccumulated: bigint;
minLiquidityPoolSupply: bigint;
}
declare const validateTokenGraduatable: (priceCurve: PriceCurve, graduationFeeBps: bigint, liquidityPoolSupply: bigint) => void;
declare const offsetPriceToSqrtPriceX96: (price: bigint) => bigint;
type curvemath_AnalyzeCurveResponse = AnalyzeCurveResponse;
type curvemath_CurveType = CurveType;
declare const curvemath_CurveType: typeof CurveType;
declare const curvemath_DEFAULT_TICK_SPACING: typeof DEFAULT_TICK_SPACING;
type curvemath_InvalidPriceCurveInput = InvalidPriceCurveInput;
declare const curvemath_InvalidPriceCurveInput: typeof InvalidPriceCurveInput;
declare const curvemath_MINTED_TOKEN_DECIMALS: typeof MINTED_TOKEN_DECIMALS;
declare const curvemath_SCALE_EXPONENT: typeof SCALE_EXPONENT;
declare const curvemath_SCALE_FACTOR: typeof SCALE_FACTOR;
declare const curvemath_SCALE_FACTOR_SQRT: typeof SCALE_FACTOR_SQRT;
declare const curvemath_acceleratingPowerCurve: typeof acceleratingPowerCurve;
declare const curvemath_analyzeCurve: typeof analyzeCurve;
declare const curvemath_analyzeCurveUntil: typeof analyzeCurveUntil;
declare const curvemath_customCurve: typeof customCurve;
declare const curvemath_flatCurve: typeof flatCurve;
declare const curvemath_formatBaseTokenAmountForCurve: typeof formatBaseTokenAmountForCurve;
declare const curvemath_formatCurveToBaseTokenStringAmount: typeof formatCurveToBaseTokenStringAmount;
declare const curvemath_getBaseTokenDetails: typeof getBaseTokenDetails;
declare const curvemath_initlaizeCurve: typeof initlaizeCurve;
declare const curvemath_linearCurve: typeof linearCurve;
declare const curvemath_offsetPriceToSqrtPriceX96: typeof offsetPriceToSqrtPriceX96;
declare const curvemath_quadraticCurve: typeof quadraticCurve;
declare const curvemath_sqrtCurve: typeof sqrtCurve;
declare const curvemath_validateTokenGraduatable: typeof validateTokenGraduatable;
declare namespace curvemath {
export { type curvemath_AnalyzeCurveResponse as AnalyzeCurveResponse, curvemath_CurveType as CurveType, curvemath_DEFAULT_TICK_SPACING as DEFAULT_TICK_SPACING, curvemath_InvalidPriceCurveInput as InvalidPriceCurveInput, curvemath_MINTED_TOKEN_DECIMALS as MINTED_TOKEN_DECIMALS, curvemath_SCALE_EXPONENT as SCALE_EXPONENT, curvemath_SCALE_FACTOR as SCALE_FACTOR, curvemath_SCALE_FACTOR_SQRT as SCALE_FACTOR_SQRT, curvemath_acceleratingPowerCurve as acceleratingPowerCurve, curvemath_analyzeCurve as analyzeCurve, curvemath_analyzeCurveUntil as analyzeCurveUntil, curvemath_customCurve as customCurve, curvemath_flatCurve as flatCurve, curvemath_formatBaseTokenAmountForCurve as formatBaseTokenAmountForCurve, curvemath_formatCurveToBaseTokenStringAmount as formatCurveToBaseTokenStringAmount, curvemath_getBaseTokenDetails as getBaseTokenDetails, curvemath_initlaizeCurve as initlaizeCurve, curvemath_linearCurve as linearCurve, curvemath_offsetPriceToSqrtPriceX96 as offsetPriceToSqrtPriceX96, curvemath_quadraticCurve as quadraticCurve, curvemath_sqrtCurve as sqrtCurve, curvemath_validateTokenGraduatable as validateTokenGraduatable };
}
declare const DEPLOYER_ABI: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "_stateView";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_lplocker";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_universalRouter";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_permit2";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_poolManager";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_quoter";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_owner";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "receive";
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "MIN_VESTING_START_TIME";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint64";
readonly internalType: "uint64";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "_validateTokenDeploymentConfig";
readonly inputs: readonly [{
readonly name: "tokenDeploymentConfig";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "acceptOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "appIdentifiers";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "buyQuote";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "buyToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "amountOutMin";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "claimFee";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "emergencyEjectToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "finalizeEmergencyRescue";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "getTokenPrice";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "graduateToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowPreGraduation";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "isBaseTokenWhitelisted";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "launchToken";
readonly inputs: readonly [{
readonly name: "tokenDeploymentConfig";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "launchV4Pool";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "startingTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "endingTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "targetTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "allowPreGraduation";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "lplocker";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract ILpLockerWithOwnable";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "pendingOwner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit2";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPermit2";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "poolManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPoolManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "predictTokenAddress";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [{
readonly name: "addr";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "exists";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "quoter";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IV4Quoter";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "relinquishStateManager";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "renounceOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "sellQuote";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "sellToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "amountOutMin";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setAppIdentifier";
readonly inputs: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setBaseTokenWhitelist";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "whitelisted";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setProtocolFeeRecipient";
readonly inputs: readonly [{
readonly name: "_protocolFeeRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "stateManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract StateManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "newOwner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "universalRouter";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IUniversalRouter";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "updateTokenFeeSplits";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "feeUpdate";
readonly type: "tuple";
readonly internalType: "struct Deployer.TokenFeeUpdate";
readonly components: readonly [{
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "whitelistedBaseTokens";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "withdrawFunds";
readonly inputs: readonly [{
readonly name: "destination";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "BaseTokenWhitelisted";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "whitelisted";
readonly type: "bool";
readonly indexed: false;
readonly internalType: "bool";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferStarted";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeeClaimed";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "recipient";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "feeToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "graduated";
readonly type: "bool";
readonly indexed: false;
readonly internalType: "bool";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "BothTokensLaunched";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ETHBalanceTooLowForSwap";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ETHTransferFailed";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "IncorrectETHAmount";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InsufficientOutputAmount";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidBaseToken";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidCaller";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidCurveParameters";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidTokenDetails";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "OwnableInvalidOwner";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OwnableUnauthorizedAccount";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "QuoteAmount";
readonly inputs: readonly [{
readonly name: "amountOut";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "effectiveAmountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "QuoteNotImplemented";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "Reentrancy";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyLaunched";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenNotLaunched";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenStateNotSet";
readonly inputs: readonly [];
}];
declare const STATEMANAGER_ABI: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "initialOwner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "permit2Address";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_positionManager";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_stateView";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_protocolFeeRecipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_tokenIdRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "PROTOCOL_FEE_SHARE";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "acceptOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "bondingCurveFeeAccumulated";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "buyToken";
readonly inputs: readonly [{
readonly name: "buyer";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "amountOutMin";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "claimFee";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "emergencyEject";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "finalizeEmergencyRescue";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "getAutoGraduationParams";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "startingTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "endTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "targetTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "poolFee";
readonly type: "uint24";
readonly internalType: "uint24";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getBaseToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getBuyQuote";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getPoolKey";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getSellQuote";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getSurgeFee";
readonly inputs: readonly [{
readonly name: "config";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly outputs: readonly [{
readonly name: "fee";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getTokenDeploymentConfig";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getTokenPrice";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getTokenState";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct TokenState";
readonly components: readonly [{
readonly name: "isGraduated";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "tokensInBondingCurve";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "baseTokensInBondingCurve";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "poolAddress";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getTokenSupply";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "graduateToken";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowPreGraduation";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "isGraduated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "launchV4Pool";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "startingTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "endingTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "targetTick";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "allowPreGraduation";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "pendingOwner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit2";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPermit2";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "poolFeeSplits";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "poolKeys";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "positionManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPositionManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "protocolFeeRecipient";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "renounceOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "sellToken";
readonly inputs: readonly [{
readonly name: "buyer";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "amountOutMin";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setProtocolFeeRecipient";
readonly inputs: readonly [{
readonly name: "_protocolFeeRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setTokenDeploymentConfig";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "config";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "setTokenIdRecipient";
readonly inputs: readonly [{
readonly name: "_tokenIdRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "stateView";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IStateView";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "tokenDeploymentConfigs";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "tokenIdRecipient";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "tokenStates";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "isGraduated";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "tokensInBondingCurve";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "baseTokensInBondingCurve";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "poolAddress";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "newOwner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateTokenDeploymentConfig";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "config";
readonly type: "tuple";
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "BondingCurveSwap";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "isBuy";
readonly type: "bool";
readonly indexed: true;
readonly internalType: "bool";
}, {
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "from";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "amountIn";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "amountOut";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "feeAmount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferStarted";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "PoolLaunched";
readonly inputs: readonly [{
readonly name: "token0";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "token1";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenEmergencyEjected";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "liquidityTokens";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "baseTokens";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenEmergencyRescued";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "uniswapTokenId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly indexed: false;
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenGraduated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "mintedBondingCurveTokens";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "collectedBaseTokens";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenLaunched";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "config";
readonly type: "tuple";
readonly indexed: false;
readonly internalType: "struct TokenDeploymentConfig";
readonly components: readonly [{
readonly name: "creator";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "baseToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "appIdentifier";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "teamSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingStartTime";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingDuration";
readonly type: "uint64";
readonly internalType: "uint64";
}, {
readonly name: "vestingWallet";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bondingCurveSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "liquidityPoolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "totalSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveBuyFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveSellFee";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "bondingCurveFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "bondingCurveParams";
readonly type: "tuple";
readonly internalType: "struct PriceCurve";
readonly components: readonly [{
readonly name: "prices";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}, {
readonly name: "numSteps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "stepSize";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "allowForcedGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "allowAutoGraduation";
readonly type: "bool";
readonly internalType: "bool";
}, {
readonly name: "graduationFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "graduationFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolFees";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "poolFeeSplits";
readonly type: "tuple[]";
readonly internalType: "struct FeeSplit[]";
readonly components: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "bps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "surgeFeeStartingTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "surgeFeeDuration";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "maxSurgeFeeBps";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenReadyForGraduation";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "InsufficientETHSent";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InsufficientTokenBalanceInBondingCurve";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidBondingCurveSupply";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidOperation";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidTokenBalance";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidTokenSupply";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoFeeToClaim";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "OwnableInvalidOwner";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OwnableUnauthorizedAccount";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "PriceCurveOutOfBounds";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SlippageExceeded";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyDeployed";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyGraduated";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenInGraduationProcess";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenNotReadyForGraduation";
readonly inputs: readonly [];
}];
export { type Address, type AutoGraduationParams, type BaseTokenConfig, curvemath as BondingCurve, type BuyQuote, type BuyTokenParams, DEPLOYER_ABI, DeployerSDK, EthersDeployer, type FeeBreakdown, type FeeResponse, type FeeSplit, type LaunchTokenParams, type PoolKey, type PriceCurve, type SDKConfig, STATEMANAGER_ABI, type SellQuote, type SellTokenParams, type SwapTokenResult, type TokenDeploymentConfig, type TokenState, type TransactionOptions, ViemDeployer };