> For the complete documentation index, see [llms.txt](https://clanker.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://clanker.gitbook.io/documentation/sdk-reference/v4.md).

# V4 — Clanker Class

[**clanker-sdk**](/documentation/sdk-reference/sdk-reference.md)

***

[clanker-sdk](/documentation/sdk-reference/sdk-reference.md) / v4

## v4

### Classes

#### Clanker

Defined in: [src/v4/index.ts:30](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L30)

Clanker v4

**Constructors**

**Constructor**

```ts
new Clanker(config?): Clanker;
```

Defined in: [src/v4/index.ts:34](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L34)

**Parameters**

| Parameter | Type            |
| --------- | --------------- |
| `config?` | `ClankerConfig` |

**Returns**

[`Clanker`](#clanker)

**Properties**

| Property        | Modifier   | Type | Defined in                                                                                       |
| --------------- | ---------- | ---- | ------------------------------------------------------------------------------------------------ |
| `publicClient?` | `readonly` | { }  | [src/v4/index.ts:32](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L32) |
| `wallet?`       | `readonly` | { }  | [src/v4/index.ts:31](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L31) |

**Methods**

**availableRewards()**

```ts
availableRewards(token): Promise<bigint>;
```

Defined in: [src/v4/index.ts:151](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L151)

Check available rewards for a token and recipient.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to check rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token`           | `` `0x${string}` ``                                                       | -                          |

**Returns**

`Promise`<`bigint`>

Amount of rewards for the `token` and `rewardRecipient`

**claimRewards()**

```ts
claimRewards(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:97](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L97)

Claim rewards for a clanker token.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to claim rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token`           | `` `0x${string}` ``                                                       | -                          |

**Returns**

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

Transaction hash of the claim or error

**claimRewardsSimulate()**

```ts
claimRewardsSimulate(token, account?): Promise<
  | SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "ClaimAmountTooHigh";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRecipient";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoFeesToClaim";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TransferFailed";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "AddDepositor";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokens";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "recipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokensPermissioned";
  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: "address";
     name: "sender";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "StoreTokens";
  type: "event";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "addDepositor";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "allowedDepositors";
  outputs: readonly [{
     internalType: "bool";
     name: "isAllowed";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "availableFees";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "claim";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "feesToClaim";
  outputs: readonly [{
     internalType: "uint256";
     name: "balance";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "storeFees";
  outputs: readonly [];
  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";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "claim"
  | "addDepositor"
  | "storeFees"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "ClaimAmountTooHigh";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRecipient";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoFeesToClaim";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TransferFailed";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "AddDepositor";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokens";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "recipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokensPermissioned";
  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: "address";
     name: "sender";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "StoreTokens";
  type: "event";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "addDepositor";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "allowedDepositors";
  outputs: readonly [{
     internalType: "bool";
     name: "isAllowed";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "availableFees";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "claim";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "feesToClaim";
  outputs: readonly [{
     internalType: "uint256";
     name: "balance";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "storeFees";
  outputs: readonly [];
  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";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "claim"
  | "addDepositor"
  | "storeFees">> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:74](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L74)

Simulate claiming rewards. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter               | Type                                                                      | Description                                       |
| ----------------------- | ------------------------------------------------------------------------- | ------------------------------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | The token to simulate reward claiming for         |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                                                 |
| `token.token?`          | `` `0x${string}` ``                                                       | -                                                 |
| `account?`              | `Account`                                                                 | Optional account to simulate calling claiming for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `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`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `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"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"claim"` | `"addDepositor"` | `"storeFees"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `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`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `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"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"claim"` | `"addDepositor"` | `"storeFees"`>> & { `error`: `ClankerError`; }>

The simulated output

**claimVaultedTokens()**

```ts
claimVaultedTokens(token): Promise<
  | {
  txHash: `0x${string}`;
} & {
  error?: undefined;
}
  | UndefinedValues<{
  txHash: `0x${string}`;
}> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:481](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L481)

Claim vaulted tokens for a clanker token.

**Parameters**

| Parameter     | Type                              | Description                       |
| ------------- | --------------------------------- | --------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | Token to claim vaulted tokens for |
| `token.token` | `` `0x${string}` ``               | -                                 |

**Returns**

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

Transaction hash of the claim or error

**deploy()**

```ts
deploy(token, options?): Promise<
  | {
  txHash: `0x${string}`;
  waitForTransaction: () => ClankerResult<{
     address: `0x${string}`;
  }>;
} & {
  error?: undefined;
}
  | UndefinedValues<{
  txHash: `0x${string}`;
  waitForTransaction: () => ClankerResult<{
     address: `0x${string}`;
  }>;
}> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:204](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L204)

Deploy a token

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Description                                                                                                                            |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | { `airdrop?`: { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; `chainId?`: `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`; `context?`: { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }; `devBuy?`: { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }; `fees?`: \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; }; `image?`: `string`; `locker?`: { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }; `metadata?`: { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }; `name`: `string`; `pool?`: { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }; `poolExtension?`: { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }; `presale?`: { `bps`: `number`; }; `rewards?`: { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }; `salt?`: `` `0x${string}` ``; `sniperFees?`: { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }; `symbol`: `string`; `tokenAdmin`: `` `0x${string}` ``; `vanity?`: `boolean`; `vault?`: { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; } | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount?`             | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration?`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot?`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.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).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.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.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.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.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.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.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.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.                          |
| `token.devBuy.poolKey.currency0?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.fee?`         | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks?`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing?` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.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.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Token locker                                                                                                                           |
| `token.locker.locker?`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name?`                       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions?`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address?`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData?`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps?`                | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients?`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee?`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay?`  | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee?`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol?`                     | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin?`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration?`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.vault.vestingDuration?`      | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `options?`                          | [`DeployTokenOptions`](/documentation/sdk-reference/index.md#deploytokenoptions)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Optional deployment options                                                                                                            |

**Returns**

`Promise`< | { `txHash`: `` `0x${string}` ``; `waitForTransaction`: () => `ClankerResult`<{ `address`: `` `0x${string}` ``; }>; } & { `error?`: `undefined`; } | `UndefinedValues`<{ `txHash`: `` `0x${string}` ``; `waitForTransaction`: () => `ClankerResult`<{ `address`: `` `0x${string}` ``; }>; }> & { `error`: `ClankerError`; }>

Transaction hash and awaitable function for full deployment

**deploySimulate()**

```ts
deploySimulate(token, account?): Promise<
  | SimulateContractReturnType<ClankerFactory, 
  | "claimTeamFees"
  | "deployToken"
  | "deployTokenZeroSupply"
  | "initialize"
  | "renounceOwnership"
  | "setAdmin"
  | "setDeprecated"
  | "setExtension"
  | "setHook"
  | "setLocker"
  | "setMevModule"
  | "setTeamFeeRecipient"
  | "transferOwnership"
  | "updateLiquidityLocker"
  | "claimRewards"
  | "deployTokenWithCustomTeamRewardRecipient"
  | "updateVault"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<ClankerFactory, 
  | "claimTeamFees"
  | "deployToken"
  | "deployTokenZeroSupply"
  | "initialize"
  | "renounceOwnership"
  | "setAdmin"
  | "setDeprecated"
  | "setExtension"
  | "setHook"
  | "setLocker"
  | "setMevModule"
  | "setTeamFeeRecipient"
  | "transferOwnership"
  | "updateLiquidityLocker"
  | "claimRewards"
  | "deployTokenWithCustomTeamRewardRecipient"
  | "updateVault">> & {
  error: ClankerError;
}>;
```

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

Simulate a token deployment

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Description                                                                                                                            |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | { `airdrop?`: { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; `chainId?`: `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`; `context?`: { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }; `devBuy?`: { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }; `fees?`: \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; }; `image?`: `string`; `locker?`: { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }; `metadata?`: { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }; `name`: `string`; `pool?`: { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }; `poolExtension?`: { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }; `presale?`: { `bps`: `number`; }; `rewards?`: { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }; `salt?`: `` `0x${string}` ``; `sniperFees?`: { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }; `symbol`: `string`; `tokenAdmin`: `` `0x${string}` ``; `vanity?`: `boolean`; `vault?`: { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; } | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount?`             | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration?`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot?`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.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).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.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.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.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.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.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.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.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.                          |
| `token.devBuy.poolKey.currency0?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.fee?`         | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks?`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing?` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.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.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Token locker                                                                                                                           |
| `token.locker.locker?`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name?`                       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions?`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address?`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData?`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps?`                | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients?`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee?`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay?`  | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee?`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol?`                     | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin?`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration?`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.vault.vestingDuration?`      | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `account?`                          | `Account`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Optional account for the deployer                                                                                                      |

**Returns**

`Promise`< | `SimulateContractReturnType`<`ClankerFactory`, | `"claimTeamFees"` | `"deployToken"` | `"deployTokenZeroSupply"` | `"initialize"` | `"renounceOwnership"` | `"setAdmin"` | `"setDeprecated"` | `"setExtension"` | `"setHook"` | `"setLocker"` | `"setMevModule"` | `"setTeamFeeRecipient"` | `"transferOwnership"` | `"updateLiquidityLocker"` | `"claimRewards"` | `"deployTokenWithCustomTeamRewardRecipient"` | `"updateVault"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`<`ClankerFactory`, | `"claimTeamFees"` | `"deployToken"` | `"deployTokenZeroSupply"` | `"initialize"` | `"renounceOwnership"` | `"setAdmin"` | `"setDeprecated"` | `"setExtension"` | `"setHook"` | `"setLocker"` | `"setMevModule"` | `"setTeamFeeRecipient"` | `"transferOwnership"` | `"updateLiquidityLocker"` | `"claimRewards"` | `"deployTokenWithCustomTeamRewardRecipient"` | `"updateVault"`>> & { `error`: `ClankerError`; }>

Abi transaction

**getAvailableRewardsTransaction()**

```ts
getAvailableRewardsTransaction(token, options?): Promise<{
  abi: readonly [{
     inputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
     }];
     stateMutability: "nonpayable";
     type: "constructor";
   }, {
     inputs: readonly [];
     name: "ClaimAmountTooHigh";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidRecipient";
     type: "error";
   }, {
     inputs: readonly [];
     name: "NoFeesToClaim";
     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: "ReentrancyGuardReentrantCall";
     type: "error";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "SafeERC20FailedOperation";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TransferFailed";
     type: "error";
   }, {
     inputs: readonly [];
     name: "Unauthorized";
     type: "error";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "depositor";
        type: "address";
     }];
     name: "AddDepositor";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amountClaimed";
        type: "uint256";
     }];
     name: "ClaimTokens";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "address";
        name: "recipient";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amountClaimed";
        type: "uint256";
     }];
     name: "ClaimTokensPermissioned";
     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: "address";
        name: "sender";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "balance";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
     }];
     name: "StoreTokens";
     type: "event";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "depositor";
        type: "address";
     }];
     name: "addDepositor";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "depositor";
        type: "address";
     }];
     name: "allowedDepositors";
     outputs: readonly [{
        internalType: "bool";
        name: "isAllowed";
        type: "bool";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "availableFees";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "claim";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "feesToClaim";
     outputs: readonly [{
        internalType: "uint256";
        name: "balance";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "owner";
     outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "renounceOwnership";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "feeOwner";
        type: "address";
      }, {
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
     }];
     name: "storeFees";
     outputs: readonly [];
     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";
  }];
  address: `0x${string}`;
  args: readonly [`0x${string}`, `0x${string}`];
  functionName: "availableFees";
}>;
```

Defined in: [src/v4/index.ts:124](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L124)

Get an abi-typed transaction for checking rewards on a token.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to check rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token?`          | `` `0x${string}` ``                                                       | -                          |
| `options?`              | { `chain?`: `Chain`; }                                                    | -                          |
| `options.chain?`        | `Chain`                                                                   | -                          |

**Returns**

`Promise`<{ `abi`: readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `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`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `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"`; }]; `address`: `` `0x${string}` ``; `args`: readonly \[`` `0x${string}` ``, `` `0x${string}` ``]; `functionName`: `"availableFees"`; }>

Abi transaction

**getClaimRewardsTransaction()**

```ts
getClaimRewardsTransaction(token, options?): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "ClaimAmountTooHigh";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRecipient";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoFeesToClaim";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TransferFailed";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "AddDepositor";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokens";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "recipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountClaimed";
     type: "uint256";
  }];
  name: "ClaimTokensPermissioned";
  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: "address";
     name: "sender";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "StoreTokens";
  type: "event";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "addDepositor";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "depositor";
     type: "address";
  }];
  name: "allowedDepositors";
  outputs: readonly [{
     internalType: "bool";
     name: "isAllowed";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "availableFees";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "claim";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "feesToClaim";
  outputs: readonly [{
     internalType: "uint256";
     name: "balance";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "feeOwner";
     type: "address";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "storeFees";
  outputs: readonly [];
  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";
}]>>;
```

Defined in: [src/v4/index.ts:46](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L46)

Get an abi-typed transaction for claiming rewards on a token.

**Parameters**

| Parameter               | Type                                                                      | Description            |
| ----------------------- | ------------------------------------------------------------------------- | ---------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | The token to claim for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                      |
| `token.token?`          | `` `0x${string}` ``                                                       | -                      |
| `options?`              | { `chain?`: `Chain`; }                                                    | -                      |
| `options.chain?`        | `Chain`                                                                   | -                      |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `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`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `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"`; }]>>

Abi transaction

**getDeployTransaction()**

```ts
getDeployTransaction(token): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "Deprecated";
  type: "error";
}, {
  inputs: readonly [];
  name: "ExtensionMsgValueMismatch";
  type: "error";
}, {
  inputs: readonly [];
  name: "ExtensionNotEnabled";
  type: "error";
}, {
  inputs: readonly [];
  name: "HookNotEnabled";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidExtension";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidHook";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidLocker";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidMevModule";
  type: "error";
}, {
  inputs: readonly [];
  name: "LockerNotEnabled";
  type: "error";
}, {
  inputs: readonly [];
  name: "MaxExtensionBpsExceeded";
  type: "error";
}, {
  inputs: readonly [];
  name: "MaxExtensionsExceeded";
  type: "error";
}, {
  inputs: readonly [];
  name: "MevModuleNotEnabled";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotFound";
  type: "error";
}, {
  inputs: readonly [];
  name: "OnlyNonOriginatingChains";
  type: "error";
}, {
  inputs: readonly [];
  name: "OnlyOriginatingChain";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "recipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
  }];
  name: "ClaimTeamFees";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "extension";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "extensionSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "msgValue";
     type: "uint256";
  }];
  name: "ExtensionTriggered";
  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: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: false;
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "SetAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "bool";
     name: "deprecated";
     type: "bool";
  }];
  name: "SetDeprecated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "extension";
     type: "address";
   }, {
     indexed: false;
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "SetExtension";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "hook";
     type: "address";
   }, {
     indexed: false;
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "SetHook";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "locker";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "pool";
     type: "address";
   }, {
     indexed: false;
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "SetLocker";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "mevModule";
     type: "address";
   }, {
     indexed: false;
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "SetMevModule";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "oldTeamFeeRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newTeamFeeRecipient";
     type: "address";
  }];
  name: "SetTeamFeeRecipient";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "msgSender";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "tokenAddress";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "tokenAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "string";
     name: "tokenImage";
     type: "string";
   }, {
     indexed: false;
     internalType: "string";
     name: "tokenName";
     type: "string";
   }, {
     indexed: false;
     internalType: "string";
     name: "tokenSymbol";
     type: "string";
   }, {
     indexed: false;
     internalType: "string";
     name: "tokenMetadata";
     type: "string";
   }, {
     indexed: false;
     internalType: "string";
     name: "tokenContext";
     type: "string";
   }, {
     indexed: false;
     internalType: "int24";
     name: "startingTick";
     type: "int24";
   }, {
     indexed: false;
     internalType: "address";
     name: "poolHook";
     type: "address";
   }, {
     indexed: false;
     internalType: "PoolId";
     name: "poolId";
     type: "bytes32";
   }, {
     indexed: false;
     internalType: "address";
     name: "pairedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "locker";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "mevModule";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "extensionsSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "extensions";
     type: "address[]";
  }];
  name: "TokenCreated";
  type: "event";
}, {
  inputs: readonly [];
  name: "BPS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_EXTENSIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_EXTENSION_BPS";
  outputs: readonly [{
     internalType: "uint16";
     name: "";
     type: "uint16";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "TOKEN_SUPPLY";
  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: "address";
     name: "token";
     type: "address";
  }];
  name: "claimTeamFees";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     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";
  }];
  name: "deployToken";
  outputs: readonly [{
     internalType: "address";
     name: "tokenAddress";
     type: "address";
  }];
  stateMutability: "payable";
  type: "function";
}, {
  inputs: 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";
  }];
  name: "deployTokenZeroSupply";
  outputs: readonly [{
     internalType: "address";
     name: "tokenAddress";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "deploymentInfoForToken";
  outputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "hook";
     type: "address";
   }, {
     internalType: "address";
     name: "locker";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "deprecated";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "locker";
     type: "address";
   }, {
     internalType: "address";
     name: "pool";
     type: "address";
  }];
  name: "enabledLockers";
  outputs: readonly [{
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "teamFeeRecipient_";
     type: "address";
  }];
  name: "initialize";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  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: "bool";
     name: "deprecated_";
     type: "bool";
  }];
  name: "setDeprecated";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "extension";
     type: "address";
   }, {
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "setExtension";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "hook";
     type: "address";
   }, {
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "setHook";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "locker";
     type: "address";
   }, {
     internalType: "address";
     name: "pool";
     type: "address";
   }, {
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "setLocker";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "mevModule";
     type: "address";
   }, {
     internalType: "bool";
     name: "enabled";
     type: "bool";
  }];
  name: "setMevModule";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "teamFeeRecipient_";
     type: "address";
  }];
  name: "setTeamFeeRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "teamFeeRecipient";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "tokenDeploymentInfo";
  outputs: readonly [{
     components: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "address";
        name: "hook";
        type: "address";
      }, {
        internalType: "address";
        name: "locker";
        type: "address";
      }, {
        internalType: "address[]";
        name: "extensions";
        type: "address[]";
     }];
     internalType: "struct IClanker.DeploymentInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}], "deployToken"> & {
  expectedAddress?: `0x${string}`;
}>;
```

Defined in: [src/v4/index.ts:175](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L175)

Get an abi-typed transaction for deploying a clanker.

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Description                                                                                                                            |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | { `airdrop?`: { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; `chainId?`: `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`; `context?`: { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }; `devBuy?`: { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }; `fees?`: \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; }; `image?`: `string`; `locker?`: { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }; `metadata?`: { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }; `name`: `string`; `pool?`: { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }; `poolExtension?`: { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }; `presale?`: { `bps`: `number`; }; `rewards?`: { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }; `salt?`: `` `0x${string}` ``; `sniperFees?`: { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }; `symbol`: `string`; `tokenAdmin`: `` `0x${string}` ``; `vanity?`: `boolean`; `vault?`: { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }; } | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount`              | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration`      | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.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).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.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.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.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.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.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.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount`            | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.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.                          |
| `token.devBuy.poolKey.currency0`    | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1`    | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.fee`          | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks`        | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing`  | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.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.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Token locker                                                                                                                           |
| `token.locker.locker`               | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name`                        | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions`              | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps`                 | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients`          | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay`   | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee`      | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol`                      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin`                  | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage`            | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.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"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"Deprecated"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ExtensionMsgValueMismatch"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ExtensionNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"HookNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidExtension"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidHook"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidLocker"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidMevModule"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"LockerNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MaxExtensionBpsExceeded"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MaxExtensionsExceeded"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MevModuleNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotFound"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"OnlyNonOriginatingChains"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"OnlyOriginatingChain"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"ClaimTeamFees"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"extensionSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"msgValue"`; `type`: `"uint256"`; }]; `name`: `"ExtensionTriggered"`; `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`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"bool"`; `name`: `"deprecated"`; `type`: `"bool"`; }]; `name`: `"SetDeprecated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetExtension"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetHook"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetLocker"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetMevModule"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldTeamFeeRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newTeamFeeRecipient"`; `type`: `"address"`; }]; `name`: `"SetTeamFeeRecipient"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"msgSender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"tokenAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenImage"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenName"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenSymbol"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenMetadata"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenContext"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"int24"`; `name`: `"startingTick"`; `type`: `"int24"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"poolHook"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"PoolId"`; `name`: `"poolId"`; `type`: `"bytes32"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"extensionsSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"extensions"`; `type`: `"address[]"`; }]; `name`: `"TokenCreated"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"BPS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_EXTENSIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_EXTENSION_BPS"`; `outputs`: readonly \[{ `internalType`: `"uint16"`; `name`: `""`; `type`: `"uint16"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"TOKEN_SUPPLY"`; `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`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claimTeamFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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"`; }]; `name`: `"deployToken"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }]; `stateMutability`: `"payable"`; `type`: `"function"`; }, { `inputs`: 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"`; }]; `name`: `"deployTokenZeroSupply"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"deploymentInfoForToken"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"deprecated"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }]; `name`: `"enabledLockers"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"teamFeeRecipient_"`; `type`: `"address"`; }]; `name`: `"initialize"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `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`: `"bool"`; `name`: `"deprecated_"`; `type`: `"bool"`; }]; `name`: `"setDeprecated"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setExtension"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setHook"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setLocker"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setMevModule"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"teamFeeRecipient_"`; `type`: `"address"`; }]; `name`: `"setTeamFeeRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"teamFeeRecipient"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenDeploymentInfo"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"extensions"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClanker.DeploymentInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }], `"deployToken"`> & { `expectedAddress?`: `` `0x${string}` ``; }>

Abi transaction

**getTokenRewards()**

```ts
getTokenRewards(token): Promise<{
  numPositions: bigint;
  poolKey: {
     currency0: `0x${string}`;
     currency1: `0x${string}`;
     fee: number;
     hooks: `0x${string}`;
     tickSpacing: number;
  };
  positionId: bigint;
  rewardAdmins: readonly `0x${string}`[];
  rewardBps: readonly number[];
  rewardRecipients: readonly `0x${string}`[];
  token: `0x${string}`;
}>;
```

Defined in: [src/v4/index.ts:743](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L743)

Get the token rewards information from the locker contract. This is useful for obtaining the rewardIndex needed for updateRewardRecipient and updateRewardAdmin.

The returned object contains:

* token: The token address
* poolKey: The Uniswap V4 pool key
* positionId: The LP position ID
* numPositions: Number of LP positions
* rewardBps: Array of reward basis points for each recipient
* rewardAdmins: Array of admin addresses (index = rewardIndex)
* rewardRecipients: Array of recipient addresses (index = rewardIndex)

**Parameters**

| Parameter     | Type                              | Description                               |
| ------------- | --------------------------------- | ----------------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | The token address to get rewards info for |
| `token.token` | `` `0x${string}` ``               | -                                         |

**Returns**

`Promise`<{ `numPositions`: `bigint`; `poolKey`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `positionId`: `bigint`; `rewardAdmins`: readonly `` `0x${string}` ``\[]; `rewardBps`: readonly `number`\[]; `rewardRecipients`: readonly `` `0x${string}` ``\[]; `token`: `` `0x${string}` ``; }>

Token rewards information including rewardAdmins and rewardRecipients arrays

**getTokenRewardsTransaction()**

```ts
getTokenRewardsTransaction(token, options?): Promise<{
  abi: readonly [{
     inputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
      }, {
        internalType: "address";
        name: "factory_";
        type: "address";
      }, {
        internalType: "address";
        name: "feeLocker_";
        type: "address";
      }, {
        internalType: "address";
        name: "positionManager_";
        type: "address";
      }, {
        internalType: "address";
        name: "permit2_";
        type: "address";
      }, {
        internalType: "address";
        name: "universalRouter_";
        type: "address";
      }, {
        internalType: "address";
        name: "poolManager_";
        type: "address";
     }];
     stateMutability: "nonpayable";
     type: "constructor";
   }, {
     inputs: readonly [];
     name: "BASIS_POINTS";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "MAX_LP_POSITIONS";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "MAX_REWARD_PARTICIPANTS";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "collectRewards";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "collectRewardsWithoutUnlock";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [];
     name: "factory";
     outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "feeLocker";
     outputs: readonly [{
        internalType: "contract IClankerFeeLocker";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     name: "feePreferences";
     outputs: readonly [{
        internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        name: "feePreference";
        type: "uint8";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
      }, {
        internalType: "address";
        name: "from";
        type: "address";
      }, {
        internalType: "uint256";
        name: "id";
        type: "uint256";
      }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
     }];
     name: "onERC721Received";
     outputs: readonly [{
        internalType: "bytes4";
        name: "";
        type: "bytes4";
     }];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [];
     name: "owner";
     outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "permit2";
     outputs: readonly [{
        internalType: "contract IPermit2";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        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: "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: "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: "poolKey";
        type: "tuple";
      }, {
        internalType: "uint256";
        name: "poolSupply";
        type: "uint256";
      }, {
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "placeLiquidity";
     outputs: readonly [{
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
     }];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [];
     name: "poolManager";
     outputs: readonly [{
        internalType: "contract IPoolManager";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "positionManager";
     outputs: readonly [{
        internalType: "contract IPositionManager";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [];
     name: "renounceOwnership";
     outputs: readonly [];
     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: "token";
        type: "address";
     }];
     name: "tokenRewards";
     outputs: readonly [{
        components: readonly [{
           internalType: "address";
           name: "token";
           type: "address";
         }, {
           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: "poolKey";
           type: "tuple";
         }, {
           internalType: "uint256";
           name: "positionId";
           type: "uint256";
         }, {
           internalType: "uint256";
           name: "numPositions";
           type: "uint256";
         }, {
           internalType: "uint16[]";
           name: "rewardBps";
           type: "uint16[]";
         }, {
           internalType: "address[]";
           name: "rewardAdmins";
           type: "address[]";
         }, {
           internalType: "address[]";
           name: "rewardRecipients";
           type: "address[]";
        }];
        internalType: "struct IClankerLpLocker.TokenRewardInfo";
        name: "";
        type: "tuple";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
     }];
     name: "transferOwnership";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [];
     name: "universalRouter";
     outputs: readonly [{
        internalType: "contract IUniversalRouter";
        name: "";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        name: "newFeePreference";
        type: "uint8";
     }];
     name: "updateFeePreference";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "updateRewardAdmin";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        internalType: "address";
        name: "newRecipient";
        type: "address";
     }];
     name: "updateRewardRecipient";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [];
     name: "version";
     outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "address";
        name: "recipient";
        type: "address";
     }];
     name: "withdrawERC20";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "recipient";
        type: "address";
     }];
     name: "withdrawETH";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amount0";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amount1";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256[]";
        name: "rewards0";
        type: "uint256[]";
      }, {
        indexed: false;
        internalType: "uint256[]";
        name: "rewards1";
        type: "uint256[]";
     }];
     name: "ClaimedRewards";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        name: "oldFeePreference";
        type: "uint8";
      }, {
        indexed: true;
        internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        name: "newFeePreference";
        type: "uint8";
     }];
     name: "FeePreferenceUpdated";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "rewardToken";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amountSwapped";
        type: "uint256";
      }, {
        indexed: true;
        internalType: "address";
        name: "swappedToken";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amountOut";
        type: "uint256";
     }];
     name: "FeesSwapped";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
        name: "feePreference";
        type: "uint8[]";
     }];
     name: "InitialFeePreferences";
     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: "address";
        name: "from";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
     }];
     name: "Received";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "address";
        name: "oldAdmin";
        type: "address";
      }, {
        indexed: false;
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "RewardAdminUpdated";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "uint256";
        name: "rewardIndex";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "address";
        name: "oldRecipient";
        type: "address";
      }, {
        indexed: false;
        internalType: "address";
        name: "newRecipient";
        type: "address";
     }];
     name: "RewardRecipientUpdated";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: false;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        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";
        }];
        indexed: false;
        internalType: "struct PoolKey";
        name: "poolKey";
        type: "tuple";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "poolSupply";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "numPositions";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint16[]";
        name: "rewardBps";
        type: "uint16[]";
      }, {
        indexed: false;
        internalType: "address[]";
        name: "rewardAdmins";
        type: "address[]";
      }, {
        indexed: false;
        internalType: "address[]";
        name: "rewardRecipients";
        type: "address[]";
      }, {
        indexed: false;
        internalType: "int24[]";
        name: "tickLower";
        type: "int24[]";
      }, {
        indexed: false;
        internalType: "int24[]";
        name: "tickUpper";
        type: "int24[]";
      }, {
        indexed: false;
        internalType: "uint16[]";
        name: "positionBps";
        type: "uint16[]";
     }];
     name: "TokenRewardAdded";
     type: "event";
   }, {
     inputs: readonly [];
     name: "InvalidPositionBps";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidRewardBps";
     type: "error";
   }, {
     inputs: readonly [];
     name: "MismatchedPositionInfos";
     type: "error";
   }, {
     inputs: readonly [];
     name: "MismatchedRewardArrays";
     type: "error";
   }, {
     inputs: readonly [];
     name: "NoPositions";
     type: "error";
   }, {
     inputs: readonly [];
     name: "NoRewardRecipients";
     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: "ReentrancyGuardReentrantCall";
     type: "error";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "SafeERC20FailedOperation";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TickRangeLowerThanStartingTick";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TicksBackwards";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TicksNotMultipleOfTickSpacing";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TicksOutOfTickBounds";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TokenAlreadyHasRewards";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TooManyPositions";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TooManyRewardParticipants";
     type: "error";
   }, {
     inputs: readonly [];
     name: "Unauthorized";
     type: "error";
   }, {
     inputs: readonly [];
     name: "ZeroRewardAddress";
     type: "error";
   }, {
     inputs: readonly [];
     name: "ZeroRewardAmount";
     type: "error";
  }];
  address: `0x${string}`;
  args: readonly [`0x${string}`];
  functionName: "tokenRewards";
}>;
```

Defined in: [src/v4/index.ts:708](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L708)

Get the transaction config for reading token rewards information from the locker contract.

**Parameters**

| Parameter        | Type                              | Description                               |
| ---------------- | --------------------------------- | ----------------------------------------- |
| `token`          | { `token`: `` `0x${string}` ``; } | The token address to get rewards info for |
| `token.token`    | `` `0x${string}` ``               | -                                         |
| `options?`       | { `chain?`: `Chain`; }            | Optional chain configuration              |
| `options.chain?` | `Chain`                           | -                                         |

**Returns**

`Promise`<{ `abi`: readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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`: `"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`: `"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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]; `address`: `` `0x${string}` ``; `args`: readonly \[`` `0x${string}` ``]; `functionName`: `"tokenRewards"`; }>

Abi transaction config for reading token rewards

**getUpdateImageTransaction()**

```ts
getUpdateImageTransaction(token, options?): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: "uint48";
        name: "_key";
        type: "uint48";
      }, {
        internalType: "uint208";
        name: "_value";
        type: "uint208";
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}]>>;
```

Defined in: [src/v4/index.ts:563](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L563)

Get an abi-typed transaction for updating the token image.

**Parameters**

| Parameter        | Type                                                    | Description                       |
| ---------------- | ------------------------------------------------------- | --------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for |
| `token.newImage` | `string`                                                | -                                 |
| `token.token?`   | `` `0x${string}` ``                                     | -                                 |
| `options?`       | { `chain?`: `Chain`; }                                  | Optional chain configuration      |
| `options.chain?` | `Chain`                                                 | -                                 |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateMetadataTransaction()**

```ts
getUpdateMetadataTransaction(token, options?): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: "uint48";
        name: "_key";
        type: "uint48";
      }, {
        internalType: "uint208";
        name: "_value";
        type: "uint208";
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}]>>;
```

Defined in: [src/v4/index.ts:590](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L590)

Get an abi-typed transaction for updating the token metadata.

**Parameters**

| Parameter        | Type                                                    | Description                          |
| ---------------- | ------------------------------------------------------- | ------------------------------------ |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for |
| `token.metadata` | `string`                                                | -                                    |
| `token.token?`   | `` `0x${string}` ``                                     | -                                    |
| `options?`       | { `chain?`: `Chain`; }                                  | Optional chain configuration         |
| `options.chain?` | `Chain`                                                 | -                                    |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateRewardAdminTransaction()**

```ts
getUpdateRewardAdminTransaction(token, options?): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     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: "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: "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: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        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: "poolKey";
        type: "tuple";
      }, {
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "numPositions";
        type: "uint256";
      }, {
        internalType: "uint16[]";
        name: "rewardBps";
        type: "uint16[]";
      }, {
        internalType: "address[]";
        name: "rewardAdmins";
        type: "address[]";
      }, {
        internalType: "address[]";
        name: "rewardRecipients";
        type: "address[]";
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     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";
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}]>>;
```

Defined in: [src/v4/index.ts:258](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L258)

Get an abi-typed transaction for updating the reward admin.

**Parameters**

| Parameter            | Type                                                                                        | Description                              |
| -------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`              | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`     | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex?` | `bigint`                                                                                    | -                                        |
| `token.token?`       | `` `0x${string}` ``                                                                         | -                                        |
| `options?`           | { `chain?`: `Chain`; }                                                                      | Optional chain configuration             |
| `options.chain?`     | `Chain`                                                                                     | -                                        |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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`: `"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`: `"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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateRewardRecipientTransaction()**

```ts
getUpdateRewardRecipientTransaction(token, options?): Promise<ClankerTransactionConfig<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     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: "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: "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: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        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: "poolKey";
        type: "tuple";
      }, {
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "numPositions";
        type: "uint256";
      }, {
        internalType: "uint16[]";
        name: "rewardBps";
        type: "uint16[]";
      }, {
        internalType: "address[]";
        name: "rewardAdmins";
        type: "address[]";
      }, {
        internalType: "address[]";
        name: "rewardRecipients";
        type: "address[]";
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     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";
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}]>>;
```

Defined in: [src/v4/index.ts:222](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L222)

Get an abi-typed transaction for updating the reward recipient.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex?` | `bigint`                                                                                        | -                                            |
| `token.token?`       | `` `0x${string}` ``                                                                             | -                                            |
| `options?`           | { `chain?`: `Chain`; }                                                                          | Optional chain configuration                 |
| `options.chain?`     | `Chain`                                                                                         | -                                            |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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`: `"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`: `"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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]>>

Abi transaction

**getVaultClaimableAmount()**

```ts
getVaultClaimableAmount(token): Promise<bigint>;
```

Defined in: [src/v4/index.ts:494](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L494)

Get the amount of vaulted tokens available to claim.

**Parameters**

| Parameter     | Type                              | Description                               |
| ------------- | --------------------------------- | ----------------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | Token to check claimable vault amount for |
| `token.token` | `` `0x${string}` ``               | -                                         |

**Returns**

`Promise`<`bigint`>

Amount of tokens available to claim

**getVaultClaimTransaction()**

```ts
getVaultClaimTransaction(token, options?): Promise<any>;
```

Defined in: [src/v4/index.ts:456](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L456)

Get an abi-typed transaction for claiming vaulted tokens.

**Parameters**

| Parameter        | Type                              | Description            |
| ---------------- | --------------------------------- | ---------------------- |
| `token`          | { `token`: `` `0x${string}` ``; } | The token to claim for |
| `token.token`    | `` `0x${string}` ``               | -                      |
| `options?`       | { `chain?`: `Chain`; }            | -                      |
| `options.chain?` | `Chain`                           | -                      |

**Returns**

`Promise`<`any`>

Abi transaction

**updateImage()**

```ts
updateImage(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:660](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L660)

Update the token image.

**Parameters**

| Parameter        | Type                                                    | Description                       |
| ---------------- | ------------------------------------------------------- | --------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for |
| `token.newImage` | `string`                                                | -                                 |
| `token.token`    | `` `0x${string}` ``                                     | -                                 |

**Returns**

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

Transaction hash of the update or error

**updateImageSimulate()**

```ts
updateImageSimulate(token, account?): Promise<
  | SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: "uint48";
        name: "_key";
        type: "uint48";
      }, {
        internalType: "uint208";
        name: "_value";
        type: "uint208";
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}], 
  | "updateAdmin"
  | "approve"
  | "burn"
  | "burnFrom"
  | "crosschainBurn"
  | "crosschainMint"
  | "delegate"
  | "delegateBySig"
  | "permit"
  | "transfer"
  | "transferFrom"
  | "updateImage"
  | "updateMetadata"
  | "verify"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}], 
  | "updateAdmin"
  | "approve"
  | "burn"
  | "burnFrom"
  | "crosschainBurn"
  | "crosschainMint"
  | "delegate"
  | "delegateBySig"
  | "permit"
  | "transfer"
  | "transferFrom"
  | "updateImage"
  | "updateMetadata"
  | "verify">> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:618](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L618)

Simulate updating the token image. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter        | Type                                                    | Description                              |
| ---------------- | ------------------------------------------------------- | ---------------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for        |
| `token.newImage` | `string`                                                | -                                        |
| `token.token?`   | `` `0x${string}` ``                                     | -                                        |
| `account?`       | `Account`                                               | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateMetadata()**

```ts
updateMetadata(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:684](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L684)

Update the token metadata.

**Parameters**

| Parameter        | Type                                                    | Description                          |
| ---------------- | ------------------------------------------------------- | ------------------------------------ |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for |
| `token.metadata` | `string`                                                | -                                    |
| `token.token`    | `` `0x${string}` ``                                     | -                                    |

**Returns**

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

Transaction hash of the update or error

**updateMetadataSimulate()**

```ts
updateMetadataSimulate(token, account?): Promise<
  | SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: "uint48";
        name: "_key";
        type: "uint48";
      }, {
        internalType: "uint208";
        name: "_value";
        type: "uint208";
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}], 
  | "updateAdmin"
  | "approve"
  | "burn"
  | "burnFrom"
  | "crosschainBurn"
  | "crosschainMint"
  | "delegate"
  | "delegateBySig"
  | "permit"
  | "transfer"
  | "transferFrom"
  | "updateImage"
  | "updateMetadata"
  | "verify"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "string";
     name: "name_";
     type: "string";
   }, {
     internalType: "string";
     name: "symbol_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "maxSupply_";
     type: "uint256";
   }, {
     internalType: "address";
     name: "admin_";
     type: "address";
   }, {
     internalType: "string";
     name: "image_";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata_";
     type: "string";
   }, {
     internalType: "string";
     name: "context_";
     type: "string";
   }, {
     internalType: "uint256";
     name: "initialSupplyChainId_";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "CLOCK_MODE";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "DOMAIN_SEPARATOR";
  outputs: readonly [{
     internalType: "bytes32";
     name: "";
     type: "bytes32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "admin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "allData";
  outputs: readonly [{
     internalType: "address";
     name: "originalAdmin";
     type: "address";
   }, {
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     internalType: "string";
     name: "image";
     type: "string";
   }, {
     internalType: "string";
     name: "metadata";
     type: "string";
   }, {
     internalType: "string";
     name: "context";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "allowance";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "approve";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "balanceOf";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "burnFrom";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint32";
     name: "pos";
     type: "uint32";
  }];
  name: "checkpoints";
  outputs: readonly [{
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     internalType: "struct Checkpoints.Checkpoint208";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "clock";
  outputs: readonly [{
     internalType: "uint48";
     name: "";
     type: "uint48";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "context";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainBurn";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "_to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "_amount";
     type: "uint256";
  }];
  name: "crosschainMint";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "decimals";
  outputs: readonly [{
     internalType: "uint8";
     name: "";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
  }];
  name: "delegate";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "delegatee";
     type: "address";
   }, {
     internalType: "uint256";
     name: "nonce";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "delegateBySig";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "delegates";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "eip712Domain";
  outputs: readonly [{
     internalType: "bytes1";
     name: "fields";
     type: "bytes1";
   }, {
     internalType: "string";
     name: "name";
     type: "string";
   }, {
     internalType: "string";
     name: "version";
     type: "string";
   }, {
     internalType: "uint256";
     name: "chainId";
     type: "uint256";
   }, {
     internalType: "address";
     name: "verifyingContract";
     type: "address";
   }, {
     internalType: "bytes32";
     name: "salt";
     type: "bytes32";
   }, {
     internalType: "uint256[]";
     name: "extensions";
     type: "uint256[]";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastTotalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
  }];
  name: "getPastVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "getVotes";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "imageUrl";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "isVerified";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "metadata";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "name";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "nonces";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
  }];
  name: "numCheckpoints";
  outputs: readonly [{
     internalType: "uint32";
     name: "";
     type: "uint32";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "originalAdmin";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
   }, {
     internalType: "uint8";
     name: "v";
     type: "uint8";
   }, {
     internalType: "bytes32";
     name: "r";
     type: "bytes32";
   }, {
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "permit";
  outputs: readonly [];
  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 [];
  name: "symbol";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "totalSupply";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transfer";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "transferFrom";
  outputs: readonly [{
     internalType: "bool";
     name: "";
     type: "bool";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "admin_";
     type: "address";
  }];
  name: "updateAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "image_";
     type: "string";
  }];
  name: "updateImage";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "metadata_";
     type: "string";
  }];
  name: "updateMetadata";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "verify";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "owner";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Approval";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainBurn";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "CrosschainMint";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegator";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "fromDelegate";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "toDelegate";
     type: "address";
  }];
  name: "DelegateChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "delegate";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "previousVotes";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "newVotes";
     type: "uint256";
  }];
  name: "DelegateVotesChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [];
  name: "EIP712DomainChanged";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "to";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "Transfer";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "UpdateAdmin";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "image";
     type: "string";
  }];
  name: "UpdateImage";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "string";
     name: "metadata";
     type: "string";
  }];
  name: "UpdateMetadata";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "admin";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "Verified";
  type: "event";
}, {
  inputs: readonly [];
  name: "AlreadyVerified";
  type: "error";
}, {
  inputs: readonly [];
  name: "CheckpointUnorderedInsertion";
  type: "error";
}, {
  inputs: readonly [];
  name: "ECDSAInvalidSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "length";
     type: "uint256";
  }];
  name: "ECDSAInvalidSignatureLength";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "bytes32";
     name: "s";
     type: "bytes32";
  }];
  name: "ECDSAInvalidSignatureS";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "increasedSupply";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "cap";
     type: "uint256";
  }];
  name: "ERC20ExceededSafeSupply";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "allowance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientAllowance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
   }, {
     internalType: "uint256";
     name: "balance";
     type: "uint256";
   }, {
     internalType: "uint256";
     name: "needed";
     type: "uint256";
  }];
  name: "ERC20InsufficientBalance";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "approver";
     type: "address";
  }];
  name: "ERC20InvalidApprover";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "receiver";
     type: "address";
  }];
  name: "ERC20InvalidReceiver";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "sender";
     type: "address";
  }];
  name: "ERC20InvalidSender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "spender";
     type: "address";
  }];
  name: "ERC20InvalidSpender";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "deadline";
     type: "uint256";
  }];
  name: "ERC2612ExpiredSignature";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "signer";
     type: "address";
   }, {
     internalType: "address";
     name: "owner";
     type: "address";
  }];
  name: "ERC2612InvalidSigner";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "timepoint";
     type: "uint256";
   }, {
     internalType: "uint48";
     name: "clock";
     type: "uint48";
  }];
  name: "ERC5805FutureLookup";
  type: "error";
}, {
  inputs: readonly [];
  name: "ERC6372InconsistentClock";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "account";
     type: "address";
   }, {
     internalType: "uint256";
     name: "currentNonce";
     type: "uint256";
  }];
  name: "InvalidAccountNonce";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidShortString";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotAdmin";
  type: "error";
}, {
  inputs: readonly [];
  name: "NotOriginalAdmin";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint8";
     name: "bits";
     type: "uint8";
   }, {
     internalType: "uint256";
     name: "value";
     type: "uint256";
  }];
  name: "SafeCastOverflowedUintDowncast";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "string";
     name: "str";
     type: "string";
  }];
  name: "StringTooLong";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "uint256";
     name: "expiry";
     type: "uint256";
  }];
  name: "VotesExpiredSignature";
  type: "error";
}], 
  | "updateAdmin"
  | "approve"
  | "burn"
  | "burnFrom"
  | "crosschainBurn"
  | "crosschainMint"
  | "delegate"
  | "delegateBySig"
  | "permit"
  | "transfer"
  | "transferFrom"
  | "updateImage"
  | "updateMetadata"
  | "verify">> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:640](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L640)

Simulate updating the token metadata. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter        | Type                                                    | Description                              |
| ---------------- | ------------------------------------------------------- | ---------------------------------------- |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for     |
| `token.metadata` | `string`                                                | -                                        |
| `token.token?`   | `` `0x${string}` ``                                     | -                                        |
| `account?`       | `Account`                                               | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `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 \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateRewardAdmin()**

```ts
updateRewardAdmin(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:418](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L418)

Update the reward admin for a token.

**Parameters**

| Parameter           | Type                                                                                        | Description                              |
| ------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`             | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`    | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex` | `bigint`                                                                                    | -                                        |
| `token.token`       | `` `0x${string}` ``                                                                         | -                                        |

**Returns**

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

Transaction hash of the update or error

**updateRewardAdminSimulate()**

```ts
updateRewardAdminSimulate(token, account?): Promise<
  | SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     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: "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: "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: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        components: readonly [..., ..., ..., ..., ...];
        internalType: "struct PoolKey";
        name: "poolKey";
        type: "tuple";
      }, {
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "numPositions";
        type: "uint256";
      }, {
        internalType: "uint16[]";
        name: "rewardBps";
        type: "uint16[]";
      }, {
        internalType: "address[]";
        name: "rewardAdmins";
        type: "address[]";
      }, {
        internalType: "address[]";
        name: "rewardRecipients";
        type: "address[]";
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     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";
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "collectRewards"
  | "collectRewardsWithoutUnlock"
  | "onERC721Received"
  | "placeLiquidity"
  | "updateFeePreference"
  | "updateRewardAdmin"
  | "updateRewardRecipient"
  | "withdrawERC20"
  | "withdrawETH"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: 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.LockerConfig";
     name: "lockerConfig";
     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: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        components: ...;
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "collectRewards"
  | "collectRewardsWithoutUnlock"
  | "onERC721Received"
  | "placeLiquidity"
  | "updateFeePreference"
  | "updateRewardAdmin"
  | "updateRewardRecipient"
  | "withdrawERC20"
  | "withdrawETH">> & {
  error: ClankerError;
}>;
```

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

Simulate updating the reward admin. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter            | Type                                                                                        | Description                              |
| -------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`              | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`     | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex?` | `bigint`                                                                                    | -                                        |
| `token.token?`       | `` `0x${string}` ``                                                                         | -                                        |
| `account?`           | `Account`                                                                                   | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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`: `"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`: `"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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[..., ..., ..., ..., ...]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: 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.LockerConfig"`; `name`: `"lockerConfig"`; `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`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `components`: ...; `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateRewardRecipient()**

```ts
updateRewardRecipient(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:379](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L379)

Update the reward recipient for a token.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex`  | `bigint`                                                                                        | -                                            |
| `token.token`        | `` `0x${string}` ``                                                                             | -                                            |

**Returns**

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

Transaction hash of the update or error

**updateRewardRecipientSimulate()**

```ts
updateRewardRecipientSimulate(token, account?): Promise<
  | SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     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: "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: "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: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        components: readonly [..., ..., ..., ..., ...];
        internalType: "struct PoolKey";
        name: "poolKey";
        type: "tuple";
      }, {
        internalType: "uint256";
        name: "positionId";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "numPositions";
        type: "uint256";
      }, {
        internalType: "uint16[]";
        name: "rewardBps";
        type: "uint16[]";
      }, {
        internalType: "address[]";
        name: "rewardAdmins";
        type: "address[]";
      }, {
        internalType: "address[]";
        name: "rewardRecipients";
        type: "address[]";
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     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";
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "collectRewards"
  | "collectRewardsWithoutUnlock"
  | "onERC721Received"
  | "placeLiquidity"
  | "updateFeePreference"
  | "updateRewardAdmin"
  | "updateRewardRecipient"
  | "withdrawERC20"
  | "withdrawETH"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<readonly [{
  inputs: readonly [{
     internalType: "address";
     name: "owner_";
     type: "address";
   }, {
     internalType: "address";
     name: "factory_";
     type: "address";
   }, {
     internalType: "address";
     name: "feeLocker_";
     type: "address";
   }, {
     internalType: "address";
     name: "positionManager_";
     type: "address";
   }, {
     internalType: "address";
     name: "permit2_";
     type: "address";
   }, {
     internalType: "address";
     name: "universalRouter_";
     type: "address";
   }, {
     internalType: "address";
     name: "poolManager_";
     type: "address";
  }];
  stateMutability: "nonpayable";
  type: "constructor";
}, {
  inputs: readonly [];
  name: "BASIS_POINTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_LP_POSITIONS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "MAX_REWARD_PARTICIPANTS";
  outputs: readonly [{
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewards";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "collectRewardsWithoutUnlock";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "factory";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "feeLocker";
  outputs: readonly [{
     internalType: "contract IClankerFeeLocker";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "";
     type: "uint256";
  }];
  name: "feePreferences";
  outputs: readonly [{
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "feePreference";
     type: "uint8";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
   }, {
     internalType: "address";
     name: "from";
     type: "address";
   }, {
     internalType: "uint256";
     name: "id";
     type: "uint256";
   }, {
     internalType: "bytes";
     name: "";
     type: "bytes";
  }];
  name: "onERC721Received";
  outputs: readonly [{
     internalType: "bytes4";
     name: "";
     type: "bytes4";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "owner";
  outputs: readonly [{
     internalType: "address";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "permit2";
  outputs: readonly [{
     internalType: "contract IPermit2";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: 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.LockerConfig";
     name: "lockerConfig";
     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: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "placeLiquidity";
  outputs: readonly [{
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "poolManager";
  outputs: readonly [{
     internalType: "contract IPoolManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "positionManager";
  outputs: readonly [{
     internalType: "contract IPositionManager";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [];
  name: "renounceOwnership";
  outputs: readonly [];
  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: "token";
     type: "address";
  }];
  name: "tokenRewards";
  outputs: readonly [{
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        components: ...;
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     internalType: "struct IClankerLpLocker.TokenRewardInfo";
     name: "";
     type: "tuple";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "newOwner";
     type: "address";
  }];
  name: "transferOwnership";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "universalRouter";
  outputs: readonly [{
     internalType: "contract IUniversalRouter";
     name: "";
     type: "address";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "updateFeePreference";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "updateRewardAdmin";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "updateRewardRecipient";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [];
  name: "version";
  outputs: readonly [{
     internalType: "string";
     name: "";
     type: "string";
  }];
  stateMutability: "view";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawERC20";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "recipient";
     type: "address";
  }];
  name: "withdrawETH";
  outputs: readonly [];
  stateMutability: "nonpayable";
  type: "function";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount0";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amount1";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards0";
     type: "uint256[]";
   }, {
     indexed: false;
     internalType: "uint256[]";
     name: "rewards1";
     type: "uint256[]";
  }];
  name: "ClaimedRewards";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "oldFeePreference";
     type: "uint8";
   }, {
     indexed: true;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
     name: "newFeePreference";
     type: "uint8";
  }];
  name: "FeePreferenceUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "address";
     name: "rewardToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountSwapped";
     type: "uint256";
   }, {
     indexed: true;
     internalType: "address";
     name: "swappedToken";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "amountOut";
     type: "uint256";
  }];
  name: "FeesSwapped";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: false;
     internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
     name: "feePreference";
     type: "uint8[]";
  }];
  name: "InitialFeePreferences";
  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: "address";
     name: "from";
     type: "address";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
  }];
  name: "Received";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldAdmin";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newAdmin";
     type: "address";
  }];
  name: "RewardAdminUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: true;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     indexed: true;
     internalType: "uint256";
     name: "rewardIndex";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "address";
     name: "oldRecipient";
     type: "address";
   }, {
     indexed: false;
     internalType: "address";
     name: "newRecipient";
     type: "address";
  }];
  name: "RewardRecipientUpdated";
  type: "event";
}, {
  anonymous: false;
  inputs: readonly [{
     indexed: false;
     internalType: "address";
     name: "token";
     type: "address";
   }, {
     components: readonly [{
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
      }, {
        internalType: ...;
        name: ...;
        type: ...;
     }];
     indexed: false;
     internalType: "struct PoolKey";
     name: "poolKey";
     type: "tuple";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "poolSupply";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "positionId";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint256";
     name: "numPositions";
     type: "uint256";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "rewardBps";
     type: "uint16[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardAdmins";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "address[]";
     name: "rewardRecipients";
     type: "address[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickLower";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "int24[]";
     name: "tickUpper";
     type: "int24[]";
   }, {
     indexed: false;
     internalType: "uint16[]";
     name: "positionBps";
     type: "uint16[]";
  }];
  name: "TokenRewardAdded";
  type: "event";
}, {
  inputs: readonly [];
  name: "InvalidPositionBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "InvalidRewardBps";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedPositionInfos";
  type: "error";
}, {
  inputs: readonly [];
  name: "MismatchedRewardArrays";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "NoRewardRecipients";
  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: "ReentrancyGuardReentrantCall";
  type: "error";
}, {
  inputs: readonly [{
     internalType: "address";
     name: "token";
     type: "address";
  }];
  name: "SafeERC20FailedOperation";
  type: "error";
}, {
  inputs: readonly [];
  name: "TickRangeLowerThanStartingTick";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksBackwards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksNotMultipleOfTickSpacing";
  type: "error";
}, {
  inputs: readonly [];
  name: "TicksOutOfTickBounds";
  type: "error";
}, {
  inputs: readonly [];
  name: "TokenAlreadyHasRewards";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyPositions";
  type: "error";
}, {
  inputs: readonly [];
  name: "TooManyRewardParticipants";
  type: "error";
}, {
  inputs: readonly [];
  name: "Unauthorized";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAddress";
  type: "error";
}, {
  inputs: readonly [];
  name: "ZeroRewardAmount";
  type: "error";
}], 
  | "renounceOwnership"
  | "transferOwnership"
  | "collectRewards"
  | "collectRewardsWithoutUnlock"
  | "onERC721Received"
  | "placeLiquidity"
  | "updateFeePreference"
  | "updateRewardAdmin"
  | "updateRewardRecipient"
  | "withdrawERC20"
  | "withdrawETH">> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:295](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L295)

Simulate updating the reward recipient. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex?` | `bigint`                                                                                        | -                                            |
| `token.token?`       | `` `0x${string}` ``                                                                             | -                                            |
| `account?`           | `Account`                                                                                       | Optional account to simulate calling for     |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `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`: `"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`: `"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`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[..., ..., ..., ..., ...]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `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"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: 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.LockerConfig"`; `name`: `"lockerConfig"`; `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`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `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`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `components`: ...; `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `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`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `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`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`>> & { `error`: `ClankerError`; }>

The simulated output

**getVaultClaimTransactionObject()**

```ts
static getVaultClaimTransactionObject(token): {
  abi: readonly [{
     inputs: readonly [{
        internalType: "address";
        name: "factory_";
        type: "address";
     }];
     stateMutability: "nonpayable";
     type: "constructor";
   }, {
     inputs: readonly [];
     name: "MIN_LOCKUP_DURATION";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
     }];
     name: "allocation";
     outputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "amountTotal";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "amountClaimed";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "lockupEndTime";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "vestingEndTime";
        type: "uint256";
      }, {
        internalType: "address";
        name: "admin";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "amountAvailableToClaim";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "claim";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "editAllocationAdmin";
     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";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "oldAdmin";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "AllocationAdminUpdated";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "remainingAmount";
        type: "uint256";
     }];
     name: "AllocationClaimed";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "admin";
        type: "address";
      }, {
        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: "AllocationCreated";
     type: "event";
   }, {
     inputs: readonly [];
     name: "AllocationAlreadyExists";
     type: "error";
   }, {
     inputs: readonly [];
     name: "AllocationNotUnlocked";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidMsgValue";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidVaultAdmin";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidVaultBps";
     type: "error";
   }, {
     inputs: readonly [];
     name: "NoBalanceToClaim";
     type: "error";
   }, {
     inputs: readonly [];
     name: "ReentrancyGuardReentrantCall";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TransferFailed";
     type: "error";
   }, {
     inputs: readonly [];
     name: "Unauthorized";
     type: "error";
   }, {
     inputs: readonly [];
     name: "VaultLockupDurationTooShort";
     type: "error";
  }];
  address: `0x${string}`;
  args: `0x${string}`[];
  chainId: number | undefined;
  functionName: string;
};
```

Defined in: [src/v4/index.ts:534](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L534)

Get the transaction object for claiming vaulted tokens (for offline signing or inspection).

**Parameters**

| Parameter             | Type                                                                                          | Description            |
| --------------------- | --------------------------------------------------------------------------------------------- | ---------------------- |
| `token`               | { `chainId?`: `number`; `token`: `` `0x${string}` ``; `vaultAddress?`: `` `0x${string}` ``; } | The token to claim for |
| `token.chainId?`      | `number`                                                                                      | -                      |
| `token.token`         | `` `0x${string}` ``                                                                           | -                      |
| `token.vaultAddress?` | `` `0x${string}` ``                                                                           | -                      |

**Returns**

```ts
{
  abi: readonly [{
     inputs: readonly [{
        internalType: "address";
        name: "factory_";
        type: "address";
     }];
     stateMutability: "nonpayable";
     type: "constructor";
   }, {
     inputs: readonly [];
     name: "MIN_LOCKUP_DURATION";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
     }];
     name: "allocation";
     outputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "uint256";
        name: "amountTotal";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "amountClaimed";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "lockupEndTime";
        type: "uint256";
      }, {
        internalType: "uint256";
        name: "vestingEndTime";
        type: "uint256";
      }, {
        internalType: "address";
        name: "admin";
        type: "address";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "amountAvailableToClaim";
     outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
     }];
     stateMutability: "view";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
     }];
     name: "claim";
     outputs: readonly [];
     stateMutability: "nonpayable";
     type: "function";
   }, {
     inputs: readonly [{
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "editAllocationAdmin";
     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";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "oldAdmin";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "newAdmin";
        type: "address";
     }];
     name: "AllocationAdminUpdated";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
      }, {
        indexed: false;
        internalType: "uint256";
        name: "remainingAmount";
        type: "uint256";
     }];
     name: "AllocationClaimed";
     type: "event";
   }, {
     anonymous: false;
     inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "token";
        type: "address";
      }, {
        indexed: true;
        internalType: "address";
        name: "admin";
        type: "address";
      }, {
        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: "AllocationCreated";
     type: "event";
   }, {
     inputs: readonly [];
     name: "AllocationAlreadyExists";
     type: "error";
   }, {
     inputs: readonly [];
     name: "AllocationNotUnlocked";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidMsgValue";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidVaultAdmin";
     type: "error";
   }, {
     inputs: readonly [];
     name: "InvalidVaultBps";
     type: "error";
   }, {
     inputs: readonly [];
     name: "NoBalanceToClaim";
     type: "error";
   }, {
     inputs: readonly [];
     name: "ReentrancyGuardReentrantCall";
     type: "error";
   }, {
     inputs: readonly [];
     name: "TransferFailed";
     type: "error";
   }, {
     inputs: readonly [];
     name: "Unauthorized";
     type: "error";
   }, {
     inputs: readonly [];
     name: "VaultLockupDurationTooShort";
     type: "error";
  }];
  address: `0x${string}`;
  args: `0x${string}`[];
  chainId: number | undefined;
  functionName: string;
}
```

Transaction object for claiming vaulted tokens

| Name           | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Default value         | Defined in                                                                                         |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------- |
| `abi`          | readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"MIN_LOCKUP_DURATION"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `name`: `"allocation"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amountTotal"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"lockupEndTime"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"vestingEndTime"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"amountAvailableToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"editAllocationAdmin"`; `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"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"AllocationAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"remainingAmount"`; `type`: `"uint256"`; }]; `name`: `"AllocationClaimed"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `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`: `"AllocationCreated"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AllocationAlreadyExists"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"AllocationNotUnlocked"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidMsgValue"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidVaultAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidVaultBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoBalanceToClaim"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"VaultLockupDurationTooShort"`; `type`: `"error"`; }] | `ClankerVault_v4_abi` | [src/v4/index.ts:548](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L548) |
| `address`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `vaultAddress`        | [src/v4/index.ts:547](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L547) |
| `args`         | `` `0x${string}` ``\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                     | [src/v4/index.ts:550](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L550) |
| `chainId`      | `number` \| `undefined`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                     | [src/v4/index.ts:551](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L551) |
| `functionName` | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | `'claim'`             | [src/v4/index.ts:549](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L549) |

### Functions

#### encodeFeeConfig()

```ts
function encodeFeeConfig(tokenConfig, clankerConfig): {
  hook: `0x${string}`;
  poolData: `0x${string}`;
};
```

Defined in: [src/config/clankerTokenV4.ts:494](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L494)

Encode a fee configuration for Clanker v4.

**Parameters**

| Parameter                                | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                            |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `tokenConfig`                            | { `airdrop?`: { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration`: `number`; }; `chainId`: `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`; `context`: { `id?`: `string`; `interface`: `string`; `messageId?`: `string`; `platform?`: `string`; }; `devBuy?`: { `amountOutMin`: `number`; `ethAmount`: `number`; `poolKey`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }; `fees`: \| { `clankerFee`: `number`; `pairedFee`: `number`; `type`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type`: `"dynamic"`; }; `image`: `string`; `locker`: { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData`: `` `0x${string}` ``; }; `metadata?`: { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }; `name`: `string`; `pool`: { `pairedToken`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker`: `number`; `tickSpacing`: `number`; }; `poolExtension`: { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }; `presale?`: { `bps`: `number`; }; `rewards?`: { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }; `salt?`: `` `0x${string}` ``; `sniperFees`: { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }; `symbol`: `string`; `tokenAdmin`: `` `0x${string}` ``; `vanity`: `boolean`; `vault?`: { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration`: `number`; }; } | -                                                                                                                                      |
| `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.                                                              |
| `tokenConfig.airdrop.admin?`             | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `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.                        |
| `tokenConfig.airdrop.lockupDuration`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `tokenConfig.airdrop.merkleRoot`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Root of the airdrop merkle tree.                                                                                                       |
| `tokenConfig.airdrop.vestingDuration`    | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `tokenConfig.chainId`                    | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Id of the chain that the token will be deployed to. Defaults to base (8453).                                                           |
| `tokenConfig.context`                    | { `id?`: `string`; `interface`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `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.     |
| `tokenConfig.context.interface`          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `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.         |
| `tokenConfig.context.platform?`          | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `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.                                                                    |
| `tokenConfig.devBuy.amountOutMin`        | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `tokenConfig.devBuy.ethAmount`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | How much of the token to buy (denoted in ETH).                                                                                         |
| `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.                          |
| `tokenConfig.devBuy.poolKey.currency0`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.currency1`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.fee`         | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.hooks`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.tickSpacing` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -                                                                                                                                      |
| `tokenConfig.devBuy.recipient?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `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.                                                                                                           |
| `tokenConfig.image`                      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Image for the token. This should be a normal or ipfs url.                                                                              |
| `tokenConfig.locker`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Token locker                                                                                                                           |
| `tokenConfig.locker.locker`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Locker extension address.                                                                                                              |
| `tokenConfig.locker.lockerData`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `tokenConfig.metadata?`                  | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Metadata for the token.                                                                                                                |
| `tokenConfig.metadata.auditUrls?`        | `string`\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Audits for other contracts or services offered by the project.                                                                         |
| `tokenConfig.metadata.description?`      | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Description of the token or token project.                                                                                             |
| `tokenConfig.metadata.socialMediaUrls?`  | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Socials for the token. These may be displayed on aggregators.                                                                          |
| `tokenConfig.name`                       | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Name of the token. Example: "My Token".                                                                                                |
| `tokenConfig.pool`                       | { `pairedToken`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker`: `number`; `tickSpacing`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Pool information                                                                                                                       |
| `tokenConfig.pool.pairedToken`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Token to pair the clanker with.                                                                                                        |
| `tokenConfig.pool.positions`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `tokenConfig.pool.tickIfToken0IsClanker` | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Starting tick of the pool.                                                                                                             |
| `tokenConfig.pool.tickSpacing`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Tick spacing.                                                                                                                          |
| `tokenConfig.poolExtension`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | \[v4.1+ only] Custom developer extension                                                                                               |
| `tokenConfig.poolExtension.address`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Address of the developer extension                                                                                                     |
| `tokenConfig.poolExtension.initData`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Initialization data for the extension                                                                                                  |
| `tokenConfig.presale?`                   | { `bps`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `tokenConfig.presale.bps`                | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Bps for allocation to presale                                                                                                          |
| `tokenConfig.rewards?`                   | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Rewards & recipients for rewards generated by the token.                                                                               |
| `tokenConfig.rewards.recipients`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `tokenConfig.salt?`                      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `tokenConfig.sniperFees`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | \[v4.1+ only] Sniper fees                                                                                                              |
| `tokenConfig.sniperFees.endingFee`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Ending sniper fee (units: Unibps)                                                                                                      |
| `tokenConfig.sniperFees.secondsToDecay`  | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Sniper fee duration                                                                                                                    |
| `tokenConfig.sniperFees.startingFee`     | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Starting sniper fee (units: Unibps)                                                                                                    |
| `tokenConfig.symbol`                     | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Symbol for the token. Example: "MTK".                                                                                                  |
| `tokenConfig.tokenAdmin`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `tokenConfig.vanity`                     | `boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `tokenConfig.vault?`                     | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration`: `number`; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `tokenConfig.vault.lockupDuration`       | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `tokenConfig.vault.percentage`           | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Percent of total supply allocated to the vault.                                                                                        |
| `tokenConfig.vault.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `tokenConfig.vault.vestingDuration`      | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `clankerConfig`                          | [`ClankerDeployment`](/documentation/sdk-reference/index.md#clankerdeployment)<[`RelatedV4`](/documentation/sdk-reference/index.md#relatedv4)>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | A clanker configuration                                                                                                                |

**Returns**

```ts
{
  hook: `0x${string}`;
  poolData: `0x${string}`;
}
```

A correctly formatted fee configuration

| Name       | Type                | Defined in                                                                                                                   |
| ---------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `hook`     | `` `0x${string}` `` | [src/config/clankerTokenV4.ts:498](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L498) |
| `poolData` | `` `0x${string}` `` | [src/config/clankerTokenV4.ts:499](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L499) |
