clanker-sdk
Version:
SDK for deploying tokens using Clanker
6,731 lines • 238 kB
TypeScript
import { C as ClankerTransactionConfig, d as ClankerFeeLocker_abi, b as ClankerFactory, c as ClankerResult, e as ClankerLocker_v4_abi } from '../write-clanker-contracts-wZSL1UyM.js';
import * as viem from 'viem';
import { WalletClient, Transport, Chain, Account, PublicClient } from 'viem';
import { a as ClankerToken_v4_abi } from '../ClankerToken-Dra5lppJ.js';
import { C as ClankerTokenV4, D as DeployTokenOptions } from '../deploy-BvFgwMVl.js';
export { e as encodeFeeConfig } from '../deploy-BvFgwMVl.js';
import { C as ClankerError } from '../errors-5Gv28Tkr.js';
import 'zod/v4';
type ClankerConfig = {
wallet?: WalletClient<Transport, Chain, Account>;
publicClient?: PublicClient;
};
/**
* Clanker v4
*/
declare class Clanker {
readonly wallet?: WalletClient<Transport, Chain, Account>;
readonly publicClient?: PublicClient;
constructor(config?: ClankerConfig);
/**
* Get an abi-typed transaction for claiming rewards on a token.
*
* @param token The token to claim for
* @param rewardRecipient The recipient to claim for
* @returns Abi transaction
*/
getClaimRewardsTransaction({ token, rewardRecipient }: {
token: `0x${string}`;
rewardRecipient: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<ClankerTransactionConfig<typeof ClankerFeeLocker_abi>>;
/**
* Simulate claiming rewards. Will use the wallet account on the Clanker class or
* the passed-in account.
*
* @param token The token to simulate reward claiming for
* @param rewardRecipient The recipient to claim for
* @param account Optional account to simulate calling claiming for
* @returns The simulated output
*/
claimRewardsSimulate({ token, rewardRecipient }: {
token: `0x${string}`;
rewardRecipient: `0x${string}`;
}, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner_";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "ClaimAmountTooHigh";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidRecipient";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "NoFeesToClaim";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}];
readonly name: "OwnableInvalidOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "OwnableUnauthorizedAccount";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ReentrancyGuardReentrantCall";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "SafeERC20FailedOperation";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "TransferFailed";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "AddDepositor";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amountClaimed";
readonly type: "uint256";
}];
readonly name: "ClaimTokens";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "recipient";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amountClaimed";
readonly type: "uint256";
}];
readonly name: "ClaimTokensPermissioned";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "OwnershipTransferred";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "sender";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "balance";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "StoreTokens";
readonly type: "event";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "addDepositor";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "allowedDepositors";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "isAllowed";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "availableFees";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "claim";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "feesToClaim";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "balance";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "owner";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "renounceOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "storeFees";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes4";
readonly name: "interfaceId";
readonly type: "bytes4";
}];
readonly name: "supportsInterface";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "pure";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "transferOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}], "addDepositor" | "claim" | "renounceOwnership" | "storeFees" | "transferOwnership"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Claim rewards for a clanker token.
*
* @param token Token to claim rewards for
* @param rewardRecipient The recipient to claim for
* @returns Transaction hash of the claim or error
*/
claimRewards({ token, rewardRecipient, }: {
token: `0x${string}`;
rewardRecipient: `0x${string}`;
}): Promise<{
txHash: `0x${string}`;
error: undefined;
} | {
txHash: undefined;
error: ClankerError;
}>;
/**
* Get an abi-typed transaction for checking rewards on a token.
*
* @param token Token to check rewards for
* @param rewardRecipient The recipient to check rewards for
* @returns Abi transaction
*/
getAvailableRewardsTransaction({ token, rewardRecipient }: {
token: `0x${string}`;
rewardRecipient: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<{
readonly address: `0x${string}`;
readonly abi: readonly [{
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner_";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "ClaimAmountTooHigh";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidRecipient";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "NoFeesToClaim";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}];
readonly name: "OwnableInvalidOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "OwnableUnauthorizedAccount";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ReentrancyGuardReentrantCall";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "SafeERC20FailedOperation";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "TransferFailed";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "AddDepositor";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amountClaimed";
readonly type: "uint256";
}];
readonly name: "ClaimTokens";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "recipient";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amountClaimed";
readonly type: "uint256";
}];
readonly name: "ClaimTokensPermissioned";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "OwnershipTransferred";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "sender";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "balance";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "StoreTokens";
readonly type: "event";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "addDepositor";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "depositor";
readonly type: "address";
}];
readonly name: "allowedDepositors";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "isAllowed";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "availableFees";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "claim";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "feesToClaim";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "balance";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "owner";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "renounceOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "feeOwner";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "storeFees";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes4";
readonly name: "interfaceId";
readonly type: "bytes4";
}];
readonly name: "supportsInterface";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "pure";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "transferOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}];
readonly functionName: "availableFees";
readonly args: readonly [`0x${string}`, `0x${string}`];
}>;
/**
* Check available rewards for a token and recipient.
*
* @param token Token to check rewards for
* @param rewardRecipient The recipient to check rewards for
* @returns Amount of rewards for the `token` and `rewardRecipient`
*/
availableRewards({ token, rewardRecipient, }: {
token: `0x${string}`;
rewardRecipient: `0x${string}`;
}): Promise<bigint>;
/**
* Get an abi-typed transaction for deploying a clanker.
*
* @param token The token to deploy
* @returns Abi transaction
*/
getDeployTransaction(token: ClankerTokenV4): Promise<ClankerTransactionConfig<readonly [{
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner_";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "Deprecated";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ExtensionMsgValueMismatch";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ExtensionNotEnabled";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "HookNotEnabled";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidExtension";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidHook";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidLocker";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "InvalidMevModule";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "LockerNotEnabled";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "MaxExtensionBpsExceeded";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "MaxExtensionsExceeded";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "MevModuleNotEnabled";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "NotFound";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "OnlyNonOriginatingChains";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "OnlyOriginatingChain";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "owner";
readonly type: "address";
}];
readonly name: "OwnableInvalidOwner";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "OwnableUnauthorizedAccount";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "ReentrancyGuardReentrantCall";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "recipient";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}];
readonly name: "ClaimTeamFees";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "extension";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "extensionSupply";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "msgValue";
readonly type: "uint256";
}];
readonly name: "ExtensionTriggered";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousOwner";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "OwnershipTransferred";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "admin";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "SetAdmin";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "bool";
readonly name: "deprecated";
readonly type: "bool";
}];
readonly name: "SetDeprecated";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "extension";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "SetExtension";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "hook";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "SetHook";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "pool";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "SetLocker";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "mevModule";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "SetMevModule";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "oldTeamFeeRecipient";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "newTeamFeeRecipient";
readonly type: "address";
}];
readonly name: "SetTeamFeeRecipient";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: false;
readonly internalType: "address";
readonly name: "msgSender";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "tokenAddress";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "tokenAdmin";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "string";
readonly name: "tokenImage";
readonly type: "string";
}, {
readonly indexed: false;
readonly internalType: "string";
readonly name: "tokenName";
readonly type: "string";
}, {
readonly indexed: false;
readonly internalType: "string";
readonly name: "tokenSymbol";
readonly type: "string";
}, {
readonly indexed: false;
readonly internalType: "string";
readonly name: "tokenMetadata";
readonly type: "string";
}, {
readonly indexed: false;
readonly internalType: "string";
readonly name: "tokenContext";
readonly type: "string";
}, {
readonly indexed: false;
readonly internalType: "int24";
readonly name: "startingTick";
readonly type: "int24";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "poolHook";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "PoolId";
readonly name: "poolId";
readonly type: "bytes32";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "pairedToken";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "mevModule";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "extensionsSupply";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "address[]";
readonly name: "extensions";
readonly type: "address[]";
}];
readonly name: "TokenCreated";
readonly type: "event";
}, {
readonly inputs: readonly [];
readonly name: "BPS";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "MAX_EXTENSIONS";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "MAX_EXTENSION_BPS";
readonly outputs: readonly [{
readonly internalType: "uint16";
readonly name: "";
readonly type: "uint16";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "TOKEN_SUPPLY";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly name: "admins";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "claimTeamFees";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "tokenAdmin";
readonly type: "address";
}, {
readonly internalType: "string";
readonly name: "name";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "symbol";
readonly type: "string";
}, {
readonly internalType: "bytes32";
readonly name: "salt";
readonly type: "bytes32";
}, {
readonly internalType: "string";
readonly name: "image";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "metadata";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "context";
readonly type: "string";
}, {
readonly internalType: "uint256";
readonly name: "originatingChainId";
readonly type: "uint256";
}];
readonly internalType: "struct IClanker.TokenConfig";
readonly name: "tokenConfig";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "hook";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "pairedToken";
readonly type: "address";
}, {
readonly internalType: "int24";
readonly name: "tickIfToken0IsClanker";
readonly type: "int24";
}, {
readonly internalType: "int24";
readonly name: "tickSpacing";
readonly type: "int24";
}, {
readonly internalType: "bytes";
readonly name: "poolData";
readonly type: "bytes";
}];
readonly internalType: "struct IClanker.PoolConfig";
readonly name: "poolConfig";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "rewardAdmins";
readonly type: "address[]";
}, {
readonly internalType: "address[]";
readonly name: "rewardRecipients";
readonly type: "address[]";
}, {
readonly internalType: "uint16[]";
readonly name: "rewardBps";
readonly type: "uint16[]";
}, {
readonly internalType: "int24[]";
readonly name: "tickLower";
readonly type: "int24[]";
}, {
readonly internalType: "int24[]";
readonly name: "tickUpper";
readonly type: "int24[]";
}, {
readonly internalType: "uint16[]";
readonly name: "positionBps";
readonly type: "uint16[]";
}, {
readonly internalType: "bytes";
readonly name: "lockerData";
readonly type: "bytes";
}];
readonly internalType: "struct IClanker.LockerConfig";
readonly name: "lockerConfig";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "mevModule";
readonly type: "address";
}, {
readonly internalType: "bytes";
readonly name: "mevModuleData";
readonly type: "bytes";
}];
readonly internalType: "struct IClanker.MevModuleConfig";
readonly name: "mevModuleConfig";
readonly type: "tuple";
}, {
readonly components: readonly [{
readonly internalType: "address";
readonly name: "extension";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "msgValue";
readonly type: "uint256";
}, {
readonly internalType: "uint16";
readonly name: "extensionBps";
readonly type: "uint16";
}, {
readonly internalType: "bytes";
readonly name: "extensionData";
readonly type: "bytes";
}];
readonly internalType: "struct IClanker.ExtensionConfig[]";
readonly name: "extensionConfigs";
readonly type: "tuple[]";
}];
readonly internalType: "struct IClanker.DeploymentConfig";
readonly name: "deploymentConfig";
readonly type: "tuple";
}];
readonly name: "deployToken";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "tokenAddress";
readonly type: "address";
}];
readonly stateMutability: "payable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "tokenAdmin";
readonly type: "address";
}, {
readonly internalType: "string";
readonly name: "name";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "symbol";
readonly type: "string";
}, {
readonly internalType: "bytes32";
readonly name: "salt";
readonly type: "bytes32";
}, {
readonly internalType: "string";
readonly name: "image";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "metadata";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "context";
readonly type: "string";
}, {
readonly internalType: "uint256";
readonly name: "originatingChainId";
readonly type: "uint256";
}];
readonly internalType: "struct IClanker.TokenConfig";
readonly name: "tokenConfig";
readonly type: "tuple";
}];
readonly name: "deployTokenZeroSupply";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "tokenAddress";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "deploymentInfoForToken";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "hook";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "deprecated";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "pool";
readonly type: "address";
}];
readonly name: "enabledLockers";
readonly outputs: readonly [{
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "teamFeeRecipient_";
readonly type: "address";
}];
readonly name: "initialize";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "owner";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "renounceOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "admin";
readonly type: "address";
}, {
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "setAdmin";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "bool";
readonly name: "deprecated_";
readonly type: "bool";
}];
readonly name: "setDeprecated";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "extension";
readonly type: "address";
}, {
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "setExtension";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "hook";
readonly type: "address";
}, {
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "setHook";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "pool";
readonly type: "address";
}, {
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "setLocker";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "mevModule";
readonly type: "address";
}, {
readonly internalType: "bool";
readonly name: "enabled";
readonly type: "bool";
}];
readonly name: "setMevModule";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "teamFeeRecipient_";
readonly type: "address";
}];
readonly name: "setTeamFeeRecipient";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "teamFeeRecipient";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}];
readonly name: "tokenDeploymentInfo";
readonly outputs: readonly [{
readonly components: readonly [{
readonly internalType: "address";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "hook";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "locker";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "extensions";
readonly type: "address[]";
}];
readonly internalType: "struct IClanker.DeploymentInfo";
readonly name: "";
readonly type: "tuple";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newOwner";
readonly type: "address";
}];
readonly name: "transferOwnership";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}], "deployToken"> & {
expectedAddress?: `0x${string}`;
}>;
/**
* Simulate a token deployment
*
* @param token The token to deploy
* @param account Optional account for the deployer
* @returns Abi transaction
*/
deploySimulate(token: ClankerTokenV4, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "renounceOwnership" | "transferOwnership" | "claimRewards" | "deployToken" | "deployTokenWithCustomTeamRewardRecipient" | "deployTokenZeroSupply" | "initialize" | "setAdmin" | "setDeprecated" | "updateLiquidityLocker" | "updateVault" | "claimTeamFees" | "setExtension" | "setHook" | "setLocker" | "setMevModule" | "setTeamFeeRecipient"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Deploy a token
*
* @param token The token to deploy
* @param options Optional deployment options
* @param options.dataSuffix Data to append to transaction calldata (e.g., Base builder codes)
* @returns Transaction hash and awaitable function for full deployment
*/
deploy(token: ClankerTokenV4, options?: DeployTokenOptions): Promise<({
txHash: `0x${string}`;
waitForTransaction: () => ClankerResult<{
address: `0x${string}`;
}>;
} & {
error?: undefined;
}) | ({
txHash?: undefined;
waitForTransaction?: undefined;
} & {
error: ClankerError;
})>;
/**
* Get an abi-typed transaction for updating the reward recipient.
*
* @param token The token to update the reward recipient for
* @param rewardIndex The index of the reward to update
* @param newRecipient The new recipient address
* @param options Optional chain configuration
* @returns Abi transaction
*/
getUpdateRewardRecipientTransaction({ token, rewardIndex, newRecipient, }: {
token: `0x${string}`;
rewardIndex: bigint;
newRecipient: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<ClankerTransactionConfig<typeof ClankerLocker_v4_abi>>;
/**
* Get an abi-typed transaction for updating the reward admin.
*
* @param token The token to update the reward admin for
* @param rewardIndex The index of the reward to update
* @param newAdmin The new admin address
* @param options Optional chain configuration
* @returns Abi transaction
*/
getUpdateRewardAdminTransaction({ token, rewardIndex, newAdmin, }: {
token: `0x${string}`;
rewardIndex: bigint;
newAdmin: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<ClankerTransactionConfig<typeof ClankerLocker_v4_abi>>;
/**
* Simulate updating the reward recipient. Will use the wallet account on the Clanker class or
* the passed-in account.
*
* @param token The token to update the reward recipient for
* @param rewardIndex The index of the reward to update
* @param newRecipient The new recipient address
* @param account Optional account to simulate calling for
* @returns The simulated output
*/
updateRewardRecipientSimulate({ token, rewardIndex, newRecipient, }: {
token: `0x${string}`;
rewardIndex: bigint;
newRecipient: `0x${string}`;
}, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "owner_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "factory_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "feeLocker_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "positionManager_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "permit2_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "universalRouter_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolManager_";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "BASIS_POINTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_LP_POSITIONS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_REWARD_PARTICIPANTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "collectRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "collectRewardsWithoutUnlock";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "factory";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feeLocker";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IClankerFeeLocker";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "feePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "onERC721Received";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "id";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "bytes";
readonly internalType: "bytes";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit2";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPermit2";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "placeLiquidity";
readonly inputs: readonly [{
readonly name: "lockerConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.LockerConfig";
readonly components: readonly [{
readonly name: "locker";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "lockerData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.PoolConfig";
readonly components: readonly [{
readonly name: "hook";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pairedToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickIfToken0IsClanker";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "poolData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "poolManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPoolManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "positionManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPositionManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "renounceOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "function";
readonly name: "tokenRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
readonly components: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "newOwner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "universalRouter";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IUniversalRouter";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "updateFeePreference";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardAdmin";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardRecipient";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "version";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "withdrawERC20";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "withdrawETH";
readonly inputs: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "ClaimedRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount0";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "amount1";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewards0";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}, {
readonly name: "rewards1";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeePreferenceUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldFeePreference";
readonly type: "uint8";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly indexed: true;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeesSwapped";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountSwapped";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "swappedToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountOut";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "InitialFeePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "feePreference";
readonly type: "uint8[]";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Received";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardAdminUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardRecipientUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenRewardAdded";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly indexed: false;
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "InvalidPositionBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidRewardBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedPositionInfos";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedRewardArrays";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoRewardRecipients";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "OwnableInvalidOwner";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OwnableUnauthorizedAccount";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ReentrancyGuardReentrantCall";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SafeERC20FailedOperation";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "TickRangeLowerThanStartingTick";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksBackwards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksNotMultipleOfTickSpacing";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksOutOfTickBounds";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyHasRewards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyRewardParticipants";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAddress";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAmount";
readonly inputs: readonly [];
}], "renounceOwnership" | "transferOwnership" | "collectRewards" | "onERC721Received" | "withdrawERC20" | "withdrawETH" | "collectRewardsWithoutUnlock" | "placeLiquidity" | "updateFeePreference" | "updateRewardAdmin" | "updateRewardRecipient"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Simulate updating the reward admin. Will use the wallet account on the Clanker class or
* the passed-in account.
*
* @param token The token to update the reward admin for
* @param rewardIndex The index of the reward to update
* @param newAdmin The new admin address
* @param account Optional account to simulate calling for
* @returns The simulated output
*/
updateRewardAdminSimulate({ token, rewardIndex, newAdmin, }: {
token: `0x${string}`;
rewardIndex: bigint;
newAdmin: `0x${string}`;
}, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "owner_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "factory_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "feeLocker_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "positionManager_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "permit2_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "universalRouter_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolManager_";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "BASIS_POINTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_LP_POSITIONS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_REWARD_PARTICIPANTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "collectRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "collectRewardsWithoutUnlock";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "factory";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feeLocker";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IClankerFeeLocker";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "feePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "onERC721Received";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "id";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "bytes";
readonly internalType: "bytes";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit2";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPermit2";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "placeLiquidity";
readonly inputs: readonly [{
readonly name: "lockerConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.LockerConfig";
readonly components: readonly [{
readonly name: "locker";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "lockerData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.PoolConfig";
readonly components: readonly [{
readonly name: "hook";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pairedToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickIfToken0IsClanker";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "poolData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "poolManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPoolManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "positionManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPositionManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "renounceOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "function";
readonly name: "tokenRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
readonly components: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "newOwner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "universalRouter";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IUniversalRouter";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "updateFeePreference";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardAdmin";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardRecipient";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "version";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "withdrawERC20";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "withdrawETH";
readonly inputs: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "ClaimedRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount0";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "amount1";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewards0";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}, {
readonly name: "rewards1";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeePreferenceUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldFeePreference";
readonly type: "uint8";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly indexed: true;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeesSwapped";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountSwapped";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "swappedToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountOut";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "InitialFeePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "feePreference";
readonly type: "uint8[]";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Received";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardAdminUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardRecipientUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenRewardAdded";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly indexed: false;
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "InvalidPositionBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidRewardBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedPositionInfos";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedRewardArrays";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoRewardRecipients";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "OwnableInvalidOwner";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OwnableUnauthorizedAccount";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ReentrancyGuardReentrantCall";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SafeERC20FailedOperation";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "TickRangeLowerThanStartingTick";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksBackwards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksNotMultipleOfTickSpacing";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksOutOfTickBounds";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyHasRewards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyRewardParticipants";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAddress";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAmount";
readonly inputs: readonly [];
}], "renounceOwnership" | "transferOwnership" | "collectRewards" | "onERC721Received" | "withdrawERC20" | "withdrawETH" | "collectRewardsWithoutUnlock" | "placeLiquidity" | "updateFeePreference" | "updateRewardAdmin" | "updateRewardRecipient"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Update the reward recipient for a token.
*
* @param token The token to update the reward recipient for
* @param rewardIndex The index of the reward to update
* @param newRecipient The new recipient address
* @returns Transaction hash of the update or error
*/
updateRewardRecipient({ token, rewardIndex, newRecipient, }: {
token: `0x${string}`;
rewardIndex: bigint;
newRecipient: `0x${string}`;
}): Promise<{
txHash: `0x${string}`;
error: undefined;
} | {
txHash: undefined;
error: ClankerError;
}>;
/**
* Update the reward admin for a token.
*
* @param token The token to update the reward admin for
* @param rewardIndex The index of the reward to update
* @param newAdmin The new admin address
* @returns Transaction hash of the update or error
*/
updateRewardAdmin({ token, rewardIndex, newAdmin, }: {
token: `0x${string}`;
rewardIndex: bigint;
newAdmin: `0x${string}`;
}): Promise<{
txHash: `0x${string}`;
error: undefined;
} | {
txHash: undefined;
error: ClankerError;
}>;
/**
* Get an abi-typed transaction for claiming vaulted tokens.
*
* @param token The token to claim for
* @returns Abi transaction
*/
getVaultClaimTransaction({ token }: {
token: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<any>;
/**
* Claim vaulted tokens for a clanker token.
*
* @param token Token to claim vaulted tokens for
* @returns Transaction hash of the claim or error
*/
claimVaultedTokens({ token }: {
token: `0x${string}`;
}): Promise<({
txHash: `0x${string}`;
} & {
error?: undefined;
}) | ({
txHash?: undefined;
} & {
error: ClankerError;
})>;
/**
* Get the amount of vaulted tokens available to claim.
*
* @param token Token to check claimable vault amount for
* @returns Amount of tokens available to claim
*/
getVaultClaimableAmount({ token }: {
token: `0x${string}`;
}): Promise<bigint>;
/**
* Get the transaction object for claiming vaulted tokens (for offline signing or inspection).
*
* @param token The token to claim for
* @param chainId Optional chain ID to override default
* @returns Transaction object for claiming vaulted tokens
*/
static getVaultClaimTransactionObject({ token, chainId, vaultAddress, }: {
token: `0x${string}`;
chainId?: number;
vaultAddress?: `0x${string}`;
}): {
address: `0x${string}`;
abi: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "factory_";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "MIN_LOCKUP_DURATION";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "allocation";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "amountTotal";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "amountClaimed";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "lockupEndTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "vestingEndTime";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "admin";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "amountAvailableToClaim";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "claim";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "editAllocationAdmin";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "factory";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "receiveTokens";
readonly inputs: readonly [{
readonly name: "deploymentConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.DeploymentConfig";
readonly components: readonly [{
readonly name: "tokenConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.TokenConfig";
readonly components: readonly [{
readonly name: "tokenAdmin";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "metadata";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "context";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "originatingChainId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly name: "poolConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.PoolConfig";
readonly components: readonly [{
readonly name: "hook";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pairedToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickIfToken0IsClanker";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "poolData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "lockerConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.LockerConfig";
readonly components: readonly [{
readonly name: "locker";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "lockerData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "mevModuleConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.MevModuleConfig";
readonly components: readonly [{
readonly name: "mevModule";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "mevModuleData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "extensionConfigs";
readonly type: "tuple[]";
readonly internalType: "struct IClanker.ExtensionConfig[]";
readonly components: readonly [{
readonly name: "extension";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "msgValue";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extensionBps";
readonly type: "uint16";
readonly internalType: "uint16";
}, {
readonly name: "extensionData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}];
}, {
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "extensionSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "extensionIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "payable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "event";
readonly name: "AllocationAdminUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "AllocationClaimed";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "remainingAmount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "AllocationCreated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "admin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "supply";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "lockupDuration";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "vestingDuration";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "AllocationAlreadyExists";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "AllocationNotUnlocked";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidMsgValue";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidVaultAdmin";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidVaultBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoBalanceToClaim";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ReentrancyGuardReentrantCall";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TransferFailed";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "VaultLockupDurationTooShort";
readonly inputs: readonly [];
}];
functionName: string;
args: `0x${string}`[];
chainId: number | undefined;
};
/**
* Get an abi-typed transaction for updating the token image.
*
* @param token The token to update the image for
* @param newImage The new image URL
* @param options Optional chain configuration
* @returns Abi transaction
*/
getUpdateImageTransaction({ token, newImage }: {
token: `0x${string}`;
newImage: string;
}, options?: {
chain?: Chain;
}): Promise<ClankerTransactionConfig<typeof ClankerToken_v4_abi>>;
/**
* Get an abi-typed transaction for updating the token metadata.
*
* @param token The token to update the metadata for
* @param metadata The new metadata object
* @param options Optional chain configuration
* @returns Abi transaction
*/
getUpdateMetadataTransaction({ token, metadata }: {
token: `0x${string}`;
metadata: string;
}, options?: {
chain?: Chain;
}): Promise<ClankerTransactionConfig<typeof ClankerToken_v4_abi>>;
/**
* Simulate updating the token image. Will use the wallet account on the Clanker class or
* the passed-in account.
*
* @param token The token to update the image for
* @param newImage The new image URL
* @param account Optional account to simulate calling for
* @returns The simulated output
*/
updateImageSimulate({ token, newImage }: {
token: `0x${string}`;
newImage: string;
}, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "name_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "maxSupply_";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "admin_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "image_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "metadata_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "context_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "initialSupplyChainId_";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "CLOCK_MODE";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "DOMAIN_SEPARATOR";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "admin";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "allData";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "originalAdmin";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "admin";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "metadata";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "context";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "allowance";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "approve";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "balanceOf";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "burn";
readonly inputs: readonly [{
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "burnFrom";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "checkpoints";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pos";
readonly type: "uint32";
readonly internalType: "uint32";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct Checkpoints.Checkpoint208";
readonly components: readonly [{
readonly name: "_key";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "_value";
readonly type: "uint208";
readonly internalType: "uint208";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "clock";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint48";
readonly internalType: "uint48";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "context";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "crosschainBurn";
readonly inputs: readonly [{
readonly name: "_from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_amount";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "crosschainMint";
readonly inputs: readonly [{
readonly name: "_to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_amount";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "decimals";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint8";
readonly internalType: "uint8";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "delegate";
readonly inputs: readonly [{
readonly name: "delegatee";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "delegateBySig";
readonly inputs: readonly [{
readonly name: "delegatee";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "nonce";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "expiry";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "v";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "r";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "delegates";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "eip712Domain";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "fields";
readonly type: "bytes1";
readonly internalType: "bytes1";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "version";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "chainId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "verifyingContract";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "extensions";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getPastTotalSupply";
readonly inputs: readonly [{
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getPastVotes";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getVotes";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "imageUrl";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "isVerified";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "metadata";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "name";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "nonces";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "numCheckpoints";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint32";
readonly internalType: "uint32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "originalAdmin";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "deadline";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "v";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "r";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "_interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "function";
readonly name: "symbol";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "totalSupply";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transfer";
readonly inputs: readonly [{
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "transferFrom";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateAdmin";
readonly inputs: readonly [{
readonly name: "admin_";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateImage";
readonly inputs: readonly [{
readonly name: "image_";
readonly type: "string";
readonly internalType: "string";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateMetadata";
readonly inputs: readonly [{
readonly name: "metadata_";
readonly type: "string";
readonly internalType: "string";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "verify";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "Approval";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "CrosschainBurn";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "sender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "CrosschainMint";
readonly inputs: readonly [{
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "sender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "DelegateChanged";
readonly inputs: readonly [{
readonly name: "delegator";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "fromDelegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "toDelegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "DelegateVotesChanged";
readonly inputs: readonly [{
readonly name: "delegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "previousVotes";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "newVotes";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "EIP712DomainChanged";
readonly inputs: readonly [];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Transfer";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateAdmin";
readonly inputs: readonly [{
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateImage";
readonly inputs: readonly [{
readonly name: "image";
readonly type: "string";
readonly indexed: false;
readonly internalType: "string";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateMetadata";
readonly inputs: readonly [{
readonly name: "metadata";
readonly type: "string";
readonly indexed: false;
readonly internalType: "string";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Verified";
readonly inputs: readonly [{
readonly name: "admin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "AlreadyVerified";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "CheckpointUnorderedInsertion";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignature";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignatureLength";
readonly inputs: readonly [{
readonly name: "length";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignatureS";
readonly inputs: readonly [{
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
}, {
readonly type: "error";
readonly name: "ERC20ExceededSafeSupply";
readonly inputs: readonly [{
readonly name: "increasedSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "cap";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InsufficientAllowance";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "needed";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InsufficientBalance";
readonly inputs: readonly [{
readonly name: "sender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "balance";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "needed";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidApprover";
readonly inputs: readonly [{
readonly name: "approver";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidReceiver";
readonly inputs: readonly [{
readonly name: "receiver";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidSender";
readonly inputs: readonly [{
readonly name: "sender";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidSpender";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC2612ExpiredSignature";
readonly inputs: readonly [{
readonly name: "deadline";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC2612InvalidSigner";
readonly inputs: readonly [{
readonly name: "signer";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC5805FutureLookup";
readonly inputs: readonly [{
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "clock";
readonly type: "uint48";
readonly internalType: "uint48";
}];
}, {
readonly type: "error";
readonly name: "ERC6372InconsistentClock";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidAccountNonce";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "currentNonce";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "InvalidShortString";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NotAdmin";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NotOriginalAdmin";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SafeCastOverflowedUintDowncast";
readonly inputs: readonly [{
readonly name: "bits";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "StringTooLong";
readonly inputs: readonly [{
readonly name: "str";
readonly type: "string";
readonly internalType: "string";
}];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "VotesExpiredSignature";
readonly inputs: readonly [{
readonly name: "expiry";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}], "approve" | "burn" | "burnFrom" | "crosschainBurn" | "crosschainMint" | "delegate" | "delegateBySig" | "permit" | "transfer" | "transferFrom" | "updateImage" | "updateMetadata" | "verify" | "updateAdmin"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Simulate updating the token metadata. Will use the wallet account on the Clanker class or
* the passed-in account.
*
* @param token The token to update the metadata for
* @param metadata The new metadata object
* @param account Optional account to simulate calling for
* @returns The simulated output
*/
updateMetadataSimulate({ token, metadata }: {
token: `0x${string}`;
metadata: string;
}, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "name_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "symbol_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "maxSupply_";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "admin_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "image_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "metadata_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "context_";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "initialSupplyChainId_";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "CLOCK_MODE";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "DOMAIN_SEPARATOR";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "admin";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "allData";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "originalAdmin";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "admin";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "image";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "metadata";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "context";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "allowance";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "approve";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "balanceOf";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "burn";
readonly inputs: readonly [{
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "burnFrom";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "checkpoints";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pos";
readonly type: "uint32";
readonly internalType: "uint32";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct Checkpoints.Checkpoint208";
readonly components: readonly [{
readonly name: "_key";
readonly type: "uint48";
readonly internalType: "uint48";
}, {
readonly name: "_value";
readonly type: "uint208";
readonly internalType: "uint208";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "clock";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint48";
readonly internalType: "uint48";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "context";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "crosschainBurn";
readonly inputs: readonly [{
readonly name: "_from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_amount";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "crosschainMint";
readonly inputs: readonly [{
readonly name: "_to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "_amount";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "decimals";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint8";
readonly internalType: "uint8";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "delegate";
readonly inputs: readonly [{
readonly name: "delegatee";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "delegateBySig";
readonly inputs: readonly [{
readonly name: "delegatee";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "nonce";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "expiry";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "v";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "r";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "delegates";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "eip712Domain";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "fields";
readonly type: "bytes1";
readonly internalType: "bytes1";
}, {
readonly name: "name";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "version";
readonly type: "string";
readonly internalType: "string";
}, {
readonly name: "chainId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "verifyingContract";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "salt";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "extensions";
readonly type: "uint256[]";
readonly internalType: "uint256[]";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getPastTotalSupply";
readonly inputs: readonly [{
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getPastVotes";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "getVotes";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "imageUrl";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "isVerified";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "metadata";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "name";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "nonces";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "numCheckpoints";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint32";
readonly internalType: "uint32";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "originalAdmin";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "deadline";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "v";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "r";
readonly type: "bytes32";
readonly internalType: "bytes32";
}, {
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "_interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "function";
readonly name: "symbol";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "totalSupply";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transfer";
readonly inputs: readonly [{
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "transferFrom";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateAdmin";
readonly inputs: readonly [{
readonly name: "admin_";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateImage";
readonly inputs: readonly [{
readonly name: "image_";
readonly type: "string";
readonly internalType: "string";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateMetadata";
readonly inputs: readonly [{
readonly name: "metadata_";
readonly type: "string";
readonly internalType: "string";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "verify";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "Approval";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "spender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "CrosschainBurn";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "sender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "CrosschainMint";
readonly inputs: readonly [{
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "sender";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "DelegateChanged";
readonly inputs: readonly [{
readonly name: "delegator";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "fromDelegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "toDelegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "DelegateVotesChanged";
readonly inputs: readonly [{
readonly name: "delegate";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "previousVotes";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "newVotes";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "EIP712DomainChanged";
readonly inputs: readonly [];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Transfer";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "to";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "value";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateAdmin";
readonly inputs: readonly [{
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateImage";
readonly inputs: readonly [{
readonly name: "image";
readonly type: "string";
readonly indexed: false;
readonly internalType: "string";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "UpdateMetadata";
readonly inputs: readonly [{
readonly name: "metadata";
readonly type: "string";
readonly indexed: false;
readonly internalType: "string";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Verified";
readonly inputs: readonly [{
readonly name: "admin";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "AlreadyVerified";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "CheckpointUnorderedInsertion";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignature";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignatureLength";
readonly inputs: readonly [{
readonly name: "length";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ECDSAInvalidSignatureS";
readonly inputs: readonly [{
readonly name: "s";
readonly type: "bytes32";
readonly internalType: "bytes32";
}];
}, {
readonly type: "error";
readonly name: "ERC20ExceededSafeSupply";
readonly inputs: readonly [{
readonly name: "increasedSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "cap";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InsufficientAllowance";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "allowance";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "needed";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InsufficientBalance";
readonly inputs: readonly [{
readonly name: "sender";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "balance";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "needed";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidApprover";
readonly inputs: readonly [{
readonly name: "approver";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidReceiver";
readonly inputs: readonly [{
readonly name: "receiver";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidSender";
readonly inputs: readonly [{
readonly name: "sender";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC20InvalidSpender";
readonly inputs: readonly [{
readonly name: "spender";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC2612ExpiredSignature";
readonly inputs: readonly [{
readonly name: "deadline";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "ERC2612InvalidSigner";
readonly inputs: readonly [{
readonly name: "signer";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ERC5805FutureLookup";
readonly inputs: readonly [{
readonly name: "timepoint";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "clock";
readonly type: "uint48";
readonly internalType: "uint48";
}];
}, {
readonly type: "error";
readonly name: "ERC6372InconsistentClock";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidAccountNonce";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "currentNonce";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "InvalidShortString";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NotAdmin";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NotOriginalAdmin";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SafeCastOverflowedUintDowncast";
readonly inputs: readonly [{
readonly name: "bits";
readonly type: "uint8";
readonly internalType: "uint8";
}, {
readonly name: "value";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}, {
readonly type: "error";
readonly name: "StringTooLong";
readonly inputs: readonly [{
readonly name: "str";
readonly type: "string";
readonly internalType: "string";
}];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "VotesExpiredSignature";
readonly inputs: readonly [{
readonly name: "expiry";
readonly type: "uint256";
readonly internalType: "uint256";
}];
}], "approve" | "burn" | "burnFrom" | "crosschainBurn" | "crosschainMint" | "delegate" | "delegateBySig" | "permit" | "transfer" | "transferFrom" | "updateImage" | "updateMetadata" | "verify" | "updateAdmin"> & {
error?: undefined;
}) | ({
result?: undefined;
request?: undefined;
} & {
error: ClankerError;
})>;
/**
* Update the token image.
*
* @param token The token to update the image for
* @param newImage The new image URL
* @returns Transaction hash of the update or error
*/
updateImage({ token, newImage, }: {
token: `0x${string}`;
newImage: string;
}): Promise<{
txHash: `0x${string}`;
error: undefined;
} | {
txHash: undefined;
error: ClankerError;
}>;
/**
* Update the token metadata.
*
* @param token The token to update the metadata for
* @param metadata The new metadata object
* @returns Transaction hash of the update or error
*/
updateMetadata({ token, metadata, }: {
token: `0x${string}`;
metadata: string;
}): Promise<{
txHash: `0x${string}`;
error: undefined;
} | {
txHash: undefined;
error: ClankerError;
}>;
/**
* Get the transaction config for reading token rewards information from the locker contract.
*
* @param token The token address to get rewards info for
* @param options Optional chain configuration
* @returns Abi transaction config for reading token rewards
*/
getTokenRewardsTransaction({ token }: {
token: `0x${string}`;
}, options?: {
chain?: Chain;
}): Promise<{
readonly address: `0x${string}`;
readonly abi: readonly [{
readonly type: "constructor";
readonly inputs: readonly [{
readonly name: "owner_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "factory_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "feeLocker_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "positionManager_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "permit2_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "universalRouter_";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolManager_";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "BASIS_POINTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_LP_POSITIONS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "MAX_REWARD_PARTICIPANTS";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "collectRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "collectRewardsWithoutUnlock";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "factory";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feeLocker";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IClankerFeeLocker";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "feePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly outputs: readonly [{
readonly name: "feePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "onERC721Received";
readonly inputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "from";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "id";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "";
readonly type: "bytes";
readonly internalType: "bytes";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "owner";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "address";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "permit2";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPermit2";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "placeLiquidity";
readonly inputs: readonly [{
readonly name: "lockerConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.LockerConfig";
readonly components: readonly [{
readonly name: "locker";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "lockerData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolConfig";
readonly type: "tuple";
readonly internalType: "struct IClanker.PoolConfig";
readonly components: readonly [{
readonly name: "hook";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "pairedToken";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "tickIfToken0IsClanker";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "poolData";
readonly type: "bytes";
readonly internalType: "bytes";
}];
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "poolManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPoolManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "positionManager";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IPositionManager";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "renounceOwnership";
readonly inputs: readonly [];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "supportsInterface";
readonly inputs: readonly [{
readonly name: "interfaceId";
readonly type: "bytes4";
readonly internalType: "bytes4";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "bool";
readonly internalType: "bool";
}];
readonly stateMutability: "pure";
}, {
readonly type: "function";
readonly name: "tokenRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [{
readonly name: "";
readonly type: "tuple";
readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
readonly components: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly internalType: "address[]";
}];
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "transferOwnership";
readonly inputs: readonly [{
readonly name: "newOwner";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "universalRouter";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "address";
readonly internalType: "contract IUniversalRouter";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "updateFeePreference";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardAdmin";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "updateRewardRecipient";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly internalType: "uint256";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "version";
readonly inputs: readonly [];
readonly outputs: readonly [{
readonly name: "";
readonly type: "string";
readonly internalType: "string";
}];
readonly stateMutability: "view";
}, {
readonly type: "function";
readonly name: "withdrawERC20";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}, {
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "function";
readonly name: "withdrawETH";
readonly inputs: readonly [{
readonly name: "recipient";
readonly type: "address";
readonly internalType: "address";
}];
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
}, {
readonly type: "event";
readonly name: "ClaimedRewards";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amount0";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "amount1";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewards0";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}, {
readonly name: "rewards1";
readonly type: "uint256[]";
readonly indexed: false;
readonly internalType: "uint256[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeePreferenceUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldFeePreference";
readonly type: "uint8";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}, {
readonly name: "newFeePreference";
readonly type: "uint8";
readonly indexed: true;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "FeesSwapped";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountSwapped";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "swappedToken";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "amountOut";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "InitialFeePreferences";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "feePreference";
readonly type: "uint8[]";
readonly indexed: false;
readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "OwnershipTransferred";
readonly inputs: readonly [{
readonly name: "previousOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "newOwner";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "Received";
readonly inputs: readonly [{
readonly name: "from";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardAdminUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newAdmin";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "RewardRecipientUpdated";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: true;
readonly internalType: "address";
}, {
readonly name: "rewardIndex";
readonly type: "uint256";
readonly indexed: true;
readonly internalType: "uint256";
}, {
readonly name: "oldRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "newRecipient";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}];
readonly anonymous: false;
}, {
readonly type: "event";
readonly name: "TokenRewardAdded";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly indexed: false;
readonly internalType: "address";
}, {
readonly name: "poolKey";
readonly type: "tuple";
readonly indexed: false;
readonly internalType: "struct PoolKey";
readonly components: readonly [{
readonly name: "currency0";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "currency1";
readonly type: "address";
readonly internalType: "Currency";
}, {
readonly name: "fee";
readonly type: "uint24";
readonly internalType: "uint24";
}, {
readonly name: "tickSpacing";
readonly type: "int24";
readonly internalType: "int24";
}, {
readonly name: "hooks";
readonly type: "address";
readonly internalType: "contract IHooks";
}];
}, {
readonly name: "poolSupply";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "positionId";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "numPositions";
readonly type: "uint256";
readonly indexed: false;
readonly internalType: "uint256";
}, {
readonly name: "rewardBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}, {
readonly name: "rewardAdmins";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "rewardRecipients";
readonly type: "address[]";
readonly indexed: false;
readonly internalType: "address[]";
}, {
readonly name: "tickLower";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "tickUpper";
readonly type: "int24[]";
readonly indexed: false;
readonly internalType: "int24[]";
}, {
readonly name: "positionBps";
readonly type: "uint16[]";
readonly indexed: false;
readonly internalType: "uint16[]";
}];
readonly anonymous: false;
}, {
readonly type: "error";
readonly name: "InvalidPositionBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "InvalidRewardBps";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedPositionInfos";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "MismatchedRewardArrays";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "NoRewardRecipients";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "OwnableInvalidOwner";
readonly inputs: readonly [{
readonly name: "owner";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "OwnableUnauthorizedAccount";
readonly inputs: readonly [{
readonly name: "account";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "ReentrancyGuardReentrantCall";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "SafeERC20FailedOperation";
readonly inputs: readonly [{
readonly name: "token";
readonly type: "address";
readonly internalType: "address";
}];
}, {
readonly type: "error";
readonly name: "TickRangeLowerThanStartingTick";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksBackwards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksNotMultipleOfTickSpacing";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TicksOutOfTickBounds";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TokenAlreadyHasRewards";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyPositions";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "TooManyRewardParticipants";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "Unauthorized";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAddress";
readonly inputs: readonly [];
}, {
readonly type: "error";
readonly name: "ZeroRewardAmount";
readonly inputs: readonly [];
}];
readonly functionName: "tokenRewards";
readonly args: readonly [`0x${string}`];
}>;
/**
* 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)
*
* @param token The token address to get rewards info for
* @returns Token rewards information including rewardAdmins and rewardRecipients arrays
*/
getTokenRewards({ token }: {
token: `0x${string}`;
}): Promise<{
token: `0x${string}`;
poolKey: {
currency0: `0x${string}`;
currency1: `0x${string}`;
fee: number;
tickSpacing: number;
hooks: `0x${string}`;
};
positionId: bigint;
numPositions: bigint;
rewardBps: readonly number[];
rewardAdmins: readonly `0x${string}`[];
rewardRecipients: readonly `0x${string}`[];
}>;
}
export { Clanker };