@towns-protocol/generated
Version:
## How to generate contract types
1,258 lines (1,250 loc) • 43.1 kB
text/typescript
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import type { Provider, TransactionRequest } from "@ethersproject/providers";
import type { PromiseOrValue } from "../common";
import type { Towns, TownsInterface } from "../Towns";
const _abi = [
{
type: "constructor",
inputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "CLOCK_MODE",
inputs: [],
outputs: [
{
name: "",
type: "string",
internalType: "string",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "DOMAIN_SEPARATOR",
inputs: [],
outputs: [
{
name: "result",
type: "bytes32",
internalType: "bytes32",
},
],
stateMutability: "view",
},
{
type: "function",
name: "allowance",
inputs: [
{
name: "owner",
type: "address",
internalType: "address",
},
{
name: "spender",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "approve",
inputs: [
{
name: "spender",
type: "address",
internalType: "address",
},
{
name: "amount",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "balanceOf",
inputs: [
{
name: "owner",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "bridge",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "burn",
inputs: [
{
name: "from",
type: "address",
internalType: "address",
},
{
name: "amount",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "cancelOwnershipHandover",
inputs: [],
outputs: [],
stateMutability: "payable",
},
{
type: "function",
name: "checkpointAt",
inputs: [
{
name: "account",
type: "address",
internalType: "address",
},
{
name: "i",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "checkpointClock",
type: "uint48",
internalType: "uint48",
},
{
name: "checkpointValue",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "checkpointCount",
inputs: [
{
name: "account",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "clock",
inputs: [],
outputs: [
{
name: "",
type: "uint48",
internalType: "uint48",
},
],
stateMutability: "view",
},
{
type: "function",
name: "completeOwnershipHandover",
inputs: [
{
name: "pendingOwner",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "payable",
},
{
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: "pure",
},
{
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: "delegator",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "address",
internalType: "address",
},
],
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: "getPastVotesTotalSupply",
inputs: [
{
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: "getVotesTotalSupply",
inputs: [],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "initialize",
inputs: [
{
name: "_remoteToken",
type: "address",
internalType: "address",
},
{
name: "_owner",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "isLockActive",
inputs: [
{
name: "account",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "l1Token",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "l2Bridge",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "lockExpiration",
inputs: [
{
name: "account",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "mint",
inputs: [
{
name: "to",
type: "address",
internalType: "address",
},
{
name: "amount",
type: "uint256",
internalType: "uint256",
},
],
outputs: [],
stateMutability: "nonpayable",
},
{
type: "function",
name: "name",
inputs: [],
outputs: [
{
name: "",
type: "string",
internalType: "string",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "nonces",
inputs: [
{
name: "owner",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "owner",
inputs: [],
outputs: [
{
name: "result",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "ownershipHandoverExpiresAt",
inputs: [
{
name: "pendingOwner",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
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: "proxiableUUID",
inputs: [],
outputs: [
{
name: "",
type: "bytes32",
internalType: "bytes32",
},
],
stateMutability: "view",
},
{
type: "function",
name: "remoteToken",
inputs: [],
outputs: [
{
name: "",
type: "address",
internalType: "address",
},
],
stateMutability: "view",
},
{
type: "function",
name: "renounceOwnership",
inputs: [],
outputs: [],
stateMutability: "payable",
},
{
type: "function",
name: "requestOwnershipHandover",
inputs: [],
outputs: [],
stateMutability: "payable",
},
{
type: "function",
name: "supportsInterface",
inputs: [
{
name: "interfaceId",
type: "bytes4",
internalType: "bytes4",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "view",
},
{
type: "function",
name: "symbol",
inputs: [],
outputs: [
{
name: "",
type: "string",
internalType: "string",
},
],
stateMutability: "pure",
},
{
type: "function",
name: "totalSupply",
inputs: [],
outputs: [
{
name: "result",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "transfer",
inputs: [
{
name: "to",
type: "address",
internalType: "address",
},
{
name: "amount",
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: "amount",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "",
type: "bool",
internalType: "bool",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "transferOwnership",
inputs: [
{
name: "newOwner",
type: "address",
internalType: "address",
},
],
outputs: [],
stateMutability: "payable",
},
{
type: "function",
name: "upgradeToAndCall",
inputs: [
{
name: "newImplementation",
type: "address",
internalType: "address",
},
{
name: "data",
type: "bytes",
internalType: "bytes",
},
],
outputs: [],
stateMutability: "payable",
},
{
type: "function",
name: "version",
inputs: [],
outputs: [
{
name: "",
type: "string",
internalType: "string",
},
],
stateMutability: "view",
},
{
type: "event",
name: "Approval",
inputs: [
{
name: "owner",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "spender",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "amount",
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: "from",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "to",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "DelegateVotesChanged",
inputs: [
{
name: "delegate",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "oldValue",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "newValue",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "Initialized",
inputs: [
{
name: "version",
type: "uint64",
indexed: false,
internalType: "uint64",
},
],
anonymous: false,
},
{
type: "event",
name: "InterfaceAdded",
inputs: [
{
name: "interfaceId",
type: "bytes4",
indexed: true,
internalType: "bytes4",
},
],
anonymous: false,
},
{
type: "event",
name: "InterfaceRemoved",
inputs: [
{
name: "interfaceId",
type: "bytes4",
indexed: true,
internalType: "bytes4",
},
],
anonymous: false,
},
{
type: "event",
name: "LockUpdated",
inputs: [
{
name: "account",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "enabled",
type: "bool",
indexed: true,
internalType: "bool",
},
{
name: "expiration",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "OwnershipHandoverCanceled",
inputs: [
{
name: "pendingOwner",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "OwnershipHandoverRequested",
inputs: [
{
name: "pendingOwner",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "OwnershipTransferred",
inputs: [
{
name: "oldOwner",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "newOwner",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "event",
name: "Transfer",
inputs: [
{
name: "from",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "to",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "amount",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "Upgraded",
inputs: [
{
name: "implementation",
type: "address",
indexed: true,
internalType: "address",
},
],
anonymous: false,
},
{
type: "error",
name: "AllowanceOverflow",
inputs: [],
},
{
type: "error",
name: "AllowanceUnderflow",
inputs: [],
},
{
type: "error",
name: "AlreadyInitialized",
inputs: [],
},
{
type: "error",
name: "DelegateeSameAsCurrent",
inputs: [],
},
{
type: "error",
name: "ERC5805CheckpointIndexOutOfBounds",
inputs: [],
},
{
type: "error",
name: "ERC5805CheckpointValueOverflow",
inputs: [],
},
{
type: "error",
name: "ERC5805CheckpointValueUnderflow",
inputs: [],
},
{
type: "error",
name: "ERC5805DelegateInvalidSignature",
inputs: [],
},
{
type: "error",
name: "ERC5805DelegateSignatureExpired",
inputs: [],
},
{
type: "error",
name: "ERC5805FutureLookup",
inputs: [],
},
{
type: "error",
name: "InsufficientAllowance",
inputs: [],
},
{
type: "error",
name: "InsufficientBalance",
inputs: [],
},
{
type: "error",
name: "Introspection_AlreadySupported",
inputs: [],
},
{
type: "error",
name: "Introspection_NotSupported",
inputs: [],
},
{
type: "error",
name: "InvalidInitialization",
inputs: [],
},
{
type: "error",
name: "InvalidPermit",
inputs: [],
},
{
type: "error",
name: "LockNotAuthorized",
inputs: [],
},
{
type: "error",
name: "NewOwnerIsZeroAddress",
inputs: [],
},
{
type: "error",
name: "NoHandoverRequest",
inputs: [],
},
{
type: "error",
name: "NotInitializing",
inputs: [],
},
{
type: "error",
name: "Permit2AllowanceIsFixedAtInfinity",
inputs: [],
},
{
type: "error",
name: "PermitExpired",
inputs: [],
},
{
type: "error",
name: "TotalSupplyOverflow",
inputs: [],
},
{
type: "error",
name: "TransferLockEnabled",
inputs: [],
},
{
type: "error",
name: "Unauthorized",
inputs: [],
},
{
type: "error",
name: "UnauthorizedCallContext",
inputs: [],
},
{
type: "error",
name: "UpgradeFailed",
inputs: [],
},
] as const;
const _bytecode =
"0x60a0604052306080523480156012575f5ffd5b506019601d565b6080565b63409feecd1980546001811615603a5763f92ee8a95f526004601cfd5b6001600160401b03808260011c14607b578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60805161272861009f5f395f8181611c860152611cbd01526127285ff3fe6080604052600436106102e2575f3560e01c8063715018a611610186578063ae1f6aaf116100dc578063d6c0b2c411610087578063f04e283e11610062578063f04e283e14610993578063f2fde38b146109a6578063fee81cf4146109b9575f5ffd5b8063d6c0b2c4146108ba578063dd62ed3e14610974578063e78cea9214610894575f5ffd5b8063c7a2f1de116100b7578063c7a2f1de14610922578063cd63c4d214610941578063d505accf14610955575f5ffd5b8063ae1f6aaf14610894578063c01e1bd6146108ba578063c3cda52014610903575f5ffd5b80638da5cb5b1161013c5780639ab24eb0116101175780639ab24eb0146108375780639dc29fac14610856578063a9059cbb14610875575f5ffd5b80638da5cb5b1461079d57806391ddadf4146107d057806395d89b41146107f2575f5ffd5b80637ecebe001161016c5780637ecebe00146107105780637f73540c1461074157806384a0e08214610760575f5ffd5b8063715018a6146106d057806376a82342146106d8575f5ffd5b80633a46b1a81161023b57806352d1902d116101f1578063587cde1e116101cc578063587cde1e1461062e5780635c19a95c1461068057806370a082311461069f575f5ffd5b806352d1902d146105cd57806354d1f13d146105e157806354fd4d50146105e9575f5ffd5b8063485cc95511610221578063485cc955146105565780634bf5d7e9146105755780634f1ef286146105ba575f5ffd5b80633a46b1a81461051857806340c10f1914610537575f5ffd5b806323b872dd1161029b5780632b8c49e3116102765780632b8c49e314610414578063313ce567146104335780633644e5151461044e575f5ffd5b806323b872dd146103ce57806325692962146103ed57806328162566146103f5575f5ffd5b8063095ea7b3116102cb578063095ea7b31461036857806318160ddd1461038757806318bf5077146103ad575f5ffd5b806301ffc9a7146102e657806306fdde031461031a575b5f5ffd5b3480156102f1575f5ffd5b50610305610300366004612430565b6109ea565b60405190151581526020015b60405180910390f35b348015610325575f5ffd5b5060408051808201909152600581527f546f776e7300000000000000000000000000000000000000000000000000000060208201525b604051610311919061246f565b348015610373575f5ffd5b506103056103823660046124e5565b610a44565b348015610392575f5ffd5b506805345cdf77eb68f44c545b604051908152602001610311565b3480156103b8575f5ffd5b506103cc6103c73660046124e5565b610ad0565b005b3480156103d9575f5ffd5b506103056103e836600461250d565b610b70565b6103cc610c55565b348015610400575f5ffd5b5061039f61040f366004612547565b610ca2565b34801561041f575f5ffd5b506103cc61042e3660046124e5565b610ceb565b34801561043e575f5ffd5b5060405160128152602001610311565b348015610459575f5ffd5b50604080518082018252600581527f546f776e7300000000000000000000000000000000000000000000000000000060209182015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d1958918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69181019190915246606082015230608082015260a0902061039f565b348015610523575f5ffd5b5061039f6105323660046124e5565b610d83565b348015610542575f5ffd5b506103cc6105513660046124e5565b610dc1565b348015610561575f5ffd5b506103cc610570366004612560565b610e13565b348015610580575f5ffd5b5060408051808201909152600e81527f6d6f64653d74696d657374616d70000000000000000000000000000000000000602082015261035b565b6103cc6105c8366004612591565b6110ad565b3480156105d8575f5ffd5b5061039f611161565b6103cc61118f565b3480156105f4575f5ffd5b5060408051808201909152600d81527f312e302e302d626574612e313200000000000000000000000000000000000000602082015261035b565b348015610639575f5ffd5b5061065b610648366004612547565b63ff466c9f6004525f526018600c205490565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610311565b34801561068b575f5ffd5b506103cc61069a366004612547565b6111c8565b3480156106aa575f5ffd5b5061039f6106b9366004612547565b6387a211a2600c9081525f91909152602090205490565b6103cc6111d5565b3480156106e3575f5ffd5b5061039f6106f2366004612547565b63ff466c9f6004525f526017600c205460301c65ffffffffffff1690565b34801561071b575f5ffd5b5061039f61072a366004612547565b6338377508600c9081525f91909152602090205490565b34801561074c575f5ffd5b5061030561075b366004612547565b6111e8565b34801561076b575f5ffd5b5061077f61077a3660046124e5565b6111f2565b6040805165ffffffffffff9093168352602083019190915201610311565b3480156107a8575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461065b565b3480156107db575f5ffd5b5060405165ffffffffffff42168152602001610311565b3480156107fd575f5ffd5b5060408051808201909152600581527f544f574e53000000000000000000000000000000000000000000000000000000602082015261035b565b348015610842575f5ffd5b5061039f610851366004612547565b611253565b348015610861575f5ffd5b506103cc6108703660046124e5565b611272565b348015610880575f5ffd5b5061030561088f3660046124e5565b6112c0565b34801561089f575f5ffd5b5073420000000000000000000000000000000000001061065b565b3480156108c5575f5ffd5b507f708ba15393f53e4db9d749d00ba2ba89a43d1e182bc44eaf801b83b223310b005473ffffffffffffffffffffffffffffffffffffffff1661065b565b34801561090e575f5ffd5b506103cc61091d36600461261f565b61134d565b34801561092d575f5ffd5b5061039f61093c366004612673565b6114f6565b34801561094c575f5ffd5b5061039f611528565b348015610960575f5ffd5b506103cc61096f36600461268a565b611547565b34801561097f575f5ffd5b5061039f61098e366004612560565b61175d565b6103cc6109a1366004612547565b6117dd565b6103cc6109b4366004612547565b611817565b3480156109c4575f5ffd5b5061039f6109d3366004612547565b63389a75e1600c9081525f91909152602090205490565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604081205460ff165b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff83166e22d473030f116ddee9f6b43ac78ba31882191517610a8257633f68539a5f526004601cfd5b82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b3373420000000000000000000000000000000000002814610b1457610b147f82b429000000000000000000000000000000000000000000000000000000000061183d565b610b1e8282611845565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f610b7c8484846118d3565b8360601b6e22d473030f116ddee9f6b43ac78ba33314610bd05733602052637f5e9f208117600c526034600c208054801915610bcd5780851115610bc7576313be252b5f526004601cfd5b84810382555b50505b6387a211a28117600c526020600c20805480851115610bf65763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350610c4b84848461192a565b5060019392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c36020526040812054610a3e565b3373420000000000000000000000000000000000002814610d2f57610d2f7f82b429000000000000000000000000000000000000000000000000000000000061183d565b610d398282611935565b604051818152339073ffffffffffffffffffffffffffffffffffffffff8416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610b64565b5f4265ffffffffffff168210610d9b57610d9b6119c8565b610dba610db48463ff466c9f6004525f526017600c2090565b836119d5565b9392505050565b3373420000000000000000000000000000000000001014610e0557610e057f82b429000000000000000000000000000000000000000000000000000000000061183d565b610e0f8282611845565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610e645760018160011c14303b10610e5b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610e6e82611aa3565b7f708ba15393f53e4db9d749d00ba2ba89a43d1e182bc44eaf801b83b223310b0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8516179055610ed962278d00611b06565b610f027f36372b0700000000000000000000000000000000000000000000000000000000611b2e565b610f2b7fa219a02500000000000000000000000000000000000000000000000000000000611b2e565b610f547f9d8ff7da00000000000000000000000000000000000000000000000000000000611b2e565b610f7d7fda287a1d00000000000000000000000000000000000000000000000000000000611b2e565b610fa67f01ffc9a700000000000000000000000000000000000000000000000000000000611b2e565b610fcf7fe90fb3f600000000000000000000000000000000000000000000000000000000611b2e565b610ff87fec4fc8e300000000000000000000000000000000000000000000000000000000611b2e565b6110217f1d1d8b6300000000000000000000000000000000000000000000000000000000611b2e565b61104a7f54fd4d5000000000000000000000000000000000000000000000000000000000611b2e565b6110737f3333199400000000000000000000000000000000000000000000000000000000611b2e565b80156110a8576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6110b5611c83565b6110be83611cb2565b8260601b60601c92503d5f526352d1902d6001527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80602060016004601d885afa5114611113576355299b496001526004601dfd5b837fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f38a283905580156110a857604051818382375f388383875af461115b573d5f823e3d81fd5b50505050565b5f61116a611cba565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6111d23382611ce9565b50565b6111dd611d80565b6111e65f611db5565b565b5f610a3e82611e1a565b5f5f5f61120b8563ff466c9f6004525f526017600c2090565b9050805460a01b60d01c8410611228576386df9d105f526004601cfd5b8381015465ffffffffffff8116935060601c915030820361124b57808401195491505b509250929050565b5f610a3e61126d8363ff466c9f6004525f526017600c2090565b611ec0565b33734200000000000000000000000000000000000010146112b6576112b67f82b429000000000000000000000000000000000000000000000000000000000061183d565b610e0f8282611935565b5f6112cc3384846118d3565b6387a211a2600c52335f526020600c208054808411156112f35763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361134433848461192a565b50600192915050565b60408051808201909152600581527f546f776e730000000000000000000000000000000000000000000000000000006020909101525f7fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d19587fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6428710156113da57633480e9e15f526004601cfd5b6040517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf5f528960601b60601c602052886040528760605260805f206040526119015f527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081206020526042601e205f528660ff1660205285604052846060526020600160805f60015afa51935080604052505f6060523d15965086886114ae856338377508600c9081525f91909152602090205490565b1817156114c257631838d95c5f526004601cfd5b6114e1836338377508600c52805f526020600c20805460010181555050565b6114eb838a611ce9565b505050505050505050565b5f4265ffffffffffff16821061150e5761150e6119c8565b610a3e6fff466c9f000000000000000000000000836119d5565b5f6115426fff466c9f000000000000000000000000611ec0565b905090565b73ffffffffffffffffffffffffffffffffffffffff86166e22d473030f116ddee9f6b43ac78ba3188519151761158457633f68539a5f526004601cfd5b60408051808201909152600581527f546f776e730000000000000000000000000000000000000000000000000000006020909101527fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d19587fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64286101561161057631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146116f85763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b5f7fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d73ffffffffffffffffffffffffffffffffffffffff8316016117c257507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a3e565b50602052637f5e9f20600c9081525f91909152603490205490565b6117e5611d80565b63389a75e1600c52805f526020600c20805442111561180b57636f5e88185f526004601cfd5b5f90556111d281611db5565b61181f611d80565b8060601b61183457637448fbae5f526004601cfd5b6111d281611db5565b805f5260045ffd5b6118505f83836118d3565b6805345cdf77eb68f44c54818101818110156118735763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3610e0f5f838361192a565b73ffffffffffffffffffffffffffffffffffffffff8316158015906118fc57506118fc83611e1a565b156110a8576110a87f55c421950000000000000000000000000000000000000000000000000000000061183d565b6110a8838383611f0a565b611940825f836118d3565b6387a211a2600c52815f526020600c208054808311156119675763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f81815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a3610e0f825f8361192a565b63f98744645f526004601cfd5b5f5f835460a01b60d01c60068110611a4957601061ffff821160041b82811c60ff1060031b17600190811c9190911b80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c81038581015465ffffffffffff168510611a46576001019150611a49565b90505b5b80821015611a7b5780820160011c65ffffffffffff86820154168510611a74576001019150611a4a565b9050611a4a565b8460018203019150815460601c81151502925050308203611a9c5780195491505b5092915050565b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6111d2817ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c155565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16611c02577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611c34565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b307f0000000000000000000000000000000000000000000000000000000000000000036111e6576111e6611fc6565b6111d2611d80565b307f0000000000000000000000000000000000000000000000000000000000000000146111e6576111e6611fc6565b63ff466c9f6004525f8290526018600c205473ffffffffffffffffffffffffffffffffffffffff80831690821603611d4457611d447f09ca3c9c0000000000000000000000000000000000000000000000000000000061183d565b73ffffffffffffffffffffffffffffffffffffffff8216611d6d57611d6883611fd3565b611d76565b611d7683612096565b6110a88383612184565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146111e6576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c260205260408120547ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c19060ff1615611e915750600192915050565b73ffffffffffffffffffffffffffffffffffffffff9092165f9081526002909201602052506040902054421090565b5f815460a01b60d01c90508015611f0557017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805460601c308103611f0557508019545b919050565b73ffffffffffffffffffffffffffffffffffffffff8316611f4d57611f4a6fff466c9f0000000000000000000000004265ffffffffffff168360016121e4565b50505b73ffffffffffffffffffffffffffffffffffffffff8216611f8f57611f8c6fff466c9f0000000000000000000000004265ffffffffffff16835f6121e4565b50505b6110a8611fa98463ff466c9f6004525f526018600c205490565b611fc08463ff466c9f6004525f526018600c205490565b83612312565b639f03a0265f526004601cfd5b7ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c180545f9061200290426126f0565b73ffffffffffffffffffffffffffffffffffffffff84165f818152600185016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556002870182528083208590555184815293945090927fe16066c96aababa72475f0b2768d3b6181ea150033042b37d0646737caa4a501910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff81165f8181527ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c26020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091557ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c3835281842084905590519283527ffd180fd2eec04a0893e9c9ad4329d2f65f17d7fd0b4133b91663887d04d247c193909290917fe16066c96aababa72475f0b2768d3b6181ea150033042b37d0646737caa4a5019101610b64565b5f8160601b60601c63ff466c9f600452835f526018600c2080549250818155508082600c5160601c7f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f5f5fa4506110a881836121df86612417565b612312565b5f5f85548060a01b60d01c8061224a578515851761220957635915f6865f526004601cfd5b8592508260a01c3084141761222f57606083901b87176601000000000000178855612307565b3060601b871766010000000000001788558719839055612307565b87600182030180548060601c95503086036122655781195495505b866122845787860394508585111561229e57635915f6865f526004601cfd5b87860194508585101561229e57639dbbeb755f526004601cfd5b65ffffffffffff168881146122c557660100000000000084018a5560019283019291909101905b8260301c89821117156122d457fe5b508360a01c308514176122f4578360601b8260301b891717815550612307565b3060601b8260301b891717815583811955505b505094509492505050565b8061231c57505050565b73ffffffffffffffffffffffffffffffffffffffff808416908316808203612345575050505050565b81156123aa575f5f6123766123668863ff466c9f6004525f526017600c2090565b4265ffffffffffff16875f6121e4565b91509150815f5280602052837fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460405fa250505b8015612410575f5f6123dc6123cb8763ff466c9f6004525f526017600c2090565b4265ffffffffffff168760016121e4565b91509150815f5280602052827fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460405fa250505b5050505050565b6387a211a2600c9081525f828152602090912054610a3e565b5f60208284031215612440575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dba575f5ffd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611f05575f5ffd5b5f5f604083850312156124f6575f5ffd5b6124ff836124c2565b946020939093013593505050565b5f5f5f6060848603121561251f575f5ffd5b612528846124c2565b9250612536602085016124c2565b929592945050506040919091013590565b5f60208284031215612557575f5ffd5b610dba826124c2565b5f5f60408385031215612571575f5ffd5b61257a836124c2565b9150612588602084016124c2565b90509250929050565b5f5f5f604084860312156125a3575f5ffd5b6125ac846124c2565b9250602084013567ffffffffffffffff8111156125c7575f5ffd5b8401601f810186136125d7575f5ffd5b803567ffffffffffffffff8111156125ed575f5ffd5b8660208284010111156125fe575f5ffd5b939660209190910195509293505050565b803560ff81168114611f05575f5ffd5b5f5f5f5f5f5f60c08789031215612634575f5ffd5b61263d876124c2565b955060208701359450604087013593506126596060880161260f565b9598949750929560808101359460a0909101359350915050565b5f60208284031215612683575f5ffd5b5035919050565b5f5f5f5f5f5f5f60e0888a0312156126a0575f5ffd5b6126a9886124c2565b96506126b7602089016124c2565b955060408801359450606088013593506126d36080890161260f565b9699959850939692959460a0840135945060c09093013592915050565b80820180821115610a3e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd";
type TownsConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: TownsConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class Towns__factory extends ContractFactory {
constructor(...args: TownsConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
override deploy(
overrides?: Overrides & { from?: PromiseOrValue<string> }
): Promise<Towns> {
return super.deploy(overrides || {}) as Promise<Towns>;
}
override getDeployTransaction(
overrides?: Overrides & { from?: PromiseOrValue<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
override attach(address: string): Towns {
return super.attach(address) as Towns;
}
override connect(signer: Signer): Towns__factory {
return super.connect(signer) as Towns__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): TownsInterface {
return new utils.Interface(_abi) as TownsInterface;
}
static connect(address: string, signerOrProvider: Signer | Provider): Towns {
return new Contract(address, _abi, signerOrProvider) as Towns;
}
}