For the complete documentation index, see llms.txt. This page is also available as Markdown.

V4 — Clanker Class

clanker-sdk


clanker-sdk / v4

v4

Classes

Clanker

Defined in: src/v4/index.ts:30

Clanker v4

Constructors

Constructor

new Clanker(config?): Clanker;

Defined in: src/v4/index.ts:34

Parameters

Parameter
Type

config?

ClankerConfig

Returns

Clanker

Properties

Property
Modifier
Type
Defined in

publicClient?

readonly

{ }

wallet?

readonly

{ }

Methods

availableRewards()

Defined in: src/v4/index.ts:151

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

Defined in: src/v4/index.ts:97

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

Defined in: src/v4/index.ts:74

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

Defined in: src/v4/index.ts:481

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

Defined in: src/v4/index.ts:204

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?

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

Defined in: src/v4/index.ts:186

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

Defined in: src/v4/index.ts:124

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

Defined in: src/v4/index.ts:46

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

Defined in: src/v4/index.ts:175

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

Defined in: src/v4/index.ts:743

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

Defined in: src/v4/index.ts:708

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

Defined in: src/v4/index.ts:563

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

Defined in: src/v4/index.ts:590

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

Defined in: src/v4/index.ts:258

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

Defined in: src/v4/index.ts:222

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

Defined in: src/v4/index.ts:494

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

Defined in: src/v4/index.ts:456

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

Defined in: src/v4/index.ts:660

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

Defined in: src/v4/index.ts:618

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

Defined in: src/v4/index.ts:684

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

Defined in: src/v4/index.ts:640

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

Defined in: src/v4/index.ts:418

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

Defined in: src/v4/index.ts:338

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

Defined in: src/v4/index.ts:379

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

Defined in: src/v4/index.ts:295

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"; }, {