> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clanker.world/llms.txt
> Use this file to discover all available pages before exploring further.

# V4 Extensions

[**clanker-sdk**](https://docs.clanker.world/sdk-reference/sdk-reference.md)

***

[clanker-sdk](https://docs.clanker.world/sdk-reference/sdk-reference.md) / v4/extensions

## Enumerations

### PresaleStatus

Defined in: [src/v4/extensions/presale.ts:19](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L19)

#### Enumeration Members

| Enumeration Member | Value | Defined in |
| - | - | - |
|  `Active` | `1` | [src/v4/extensions/presale.ts:21](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L21) |
|  `Claimable` | `5` | [src/v4/extensions/presale.ts:25](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L25) |
|  `Failed` | `4` | [src/v4/extensions/presale.ts:24](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L24) |
|  `NotCreated` | `0` | [src/v4/extensions/presale.ts:20](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L20) |
|  `SuccessfulMaximumHit` | `3` | [src/v4/extensions/presale.ts:23](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L23) |
|  `SuccessfulMinimumHit` | `2` | [src/v4/extensions/presale.ts:22](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L22) |

## Type Aliases

### AirdropRecipient

```ts theme={null}
type AirdropRecipient = z.input<typeof AirdropEntrySchema>[0];
```

Defined in: [src/v4/extensions/airdrop.ts:26](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L26)

***

### PresaleConfig

```ts theme={null}
type PresaleConfig = z.input<typeof PresaleConfigSchema>;
```

Defined in: [src/v4/extensions/presale.ts:50](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L50)

## Functions

### buyIntoPresale()

```ts theme={null}
function buyIntoPresale(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:160](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L160)

Buy into a presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `ethAmount`: `number`; `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.ethAmount` | `number` |
| `data.presaleId` | `bigint` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### buyIntoPresaleWithProof()

```ts theme={null}
function buyIntoPresaleWithProof(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:650](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L650)

Buy into a presale with allowlist proof

Use this when buying into a presale that has an allowlist enabled.
You must provide proof that your address is on the allowlist.

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `ethAmount`: `number`; `presaleId`: `bigint`; `proof`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.ethAmount` | `number` |
| `data.presaleId` | `bigint` |
| `data.proof` | `` `0x${string}` `` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

#### Example

```typescript theme={null}
import { createAllowlistMerkleTree, getAllowlistMerkleProof, encodeAllowlistProofData } from '../utils/presale-allowlist';

// Get your proof from the allowlist
const { tree, entries } = createAllowlistMerkleTree(allowlistEntries);
const proof = getAllowlistMerkleProof(tree, entries, buyerAddress, 1.0);
const proofData = encodeAllowlistProofData(1.0, proof);

// Buy with proof
await buyIntoPresaleWithProof({ clanker, presaleId: 1n, ethAmount: 0.5, proof: proofData });
```

***

### claimAirdrop()

```ts theme={null}
function claimAirdrop(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/airdrop.ts:192](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L192)

Claim an airdrop

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `amount`: `bigint`; `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `proof`: `` `0x${string}` ``\[]; `recipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } |
| `data.amount` | `bigint` |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.proof` | `` `0x${string}` ``\[] |
| `data.recipient` | `` `0x${string}` `` |
| `data.token` | `` `0x${string}` `` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### claimEth()

```ts theme={null}
function claimEth(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:338](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L338)

Claim ETH from a successful presale

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. Can only be called once per presale.

Note: For withdrawing from failed or active presales, use `withdrawFromPresale` instead.

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; `recipient`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |
| `data.recipient` | `` `0x${string}` `` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### claimTokens()

```ts theme={null}
function claimTokens(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:275](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L275)

Claim tokens from a presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### createAirdrop()

```ts theme={null}
function createAirdrop(recipients, options?): {
  airdrop: {
     amount: number;
     merkleRoot: `0x${string}`;
  };
  tree: MerkleTree<MerkleEntry>;
};
```

Defined in: [src/v4/extensions/airdrop.ts:36](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L36)

Create an airdrop for the recipients.

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `recipients` | \{ `account`: `` `0x${string}` ``; `amount`: `number`; }\[] | Recipients recieving airdrop. |
| `options` | \{ `tokenDecimals`: `bigint`; } | - |
| `options.tokenDecimals` | `bigint` | Custom token decimals. |

#### Returns

```ts theme={null}
{
  airdrop: {
     amount: number;
     merkleRoot: `0x${string}`;
  };
  tree: MerkleTree<MerkleEntry>;
}
```

Tree to save offline and Airdrop data for the smart contract.

| Name | Type | Defined in |
| - | - | - |
| `airdrop` | \{ `amount`: `number`; `merkleRoot`: `` `0x${string}` ``; } | [src/v4/extensions/airdrop.ts:39](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L39) |
| `airdrop.amount` | `number` | [src/v4/extensions/airdrop.ts:39](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L39) |
| `airdrop.merkleRoot` | `` `0x${string}` `` | [src/v4/extensions/airdrop.ts:39](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L39) |
| `tree` | `MerkleTree`\<`MerkleEntry`> | [src/v4/extensions/airdrop.ts:39](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L39) |

***

### endPresale()

```ts theme={null}
function endPresale(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:227](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L227)

End a presale and deploy the token

A presale can be ended in three scenarios:

1. Maximum ETH goal is reached (anyone can call)
2. Minimum ETH goal is reached AND duration has expired (anyone can call)
3. Minimum ETH goal is reached AND presale owner wants to end early (only presale owner can call)

If the presale is successful (minimum goal reached), this will:

* Deploy the token
* Send raised ETH to the recipient (minus Clanker fee)
* Allow users to claim tokens after lockup period

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; `salt`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |
| `data.salt` | `` `0x${string}` `` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### fetchAirdropProofs()

```ts theme={null}
function fetchAirdropProofs(token, account): Promise<{
  proofs: {
     entry: {
        account: `0x${string}`;
        amount: bigint;
     };
     proof: `0x${string}`[];
  }[];
}>;
```

Defined in: [src/v4/extensions/airdrop.ts:122](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L122)

Get all proofs for an account given a token that has a merkle tree associated with it. The token and tree must have been registered with the Clanker service.

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `token` | `` `0x${string}` `` | The token with the airdrop. |
| `account` | `` `0x${string}` `` | The account to check for. |

#### Returns

`Promise`\<\{
`proofs`: \{
`entry`: \{
`account`: `` `0x${string}` ``;
`amount`: `bigint`;
};
`proof`: `` `0x${string}` ``\[];
}\[];
}>

All proofs and their associated entries for claiming.

***

### getAirdropProofs()

```ts theme={null}
function getAirdropProofs(tree, account): {
  proofs: {
     entry: {
        account: `0x${string}`;
        amount: bigint;
     };
     proof: `0x${string}`[];
  }[];
};
```

Defined in: [src/v4/extensions/airdrop.ts:92](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L92)

Get all proofs for an account given a merkle tree.

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `tree` | `MerkleTree`\<`MerkleEntry`> | The tree to check. |
| `account` | `` `0x${string}` `` | The account to check for. |

#### Returns

```ts theme={null}
{
  proofs: {
     entry: {
        account: `0x${string}`;
        amount: bigint;
     };
     proof: `0x${string}`[];
  }[];
}
```

All proofs and their associated entries for claiming.

| Name | Type | Defined in |
| - | - | - |
| `proofs` | \{ `entry`: \{ `account`: `` `0x${string}` ``; `amount`: `bigint`; }; `proof`: `` `0x${string}` ``\[]; }\[] | [src/v4/extensions/airdrop.ts:95](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L95) |

***

### getAllowlistAddress()

```ts theme={null}
function getAllowlistAddress(chainId): `0x${string}` | undefined;
```

Defined in: [src/v4/extensions/presale.ts:579](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L579)

Get the allowlist contract address for a specific chain

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | The chain ID to get the allowlist address for |

#### Returns

`` `0x${string}` `` | `undefined`

The allowlist contract address, or undefined if not available

***

### getAmountAvailableToClaim()

```ts theme={null}
function getAmountAvailableToClaim(data): Promise<bigint>;
```

Defined in: [src/v4/extensions/presale.ts:485](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L485)

Get the amount available for a user to claim from a presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; `user`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |
| `data.user` | `` `0x${string}` `` |

#### Returns

`Promise`\<`bigint`>

Amount available to claim

***

### getBuyIntoPresaleTransaction()

[View full generated declaration (1,727 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/a0b4869e2dcf4159268930b0fdc4d1ad99c6896e461b8130e99bca86b43761af.txt)

Defined in: [src/v4/extensions/presale.ts:128](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L128)

Get a transaction to buy into a presale

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; `value`: `bigint`; } | The ID of the presale |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |
| `presaleId.value` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/e4150f400f998b41a5a2eb40c3d9719db94986f1e2a0fb8cdfccfc1d550a46e3.txt)

Defined in: [src/v4/extensions/presale.ts:596](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L596)

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

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; `proof`: `` `0x${string}` ``; `value`: `bigint`; } | The ID of the presale |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |
| `presaleId.proof` | `` `0x${string}` `` | - |
| `presaleId.value` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/6b8d22c72b2f7adfdbe4f3bb18cc912c887dc481d9276faa9b4d1cc021834b95.txt)

Defined in: [src/v4/extensions/airdrop.ts:157](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L157)

Create a transaction to claim a specific airdrop for.

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `token` | \{ `amount`: `bigint`; `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `proof`: `` `0x${string}` ``\[]; `recipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | The token that did the airdrop |
| `token.amount` | `bigint` | - |
| `token.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `token.proof` | `` `0x${string}` ``\[] | - |
| `token.recipient` | `` `0x${string}` `` | - |
| `token.token` | `` `0x${string}` `` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/63b1d64cda8044789a484e3e017a17349bc9ba20cada25e46763d13aace9cb05.txt)

Defined in: [src/v4/extensions/presale.ts:300](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L300)

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

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; `recipient`: `` `0x${string}` ``; } | The ID of the presale |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |
| `presaleId.recipient` | `` `0x${string}` `` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/a6cfe6af7d5e21499d743e80f1b2b209dda0dbbccdbf9eb77c3ac7e8a83b8cd2.txt)

Defined in: [src/v4/extensions/presale.ts:247](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L247)

Get a transaction to claim tokens from a presale

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; } | The ID of the presale |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/fc23ac90439a635718d691f3a53842b33a4a647009f252a29bc852b594ad2398.txt)

Defined in: [src/v4/extensions/presale.ts:186](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L186)

Get a transaction to end a presale

A presale can be ended in three scenarios:

1. Maximum ETH goal is reached (anyone can call)
2. Minimum ETH goal is reached AND duration has expired (anyone can call)
3. Minimum ETH goal is reached AND presale owner wants to end early (only presale owner can call)

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; `salt`: `` `0x${string}` ``; } | The ID of the presale |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |
| `presaleId.salt` | `` `0x${string}` `` | - |

#### 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()

```ts theme={null}
function getPresale(data): 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;
}>;
```

Defined in: [src/v4/extensions/presale.ts:358](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L358)

Get presale information

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |

#### 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()

```ts theme={null}
function getPresaleBuys(data): Promise<bigint>;
```

Defined in: [src/v4/extensions/presale.ts:417](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L417)

Get the amount of ETH a user has contributed to a presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; `user`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |
| `data.user` | `` `0x${string}` `` |

#### Returns

`Promise`\<`bigint`>

Amount of ETH contributed

***

### getPresaleClaimed()

```ts theme={null}
function getPresaleClaimed(data): Promise<bigint>;
```

Defined in: [src/v4/extensions/presale.ts:451](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L451)

Get the amount of tokens a user has claimed from a presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; `user`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |
| `data.user` | `` `0x${string}` `` |

#### Returns

`Promise`\<`bigint`>

Amount of tokens claimed

***

### getPresaleState()

```ts theme={null}
function getPresaleState(data): 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]>;
```

Defined in: [src/v4/extensions/presale.ts:387](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L387)

Get presale state (same as getPresale but different function name in contract)

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/33cc842c0f31219690dde90e15803d4ea0434253307049bc82e097d6b71a036e.txt)

Defined in: [src/v4/extensions/presale-allowlist-management.ts:89](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L89)

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

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `allowedAmount`: `bigint`; `buyer`: `` `0x${string}` ``; `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; } | The presale ID |
| `presaleId.allowedAmount` | `bigint` | - |
| `presaleId.buyer` | `` `0x${string}` `` | - |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/d2bb7b1457154107cf99862eede2e037b18f1eab8d4ddd0eb4174c08208ce307.txt)

Defined in: [src/v4/extensions/presale-allowlist-management.ts:177](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L177)

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

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `enabled`: `boolean`; `presaleId`: `bigint`; } | The presale ID |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.enabled` | `boolean` | - |
| `presaleId.presaleId` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/b032c2fb1086f0027e73850eef33d21c527339ca748cb3510fe97a60f6db0e78.txt)

Defined in: [src/v4/extensions/presale-allowlist-management.ts:25](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L25)

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

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `merkleRoot`: `` `0x${string}` ``; `presaleId`: `bigint`; } | The presale ID |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.merkleRoot` | `` `0x${string}` `` | - |
| `presaleId.presaleId` | `bigint` | - |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f597ceba4b39d35242755caeb8b91725db5d8a827188240c1eb1e4b3bcc1d9ad.txt)

Defined in: [src/v4/extensions/presale.ts:60](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L60)

Get a transaction to start a presale

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `deploymentConfig` | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/43c2fdee2b88c373ff57fdf7f0d71203e80fc8703d49fbefdd893aa9c5c2520f.txt) | The deployment configuration for the token |
| `deploymentConfig.presaleConfig` | \{ `allowlist?`: `` `0x${string}` ``; `allowlistInitializationData?`: `` `0x${string}` ``; `lockupDuration?`: `number`; `maxEthGoal`: `number`; `minEthGoal`: `number`; `presaleDuration`: `number`; `presaleSupplyBps?`: `number`; `recipient`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | - |
| `deploymentConfig.presaleConfig.allowlist?` | `` `0x${string}` `` | Allowlist contract address (zero address for no allowlist) |
| `deploymentConfig.presaleConfig.allowlistInitializationData?` | `` `0x${string}` `` | Allowlist initialization data (0x for no allowlist) |
| `deploymentConfig.presaleConfig.lockupDuration?` | `number` | Lockup duration for tokens after presale ends (in seconds). Minimum 7 days (604800). |
| `deploymentConfig.presaleConfig.maxEthGoal` | `number` | Maximum ETH goal for the presale |
| `deploymentConfig.presaleConfig.minEthGoal` | `number` | Minimum ETH goal for the presale to be successful |
| `deploymentConfig.presaleConfig.presaleDuration` | `number` | Duration of the presale in seconds |
| `deploymentConfig.presaleConfig.presaleSupplyBps?` | `number` | Percentage of token supply allocated to presale (in basis points, 10000 = 100%). Defaults to 5000 (50%) |
| `deploymentConfig.presaleConfig.recipient` | `` `0x${string}` `` | Recipient of the ETH raised during presale |
| `deploymentConfig.presaleConfig.vestingDuration?` | `number` | Vesting duration for tokens after lockup ends (in seconds) |
| `deploymentConfig.tokenConfig` | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f5a0587f996f6c02255e424e06554895e48f63dbcee4f50620ac17c7813ef83f.txt) | - |
| `deploymentConfig.tokenConfig.airdrop?` | \{ `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | Token airdrop. Tokens are locked for some duration with possible vesting. |
| `deploymentConfig.tokenConfig.airdrop.admin?` | `` `0x${string}` `` | Admin for the airdrop. Defaults to TokenAdmin if not set. |
| `deploymentConfig.tokenConfig.airdrop.amount` | `number` | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply. |
| `deploymentConfig.tokenConfig.airdrop.lockupDuration` | `number` | How long to lock the tokens for. In seconds. Minimum 1 day. |
| `deploymentConfig.tokenConfig.airdrop.merkleRoot` | `` `0x${string}` `` | Root of the airdrop merkle tree. |
| `deploymentConfig.tokenConfig.airdrop.vestingDuration?` | `number` | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds. |
| `deploymentConfig.tokenConfig.chainId?` | `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56` | Id of the chain that the token will be deployed to. Defaults to base (8453). |
| `deploymentConfig.tokenConfig.context?` | \{ `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; } | Social provenance for the token. Interface defaults to "SDK" if not set. |
| `deploymentConfig.tokenConfig.context.id?` | `string` | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `deploymentConfig.tokenConfig.context.interface?` | `string` | System the token was deployed via. Defaults to "SDK". |
| `deploymentConfig.tokenConfig.context.messageId?` | `string` | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `deploymentConfig.tokenConfig.context.platform?` | `string` | Social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `deploymentConfig.tokenConfig.devBuy?` | \{ `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: \{ `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; } | Token dev buy. Tokens are bought in the token creation transaction. |
| `deploymentConfig.tokenConfig.devBuy.amountOutMin?` | `number` | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH. |
| `deploymentConfig.tokenConfig.devBuy.ethAmount` | `number` | How much of the token to buy (denoted in ETH). |
| `deploymentConfig.tokenConfig.devBuy.poolKey?` | \{ `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; } | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER. |
| `deploymentConfig.tokenConfig.devBuy.poolKey.currency0` | `` `0x${string}` `` | - |
| `deploymentConfig.tokenConfig.devBuy.poolKey.currency1` | `` `0x${string}` `` | - |
| `deploymentConfig.tokenConfig.devBuy.poolKey.fee` | `number` | - |
| `deploymentConfig.tokenConfig.devBuy.poolKey.hooks` | `` `0x${string}` `` | - |
| `deploymentConfig.tokenConfig.devBuy.poolKey.tickSpacing` | `number` | - |
| `deploymentConfig.tokenConfig.devBuy.recipient?` | `` `0x${string}` `` | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified. |
| `deploymentConfig.tokenConfig.fees?` | \| \{ `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| \{ `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; } | Fee structure for the token. |
| `deploymentConfig.tokenConfig.image?` | `string` | Image for the token. This should be a normal or ipfs url. |
| `deploymentConfig.tokenConfig.locker?` | \{ `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; } | Token locker |
| `deploymentConfig.tokenConfig.locker.locker` | `` `0x${string}` `` \| `"Locker"` | Locker extension address. |
| `deploymentConfig.tokenConfig.locker.lockerData?` | `` `0x${string}` `` | Locker extension specific data. Abi encoded hex of the parameters. |
| `deploymentConfig.tokenConfig.metadata?` | \{ `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: \{ `platform`: `string`; `url`: `string`; }\[]; } | Metadata for the token. |
| `deploymentConfig.tokenConfig.metadata.auditUrls?` | `string`\[] | Audits for other contracts or services offered by the project. |
| `deploymentConfig.tokenConfig.metadata.description?` | `string` | Description of the token or token project. |
| `deploymentConfig.tokenConfig.metadata.socialMediaUrls?` | \{ `platform`: `string`; `url`: `string`; }\[] | Socials for the token. These may be displayed on aggregators. |
| `deploymentConfig.tokenConfig.name` | `string` | Name of the token. Example: "My Token". |
| `deploymentConfig.tokenConfig.pool?` | \{ `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: \{ `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; } | Pool information |
| `deploymentConfig.tokenConfig.pool.pairedToken?` | `` `0x${string}` `` \| `"WETH"` | Token to pair the clanker with. |
| `deploymentConfig.tokenConfig.pool.positions` | \{ `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[] | Positions for initial pool liquidity. Bps must sum to 100%. |
| `deploymentConfig.tokenConfig.pool.tickIfToken0IsClanker?` | `number` | Starting tick of the pool. |
| `deploymentConfig.tokenConfig.pool.tickSpacing?` | `number` | Tick spacing. |
| `deploymentConfig.tokenConfig.poolExtension?` | \{ `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; } | \[v4.1+ only] Custom developer extension |
| `deploymentConfig.tokenConfig.poolExtension.address` | `` `0x${string}` `` | Address of the developer extension |
| `deploymentConfig.tokenConfig.poolExtension.initData` | `` `0x${string}` `` | Initialization data for the extension |
| `deploymentConfig.tokenConfig.presale?` | \{ `bps`: `number`; } | Presale configuration for the token. Must be deployed via the presale contract. |
| `deploymentConfig.tokenConfig.presale.bps` | `number` | Bps for allocation to presale |
| `deploymentConfig.tokenConfig.rewards?` | \{ `recipients`: \{ `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; } | Rewards & recipients for rewards generated by the token. |
| `deploymentConfig.tokenConfig.rewards.recipients` | \{ `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[] | Recipients of the token rewards. Must sum to 100%. |
| `deploymentConfig.tokenConfig.salt?` | `` `0x${string}` `` | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `deploymentConfig.tokenConfig.sniperFees?` | \{ `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; } | \[v4.1+ only] Sniper fees |
| `deploymentConfig.tokenConfig.sniperFees.endingFee` | `number` | Ending sniper fee (units: Unibps) |
| `deploymentConfig.tokenConfig.sniperFees.secondsToDecay` | `number` | Sniper fee duration |
| `deploymentConfig.tokenConfig.sniperFees.startingFee` | `number` | Starting sniper fee (units: Unibps) |
| `deploymentConfig.tokenConfig.symbol` | `string` | Symbol for the token. Example: "MTK". |
| `deploymentConfig.tokenConfig.tokenAdmin` | `` `0x${string}` `` | Admin for the token. They will be able to change fields like image, metadata, etc. |
| `deploymentConfig.tokenConfig.vanity?` | `boolean` | Whether or not to enable the "0xb07" address suffix. |
| `deploymentConfig.tokenConfig.vault?` | \{ `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | Token vault. Tokens are locked for some duration with possible vesting. |
| `deploymentConfig.tokenConfig.vault.lockupDuration` | `number` | How long to lock the tokens for. In seconds. Minimum 7 days. |
| `deploymentConfig.tokenConfig.vault.percentage` | `number` | Percent of total supply allocated to the vault. |
| `deploymentConfig.tokenConfig.vault.recipient?` | `` `0x${string}` `` | Recipient for the vault extension. Defaults to tokenAdmin if not set. |
| `deploymentConfig.tokenConfig.vault.vestingDuration?` | `number` | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds. |

#### 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)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/621c89fcf751ea8499b59d198503df162cb5e9dd12eefd800ff50a9cb382f51c.txt)

Defined in: [src/v4/extensions/presale.ts:520](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L520)

Get a transaction to withdraw from a presale

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `presaleId` | \{ `amount`: `bigint`; `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `presaleId`: `bigint`; `recipient`: `` `0x${string}` ``; } | The ID of the presale |
| `presaleId.amount` | `bigint` | - |
| `presaleId.chainId` | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532` | - |
| `presaleId.presaleId` | `bigint` | - |
| `presaleId.recipient` | `` `0x${string}` `` | - |

#### 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()

```ts theme={null}
function registerAirdrop(token, tree): Promise<boolean>;
```

Defined in: [src/v4/extensions/airdrop.ts:72](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/airdrop.ts#L72)

Register an airdrop merkle tree with the Clanker service.

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `token` | `` `0x${string}` `` | The token associated with the tree. |
| `tree` | `MerkleTree`\<`MerkleEntry`> | The tree to register. |

#### 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()

```ts theme={null}
function setAddressOverride(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale-allowlist-management.ts:146](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L146)

Set an address override for a presale allowlist

Only callable by the presale owner. Address overrides take precedence
over the merkle tree allowlist. This is useful for manually adding
addresses without regenerating the entire merkle tree.

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `allowedAmountEth`: `number`; `buyer`: `` `0x${string}` ``; `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `presaleId`: `bigint`; } |
| `data.allowedAmountEth` | `number` |
| `data.buyer` | `` `0x${string}` `` |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.presaleId` | `bigint` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

#### Example

```typescript theme={null}
// Allow a specific address to buy up to 2 ETH
await setAddressOverride({
  clanker,
  presaleId: 1n,
  buyer: '0x123...',
  allowedAmountEth: 2.0
});

// Remove the override (set to 0)
await setAddressOverride({
  clanker,
  presaleId: 1n,
  buyer: '0x123...',
  allowedAmountEth: 0
});
```

***

### setAllowlistEnabled()

```ts theme={null}
function setAllowlistEnabled(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale-allowlist-management.ts:221](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L221)

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

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `enabled`: `boolean`; `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.enabled` | `boolean` |
| `data.presaleId` | `bigint` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

#### Example

```typescript theme={null}
// Disable the allowlist to let anyone participate
await setAllowlistEnabled({ clanker, presaleId: 1n, enabled: false });

// Re-enable the allowlist
await setAllowlistEnabled({ clanker, presaleId: 1n, enabled: true });
```

***

### setMerkleRoot()

```ts theme={null}
function setMerkleRoot(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale-allowlist-management.ts:59](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale-allowlist-management.ts#L59)

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

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `merkleRoot`: `` `0x${string}` ``; `presaleId`: `bigint`; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.merkleRoot` | `` `0x${string}` `` |
| `data.presaleId` | `bigint` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction

***

### startPresale()

```ts theme={null}
function startPresale(data): Promise<
  | {
  txHash: `0x${string}`;
} & {
  error?: undefined;
}
  | UndefinedValues<{
  txHash: `0x${string}`;
}> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/extensions/presale.ts:104](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L104)

Start a presale

#### Parameters

| Parameter | Type | Description |
| - | - | - |
| `data` | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/9ccb600df322cbe6d56d7c49942b9f2f86dbef55c9fd6021a29e28361659a469.txt) | - |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) | - |
| `data.presaleConfig` | \{ `allowlist?`: `` `0x${string}` ``; `allowlistInitializationData?`: `` `0x${string}` ``; `lockupDuration?`: `number`; `maxEthGoal`: `number`; `minEthGoal`: `number`; `presaleDuration`: `number`; `presaleSupplyBps?`: `number`; `recipient`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | - |
| `data.presaleConfig.allowlist?` | `` `0x${string}` `` | Allowlist contract address (zero address for no allowlist) |
| `data.presaleConfig.allowlistInitializationData?` | `` `0x${string}` `` | Allowlist initialization data (0x for no allowlist) |
| `data.presaleConfig.lockupDuration?` | `number` | Lockup duration for tokens after presale ends (in seconds). Minimum 7 days (604800). |
| `data.presaleConfig.maxEthGoal` | `number` | Maximum ETH goal for the presale |
| `data.presaleConfig.minEthGoal` | `number` | Minimum ETH goal for the presale to be successful |
| `data.presaleConfig.presaleDuration` | `number` | Duration of the presale in seconds |
| `data.presaleConfig.presaleSupplyBps?` | `number` | Percentage of token supply allocated to presale (in basis points, 10000 = 100%). Defaults to 5000 (50%) |
| `data.presaleConfig.recipient` | `` `0x${string}` `` | Recipient of the ETH raised during presale |
| `data.presaleConfig.vestingDuration?` | `number` | Vesting duration for tokens after lockup ends (in seconds) |
| `data.tokenConfig` | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f5a0587f996f6c02255e424e06554895e48f63dbcee4f50620ac17c7813ef83f.txt) | - |
| `data.tokenConfig.airdrop?` | \{ `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | Token airdrop. Tokens are locked for some duration with possible vesting. |
| `data.tokenConfig.airdrop.admin?` | `` `0x${string}` `` | Admin for the airdrop. Defaults to TokenAdmin if not set. |
| `data.tokenConfig.airdrop.amount` | `number` | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply. |
| `data.tokenConfig.airdrop.lockupDuration` | `number` | How long to lock the tokens for. In seconds. Minimum 1 day. |
| `data.tokenConfig.airdrop.merkleRoot` | `` `0x${string}` `` | Root of the airdrop merkle tree. |
| `data.tokenConfig.airdrop.vestingDuration?` | `number` | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds. |
| `data.tokenConfig.chainId?` | `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56` | Id of the chain that the token will be deployed to. Defaults to base (8453). |
| `data.tokenConfig.context?` | \{ `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; } | Social provenance for the token. Interface defaults to "SDK" if not set. |
| `data.tokenConfig.context.id?` | `string` | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `data.tokenConfig.context.interface?` | `string` | System the token was deployed via. Defaults to "SDK". |
| `data.tokenConfig.context.messageId?` | `string` | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `data.tokenConfig.context.platform?` | `string` | Social platform the token was deployed from. Used for provenance and will be verified by aggregators. |
| `data.tokenConfig.devBuy?` | \{ `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: \{ `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; } | Token dev buy. Tokens are bought in the token creation transaction. |
| `data.tokenConfig.devBuy.amountOutMin?` | `number` | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH. |
| `data.tokenConfig.devBuy.ethAmount` | `number` | How much of the token to buy (denoted in ETH). |
| `data.tokenConfig.devBuy.poolKey?` | \{ `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; } | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER. |
| `data.tokenConfig.devBuy.poolKey.currency0` | `` `0x${string}` `` | - |
| `data.tokenConfig.devBuy.poolKey.currency1` | `` `0x${string}` `` | - |
| `data.tokenConfig.devBuy.poolKey.fee` | `number` | - |
| `data.tokenConfig.devBuy.poolKey.hooks` | `` `0x${string}` `` | - |
| `data.tokenConfig.devBuy.poolKey.tickSpacing` | `number` | - |
| `data.tokenConfig.devBuy.recipient?` | `` `0x${string}` `` | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified. |
| `data.tokenConfig.fees?` | \| \{ `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| \{ `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; } | Fee structure for the token. |
| `data.tokenConfig.image?` | `string` | Image for the token. This should be a normal or ipfs url. |
| `data.tokenConfig.locker?` | \{ `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; } | Token locker |
| `data.tokenConfig.locker.locker` | `` `0x${string}` `` \| `"Locker"` | Locker extension address. |
| `data.tokenConfig.locker.lockerData?` | `` `0x${string}` `` | Locker extension specific data. Abi encoded hex of the parameters. |
| `data.tokenConfig.metadata?` | \{ `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: \{ `platform`: `string`; `url`: `string`; }\[]; } | Metadata for the token. |
| `data.tokenConfig.metadata.auditUrls?` | `string`\[] | Audits for other contracts or services offered by the project. |
| `data.tokenConfig.metadata.description?` | `string` | Description of the token or token project. |
| `data.tokenConfig.metadata.socialMediaUrls?` | \{ `platform`: `string`; `url`: `string`; }\[] | Socials for the token. These may be displayed on aggregators. |
| `data.tokenConfig.name` | `string` | Name of the token. Example: "My Token". |
| `data.tokenConfig.pool?` | \{ `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: \{ `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; } | Pool information |
| `data.tokenConfig.pool.pairedToken?` | `` `0x${string}` `` \| `"WETH"` | Token to pair the clanker with. |
| `data.tokenConfig.pool.positions` | \{ `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[] | Positions for initial pool liquidity. Bps must sum to 100%. |
| `data.tokenConfig.pool.tickIfToken0IsClanker?` | `number` | Starting tick of the pool. |
| `data.tokenConfig.pool.tickSpacing?` | `number` | Tick spacing. |
| `data.tokenConfig.poolExtension?` | \{ `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; } | \[v4.1+ only] Custom developer extension |
| `data.tokenConfig.poolExtension.address` | `` `0x${string}` `` | Address of the developer extension |
| `data.tokenConfig.poolExtension.initData` | `` `0x${string}` `` | Initialization data for the extension |
| `data.tokenConfig.presale?` | \{ `bps`: `number`; } | Presale configuration for the token. Must be deployed via the presale contract. |
| `data.tokenConfig.presale.bps` | `number` | Bps for allocation to presale |
| `data.tokenConfig.rewards?` | \{ `recipients`: \{ `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; } | Rewards & recipients for rewards generated by the token. |
| `data.tokenConfig.rewards.recipients` | \{ `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[] | Recipients of the token rewards. Must sum to 100%. |
| `data.tokenConfig.salt?` | `` `0x${string}` `` | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `data.tokenConfig.sniperFees?` | \{ `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; } | \[v4.1+ only] Sniper fees |
| `data.tokenConfig.sniperFees.endingFee` | `number` | Ending sniper fee (units: Unibps) |
| `data.tokenConfig.sniperFees.secondsToDecay` | `number` | Sniper fee duration |
| `data.tokenConfig.sniperFees.startingFee` | `number` | Starting sniper fee (units: Unibps) |
| `data.tokenConfig.symbol` | `string` | Symbol for the token. Example: "MTK". |
| `data.tokenConfig.tokenAdmin` | `` `0x${string}` `` | Admin for the token. They will be able to change fields like image, metadata, etc. |
| `data.tokenConfig.vanity?` | `boolean` | Whether or not to enable the "0xb07" address suffix. |
| `data.tokenConfig.vault?` | \{ `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; } | Token vault. Tokens are locked for some duration with possible vesting. |
| `data.tokenConfig.vault.lockupDuration` | `number` | How long to lock the tokens for. In seconds. Minimum 7 days. |
| `data.tokenConfig.vault.percentage` | `number` | Percent of total supply allocated to the vault. |
| `data.tokenConfig.vault.recipient?` | `` `0x${string}` `` | Recipient for the vault extension. Defaults to tokenAdmin if not set. |
| `data.tokenConfig.vault.vestingDuration?` | `number` | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds. |

#### Returns

`Promise`\<
\| \{
`txHash`: `` `0x${string}` ``;
} & \{
`error?`: `undefined`;
}
\| `UndefinedValues`\<\{
`txHash`: `` `0x${string}` ``;
}> & \{
`error`: `ClankerError`;
}>

Outcome of the transaction

***

### withdrawFromPresale()

```ts theme={null}
function withdrawFromPresale(data): ClankerResult<{
  txHash: `0x${string}`;
}>;
```

Defined in: [src/v4/extensions/presale.ts:554](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/extensions/presale.ts#L554)

Withdraw ETH from an active presale

#### Parameters

| Parameter | Type |
| - | - |
| `data` | \{ `clanker`: [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker); `ethAmount`: `number`; `presaleId`: `bigint`; `recipient`: `` `0x${string}` ``; } |
| `data.clanker` | [`Clanker`](https://docs.clanker.world/sdk-reference/v4#clanker) |
| `data.ethAmount` | `number` |
| `data.presaleId` | `bigint` |
| `data.recipient` | `` `0x${string}` `` |

#### Returns

`ClankerResult`\<\{
`txHash`: `` `0x${string}` ``;
}>

Outcome of the transaction


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.