V4 — Clanker Class
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
config?
ClankerConfig
Returns
Properties
Methods
availableRewards()
Defined in: src/v4/index.ts:151
Check available rewards for a token and recipient.
Parameters
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
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
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
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
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< | { 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"; }, {