UNPKG

@towns-protocol/generated

Version:

## How to generate contract types

1,352 lines (1,344 loc) 49.6 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, ITownsBase } from "../../mainnet/Towns"; const _abi = [ { type: "constructor", inputs: [ { name: "vault", type: "address", internalType: "address", }, { name: "manager", type: "address", internalType: "address", }, { name: "config", type: "tuple", internalType: "struct ITownsBase.InflationConfig", components: [ { name: "initialMintTime", type: "uint256", internalType: "uint256", }, { name: "initialInflationRate", type: "uint256", internalType: "uint256", }, { name: "finalInflationRate", type: "uint256", internalType: "uint256", }, { name: "finalInflationYears", type: "uint256", internalType: "uint256", }, { name: "inflationDecayRate", type: "uint256", internalType: "uint256", }, { name: "inflationReceiver", type: "address", internalType: "address", }, ], }, ], 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: "ROLE_INFLATION_MANAGER", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "ROLE_INFLATION_RATE_MANAGER", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], 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: "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: "createInflation", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "currentInflationRate", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { 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: "delegator", type: "address", internalType: "address", }, ], outputs: [ { name: "result", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "finalInflationRate", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getDelegationTimeForDelegator", inputs: [ { name: "delegator", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getDelegators", inputs: [], outputs: [ { name: "", type: "address[]", internalType: "address[]", }, ], stateMutability: "view", }, { type: "function", name: "getDelegatorsByDelegatee", inputs: [ { name: "delegatee", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "address[]", internalType: "address[]", }, ], stateMutability: "view", }, { type: "function", name: "getDelegatorsCount", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getPaginatedDelegators", inputs: [ { name: "cursor", type: "uint256", internalType: "uint256", }, { name: "size", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "delegators", type: "address[]", internalType: "address[]", }, { name: "next", 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: "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: "grantRoles", inputs: [ { name: "user", type: "address", internalType: "address", }, { name: "roles", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "payable", }, { type: "function", name: "hasAllRoles", inputs: [ { name: "user", type: "address", internalType: "address", }, { name: "roles", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "hasAnyRole", inputs: [ { name: "user", type: "address", internalType: "address", }, { name: "roles", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "inflationReceiver", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "initialMintTime", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "lastMintTime", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "mintInitialSupply", inputs: [ { name: "to", type: "address", internalType: "address", }, ], 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: "renounceOwnership", inputs: [], outputs: [], stateMutability: "payable", }, { type: "function", name: "renounceRoles", inputs: [ { name: "roles", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "payable", }, { type: "function", name: "requestOwnershipHandover", inputs: [], outputs: [], stateMutability: "payable", }, { type: "function", name: "revokeRoles", inputs: [ { name: "user", type: "address", internalType: "address", }, { name: "roles", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "payable", }, { type: "function", name: "rolesOf", inputs: [ { name: "user", type: "address", internalType: "address", }, ], outputs: [ { name: "roles", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "setInflationReceiver", inputs: [ { name: "receiver", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setOverrideInflation", inputs: [ { name: "overrideInflation", type: "bool", internalType: "bool", }, { name: "overrideInflationRate", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { 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: "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: "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: "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: "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: "RolesUpdated", inputs: [ { name: "user", type: "address", indexed: true, internalType: "address", }, { name: "roles", type: "uint256", indexed: true, internalType: "uint256", }, ], 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: "error", name: "AllowanceOverflow", inputs: [], }, { type: "error", name: "AllowanceUnderflow", inputs: [], }, { type: "error", name: "AlreadyInitialized", 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: "IndexOutOfBounds", inputs: [], }, { type: "error", name: "InitialSupplyAlreadyMinted", 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: "InvalidAddress", inputs: [], }, { type: "error", name: "InvalidInflationRate", inputs: [], }, { type: "error", name: "InvalidPermit", inputs: [], }, { type: "error", name: "MintingTooSoon", inputs: [], }, { type: "error", name: "NewOwnerIsZeroAddress", inputs: [], }, { type: "error", name: "NoHandoverRequest", inputs: [], }, { type: "error", name: "Permit2AllowanceIsFixedAtInfinity", inputs: [], }, { type: "error", name: "PermitExpired", inputs: [], }, { type: "error", name: "TotalSupplyOverflow", inputs: [], }, { type: "error", name: "Unauthorized", inputs: [], }, ] as const; const _bytecode = "0x60a060405234801561000f575f5ffd5b5060405161304538038061304583398101604081905261002e916103a6565b6001600160a01b038316158061004b57506001600160a01b038216155b156100605761006063e6c4247b60e01b610231565b60a08101516001600160a01b03166100825761008263e6c4247b60e01b610231565b61008b83610239565b610096836001610274565b6100a1826002610274565b6100b16397dc62f760e01b610284565b6100c16336372b0760e01b610284565b6100d163a219a02560e01b610284565b6100e1634ec7fbed60e11b610284565b6100f16352c665d960e01b610284565b6101016301ffc9a760e01b610284565b610111637487d9fb60e11b610284565b61012163da287a1d60e01b610284565b8051608090815281517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af005560a08201517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0180546001600160a01b0319166001600160a01b0390921691909117905560208201517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af025560408201517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af03558101517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af045560608101517f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0555505050610464565b805f5260045ffd5b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b61028082826001610334565b5050565b6001600160e01b031981165f9081525f5160206130255f395f51905f52602052604090205460ff166102e4576001600160e01b031981165f9081525f5160206130255f395f51905f5260205260409020805460ff191660011790556102fd565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b638b78c6d8600c52825f526020600c20805483811783610355575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f5fa3505050505050565b80516001600160a01b03811681146103a1575f5ffd5b919050565b5f5f5f8385036101008112156103ba575f5ffd5b6103c38561038b565b93506103d16020860161038b565b925060c0603f19820112156103e4575f5ffd5b5060405160c081016001600160401b038111828210171561041357634e487b7160e01b5f52604160045260245ffd5b604090815285810151825260608087015160208401526080808801519284019290925260a08701519083015260c08601519082015261045460e0860161038b565b60a0820152809150509250925092565b608051612b9b61048a5f395f8181610acb01528181610eb4015261118d0152612b9b5ff3fe60806040526004361061033a575f3560e01c8063715018a6116101b2578063b7c178cb116100f2578063d505accf11610092578063f04e283e1161006d578063f04e283e14610a94578063f2fde38b14610aa7578063f64964ed14610aba578063fee81cf414610aed575f5ffd5b8063d505accf14610a37578063dd62ed3e14610a56578063e142254614610a75575f5ffd5b8063c6da2e5d116100cd578063c6da2e5d146109dc578063c7a2f1de146109f0578063caca168814610a0f578063cd63c4d214610a23575f5ffd5b8063b7c178cb1461098a578063c1ce0e9b146109a9578063c3cda520146109bd575f5ffd5b806391ddadf41161015d5780639d463520116101385780639d46352014610916578063a563c3d51461092a578063a9059cbb1461093e578063afaabdce1461095d575f5ffd5b806391ddadf41461089057806395d89b41146108b25780639ab24eb0146108f7575f5ffd5b806383a96e161161018d57806383a96e161461080c57806384a0e082146108205780638da5cb5b1461085d575f5ffd5b8063715018a61461079b57806376a82342146107a35780637ecebe00146107db575f5ffd5b8063303371f41161027d5780634bf5d7e911610228578063587cde1e11610203578063587cde1e146106ff5780635c19a95c1461072c5780635db532021461074b57806370a082311461076a575f5ffd5b80634bf5d7e91461067d578063514e62fc146106c257806354d1f13d146106f7575f5ffd5b80633a46b1a8116102585780633a46b1a81461061257806348984176146106315780634a4ee7b11461066a575f5ffd5b8063303371f414610519578063313ce5671461052d5780633644e51514610548575f5ffd5b80631b180447116102e857806323b872dd116102c357806323b872dd146104ad57806325692962146104cc5780632b51c58a146104d45780632de94807146104e8575f5ffd5b80631b180447146104465780631c10893f146104655780631cd64df414610478575f5ffd5b8063095ea7b311610318578063095ea7b3146103ec57806318160ddd1461040b578063183a4f6e14610431575f5ffd5b806301ffc9a71461033e57806306fdde031461037257806308cac051146103c0575b5f5ffd5b348015610349575f5ffd5b5061035d61035836600461277f565b610b1e565b60405190151581526020015b60405180910390f35b34801561037d575f5ffd5b5060408051808201909152600581527f546f776e7300000000000000000000000000000000000000000000000000000060208201525b60405161036991906127be565b3480156103cb575f5ffd5b506103df6103da366004612834565b610b78565b604051610369919061289d565b3480156103f7575f5ffd5b5061035d6104063660046128af565b610b83565b348015610416575f5ffd5b506805345cdf77eb68f44c545b604051908152602001610369565b61044461043f3660046128d7565b610c0f565b005b348015610451575f5ffd5b50610444610460366004612834565b610c1c565b6104446104733660046128af565b610cd2565b348015610483575f5ffd5b5061035d6104923660046128af565b638b78c6d8600c9081525f9290925260209091205481161490565b3480156104b8575f5ffd5b5061035d6104c73660046128ee565b610ce4565b610444610dbe565b3480156104df575f5ffd5b50610423610e0b565b3480156104f3575f5ffd5b50610423610502366004612834565b638b78c6d8600c9081525f91909152602090205490565b348015610524575f5ffd5b50610444610e39565b348015610538575f5ffd5b5060405160128152602001610369565b348015610553575f5ffd5b50604080518082018252600581527f546f776e7300000000000000000000000000000000000000000000000000000060209182015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d1958918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69181019190915246606082015230608082015260a09020610423565b34801561061d575f5ffd5b5061042361062c3660046128af565b610f71565b34801561063c575f5ffd5b50610645610faf565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610369565b6104446106783660046128af565b610fee565b348015610688575f5ffd5b5060408051808201909152600e81527f6d6f64653d74696d657374616d7000000000000000000000000000000000000060208201526103b3565b3480156106cd575f5ffd5b5061035d6106dc3660046128af565b638b78c6d8600c9081525f9290925260209091205416151590565b610444611000565b34801561070a575f5ffd5b50610645610719366004612834565b63ff466c9f6004525f526018600c205490565b348015610737575f5ffd5b50610444610746366004612834565b611039565b348015610756575f5ffd5b50610444610765366004612834565b611043565b348015610775575f5ffd5b50610423610784366004612834565b6387a211a2600c9081525f91909152602090205490565b6104446110c1565b3480156107ae575f5ffd5b506104236107bd366004612834565b63ff466c9f6004525f526017600c205460301c65ffffffffffff1690565b3480156107e6575f5ffd5b506104236107f5366004612834565b6338377508600c9081525f91909152602090205490565b348015610817575f5ffd5b506103df6110d4565b34801561082b575f5ffd5b5061083f61083a3660046128af565b6110de565b6040805165ffffffffffff9093168352602083019190915201610369565b348015610868575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610645565b34801561089b575f5ffd5b5060405165ffffffffffff42168152602001610369565b3480156108bd575f5ffd5b5060408051808201909152600581527f544f574e5300000000000000000000000000000000000000000000000000000060208201526103b3565b348015610902575f5ffd5b50610423610911366004612834565b61113f565b348015610921575f5ffd5b5061042361115e565b348015610935575f5ffd5b50610423611187565b348015610949575f5ffd5b5061035d6109583660046128af565b6111b1565b348015610968575f5ffd5b5061097c610977366004612928565b611233565b604051610369929190612948565b348015610995575f5ffd5b506104236109a4366004612834565b61124c565b3480156109b4575f5ffd5b50610423611295565b3480156109c8575f5ffd5b506104446109d7366004612979565b61129e565b3480156109e7575f5ffd5b50610423600281565b3480156109fb575f5ffd5b50610423610a0a3660046128d7565b611447565b348015610a1a575f5ffd5b50610423600181565b348015610a2e575f5ffd5b50610423611479565b348015610a42575f5ffd5b50610444610a513660046129cd565b611493565b348015610a61575f5ffd5b50610423610a70366004612a33565b6116a9565b348015610a80575f5ffd5b50610444610a8f366004612a64565b611729565b610444610aa2366004612834565b6117ff565b610444610ab5366004612834565b611839565b348015610ac5575f5ffd5b506104237f000000000000000000000000000000000000000000000000000000000000000081565b348015610af8575f5ffd5b50610423610b07366004612834565b63389a75e1600c9081525f91909152602090205490565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604081205460ff165b92915050565b6060610b728261185f565b5f73ffffffffffffffffffffffffffffffffffffffff83166e22d473030f116ddee9f6b43ac78ba31882191517610bc157633f68539a5f526004601cfd5b82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b610c1933826118ae565b50565b6001610c27816118b9565b73ffffffffffffffffffffffffffffffffffffffff8216610c6b57610c6b7fe6c4247b000000000000000000000000000000000000000000000000000000006118dd565b7f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790555050565b5050565b610cda6118e5565b610cce828261191a565b5f8360601b6e22d473030f116ddee9f6b43ac78ba33314610d395733602052637f5e9f208117600c526034600c208054801915610d365780851115610d30576313be252b5f526004601cfd5b84810382555b50505b6387a211a28117600c526020600c20805480851115610d5f5763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350610db4848484611926565b5060019392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b5f610e347f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af035490565b905090565b6001610e44816118b9565b5f610e6d7f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af005490565b610e779042612ab1565b90506301e13380811015610eae57610eae7ffe2bb169000000000000000000000000000000000000000000000000000000006118dd565b5f610ed87f0000000000000000000000000000000000000000000000000000000000000000611931565b90505f610ef5610eef6805345cdf77eb68f44c5490565b836119f6565b90505f610f367f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af015473ffffffffffffffffffffffffffffffffffffffff1690565b9050610f428183611a42565b610f6a427f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0055565b5050505050565b5f4265ffffffffffff168210610f8957610f89611ac5565b610fa8610fa28463ff466c9f6004525f526017600c2090565b83611ad2565b9392505050565b5f610e347f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af015473ffffffffffffffffffffffffffffffffffffffff1690565b610ff66118e5565b610cce82826118ae565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b610c193382611ba0565b61104b6118e5565b5f5460ff161561107e5761107e7fdfa00f89000000000000000000000000000000000000000000000000000000006118dd565b611094816b204fce5e3e25026110000000611a42565b505f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6110c96118e5565b6110d25f611bc7565b565b6060610e34611c2c565b5f5f5f6110f78563ff466c9f6004525f526017600c2090565b9050805460a01b60d01c8410611114576386df9d105f526004601cfd5b8381015465ffffffffffff8116935060601c915030820361113757808401195491505b509250929050565b5f610b726111598363ff466c9f6004525f526017600c2090565b611c57565b5f610e347f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af005490565b5f610e347f0000000000000000000000000000000000000000000000000000000000000000611931565b5f6387a211a2600c52335f526020600c208054808411156111d95763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361122a338484611926565b50600192915050565b60605f6112408484611ca1565b915091505b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e026020526040812054610b72565b5f610e34611dd2565b60408051808201909152600581527f546f776e730000000000000000000000000000000000000000000000000000006020909101525f7fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d19587fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64287101561132b57633480e9e15f526004601cfd5b6040517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf5f528960601b60601c602052886040528760605260805f206040526119015f527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081206020526042601e205f528660ff1660205285604052846060526020600160805f60015afa51935080604052505f6060523d15965086886113ff856338377508600c9081525f91909152602090205490565b18171561141357631838d95c5f526004601cfd5b611432836338377508600c52805f526020600c20805460010181555050565b61143c838a611ba0565b505050505050505050565b5f4265ffffffffffff16821061145f5761145f611ac5565b610b726fff466c9f00000000000000000000000083611ad2565b5f610e346fff466c9f000000000000000000000000611c57565b73ffffffffffffffffffffffffffffffffffffffff86166e22d473030f116ddee9f6b43ac78ba318851915176114d057633f68539a5f526004601cfd5b60408051808201909152600581527f546f776e730000000000000000000000000000000000000000000000000000006020909101527fa40fbb70ec34ea8f6c23cf82b55213860ae24ffafadff8e9ae4cb556f54d19587fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64286101561155c57631a15a3cc5f526004601cfd5b6040518960601b60601c99508860601b60601c985065383775081901600e52895f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835284602084015283604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528b60208401528a60408401528960608401528060808401528860a084015260c08320604e526042602c205f528760ff16602052866040528560605260208060805f60015afa8c3d51146116445763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000089176040526034602c20889055888a7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f60605250505050505050565b5f7fffffffffffffffffffffffffffffffffffdd2b8cfcf0ee922116094bc538745d73ffffffffffffffffffffffffffffffffffffffff83160161170e57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b72565b50602052637f5e9f20600c9081525f91909152603490205490565b6002611734816118b9565b7f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0354821115611786576117867f57e4ff39000000000000000000000000000000000000000000000000000000006118dd565b7f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af0680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415151790557f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af07829055505050565b505050565b6118076118e5565b63389a75e1600c52805f526020600c20805442111561182d57636f5e88185f526004601cfd5b5f9055610c1981611bc7565b6118416118e5565b8060601b61185657637448fbae5f526004601cfd5b610c1981611bc7565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e0160205260409020606090610b7290611dfc565b610cce82825f611ed0565b638b78c6d8600c52335f52806020600c205416610c19576382b429005f526004601cfd5b805f5260045ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146110d2576382b429005f526004601cfd5b610cce82826001611ed0565b6117fa838383611f27565b7f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af06545f907f366bbacac8c1291905a47c4b12670e7c8ce975e09c84414dddf77ba98c85af009060ff1615611989576007015492915050565b5f6301e133806119998542612ab1565b6119a39190612af1565b9050816005015481106119bb57506003015492915050565b5f82600501548360040154836119d19190612b04565b6119db9190612af1565b90508083600201546119ed9190612ab1565b95945050505050565b5f612710821115611a2b57611a2b7f197f19620000000000000000000000000000000000000000000000000000000083611fe3565b612710611a388385612b04565b610fa89190612af1565b6805345cdf77eb68f44c5481810181811015611a655763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3610cce5f8383611926565b63f98744645f526004601cfd5b5f5f835460a01b60d01c60068110611b4657601061ffff821160041b82811c60ff1060031b17600190811c9190911b80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c81038581015465ffffffffffff168510611b43576001019150611b46565b90505b5b80821015611b785780820160011c65ffffffffffff86820154168510611b71576001019150611b47565b9050611b47565b8460018203019150815460601c81151502925050308203611b995780195491505b5092915050565b63ff466c9f6004525f8290526018600c2054611bbc8383611fef565b6117fa83838361204f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b6060610e347fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e00611dfc565b5f815460a01b60d01c90508015611c9c57017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805460601c308103611c9c57508019545b919050565b60605f7fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e0081611ccf82612180565b9050808610611cf2575050604080515f8082526020820190925292509050611245565b5f611d0c86611d018985612ab1565b808218908211021890565b90508067ffffffffffffffff811115611d2757611d27612b1b565b604051908082528060200260200182016040528015611d50578160200160208202803683370190505b5094505f5b81811015611db057611d71611d6a828a612b48565b85906121d1565b868281518110611d8357611d83612b5b565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611d55565b5081611dbc8289612b48565b611dc69190612b88565b93505050509250929050565b5f610e347fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e00612180565b63978aab926004525f818152602481206060915068fbb67fda52d4bfb8bf81548060a01b60a01c6040519450846020018260601c9250838314158302815281611e8a578215611e8557600191508185015460601c92508215611e85578284141590920260208301525060028381015460601c918215611e85576003915083831415830260408201525b611eba565b600191821c915b82811015611eb8578581015460601c858114158102600583901b8401529350600101611e91565b505b8186528160051b81016040525050505050919050565b638b78c6d8600c52825f526020600c20805483811783611ef1575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f5fa3505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611f6a57611f676fff466c9f0000000000000000000000004265ffffffffffff1683600161223c565b50505b73ffffffffffffffffffffffffffffffffffffffff8216611fac57611fa96fff466c9f0000000000000000000000004265ffffffffffff16835f61223c565b50505b6117fa611fc68463ff466c9f6004525f526018600c205490565b611fdd8463ff466c9f6004525f526018600c205490565b8361236a565b815f528060045260245ffd5b5f8160601b60601c63ff466c9f600452835f526018600c2080549250818155508082600c5160601c7f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f5f5fa4506117fa818361204a8661246e565b61236a565b7fed095a1d53cef9e2be0aab14d20856bfa3fbcc76a945321739a0da68a6078e0073ffffffffffffffffffffffffffffffffffffffff821661209b576120958185612487565b506120cd565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260018201602052604090206120cb908561260b565b505b73ffffffffffffffffffffffffffffffffffffffff831661211f576120f2818561260b565b5073ffffffffffffffffffffffffffffffffffffffff84165f90815260028201602052604081205561217a565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600182016020526040902061214f9085612487565b5073ffffffffffffffffffffffffffffffffffffffff84165f90815260028201602052604090204290555b50505050565b63978aab926004525f8181526024812080548060a01b60a01c8060011c9350808260601c15176121c9576001935083830154156121c9576002935083830154156121c957600393505b505050919050565b63978aab926004525f828152602481208281015460601c915068fbb67fda52d4bfb8bf8214158202915061220484612180565b8310611b99576040517f4e23d03500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f85548060a01b60d01c806122a2578515851761226157635915f6865f526004601cfd5b8592508260a01c3084141761228757606083901b8717660100000000000017885561235f565b3060601b87176601000000000000178855871983905561235f565b87600182030180548060601c95503086036122bd5781195495505b866122dc578786039450858511156122f657635915f6865f526004601cfd5b8786019450858510156122f657639dbbeb755f526004601cfd5b65ffffffffffff1688811461231d57660100000000000084018a5560019283019291909101905b8260301c898211171561232c57fe5b508360a01c3085141761234c578360601b8260301b89171781555061235f565b3060601b8260301b891717815583811955505b505094509492505050565b8061237457505050565b73ffffffffffffffffffffffffffffffffffffffff80841690831680820361239d575050505050565b8115612402575f5f6123ce6123be8863ff466c9f6004525f526017600c2090565b4265ffffffffffff16875f61223c565b91509150815f5280602052837fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460405fa250505b8015610f6a575f5f6124346124238763ff466c9f6004525f526017600c2090565b4265ffffffffffff1687600161223c565b91509150815f5280602052827fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460405fa250505050505050565b6387a211a2600c9081525f828152602090912054610b72565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016124e55763f5a267f15f526004601cfd5b826124f75768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff811682602052806125be578160601c8061252a578560601b84556001945050612602565b8581036125375750612602565b600184015460601c80612558578660601b6001860155600195505050612602565b868103612566575050612602565b600285015460601c80612588578760601b600287015560019650505050612602565b87810361259757505050612602565b5f928352604080842060019055918352818320600290558252902060039055506007908117905b845f5260405f20805461260057600191821c8083018255919450816125ec578560601b600317845550612602565b8560601b8285015582600201845550612602565b505b50505092915050565b63978aab926004525f8281526024812073ffffffffffffffffffffffffffffffffffffffff92909216917fffffffffffffffffffffffffffffffffffffffffffffff04498025ad2b40474183016126695763f5a267f15f526004601cfd5b8261267b5768fbb67fda52d4bfb8bf92505b80546bffffffffffffffffffffffff8116806126fa5760019350848260601c036126b85760018301805484556002840180549091555f9055612602565b84600184015460601c036126d95760028301805460018501555f9055612602565b84600284015460601c036126f2575f6002840155612602565b5f9350612602565b82602052845f5260405f20805480612713575050612602565b60018360011c039250826001820314612743578285015460601c8060601b60018303870155805f52508060405f20555b5083547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600192831b1782179093555f909255509392505050565b5f6020828403121561278f575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610fa8575f5ffd5b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c9c575f5ffd5b5f60208284031215612844575f5ffd5b610fa882612811565b5f8151808452602084019350602083015f5b8281101561289357815173ffffffffffffffffffffffffffffffffffffffff1686526020958601959091019060010161285f565b5093949350505050565b602081525f610fa8602083018461284d565b5f5f604083850312156128c0575f5ffd5b6128c983612811565b946020939093013593505050565b5f602082840312156128e7575f5ffd5b5035919050565b5f5f5f60608486031215612900575f5ffd5b61290984612811565b925061291760208501612811565b929592945050506040919091013590565b5f5f60408385031215612939575f5ffd5b50508035926020909101359150565b604081525f61295a604083018561284d565b90508260208301529392505050565b803560ff81168114611c9c575f5ffd5b5f5f5f5f5f5f60c0878903121561298e575f5ffd5b61299787612811565b955060208701359450604087013593506129b360608801612969565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a0312156129e3575f5ffd5b6129ec88612811565b96506129fa60208901612811565b95506040880135945060608801359350612a1660808901612969565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215612a44575f5ffd5b612a4d83612811565b9150612a5b60208401612811565b90509250929050565b5f5f60408385031215612a75575f5ffd5b823580151581146128c9575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610b7257610b72612a84565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82612aff57612aff612ac4565b500490565b8082028115828204841417610b7257610b72612a84565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b80820180821115610b7257610b72612a84565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82612b9657612b96612ac4565b5006905681088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00"; 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( vault: PromiseOrValue<string>, manager: PromiseOrValue<string>, config: ITownsBase.InflationConfigStruct, overrides?: Overrides & { from?: PromiseOrValue<string> } ): Promise<Towns> { return super.deploy( vault, manager, config, overrides || {} ) as Promise<Towns>; } override getDeployTransaction( vault: PromiseOrValue<string>, manager: PromiseOrValue<string>, config: ITownsBase.InflationConfigStruct, overrides?: Overrides & { from?: PromiseOrValue<string> } ): TransactionRequest { return super.getDeployTransaction(vault, manager, config, 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; } }