clanker-sdk / v4/extensions
Enumerations
PresaleStatus
Defined in: src/v4/extensions/presale.ts:19Enumeration Members
Type Aliases
AirdropRecipient
PresaleConfig
Functions
buyIntoPresale()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
buyIntoPresaleWithProof()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
Example
claimAirdrop()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
claimEth()
withdrawFromPresale instead.
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
claimTokens()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
createAirdrop()
Parameters
Returns
endPresale()
- Maximum ETH goal is reached (anyone can call)
- Minimum ETH goal is reached AND duration has expired (anyone can call)
- Minimum ETH goal is reached AND presale owner wants to end early (only presale owner can call)
- Deploy the token
- Send raised ETH to the recipient (minus Clanker fee)
- Allow users to claim tokens after lockup period
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
fetchAirdropProofs()
Parameters
Returns
Promise<{
proofs: {
entry: {
account: `0x${string}`;
amount: bigint;
};
proof: `0x${string}`[];
}[];
}>
All proofs and their associated entries for claiming.
getAirdropProofs()
Parameters
Returns
getAllowlistAddress()
Parameters
Returns
`0x${string}` | undefined
The allowlist contract address, or undefined if not available
getAmountAvailableToClaim()
Parameters
Returns
Promise<bigint>
Amount available to claim
getBuyIntoPresaleTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:128 Get a transaction to buy into a presaleParameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "buyIntoPresale">
Transaction configuration for buying into a presale
getBuyIntoPresaleWithProofTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:596 Get a transaction to buy into a presale with allowlist proof Use this when buying into a presale that has an allowlist enabled. The proof must contain your allowlist proof data (merkle proof + allowed amount).Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "buyIntoPresaleWithProof">
Transaction configuration for buying into a presale with proof
getClaimAirdropTransaction()
View full generated declaration (405 lines) Defined in: src/v4/extensions/airdrop.ts:157 Create a transaction to claim a specific airdrop for.Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "factory_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "AirdropAlreadyExists";
type: "error";
}, {
inputs: readonly [];
name: "AirdropLockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "AirdropNotUnlocked";
type: "error";
}, {
inputs: readonly [];
name: "InvalidAirdropPercentage";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMerkleRoot";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidProof";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "TotalMaxClaimed";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}, {
inputs: readonly [];
name: "UserMaxClaimed";
type: "error";
}, {
inputs: readonly [];
name: "ZeroClaim";
type: "error";
}, {
inputs: readonly [];
name: "ZeroToClaim";
type: "error";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "token";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "totalUserAmountClaimed";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "userAmountStillLocked";
type: "uint256";
}];
name: "AirdropClaimed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "token";
type: "address";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}, {
indexed: false;
internalType: "uint256";
name: "supply";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}];
name: "AirdropCreated";
type: "event";
}, {
inputs: readonly [];
name: "MIN_LOCKUP_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
name: "airdrops";
outputs: readonly [{
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}, {
internalType: "uint256";
name: "totalSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "totalClaimed";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "allocatedAmount";
type: "uint256";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "allocatedAmount";
type: "uint256";
}, {
internalType: "bytes32[]";
name: "proof";
type: "bytes32[]";
}];
name: "claim";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}], "claim">
Arguments that can be used with a viem transaction.
getClaimEthTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:300 Get a transaction to claim ETH from a successful presale (for presale owners) This function allows the presale owner to claim the raised ETH after the presale has been completed and the token has been deployed. Only callable by the presale owner or contract owner. A Clanker fee is deducted and the remaining ETH is sent to the recipient.Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "claimEth">
Transaction configuration for claiming ETH
getClaimTokensTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:247 Get a transaction to claim tokens from a presaleParameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "claimTokens">
Transaction configuration for claiming tokens
getEndPresaleTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:186 Get a transaction to end a presale A presale can be ended in three scenarios:- Maximum ETH goal is reached (anyone can call)
- Minimum ETH goal is reached AND duration has expired (anyone can call)
- Minimum ETH goal is reached AND presale owner wants to end early (only presale owner can call)
Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "endPresale">
Transaction configuration for ending a presale
getPresale()
Parameters
Returns
Promise<{
allowlist: `0x${string}`;
clankerFee: bigint;
deployedToken: `0x${string}`;
deploymentConfig: {
extensionConfigs: readonly {
extension: `0x${string}`;
extensionBps: number;
extensionData: `0x${string}`;
msgValue: bigint;
}[];
lockerConfig: {
locker: `0x${string}`;
lockerData: `0x${string}`;
positionBps: readonly number[];
rewardAdmins: readonly `0x${string}`[];
rewardBps: readonly number[];
rewardRecipients: readonly `0x${string}`[];
tickLower: readonly number[];
tickUpper: readonly number[];
};
mevModuleConfig: {
mevModule: `0x${string}`;
mevModuleData: `0x${string}`;
};
poolConfig: {
hook: `0x${string}`;
pairedToken: `0x${string}`;
poolData: `0x${string}`;
tickIfToken0IsClanker: number;
tickSpacing: number;
};
tokenConfig: {
context: string;
image: string;
metadata: string;
name: string;
originatingChainId: bigint;
salt: `0x${string}`;
symbol: string;
tokenAdmin: `0x${string}`;
};
};
deploymentExpected: boolean;
endTime: bigint;
ethClaimed: boolean;
ethRaised: bigint;
lockupDuration: bigint;
lockupEndTime: bigint;
maxEthGoal: bigint;
minEthGoal: bigint;
presaleOwner: `0x${string}`;
status: number;
tokenSupply: bigint;
vestingDuration: bigint;
vestingEndTime: bigint;
}>
Presale data
getPresaleBuys()
Parameters
Returns
Promise<bigint>
Amount of ETH contributed
getPresaleClaimed()
Parameters
Returns
Promise<bigint>
Amount of tokens claimed
getPresaleState()
Parameters
Returns
Promise<readonly [number, {
extensionConfigs: readonly {
extension: `0x${string}`;
extensionBps: number;
extensionData: `0x${string}`;
msgValue: bigint;
}[];
lockerConfig: {
locker: `0x${string}`;
lockerData: `0x${string}`;
positionBps: readonly number[];
rewardAdmins: readonly `0x${string}`[];
rewardBps: readonly number[];
rewardRecipients: readonly `0x${string}`[];
tickLower: readonly number[];
tickUpper: readonly number[];
};
mevModuleConfig: {
mevModule: `0x${string}`;
mevModuleData: `0x${string}`;
};
poolConfig: {
hook: `0x${string}`;
pairedToken: `0x${string}`;
poolData: `0x${string}`;
tickIfToken0IsClanker: number;
tickSpacing: number;
};
tokenConfig: {
context: string;
image: string;
metadata: string;
name: string;
originatingChainId: bigint;
salt: `0x${string}`;
symbol: string;
tokenAdmin: `0x${string}`;
};
}, `0x${string}`, `0x${string}`, bigint, bigint, bigint, `0x${string}`, bigint, bigint, boolean, boolean, bigint, bigint, bigint, bigint, bigint]>
Presale data
getSetAddressOverrideTransaction()
View full generated declaration (209 lines) Defined in: src/v4/extensions/presale-allowlist-management.ts:89 Get a transaction to set an address override for a presale allowlist Only callable by the presale owner. Address overrides take precedence over the merkle tree allowlist. Setting allowedAmount to 0 effectively removes the override.Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "presale_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "allowlists";
outputs: readonly [{
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "getAllowedAmountForBuyer";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes";
name: "initializationData";
type: "bytes";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "presale";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "setAddressOverride";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlistEnabled";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "setMerkleRoot";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "Initialize";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "SetAddressOverride";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlistEnabled";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "SetMerkleRoot";
type: "event";
}, {
inputs: readonly [];
name: "InvalidProof";
type: "error";
}, {
inputs: readonly [];
name: "MerkleRootNotSet";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "setAddressOverride">
Transaction configuration
getSetAllowlistEnabledTransaction()
View full generated declaration (209 lines) Defined in: src/v4/extensions/presale-allowlist-management.ts:177 Get a transaction to enable or disable the allowlist for a presale Only callable by the presale owner. When disabled, anyone can buy into the presale without restrictions. When enabled, buyers must provide proof or have an address override.Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "presale_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "allowlists";
outputs: readonly [{
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "getAllowedAmountForBuyer";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes";
name: "initializationData";
type: "bytes";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "presale";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "setAddressOverride";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlistEnabled";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "setMerkleRoot";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "Initialize";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "SetAddressOverride";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlistEnabled";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "SetMerkleRoot";
type: "event";
}, {
inputs: readonly [];
name: "InvalidProof";
type: "error";
}, {
inputs: readonly [];
name: "MerkleRootNotSet";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "setAllowlistEnabled">
Transaction configuration
getSetMerkleRootTransaction()
View full generated declaration (209 lines) Defined in: src/v4/extensions/presale-allowlist-management.ts:25 Get a transaction to set the merkle root for a presale allowlist Only callable by the presale owner. This allows updating the allowlist after the presale has been created.Parameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "presale_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "allowlists";
outputs: readonly [{
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "getAllowedAmountForBuyer";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "bytes";
name: "initializationData";
type: "bytes";
}];
name: "initialize";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "presale";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "buyer";
type: "address";
}, {
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "setAddressOverride";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlistEnabled";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "setMerkleRoot";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "Initialize";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: true;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "SetAddressOverride";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlistEnabled";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "bytes32";
name: "merkleRoot";
type: "bytes32";
}];
name: "SetMerkleRoot";
type: "event";
}, {
inputs: readonly [];
name: "InvalidProof";
type: "error";
}, {
inputs: readonly [];
name: "MerkleRootNotSet";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "setMerkleRoot">
Transaction configuration
getStartPresaleTransaction()
View full generated declaration (1,619 lines) Defined in: src/v4/extensions/presale.ts:60 Get a transaction to start a presaleParameters
Returns
Promise<ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly […, …, …, …, …, …, …, …];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly […, …, …, …, …];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly […, …, …, …, …, …, …, …];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly […, …];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly […, …, …, …];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "startPresale">>
Transaction configuration for starting a presale
getWithdrawFromPresaleTransaction()
View full generated declaration (1,727 lines) Defined in: src/v4/extensions/presale.ts:520 Get a transaction to withdraw from a presaleParameters
Returns
ClankerTransactionConfig<readonly [{
inputs: readonly [{
internalType: "address";
name: "owner_";
type: "address";
}, {
internalType: "address";
name: "factory_";
type: "address";
}, {
internalType: "address";
name: "clankerFeeRecipient_";
type: "address";
}];
stateMutability: "nonpayable";
type: "constructor";
}, {
inputs: readonly [];
name: "BPS";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "DEPLOYMENT_BAD_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "MAX_PRESALE_DURATION";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "SALT_SET_BUFFER";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
name: "admins";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "amountAvailableToClaim";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "buyIntoPresale";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes";
name: "proof";
type: "bytes";
}];
name: "buyIntoPresaleWithProof";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "claimEth";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "claimTokens";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "clankerDefaultFeeBps";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "clankerFeeRecipient";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}];
name: "enabledAllowlists";
outputs: readonly [{
internalType: "bool";
name: "enabled";
type: "bool";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}];
name: "endPresale";
outputs: readonly [{
internalType: "address";
name: "token";
type: "address";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "factory";
outputs: readonly [{
internalType: "contract IClanker";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId_";
type: "uint256";
}];
name: "getPresale";
outputs: readonly [{
components: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}, {
internalType: …;
name: …;
type: …;
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
internalType: "struct IClankerPresaleEthToCreator.Presale";
name: "";
type: "tuple";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "minLockupDuration";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "owner";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleBuys";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "address";
name: "user";
type: "address";
}];
name: "presaleClaimed";
outputs: readonly [{
internalType: "uint256";
name: "amount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "presaleState";
outputs: readonly [{
internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
name: "status";
type: "uint8";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "endTime";
type: "uint256";
}, {
internalType: "address";
name: "deployedToken";
type: "address";
}, {
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}, {
internalType: "uint256";
name: "tokenSupply";
type: "uint256";
}, {
internalType: "bool";
name: "deploymentExpected";
type: "bool";
}, {
internalType: "bool";
name: "ethClaimed";
type: "bool";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "lockupEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingEndTime";
type: "uint256";
}, {
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
components: readonly [{
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";
}, {
internalType: "address";
name: "token";
type: "address";
}, {
internalType: "uint256";
name: "extensionSupply";
type: "uint256";
}, {
internalType: "uint256";
name: "extensionIndex";
type: "uint256";
}];
name: "receiveTokens";
outputs: readonly [];
stateMutability: "payable";
type: "function";
}, {
inputs: readonly [];
name: "renounceOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "admin";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAdmin";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "setAllowlist";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "clankerDefaultFeeBps_";
type: "uint256";
}];
name: "setClankerDefaultFee";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "newFee";
type: "uint256";
}];
name: "setClankerFeeForPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}];
name: "setClankerFeeRecipient";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "minLockupDuration_";
type: "uint256";
}];
name: "setMinLockupDuration";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
internalType: "address";
name: "allowlist";
type: "address";
}, {
internalType: "bytes";
name: "allowlistInitializationData";
type: "bytes";
}];
name: "startPresale";
outputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes4";
name: "interfaceId";
type: "bytes4";
}];
name: "supportsInterface";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "pure";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "address";
name: "recipient";
type: "address";
}];
name: "withdrawFromPresale";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethAmount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "fee";
type: "uint256";
}];
name: "ClaimEth";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "claimer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "tokenAmount";
type: "uint256";
}];
name: "ClaimTokens";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldClankerDefaultFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerDefaultFee";
type: "uint256";
}];
name: "ClankerDefaultFeeUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "oldRecipient";
type: "address";
}, {
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}];
name: "ClankerFeeRecipientUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "oldClankerFee";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFee";
type: "uint256";
}];
name: "ClankerFeeUpdatedForPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "oldMinLockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "minLockupDuration";
type: "uint256";
}];
name: "MinLockupDurationUpdated";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "previousOwner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "newOwner";
type: "address";
}];
name: "OwnershipTransferred";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "buyer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "ethToUse";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "PresaleBuy";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "token";
type: "address";
}];
name: "PresaleDeployed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}];
name: "PresaleFailed";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
components: readonly [{
components: readonly [{
internalType: "address";
name: "tokenAdmin";
type: "address";
}, {
internalType: "string";
name: "name";
type: "string";
}, {
internalType: "string";
name: "symbol";
type: "string";
}, {
internalType: "bytes32";
name: "salt";
type: "bytes32";
}, {
internalType: "string";
name: "image";
type: "string";
}, {
internalType: "string";
name: "metadata";
type: "string";
}, {
internalType: "string";
name: "context";
type: "string";
}, {
internalType: "uint256";
name: "originatingChainId";
type: "uint256";
}];
internalType: "struct IClanker.TokenConfig";
name: "tokenConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "hook";
type: "address";
}, {
internalType: "address";
name: "pairedToken";
type: "address";
}, {
internalType: "int24";
name: "tickIfToken0IsClanker";
type: "int24";
}, {
internalType: "int24";
name: "tickSpacing";
type: "int24";
}, {
internalType: "bytes";
name: "poolData";
type: "bytes";
}];
internalType: "struct IClanker.PoolConfig";
name: "poolConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "locker";
type: "address";
}, {
internalType: "address[]";
name: "rewardAdmins";
type: "address[]";
}, {
internalType: "address[]";
name: "rewardRecipients";
type: "address[]";
}, {
internalType: "uint16[]";
name: "rewardBps";
type: "uint16[]";
}, {
internalType: "int24[]";
name: "tickLower";
type: "int24[]";
}, {
internalType: "int24[]";
name: "tickUpper";
type: "int24[]";
}, {
internalType: "uint16[]";
name: "positionBps";
type: "uint16[]";
}, {
internalType: "bytes";
name: "lockerData";
type: "bytes";
}];
internalType: "struct IClanker.LockerConfig";
name: "lockerConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "mevModule";
type: "address";
}, {
internalType: "bytes";
name: "mevModuleData";
type: "bytes";
}];
internalType: "struct IClanker.MevModuleConfig";
name: "mevModuleConfig";
type: "tuple";
}, {
components: readonly [{
internalType: "address";
name: "extension";
type: "address";
}, {
internalType: "uint256";
name: "msgValue";
type: "uint256";
}, {
internalType: "uint16";
name: "extensionBps";
type: "uint16";
}, {
internalType: "bytes";
name: "extensionData";
type: "bytes";
}];
internalType: "struct IClanker.ExtensionConfig[]";
name: "extensionConfigs";
type: "tuple[]";
}];
indexed: false;
internalType: "struct IClanker.DeploymentConfig";
name: "deploymentConfig";
type: "tuple";
}, {
indexed: false;
internalType: "uint256";
name: "minEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "maxEthGoal";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "presaleDuration";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "presaleOwner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "lockupDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "vestingDuration";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "clankerFeeBps";
type: "uint256";
}];
name: "PresaleStarted";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "admin";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAdmin";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "allowlist";
type: "address";
}, {
indexed: false;
internalType: "bool";
name: "enabled";
type: "bool";
}];
name: "SetAllowlist";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "uint256";
name: "presaleId";
type: "uint256";
}, {
indexed: false;
internalType: "address";
name: "withdrawer";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "ethRaised";
type: "uint256";
}];
name: "WithdrawFromPresale";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "WithdrawWithdrawFee";
type: "event";
}, {
inputs: readonly [{
internalType: "uint256";
name: "allowedAmount";
type: "uint256";
}];
name: "AllowlistAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "AllowlistNotEnabled";
type: "error";
}, {
inputs: readonly [];
name: "EthTransferFailed";
type: "error";
}, {
inputs: readonly [];
name: "InsufficientBalance";
type: "error";
}, {
inputs: readonly [];
name: "InvalidClankerFee";
type: "error";
}, {
inputs: readonly [];
name: "InvalidEthGoal";
type: "error";
}, {
inputs: readonly [];
name: "InvalidMsgValue";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresale";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleDuration";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "InvalidPresaleSupply";
type: "error";
}, {
inputs: readonly [];
name: "InvalidTimeLimit";
type: "error";
}, {
inputs: readonly [];
name: "LockupDurationTooShort";
type: "error";
}, {
inputs: readonly [];
name: "NoTokensToClaim";
type: "error";
}, {
inputs: readonly [];
name: "NoWithdrawFeeAccumulated";
type: "error";
}, {
inputs: readonly [];
name: "NotExpectingTokenDeployment";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "OwnableInvalidOwner";
type: "error";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "OwnableUnauthorizedAccount";
type: "error";
}, {
inputs: readonly [];
name: "PresaleAlreadyClaimed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleLockupNotPassed";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotActive";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotClaimable";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotLastExtension";
type: "error";
}, {
inputs: readonly [];
name: "PresaleNotReadyForDeployment";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSaltBufferNotExpired";
type: "error";
}, {
inputs: readonly [];
name: "PresaleSuccessful";
type: "error";
}, {
inputs: readonly [];
name: "RecipientMustBePresaleOwner";
type: "error";
}, {
inputs: readonly [];
name: "ReentrancyGuardReentrantCall";
type: "error";
}, {
inputs: readonly [];
name: "Unauthorized";
type: "error";
}], "withdrawFromPresale">
Transaction configuration for withdrawing from a presale
registerAirdrop()
Parameters
Returns
Promise<boolean>
Success.
Dev
Requires that the associated token is already deployed and indexed. The token must also have the merkle root associated with it.setAddressOverride()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
Example
setAllowlistEnabled()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
Example
setMerkleRoot()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction
startPresale()
Parameters
Returns
Promise<
| {
txHash: `0x${string}`;
} & {
error?: undefined;
}
| UndefinedValues<{
txHash: `0x${string}`;
}> & {
error: ClankerError;
}>
Outcome of the transaction
withdrawFromPresale()
Parameters
Returns
ClankerResult<{
txHash: `0x${string}`;
}>
Outcome of the transaction