UNPKG

@towns-protocol/generated

Version:

## How to generate contract types

1,258 lines (1,250 loc) 43.1 kB
/* 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; } }