clanker-sdk
Version:
SDK for deploying tokens using Clanker
1,178 lines (1,175 loc) • 435 kB
JavaScript
// src/v4/index.ts
import { base as base3 } from "viem/chains";
// src/abi/v4/ClankerFeeLocker.ts
var ClankerFeeLocker_abi = [
{
inputs: [{ internalType: "address", name: "owner_", type: "address" }],
stateMutability: "nonpayable",
type: "constructor"
},
{ inputs: [], name: "ClaimAmountTooHigh", type: "error" },
{ inputs: [], name: "InvalidRecipient", type: "error" },
{ inputs: [], name: "NoFeesToClaim", type: "error" },
{
inputs: [{ internalType: "address", name: "owner", type: "address" }],
name: "OwnableInvalidOwner",
type: "error"
},
{
inputs: [{ internalType: "address", name: "account", type: "address" }],
name: "OwnableUnauthorizedAccount",
type: "error"
},
{ inputs: [], name: "ReentrancyGuardReentrantCall", type: "error" },
{
inputs: [{ internalType: "address", name: "token", type: "address" }],
name: "SafeERC20FailedOperation",
type: "error"
},
{ inputs: [], name: "TransferFailed", type: "error" },
{ inputs: [], name: "Unauthorized", type: "error" },
{
anonymous: false,
inputs: [{ indexed: true, internalType: "address", name: "depositor", type: "address" }],
name: "AddDepositor",
type: "event"
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "feeOwner", type: "address" },
{ indexed: true, internalType: "address", name: "token", type: "address" },
{ indexed: false, internalType: "uint256", name: "amountClaimed", type: "uint256" }
],
name: "ClaimTokens",
type: "event"
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "feeOwner", type: "address" },
{ indexed: true, internalType: "address", name: "token", type: "address" },
{ indexed: false, internalType: "address", name: "recipient", type: "address" },
{ indexed: false, internalType: "uint256", name: "amountClaimed", type: "uint256" }
],
name: "ClaimTokensPermissioned",
type: "event"
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "previousOwner", type: "address" },
{ indexed: true, internalType: "address", name: "newOwner", type: "address" }
],
name: "OwnershipTransferred",
type: "event"
},
{
anonymous: false,
inputs: [
{ indexed: true, internalType: "address", name: "sender", type: "address" },
{ indexed: true, internalType: "address", name: "feeOwner", type: "address" },
{ indexed: true, internalType: "address", name: "token", type: "address" },
{ indexed: false, internalType: "uint256", name: "balance", type: "uint256" },
{ indexed: false, internalType: "uint256", name: "amount", type: "uint256" }
],
name: "StoreTokens",
type: "event"
},
{
inputs: [{ internalType: "address", name: "depositor", type: "address" }],
name: "addDepositor",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [{ internalType: "address", name: "depositor", type: "address" }],
name: "allowedDepositors",
outputs: [{ internalType: "bool", name: "isAllowed", type: "bool" }],
stateMutability: "view",
type: "function"
},
{
inputs: [
{ internalType: "address", name: "feeOwner", type: "address" },
{ internalType: "address", name: "token", type: "address" }
],
name: "availableFees",
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
stateMutability: "view",
type: "function"
},
{
inputs: [
{ internalType: "address", name: "feeOwner", type: "address" },
{ internalType: "address", name: "token", type: "address" }
],
name: "claim",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{ internalType: "address", name: "feeOwner", type: "address" },
{ internalType: "address", name: "token", type: "address" }
],
name: "feesToClaim",
outputs: [{ internalType: "uint256", name: "balance", type: "uint256" }],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "owner",
outputs: [{ internalType: "address", name: "", type: "address" }],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{ internalType: "address", name: "feeOwner", type: "address" },
{ internalType: "address", name: "token", type: "address" },
{ internalType: "uint256", name: "amount", type: "uint256" }
],
name: "storeFees",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [{ internalType: "bytes4", name: "interfaceId", type: "bytes4" }],
name: "supportsInterface",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "pure",
type: "function"
},
{
inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}
];
// src/abi/v4/ClankerLocker.ts
var ClankerLocker_v4_abi = [
{
type: "constructor",
inputs: [
{ name: "owner_", type: "address", internalType: "address" },
{ name: "factory_", type: "address", internalType: "address" },
{ name: "feeLocker_", type: "address", internalType: "address" },
{ name: "positionManager_", type: "address", internalType: "address" },
{ name: "permit2_", type: "address", internalType: "address" },
{ name: "universalRouter_", type: "address", internalType: "address" },
{ name: "poolManager_", type: "address", internalType: "address" }
],
stateMutability: "nonpayable"
},
{
type: "function",
name: "BASIS_POINTS",
inputs: [],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "MAX_LP_POSITIONS",
inputs: [],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "MAX_REWARD_PARTICIPANTS",
inputs: [],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "collectRewards",
inputs: [{ name: "token", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "collectRewardsWithoutUnlock",
inputs: [{ name: "token", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "factory",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "address" }],
stateMutability: "view"
},
{
type: "function",
name: "feeLocker",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "contract IClankerFeeLocker" }],
stateMutability: "view"
},
{
type: "function",
name: "feePreferences",
inputs: [
{ name: "token", type: "address", internalType: "address" },
{ name: "", type: "uint256", internalType: "uint256" }
],
outputs: [
{
name: "feePreference",
type: "uint8",
internalType: "enum IClankerLpLockerFeeConversion.FeeIn"
}
],
stateMutability: "view"
},
{
type: "function",
name: "onERC721Received",
inputs: [
{ name: "", type: "address", internalType: "address" },
{ name: "from", type: "address", internalType: "address" },
{ name: "id", type: "uint256", internalType: "uint256" },
{ name: "", type: "bytes", internalType: "bytes" }
],
outputs: [{ name: "", type: "bytes4", internalType: "bytes4" }],
stateMutability: "nonpayable"
},
{
type: "function",
name: "owner",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "address" }],
stateMutability: "view"
},
{
type: "function",
name: "permit2",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "contract IPermit2" }],
stateMutability: "view"
},
{
type: "function",
name: "placeLiquidity",
inputs: [
{
name: "lockerConfig",
type: "tuple",
internalType: "struct IClanker.LockerConfig",
components: [
{ name: "locker", type: "address", internalType: "address" },
{ name: "rewardAdmins", type: "address[]", internalType: "address[]" },
{ name: "rewardRecipients", type: "address[]", internalType: "address[]" },
{ name: "rewardBps", type: "uint16[]", internalType: "uint16[]" },
{ name: "tickLower", type: "int24[]", internalType: "int24[]" },
{ name: "tickUpper", type: "int24[]", internalType: "int24[]" },
{ name: "positionBps", type: "uint16[]", internalType: "uint16[]" },
{ name: "lockerData", type: "bytes", internalType: "bytes" }
]
},
{
name: "poolConfig",
type: "tuple",
internalType: "struct IClanker.PoolConfig",
components: [
{ name: "hook", type: "address", internalType: "address" },
{ name: "pairedToken", type: "address", internalType: "address" },
{ name: "tickIfToken0IsClanker", type: "int24", internalType: "int24" },
{ name: "tickSpacing", type: "int24", internalType: "int24" },
{ name: "poolData", type: "bytes", internalType: "bytes" }
]
},
{
name: "poolKey",
type: "tuple",
internalType: "struct PoolKey",
components: [
{ name: "currency0", type: "address", internalType: "Currency" },
{ name: "currency1", type: "address", internalType: "Currency" },
{ name: "fee", type: "uint24", internalType: "uint24" },
{ name: "tickSpacing", type: "int24", internalType: "int24" },
{ name: "hooks", type: "address", internalType: "contract IHooks" }
]
},
{ name: "poolSupply", type: "uint256", internalType: "uint256" },
{ name: "token", type: "address", internalType: "address" }
],
outputs: [{ name: "positionId", type: "uint256", internalType: "uint256" }],
stateMutability: "nonpayable"
},
{
type: "function",
name: "poolManager",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "contract IPoolManager" }],
stateMutability: "view"
},
{
type: "function",
name: "positionManager",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "contract IPositionManager" }],
stateMutability: "view"
},
{
type: "function",
name: "renounceOwnership",
inputs: [],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "supportsInterface",
inputs: [{ name: "interfaceId", type: "bytes4", internalType: "bytes4" }],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "pure"
},
{
type: "function",
name: "tokenRewards",
inputs: [{ name: "token", type: "address", internalType: "address" }],
outputs: [
{
name: "",
type: "tuple",
internalType: "struct IClankerLpLocker.TokenRewardInfo",
components: [
{ name: "token", type: "address", internalType: "address" },
{
name: "poolKey",
type: "tuple",
internalType: "struct PoolKey",
components: [
{ name: "currency0", type: "address", internalType: "Currency" },
{ name: "currency1", type: "address", internalType: "Currency" },
{ name: "fee", type: "uint24", internalType: "uint24" },
{ name: "tickSpacing", type: "int24", internalType: "int24" },
{ name: "hooks", type: "address", internalType: "contract IHooks" }
]
},
{ name: "positionId", type: "uint256", internalType: "uint256" },
{ name: "numPositions", type: "uint256", internalType: "uint256" },
{ name: "rewardBps", type: "uint16[]", internalType: "uint16[]" },
{ name: "rewardAdmins", type: "address[]", internalType: "address[]" },
{ name: "rewardRecipients", type: "address[]", internalType: "address[]" }
]
}
],
stateMutability: "view"
},
{
type: "function",
name: "transferOwnership",
inputs: [{ name: "newOwner", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "universalRouter",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "contract IUniversalRouter" }],
stateMutability: "view"
},
{
type: "function",
name: "updateFeePreference",
inputs: [
{ name: "token", type: "address", internalType: "address" },
{ name: "rewardIndex", type: "uint256", internalType: "uint256" },
{
name: "newFeePreference",
type: "uint8",
internalType: "enum IClankerLpLockerFeeConversion.FeeIn"
}
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "updateRewardAdmin",
inputs: [
{ name: "token", type: "address", internalType: "address" },
{ name: "rewardIndex", type: "uint256", internalType: "uint256" },
{ name: "newAdmin", type: "address", internalType: "address" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "updateRewardRecipient",
inputs: [
{ name: "token", type: "address", internalType: "address" },
{ name: "rewardIndex", type: "uint256", internalType: "uint256" },
{ name: "newRecipient", type: "address", internalType: "address" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "version",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "withdrawERC20",
inputs: [
{ name: "token", type: "address", internalType: "address" },
{ name: "recipient", type: "address", internalType: "address" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "withdrawETH",
inputs: [{ name: "recipient", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "event",
name: "ClaimedRewards",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{ name: "amount0", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "amount1", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "rewards0", type: "uint256[]", indexed: false, internalType: "uint256[]" },
{ name: "rewards1", type: "uint256[]", indexed: false, internalType: "uint256[]" }
],
anonymous: false
},
{
type: "event",
name: "FeePreferenceUpdated",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{ name: "rewardIndex", type: "uint256", indexed: true, internalType: "uint256" },
{
name: "oldFeePreference",
type: "uint8",
indexed: false,
internalType: "enum IClankerLpLockerFeeConversion.FeeIn"
},
{
name: "newFeePreference",
type: "uint8",
indexed: true,
internalType: "enum IClankerLpLockerFeeConversion.FeeIn"
}
],
anonymous: false
},
{
type: "event",
name: "FeesSwapped",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{ name: "rewardToken", type: "address", indexed: true, internalType: "address" },
{ name: "amountSwapped", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "swappedToken", type: "address", indexed: true, internalType: "address" },
{ name: "amountOut", type: "uint256", indexed: false, internalType: "uint256" }
],
anonymous: false
},
{
type: "event",
name: "InitialFeePreferences",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{
name: "feePreference",
type: "uint8[]",
indexed: false,
internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]"
}
],
anonymous: false
},
{
type: "event",
name: "OwnershipTransferred",
inputs: [
{ name: "previousOwner", type: "address", indexed: true, internalType: "address" },
{ name: "newOwner", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "Received",
inputs: [
{ name: "from", type: "address", indexed: true, internalType: "address" },
{ name: "positionId", type: "uint256", indexed: false, internalType: "uint256" }
],
anonymous: false
},
{
type: "event",
name: "RewardAdminUpdated",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{ name: "rewardIndex", type: "uint256", indexed: true, internalType: "uint256" },
{ name: "oldAdmin", type: "address", indexed: false, internalType: "address" },
{ name: "newAdmin", type: "address", indexed: false, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "RewardRecipientUpdated",
inputs: [
{ name: "token", type: "address", indexed: true, internalType: "address" },
{ name: "rewardIndex", type: "uint256", indexed: true, internalType: "uint256" },
{ name: "oldRecipient", type: "address", indexed: false, internalType: "address" },
{ name: "newRecipient", type: "address", indexed: false, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "TokenRewardAdded",
inputs: [
{ name: "token", type: "address", indexed: false, internalType: "address" },
{
name: "poolKey",
type: "tuple",
indexed: false,
internalType: "struct PoolKey",
components: [
{ name: "currency0", type: "address", internalType: "Currency" },
{ name: "currency1", type: "address", internalType: "Currency" },
{ name: "fee", type: "uint24", internalType: "uint24" },
{ name: "tickSpacing", type: "int24", internalType: "int24" },
{ name: "hooks", type: "address", internalType: "contract IHooks" }
]
},
{ name: "poolSupply", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "positionId", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "numPositions", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "rewardBps", type: "uint16[]", indexed: false, internalType: "uint16[]" },
{ name: "rewardAdmins", type: "address[]", indexed: false, internalType: "address[]" },
{ name: "rewardRecipients", type: "address[]", indexed: false, internalType: "address[]" },
{ name: "tickLower", type: "int24[]", indexed: false, internalType: "int24[]" },
{ name: "tickUpper", type: "int24[]", indexed: false, internalType: "int24[]" },
{ name: "positionBps", type: "uint16[]", indexed: false, internalType: "uint16[]" }
],
anonymous: false
},
{ type: "error", name: "InvalidPositionBps", inputs: [] },
{ type: "error", name: "InvalidRewardBps", inputs: [] },
{ type: "error", name: "MismatchedPositionInfos", inputs: [] },
{ type: "error", name: "MismatchedRewardArrays", inputs: [] },
{ type: "error", name: "NoPositions", inputs: [] },
{ type: "error", name: "NoRewardRecipients", inputs: [] },
{
type: "error",
name: "OwnableInvalidOwner",
inputs: [{ name: "owner", type: "address", internalType: "address" }]
},
{
type: "error",
name: "OwnableUnauthorizedAccount",
inputs: [{ name: "account", type: "address", internalType: "address" }]
},
{ type: "error", name: "ReentrancyGuardReentrantCall", inputs: [] },
{
type: "error",
name: "SafeERC20FailedOperation",
inputs: [{ name: "token", type: "address", internalType: "address" }]
},
{ type: "error", name: "TickRangeLowerThanStartingTick", inputs: [] },
{ type: "error", name: "TicksBackwards", inputs: [] },
{ type: "error", name: "TicksNotMultipleOfTickSpacing", inputs: [] },
{ type: "error", name: "TicksOutOfTickBounds", inputs: [] },
{ type: "error", name: "TokenAlreadyHasRewards", inputs: [] },
{ type: "error", name: "TooManyPositions", inputs: [] },
{ type: "error", name: "TooManyRewardParticipants", inputs: [] },
{ type: "error", name: "Unauthorized", inputs: [] },
{ type: "error", name: "ZeroRewardAddress", inputs: [] },
{ type: "error", name: "ZeroRewardAmount", inputs: [] }
];
var ClankerLpLocker_Instantiation_v4_abi = [
{
type: "tuple",
components: [{ type: "uint8[]", name: "feePreference" }]
}
];
// src/abi/v4/ClankerToken.ts
var ClankerToken_v4_abi = [
{
type: "constructor",
inputs: [
{ name: "name_", type: "string", internalType: "string" },
{ name: "symbol_", type: "string", internalType: "string" },
{ name: "maxSupply_", type: "uint256", internalType: "uint256" },
{ name: "admin_", type: "address", internalType: "address" },
{ name: "image_", type: "string", internalType: "string" },
{ name: "metadata_", type: "string", internalType: "string" },
{ name: "context_", type: "string", internalType: "string" },
{ name: "initialSupplyChainId_", type: "uint256", internalType: "uint256" }
],
stateMutability: "nonpayable"
},
{
type: "function",
name: "CLOCK_MODE",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "DOMAIN_SEPARATOR",
inputs: [],
outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
stateMutability: "view"
},
{
type: "function",
name: "admin",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "address" }],
stateMutability: "view"
},
{
type: "function",
name: "allData",
inputs: [],
outputs: [
{ name: "originalAdmin", type: "address", internalType: "address" },
{ name: "admin", type: "address", internalType: "address" },
{ name: "image", type: "string", internalType: "string" },
{ name: "metadata", type: "string", internalType: "string" },
{ name: "context", type: "string", internalType: "string" }
],
stateMutability: "view"
},
{
type: "function",
name: "allowance",
inputs: [
{ name: "owner", type: "address", internalType: "address" },
{ name: "spender", type: "address", internalType: "address" }
],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "approve",
inputs: [
{ name: "spender", type: "address", internalType: "address" },
{ name: "value", type: "uint256", internalType: "uint256" }
],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "nonpayable"
},
{
type: "function",
name: "balanceOf",
inputs: [{ name: "account", type: "address", internalType: "address" }],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "burn",
inputs: [{ name: "value", type: "uint256", internalType: "uint256" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "burnFrom",
inputs: [
{ name: "account", type: "address", internalType: "address" },
{ name: "value", type: "uint256", internalType: "uint256" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "checkpoints",
inputs: [
{ name: "account", type: "address", internalType: "address" },
{ name: "pos", type: "uint32", internalType: "uint32" }
],
outputs: [
{
name: "",
type: "tuple",
internalType: "struct Checkpoints.Checkpoint208",
components: [
{ name: "_key", type: "uint48", internalType: "uint48" },
{ name: "_value", type: "uint208", internalType: "uint208" }
]
}
],
stateMutability: "view"
},
{
type: "function",
name: "clock",
inputs: [],
outputs: [{ name: "", type: "uint48", internalType: "uint48" }],
stateMutability: "view"
},
{
type: "function",
name: "context",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "crosschainBurn",
inputs: [
{ name: "_from", type: "address", internalType: "address" },
{ name: "_amount", type: "uint256", internalType: "uint256" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "crosschainMint",
inputs: [
{ name: "_to", type: "address", internalType: "address" },
{ name: "_amount", type: "uint256", internalType: "uint256" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "decimals",
inputs: [],
outputs: [{ name: "", type: "uint8", internalType: "uint8" }],
stateMutability: "view"
},
{
type: "function",
name: "delegate",
inputs: [{ name: "delegatee", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "delegateBySig",
inputs: [
{ name: "delegatee", type: "address", internalType: "address" },
{ name: "nonce", type: "uint256", internalType: "uint256" },
{ name: "expiry", type: "uint256", internalType: "uint256" },
{ name: "v", type: "uint8", internalType: "uint8" },
{ name: "r", type: "bytes32", internalType: "bytes32" },
{ name: "s", type: "bytes32", internalType: "bytes32" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "delegates",
inputs: [{ name: "account", type: "address", internalType: "address" }],
outputs: [{ name: "", type: "address", internalType: "address" }],
stateMutability: "view"
},
{
type: "function",
name: "eip712Domain",
inputs: [],
outputs: [
{ name: "fields", type: "bytes1", internalType: "bytes1" },
{ name: "name", type: "string", internalType: "string" },
{ name: "version", type: "string", internalType: "string" },
{ name: "chainId", type: "uint256", internalType: "uint256" },
{ name: "verifyingContract", type: "address", internalType: "address" },
{ name: "salt", type: "bytes32", internalType: "bytes32" },
{ name: "extensions", type: "uint256[]", internalType: "uint256[]" }
],
stateMutability: "view"
},
{
type: "function",
name: "getPastTotalSupply",
inputs: [{ name: "timepoint", type: "uint256", internalType: "uint256" }],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "getPastVotes",
inputs: [
{ name: "account", type: "address", internalType: "address" },
{ name: "timepoint", type: "uint256", internalType: "uint256" }
],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "getVotes",
inputs: [{ name: "account", type: "address", internalType: "address" }],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "imageUrl",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "isVerified",
inputs: [],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "view"
},
{
type: "function",
name: "metadata",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "name",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "nonces",
inputs: [{ name: "owner", type: "address", internalType: "address" }],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "numCheckpoints",
inputs: [{ name: "account", type: "address", internalType: "address" }],
outputs: [{ name: "", type: "uint32", internalType: "uint32" }],
stateMutability: "view"
},
{
type: "function",
name: "originalAdmin",
inputs: [],
outputs: [{ name: "", type: "address", internalType: "address" }],
stateMutability: "view"
},
{
type: "function",
name: "permit",
inputs: [
{ name: "owner", type: "address", internalType: "address" },
{ name: "spender", type: "address", internalType: "address" },
{ name: "value", type: "uint256", internalType: "uint256" },
{ name: "deadline", type: "uint256", internalType: "uint256" },
{ name: "v", type: "uint8", internalType: "uint8" },
{ name: "r", type: "bytes32", internalType: "bytes32" },
{ name: "s", type: "bytes32", internalType: "bytes32" }
],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "supportsInterface",
inputs: [{ name: "_interfaceId", type: "bytes4", internalType: "bytes4" }],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "pure"
},
{
type: "function",
name: "symbol",
inputs: [],
outputs: [{ name: "", type: "string", internalType: "string" }],
stateMutability: "view"
},
{
type: "function",
name: "totalSupply",
inputs: [],
outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
stateMutability: "view"
},
{
type: "function",
name: "transfer",
inputs: [
{ name: "to", type: "address", internalType: "address" },
{ name: "value", type: "uint256", internalType: "uint256" }
],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "nonpayable"
},
{
type: "function",
name: "transferFrom",
inputs: [
{ name: "from", type: "address", internalType: "address" },
{ name: "to", type: "address", internalType: "address" },
{ name: "value", type: "uint256", internalType: "uint256" }
],
outputs: [{ name: "", type: "bool", internalType: "bool" }],
stateMutability: "nonpayable"
},
{
type: "function",
name: "updateAdmin",
inputs: [{ name: "admin_", type: "address", internalType: "address" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "updateImage",
inputs: [{ name: "image_", type: "string", internalType: "string" }],
outputs: [],
stateMutability: "nonpayable"
},
{
type: "function",
name: "updateMetadata",
inputs: [{ name: "metadata_", type: "string", internalType: "string" }],
outputs: [],
stateMutability: "nonpayable"
},
{ type: "function", name: "verify", inputs: [], outputs: [], stateMutability: "nonpayable" },
{
type: "event",
name: "Approval",
inputs: [
{ name: "owner", type: "address", indexed: true, internalType: "address" },
{ name: "spender", type: "address", indexed: true, internalType: "address" },
{ name: "value", type: "uint256", indexed: false, internalType: "uint256" }
],
anonymous: false
},
{
type: "event",
name: "CrosschainBurn",
inputs: [
{ name: "from", type: "address", indexed: true, internalType: "address" },
{ name: "amount", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "sender", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "CrosschainMint",
inputs: [
{ name: "to", type: "address", indexed: true, internalType: "address" },
{ name: "amount", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "sender", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "DelegateChanged",
inputs: [
{ name: "delegator", type: "address", indexed: true, internalType: "address" },
{ name: "fromDelegate", type: "address", indexed: true, internalType: "address" },
{ name: "toDelegate", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "DelegateVotesChanged",
inputs: [
{ name: "delegate", type: "address", indexed: true, internalType: "address" },
{ name: "previousVotes", type: "uint256", indexed: false, internalType: "uint256" },
{ name: "newVotes", type: "uint256", indexed: false, internalType: "uint256" }
],
anonymous: false
},
{ type: "event", name: "EIP712DomainChanged", inputs: [], anonymous: false },
{
type: "event",
name: "Transfer",
inputs: [
{ name: "from", type: "address", indexed: true, internalType: "address" },
{ name: "to", type: "address", indexed: true, internalType: "address" },
{ name: "value", type: "uint256", indexed: false, internalType: "uint256" }
],
anonymous: false
},
{
type: "event",
name: "UpdateAdmin",
inputs: [
{ name: "oldAdmin", type: "address", indexed: true, internalType: "address" },
{ name: "newAdmin", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{
type: "event",
name: "UpdateImage",
inputs: [{ name: "image", type: "string", indexed: false, internalType: "string" }],
anonymous: false
},
{
type: "event",
name: "UpdateMetadata",
inputs: [{ name: "metadata", type: "string", indexed: false, internalType: "string" }],
anonymous: false
},
{
type: "event",
name: "Verified",
inputs: [
{ name: "admin", type: "address", indexed: true, internalType: "address" },
{ name: "token", type: "address", indexed: true, internalType: "address" }
],
anonymous: false
},
{ type: "error", name: "AlreadyVerified", inputs: [] },
{ type: "error", name: "CheckpointUnorderedInsertion", inputs: [] },
{ type: "error", name: "ECDSAInvalidSignature", inputs: [] },
{
type: "error",
name: "ECDSAInvalidSignatureLength",
inputs: [{ name: "length", type: "uint256", internalType: "uint256" }]
},
{
type: "error",
name: "ECDSAInvalidSignatureS",
inputs: [{ name: "s", type: "bytes32", internalType: "bytes32" }]
},
{
type: "error",
name: "ERC20ExceededSafeSupply",
inputs: [
{ name: "increasedSupply", type: "uint256", internalType: "uint256" },
{ name: "cap", type: "uint256", internalType: "uint256" }
]
},
{
type: "error",
name: "ERC20InsufficientAllowance",
inputs: [
{ name: "spender", type: "address", internalType: "address" },
{ name: "allowance", type: "uint256", internalType: "uint256" },
{ name: "needed", type: "uint256", internalType: "uint256" }
]
},
{
type: "error",
name: "ERC20InsufficientBalance",
inputs: [
{ name: "sender", type: "address", internalType: "address" },
{ name: "balance", type: "uint256", internalType: "uint256" },
{ name: "needed", type: "uint256", internalType: "uint256" }
]
},
{
type: "error",
name: "ERC20InvalidApprover",
inputs: [{ name: "approver", type: "address", internalType: "address" }]
},
{
type: "error",
name: "ERC20InvalidReceiver",
inputs: [{ name: "receiver", type: "address", internalType: "address" }]
},
{
type: "error",
name: "ERC20InvalidSender",
inputs: [{ name: "sender", type: "address", internalType: "address" }]
},
{
type: "error",
name: "ERC20InvalidSpender",
inputs: [{ name: "spender", type: "address", internalType: "address" }]
},
{
type: "error",
name: "ERC2612ExpiredSignature",
inputs: [{ name: "deadline", type: "uint256", internalType: "uint256" }]
},
{
type: "error",
name: "ERC2612InvalidSigner",
inputs: [
{ name: "signer", type: "address", internalType: "address" },
{ name: "owner", type: "address", internalType: "address" }
]
},
{
type: "error",
name: "ERC5805FutureLookup",
inputs: [
{ name: "timepoint", type: "uint256", internalType: "uint256" },
{ name: "clock", type: "uint48", internalType: "uint48" }
]
},
{ type: "error", name: "ERC6372InconsistentClock", inputs: [] },
{
type: "error",
name: "InvalidAccountNonce",
inputs: [
{ name: "account", type: "address", internalType: "address" },
{ name: "currentNonce", type: "uint256", internalType: "uint256" }
]
},
{ type: "error", name: "InvalidShortString", inputs: [] },
{ type: "error", name: "NotAdmin", inputs: [] },
{ type: "error", name: "NotOriginalAdmin", inputs: [] },
{
type: "error",
name: "SafeCastOverflowedUintDowncast",
inputs: [
{ name: "bits", type: "uint8", internalType: "uint8" },
{ name: "value", type: "uint256", internalType: "uint256" }
]
},
{
type: "error",
name: "StringTooLong",
inputs: [{ name: "str", type: "string", internalType: "string" }]
},
{ type: "error", name: "Unauthorized", inputs: [] },
{
type: "error",
name: "VotesExpiredSignature",
inputs: [{ name: "expiry", type: "uint256", internalType: "uint256" }]
}
];
var ClankerToken_v4_bytecode = "0x6101806040523461008d57610024610015610147565b9695909594919493929361067a565b6040516131f7908161107e823960805181612383015260a05181612440015260c05181612354015260e051816123d2015261010051816123f801526101205181610c4c01526101405181610c7501526101605181818161072d0152818161131d0152611a750152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100c857604052565b610091565b604051906100dc6040836100a5565b565b81601f8201121561008d578051906001600160401b0382116100c85760405192610112601f8401601f1916602001856100a5565b8284526020838301011161008d57815f9260208093018386015e8301015290565b51906001600160a01b038216820361008d57565b6142b5803803806040519261015c82856100a5565b83398101916101008284031261008d5781516001600160401b03811161008d57836101889184016100de565b60208301519091906001600160401b03811161008d57846101aa9185016100de565b936040840151936101bd60608201610133565b60808201519094906001600160401b03811161008d57836101df9184016100de565b60a08301519094906001600160401b03811161008d57846102019185016100de565b60c08401519094906001600160401b03811161008d5760e0916102259186016100de565b930151919796959493929190565b90600182811c92168015610261575b602083101461024d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610242565b601f8111610277575050565b60035f5260205f20906020601f840160051c830193106102b1575b601f0160051c01905b8181106102a6575050565b5f815560010161029b565b9091508190610292565b601f82116102c857505050565b5f5260205f20906020601f840160051c83019310610300575b601f0160051c01905b8181106102f5575050565b5f81556001016102ea565b90915081906102e1565b80519091906001600160401b0381116100c8576103338161032c600454610233565b60046102bb565b602092601f821160011461037357610363929382915f92610368575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061034f565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103d757508360019596106103bf575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103b4565b919260206001819286850151815501940192016103a1565b80519091906001600160401b0381116100c85761041881610411600e54610233565b600e6102bb565b602092601f821160011461044c57610447929382915f926103685750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8681106104b05750836001959610610498575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061048d565b9192602060018192868501518155019401920161047a565b80519091906001600160401b0381116100c8576104f1816104ea600c54610233565b600c6102bb565b602092601f821160011461052557610520929382915f926103685750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105895750836001959610610571575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610566565b91926020600181928685015181550194019201610553565b80519091906001600160401b0381116100c8576105ca816105c3600d54610233565b600d6102bb565b602092601f82116001146105fe576105f9929382915f926103685750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b868110610662575083600195961061064a575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061063f565b9192602060018192868501518155019401920161062c565b96959493929196604051906106906040836100a5565b60018252603160f81b6020830190815281519093906001600160401b0381116100c8576106c7816106c2600354610233565b61026b565b6020601f82116001146107a55793610778936107136107879b9a989461070b8561077d9a966107829d9a5f9161079a575b508160011b915f199060031b1c19161790565b60035561030a565b61071c816108e8565b61012052610729826109dd565b610140526020815191012060e052519020610100524660a05261074a610acf565b6080523060c052610160819052600b80546001600160a01b0319166001600160a01b03909216919091179055565b6103ef565b6104c8565b6105a1565b46146107905750565b6100dc903361083c565b90508501515f6106f8565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061082457506107879b9a98946001856107829c9995610778999561077d9c98610713961061080c575b5050811b0160035561030a565b8601515f1960f88460031b161c191690555f806107ff565b9192602060018192868a0151815501940192016107d3565b91906001600160a01b03831680156108d5576002548281018091116108d0576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108b957506100dc929350610bac565b630e58ae9360e11b5f52600485905260245260445ffd5b610b98565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f1461090357509061090090610b2d565b90565b6001600160401b0381116100c85761092781610920600554610233565b60056102bb565b602092601f821160011461095e57610956929382915f926103685750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109c557508360019596106109ad575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f808061099f565b9192602060018192868501518155019401920161098c565b908151602081105f146109f557509061090090610b2d565b6001600160401b0381116100c857610a1981610a12600654610233565b60066102bb565b602092601f8211600114610a5057610a48929382915f926103685750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610ab75750836001959610610a9f575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a91565b91926020600181928685015181550194019201610a7e565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b2760c0826100a5565b51902090565b601f815111610b58576020815191015160208210610b49571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610bb681610cab565b9165ffffffffffff4311610c9357600a5480610c5d5750610bf0610be06100dc945f5b6001611021565b65ffffffffffff4316600a610f4b565b50506001600160a01b03168015610c45575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dda565b610c56610c5183610cab565b610cdc565b5050610c02565b92835f198101116108d057600a5f525f5160206142755f395f51905f52909301546100dc93610bf091610be0919060301c610bd9565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610cc5576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c9357600a5480610d065750610be0610d02915f5b6002611021565b9091565b805f198101116108d057600a5f525f5160206142755f395f51905f520154610d0291610be09160301c610cfb565b65ffffffffffff4311610c9357805480610d685750610d58610d02925f6002611021565b9065ffffffffffff431690610f4b565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610cfb565b65ffffffffffff4311610c9357805480610db35750610d58610d02925f6001611021565b805f198101116108d0575f82815260209020015f190154610d0292610d589160301c610bd9565b6001600160a01b03808316939291908116908185141580610ecd575b610e02575b5050505050565b81610e73575b505082610e17575b8080610dfb565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5291610e5091610e4a9091610cab565b90610d8f565b604080516001600160d01b039384168152919092166020820152a25f8080610e10565b6001600160a01b03165f9081526009602052604090205f5160206142955f395f51905f5290610eab90610ea586610cab565b90610d34565b604080516001600160d01b039384168152919092166020820152a25f80610e08565b50831515610df6565b5f198101919082116108d057565b908154680100000000000000008110156100c85760018101808455811015610f37575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610ff757610f62610f6d91610ed6565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fe857879303610fb45750610fb092509065ffffffffffff82549181199060301b169116179055565b9190565b915050610fb091610fd4610fc66100cd565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ee4565b632520601d60e01b5f5260045ffd5b509061101c91611008610fc66100cd565b6001600160d01b0385166020830152610ee4565b5f9190565b919091806001146110635760021461104757634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108d05790565b506001600160d01b03918216908216019081116108d0579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461028457806306fdde031461027f578063095ea7b31461027a57806318160ddd1461027557806318bf5077146102705780631c7b2ff41461026b57806323b872dd146102665780632b8c49e314610261578063313ce5671461025c5780633644e51514610257578063392f37e9146102525780633a46b1a81461024d57806342966c68146102485780634bf5d7e914610243578063587cde1e1461023e5780635c19a95c146102395780636fcfff451461023457806370a082311461022f57806379cc67901461022a5780637ecebe001461022557806380007e831461022057806384b0196e1461021b5780638e539e8c14610216578063918b5be11461021157806391ddadf41461020c57806395d89b41146102075780639ab24eb014610202578063a9059cbb146101fd578063aba83150146101f8578063b974b0a3146101f3578063c3cda520146101ee578063d0496d6a146101e9578063d505accf146101e4578063dd62ed3e146101df578063e2f273bd146101da578063eb3d68e7146101d5578063f1127ed8146101d0578063f851a440146101cb5763fc735e99146101c6575f80fd5b611a4e565b611a1b565b611945565b6117d1565b611730565b6116bd565b611522565b6114ff565b611391565b61128e565b61126b565b611245565b6111dd565b611138565b61110d565b610f60565b610d6b565b610c34565b610c12565b610bcd565b610b9d565b610b5b565b610ad3565b610ab1565b610a56565b6109ad565b61098e565b61088a565b61084c565b61082a565b61080f565b610789565b610751565b610701565b61054d565b610530565b6104ff565b6103c1565b34610366576020600319360112610366576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610366577f3333199400000000000000000000000000000000000000000000000000000000811490811561033c575b8115610312575b8115610309575b506040519015158152602090f35b9050155f6102fb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102f4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102ed565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206103be92818152019061036a565b90565b34610366575f600319360112610366576040515f6003546103e181611b73565b80845290600181169081156104775750600114610419575b6104158361040981850382610e78565b604051918291826103ad565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061045d575090915081016020016104096103f9565b919260018160209254838588010152019101909291610445565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061040990506103f9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361036657565b346103665760406003193601126103665761052561051b6104b9565b602435903361260a565b602060405160018152f35b34610366575f600319360112610366576020600254604051908152f35b34610366576040600319360112610366576105666104b9565b6024359073420000000000000000000000000000000000002833036106d95773ffffffffffffffffffffffffffffffffffffffff81169081156106ad576105b76105b2846002546124d4565b600255565b6105de8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040518061061a88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161067f5750508261064f91612eff565b60405191825233917fde22baff038e3