UNPKG

@towns-protocol/generated

Version:

## How to generate contract types

948 lines (940 loc) 48 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 { Roles, RolesInterface } from "../Roles"; const _abi = [ { type: "function", name: "addPermissionsToRole", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "permissions", type: "string[]", internalType: "string[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "addRoleToEntitlement", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "entitlement", type: "tuple", internalType: "struct IRolesBase.CreateEntitlement", components: [ { name: "module", type: "address", internalType: "contract IEntitlement", }, { name: "data", type: "bytes", internalType: "bytes", }, ], }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "clearChannelPermissionOverrides", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "channelId", type: "bytes32", internalType: "bytes32", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "createRole", inputs: [ { name: "roleName", type: "string", internalType: "string", }, { name: "permissions", type: "string[]", internalType: "string[]", }, { name: "entitlements", type: "tuple[]", internalType: "struct IRolesBase.CreateEntitlement[]", components: [ { name: "module", type: "address", internalType: "contract IEntitlement", }, { name: "data", type: "bytes", internalType: "bytes", }, ], }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "nonpayable", }, { type: "function", name: "getChannelPermissionOverrides", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "channelId", type: "bytes32", internalType: "bytes32", }, ], outputs: [ { name: "permissions", type: "string[]", internalType: "string[]", }, ], stateMutability: "view", }, { type: "function", name: "getPermissionsByRoleId", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "permissions", type: "string[]", internalType: "string[]", }, ], stateMutability: "view", }, { type: "function", name: "getRoleById", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "tuple", internalType: "struct IRolesBase.Role", components: [ { name: "id", type: "uint256", internalType: "uint256", }, { name: "name", type: "string", internalType: "string", }, { name: "disabled", type: "bool", internalType: "bool", }, { name: "permissions", type: "string[]", internalType: "string[]", }, { name: "entitlements", type: "address[]", internalType: "contract IEntitlement[]", }, ], }, ], stateMutability: "view", }, { type: "function", name: "getRoles", inputs: [], outputs: [ { name: "", type: "tuple[]", internalType: "struct IRolesBase.Role[]", components: [ { name: "id", type: "uint256", internalType: "uint256", }, { name: "name", type: "string", internalType: "string", }, { name: "disabled", type: "bool", internalType: "bool", }, { name: "permissions", type: "string[]", internalType: "string[]", }, { name: "entitlements", type: "address[]", internalType: "contract IEntitlement[]", }, ], }, ], stateMutability: "view", }, { type: "function", name: "removePermissionsFromRole", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "permissions", type: "string[]", internalType: "string[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "removeRole", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "removeRoleFromEntitlement", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "entitlement", type: "tuple", internalType: "struct IRolesBase.CreateEntitlement", components: [ { name: "module", type: "address", internalType: "contract IEntitlement", }, { name: "data", type: "bytes", internalType: "bytes", }, ], }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setChannelPermissionOverrides", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "channelId", type: "bytes32", internalType: "bytes32", }, { name: "permissions", type: "string[]", internalType: "string[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "updateRole", inputs: [ { name: "roleId", type: "uint256", internalType: "uint256", }, { name: "roleName", type: "string", internalType: "string", }, { name: "permissions", type: "string[]", internalType: "string[]", }, { name: "entitlements", type: "tuple[]", internalType: "struct IRolesBase.CreateEntitlement[]", components: [ { name: "module", type: "address", internalType: "contract IEntitlement", }, { name: "data", type: "bytes", internalType: "bytes", }, ], }, ], outputs: [], stateMutability: "nonpayable", }, { type: "event", name: "Approval", inputs: [ { name: "owner", type: "address", indexed: true, internalType: "address", }, { name: "approved", type: "address", indexed: true, internalType: "address", }, { name: "tokenId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "ApprovalForAll", inputs: [ { name: "owner", type: "address", indexed: true, internalType: "address", }, { name: "operator", type: "address", indexed: true, internalType: "address", }, { name: "approved", type: "bool", indexed: false, internalType: "bool", }, ], anonymous: false, }, { type: "event", name: "Banned", inputs: [ { name: "moderator", type: "address", indexed: true, internalType: "address", }, { name: "tokenId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "ConsecutiveTransfer", inputs: [ { name: "fromTokenId", type: "uint256", indexed: true, internalType: "uint256", }, { name: "toTokenId", type: "uint256", indexed: false, internalType: "uint256", }, { name: "from", type: "address", indexed: true, internalType: "address", }, { name: "to", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "OwnershipTransferred", inputs: [ { name: "previousOwner", type: "address", indexed: true, internalType: "address", }, { name: "newOwner", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "Paused", inputs: [ { name: "account", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "PermissionsAddedToChannelRole", inputs: [ { name: "updater", type: "address", indexed: true, internalType: "address", }, { name: "roleId", type: "uint256", indexed: true, internalType: "uint256", }, { name: "channelId", type: "bytes32", indexed: true, internalType: "bytes32", }, ], anonymous: false, }, { type: "event", name: "PermissionsRemovedFromChannelRole", inputs: [ { name: "updater", type: "address", indexed: true, internalType: "address", }, { name: "roleId", type: "uint256", indexed: true, internalType: "uint256", }, { name: "channelId", type: "bytes32", indexed: true, internalType: "bytes32", }, ], anonymous: false, }, { type: "event", name: "PermissionsUpdatedForChannelRole", inputs: [ { name: "updater", type: "address", indexed: true, internalType: "address", }, { name: "roleId", type: "uint256", indexed: true, internalType: "uint256", }, { name: "channelId", type: "bytes32", indexed: true, internalType: "bytes32", }, ], anonymous: false, }, { type: "event", name: "RoleCreated", inputs: [ { name: "creator", type: "address", indexed: true, internalType: "address", }, { name: "roleId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "RoleRemoved", inputs: [ { name: "remover", type: "address", indexed: true, internalType: "address", }, { name: "roleId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "RoleUpdated", inputs: [ { name: "updater", type: "address", indexed: true, internalType: "address", }, { name: "roleId", 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: "tokenId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "Unbanned", inputs: [ { name: "moderator", type: "address", indexed: true, internalType: "address", }, { name: "tokenId", type: "uint256", indexed: true, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "Unpaused", inputs: [ { name: "account", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "error", name: "ApprovalCallerNotOwnerNorApproved", inputs: [], }, { type: "error", name: "ApprovalQueryForNonexistentToken", inputs: [], }, { type: "error", name: "BalanceQueryForZeroAddress", inputs: [], }, { type: "error", name: "Banning__AlreadyBanned", inputs: [ { name: "tokenId", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "Banning__CannotBanOwner", inputs: [], }, { type: "error", name: "Banning__CannotBanSelf", inputs: [], }, { type: "error", name: "Banning__InvalidTokenId", inputs: [ { name: "tokenId", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "Banning__NotBanned", inputs: [ { name: "tokenId", type: "uint256", internalType: "uint256", }, ], }, { type: "error", name: "Entitlement__InvalidValue", inputs: [], }, { type: "error", name: "Entitlement__NotAllowed", inputs: [], }, { type: "error", name: "Entitlement__NotMember", inputs: [], }, { type: "error", name: "Entitlement__ValueAlreadyExists", inputs: [], }, { type: "error", name: "EntitlementsService__EntitlementDoesNotExist", inputs: [], }, { type: "error", name: "EntitlementsService__InvalidEntitlementAddress", inputs: [], }, { type: "error", name: "EntitlementsService__InvalidEntitlementInterface", inputs: [], }, { type: "error", name: "MintERC2309QuantityExceedsLimit", inputs: [], }, { type: "error", name: "MintToZeroAddress", inputs: [], }, { type: "error", name: "MintZeroQuantity", inputs: [], }, { type: "error", name: "Ownable__NotOwner", inputs: [ { name: "account", type: "address", internalType: "address", }, ], }, { type: "error", name: "Ownable__ZeroAddress", inputs: [], }, { type: "error", name: "OwnerQueryForNonexistentToken", inputs: [], }, { type: "error", name: "OwnershipNotInitializedForExtraData", inputs: [], }, { type: "error", name: "Pausable__NotPaused", inputs: [], }, { type: "error", name: "Pausable__Paused", inputs: [], }, { type: "error", name: "Roles__EntitlementAlreadyExists", inputs: [], }, { type: "error", name: "Roles__EntitlementDoesNotExist", inputs: [], }, { type: "error", name: "Roles__InvalidEntitlementAddress", inputs: [], }, { type: "error", name: "Roles__InvalidPermission", inputs: [], }, { type: "error", name: "Roles__PermissionAlreadyExists", inputs: [], }, { type: "error", name: "Roles__PermissionDoesNotExist", inputs: [], }, { type: "error", name: "Roles__RoleDoesNotExist", inputs: [], }, { type: "error", name: "Roles__RoleIsImmutable", inputs: [], }, { type: "error", name: "TransferCallerNotOwnerNorApproved", inputs: [], }, { type: "error", name: "TransferFromIncorrectOwner", inputs: [], }, { type: "error", name: "TransferToNonERC721ReceiverImplementer", inputs: [], }, { type: "error", name: "TransferToZeroAddress", inputs: [], }, { type: "error", name: "URIQueryForNonexistentToken", inputs: [], }, ] as const; const _bytecode = "0x6080604052348015600e575f5ffd5b5061393d8061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80639a8e4c3e11610088578063ba201ba811610063578063ba201ba8146101be578063bd9af74a146101d1578063d2dea2b9146101e4578063dba81864146101f7575f5ffd5b80639a8e4c3e14610185578063b426423314610198578063b7515761146101ab575f5ffd5b8063784c872b116100b8578063784c872b146101315780638fcd793d146101515780639269182114610172575f5ffd5b80634d8b50a2146100de57806365634a48146100f3578063710613981461011c575b5f5ffd5b6100f16100ec366004612ce5565b61020a565b005b610106610101366004612d8d565b610260565b6040516101139190612df9565b60405180910390f35b610124610275565b6040516101139190612f95565b61014461013f36600461300a565b610284565b6040516101139190613021565b61016461015f366004613033565b6102c8565b604051908152602001610113565b6100f161018036600461300a565b610320565b6100f16101933660046130d2565b61036a565b6101066101a636600461300a565b6103ed565b6100f16101b93660046130d2565b610428565b6100f16101cc36600461311a565b6104a6565b6100f16101df366004613164565b6104f2565b6100f16101f2366004612d8d565b610542565b6100f161020536600461311a565b61058a565b6102486040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61025787878787878787610660565b50505050505050565b606061026c8383610a16565b90505b92915050565b606061027f610a6a565b905090565b6102b66040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b6102bf82610ba5565b61026f82610bfc565b5f6103076040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b610315878787878787610c71565b979650505050505050565b61035e6040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61036781610e29565b50565b6103a86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6103b183610ba5565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e8908383610f54565b505050565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040902060609061026f906002016110a8565b6104666040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61046f83610ba5565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e890838361117f565b6104e46040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee8282611250565b5050565b6105306040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61053c848484846112d3565b50505050565b6105806040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee828261142f565b6105c86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee82826114f1565b336105db611567565b73ffffffffffffffffffffffffffffffffffffffff16148061062f57507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff1615801561062f575061062f3382611627565b156106375750565b6103677f338e692c0000000000000000000000000000000000000000000000000000000061163b565b61066987610ba5565b5f8781527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260409020600181015460ff16156106cb576106cb7f497dbeb10000000000000000000000000000000000000000000000000000000061163b565b5f6106d582611643565b8051909150835f8167ffffffffffffffff8111156106f5576106f56131b3565b60405190808252806020026020018201604052801561071e578160200160208202803683370190505b5090505f5b828110156107b3575f88888381811061073e5761073e6131e0565b9050602002810190610750919061320d565b61075e90602081019061326a565b905061076981611659565b610772816117d7565b80838381518110610785576107856131e0565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250600101610723565b5089156107c857846107c68b8d83613314565b505b87156107e5576107da85600201611858565b6107e5858a8a61117f565b815f036107f6575050505050610257565b5f5b838110156108345761082c858281518110610815576108156131e0565b60200260200101518761194090919063ffffffff16565b6001016107f8565b505f5b828110156108735761086b828281518110610854576108546131e0565b60200260200101518761198790919063ffffffff16565b600101610837565b505f5b83811015610968575f858281518110610891576108916131e0565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16631eee07b28f6040518263ffffffff1660e01b81526004016108d391815260200190565b5f60405180830381865afa1580156108ed573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109329190810190613479565b80519091501561095f5761095f868381518110610951576109516131e0565b60200260200101518f6119cf565b50600101610876565b505f5b828110156109db5736888883818110610986576109866131e0565b9050602002810190610998919061320d565b90506109af6109aa602083018361352b565b611a57565b6109d26109bf602083018361326a565b8f6109cd602085018561352b565b611a88565b5060010161096b565b506040518c9033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e6905f90a3505050505050505050505050565b6060610a2183610ba5565b610a2a82611b1a565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0560209081526040808320858452909152902061026c906110a8565b60605f610a75611b71565b80519091508067ffffffffffffffff811115610a9357610a936131b3565b604051908082528060200260200182016040528015610af657816020015b610ae36040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081610ab15790505b5092505f5b81811015610b9f575f5f5f5f610b29878681518110610b1c57610b1c6131e0565b6020026020010151611b9c565b93509350935093506040518060a00160405280888781518110610b4e57610b4e6131e0565b60200260200101518152602001858152602001841515815260200183815260200182815250888681518110610b8557610b856131e0565b602002602001018190525050505050806001019050610afb565b50505090565b610bcf7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611c88565b610367576103677fa3f70f7b0000000000000000000000000000000000000000000000000000000061163b565b610c2e6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b5f5f5f5f610c3b86611b9c565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b5f610c7e87876002611c9f565b815f8167ffffffffffffffff811115610c9957610c996131b3565b604051908082528060200260200182016040528015610cc2578160200160208202803683370190505b507f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0080549192509081905f90610cf7906135b9565b918290555093505f5b83811015610dbe5736878783818110610d1b57610d1b6131e0565b9050602002810190610d2d919061320d565b9050610d44610d3f602083018361326a565b611659565b610d51602082018261326a565b848381518110610d6357610d636131e0565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101820152610d97906109aa9083018361352b565b610db5610da7602083018361326a565b876109cd602085018561352b565b50600101610d00565b50610dcc6001820185611cd0565b505f848152600382016020526040812090610def9082908d908d908d8d89611cdb565b604051859033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b147905f90a3505050509695505050505050565b610e3281610ba5565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0091610e8982611643565b9050610e9482611dd9565b610ea16001840185611e36565b505f610eac85611e41565b80519091505f5b81811015610ee657610ede838281518110610ed057610ed06131e0565b602002602001015188611f26565b600101610eb3565b5082515f5b81811015610f1e57610f16858281518110610f0857610f086131e0565b6020026020010151896119cf565b600101610eeb565b50604051879033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d055905f90a350505050505050565b805f5b818110156110a157610f8b848483818110610f7457610f746131e0565b9050602002810190610f86919061352b565b611fc7565b611006848483818110610fa057610fa06131e0565b9050602002810190610fb2919061352b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050825160208185018101805160038d01825292820191909501209352505054151590565b611033576110337f3e2b02610000000000000000000000000000000000000000000000000000000061163b565b611098848483818110611048576110486131e0565b905060200281019061105a919061352b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250506002890192915050611ff8565b50600101610f57565b5050505050565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015611174578382905f5260205f200180546110e990613285565b80601f016020809104026020016040519081016040528092919081815260200182805461111590613285565b80156111605780601f1061113757610100808354040283529160200191611160565b820191905f5260205f20905b81548152906001019060200180831161114357829003601f168201915b5050505050815260200190600101906110cc565b505050509050919050565b805f5b818110156110a15761119f848483818110610f7457610f746131e0565b6111b4848483818110610fa057610fa06131e0565b156111e2576111e27fb0ab68210000000000000000000000000000000000000000000000000000000061163b565b6112478484838181106111f7576111f76131e0565b9050602002810190611209919061352b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250506002890192915050612148565b50600101611182565b61125982610ba5565b61126e611269602083018361326a565b6117d7565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906112b5906112ae9084018461326a565b8290611987565b6103e86112c5602084018461326a565b846109cd602086018661352b565b808015611429576112e385610ba5565b6112ec84611b1a565b5f8581527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832087845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009061134e81611858565b5f5b838110156113d95761136d868683818110610f7457610f746131e0565b6113d0868683818110611382576113826131e0565b9050602002810190611394919061352b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525086939250506121489050565b50600101611350565b505f87815260048301602052604090206113f39087611cd0565b506040518690889033907f38ef31503bf60258feeceab5e2c3778cf74be2a8fbcc150d209ca96cd3c98553905f90a450506110a1565b6110a185855b61143882610ba5565b61144181611b1a565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832084845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906114a381611858565b5f84815260048301602052604090206114bc9084611e36565b506040518390859033907f07439707c74b686d8e4d3f3226348eac82205e6dffd780ac4c555a4c2dc9d86c905f90a450505050565b6114fa82610ba5565b61150a611269602083018361326a565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906115519061154a9084018461326a565b8290611940565b6103e8611561602084018461326a565b846119cf565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156115fd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162191906135f0565b91505090565b5f61026c81846116368561360b565b61219e565b805f5260045ffd5b60605f6116528360040161246e565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166116a6576040517fe0dc2ae000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527ff785968a00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa92505050801561176a575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526117679181019061364d565b60015b6117a0576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806104ee576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006118227fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931018361247a565b6104ee576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805481905f5b81811015611938575f84815260208120820190505f61192486835f01805461188590613285565b80601f01602080910402602001604051908101604052809291908181526020018280546118b190613285565b80156118fc5780601f106118d3576101008083540402835291602001916118fc565b820191905f5260205f20905b8154815290600101906020018083116118df57829003601f168201915b5050505050805180820160209081018051600195909501815291810192019190912091905290565b5561192f815f612c15565b5060010161185e565b50505f905550565b61194d600483018261247a565b61197a5761197a7f480a52fa0000000000000000000000000000000000000000000000000000000061163b565b6103e860048301826124a8565b611994600483018261247a565b156119c2576119c27ffb5584f10000000000000000000000000000000000000000000000000000000061163b565b6103e860048301826124c9565b6119d8826117d7565b6040517ff0c111f90000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff83169063f0c111f9906024015f604051808303815f87803b158015611a3d575f5ffd5b505af1158015611a4f573d5f5f3e3d5ffd5b505050505050565b5f8190036104ee576104ee7f947d5a840000000000000000000000000000000000000000000000000000000061163b565b611a91846117d7565b6040517fef8be57400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063ef8be57490611ae79086908690869060040161366c565b5f604051808303815f87803b158015611afe575f5ffd5b505af1158015611b10573d5f5f3e3d5ffd5b5050505050505050565b611b447f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430082611c88565b610367576103677fac1696820000000000000000000000000000000000000000000000000000000061163b565b606061027f7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0161246e565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190611bde90613285565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0a90613285565b8015611c555780601f10611c2c57610100808354040283529160200191611c55565b820191905f5260205f20905b815481529060010190602001808311611c3857829003601f168201915b5050505060018301549196505060ff169350611c73600282016110a8565b9250611c7e81611643565b9150509193509193565b5f818152600183016020526040812054151561026c565b808210156103e8576103e87f947d5a840000000000000000000000000000000000000000000000000000000061163b565b5f61026c83836124e6565b86611ce7868883613314565b506001870180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515179055611d2187848461117f565b5f5b8151811015611b10575f73ffffffffffffffffffffffffffffffffffffffff16828281518110611d5557611d556131e0565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611da157611da17f7442429b0000000000000000000000000000000000000000000000000000000061163b565b611dd0828281518110611db657611db66131e0565b6020026020010151896004016124c990919063ffffffff16565b50600101611d23565b60408051602081019091525f81528190611df390826136bf565b506001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055611e2a60028201611858565b61036781600401612532565b5f61026c838361253b565b60607f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043005f611e6e8261261e565b90505f8167ffffffffffffffff811115611e8a57611e8a6131b3565b604051908082528060200260200182016040528015611eb3578160200160208202803683370190505b5093505f5b82811015611f1b575f611ecb8583612627565b5f8181526003870160205260409020909150611ee79088611c88565b15611f125780868480600101955081518110611f0557611f056131e0565b6020026020010181815250505b50600101611eb8565b508352509092915050565b611f2f82611b1a565b611f3882612632565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430090611f908184611c88565b611fbd57611fbd7f6796073e0000000000000000000000000000000000000000000000000000000061163b565b6110a18184611e36565b5f8190036104ee576104ee7f0ce76c100000000000000000000000000000000000000000000000000000000061163b565b8051602081830181018051600186018252928201918401919091209190528054801580159291906121405784545f868152602090208691907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019183010184831461212d575f815f01805461206e90613285565b80601f016020809104026020016040519081016040528092919081815260200182805461209a90613285565b80156120e55780601f106120bc576101008083540402835291602001916120e5565b820191905f5260205f20905b8154815290600101906020018083116120c857829003601f168201915b50505050509050806121028b600189035f91825260209091200190565b9061210d90826136bf565b50805160208183018101805160018e018252928201919093012091528590555b612137815f612c15565b50909155505f82555b505092915050565b805160208183018101805160018601825292820191840191909120919052805415908115612197578354600181018086555f8681526020902086929190820161219187826136bf565b50835550505b5092915050565b5f5f6121a8611567565b90505f6121b485612693565b80519091505f6121c26129d7565b80519091505f5b838110156122b1575f8582815181106121e4576121e46131e0565b602002602001015190508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612231576001975050505050505050611652565b5f5b838110156122a7578173ffffffffffffffffffffffffffffffffffffffff16612274868381518110612267576122676131e0565b6020026020010151612a02565b73ffffffffffffffffffffffffffffffffffffffff160361229f575f98505050505050505050611652565b600101612233565b50506001016121c9565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f6122fd7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310161261e565b90505f5b8181101561245d575f83816123196001830185612627565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182015f205482517f2e1b61e40000000000000000000000000000000000000000000000000000000081529251911693508392632e1b61e492600480820193918290030181865afa158015612395573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b9919061364d565b15801561243d57508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5338e8a8e6040518463ffffffff1660e01b81526004016123fe939291906137d6565b602060405180830381865afa158015612419573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243d919061364d565b156124545760019950505050505050505050611652565b50600101612301565b505f9b9a5050505050505050505050565b60605f61165283612a0c565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600183016020526040812054151561026c565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff841661253b565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff84165b5f81815260018301602052604081205461252b57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561026f565b505f61026f565b61036781612a65565b5f8181526001830160205260408120548015612615575f61255d600183613841565b85549091505f9061257090600190613841565b90508082146125cf575f865f01828154811061258e5761258e6131e0565b905f5260205f200154905080875f0184815481106125ae576125ae6131e0565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806125e0576125e0613854565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061026f565b5f91505061026f565b5f61026f825490565b5f61026c8383612abe565b5f8181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460ff1615610367576103677fd9c005120000000000000000000000000000000000000000000000000000000061163b565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa15801561272a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261276f9190810190613881565b905080515f036128e0576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa1580156127e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280a91906135f0565b905073ffffffffffffffffffffffffffffffffffffffff8116156128de576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015612896573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526128db9190810190613881565b91505b505b80515f6128ee82600161392a565b67ffffffffffffffff811115612906576129066131b3565b60405190808252806020026020018201604052801561292f578160200160208202803683370190505b5090505f5b828110156129955783818151811061294e5761294e6131e0565b6020026020010151828281518110612968576129686131e0565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612934565b50858183815181106129a9576129a96131e0565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015295945050505050565b606061027f7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf0061246e565b5f61026f82612ae4565b6060815f01805480602002602001604051908101604052809291908181526020018280548015612a5957602002820191905f5260205f20905b815481526020019060010190808311612a45575b50505050509050919050565b5f612a6e825490565b90505f5b81811015612ab757826001015f845f018381548110612a9357612a936131e0565b905f5260205f20015481526020019081526020015f205f9055806001019050612a72565b50505f9055565b5f825f018281548110612ad357612ad36131e0565b905f5260205f200154905092915050565b5f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003612be257815f03612bdc5780548310612b9b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115612b9c575b50919050565b506040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b508054612c2190613285565b5f825580601f10612c30575050565b601f0160209004905f5260205f209081019061036791905b80821115612c5b575f8155600101612c48565b5090565b5f5f83601f840112612c6f575f5ffd5b50813567ffffffffffffffff811115612c86575f5ffd5b602083019150836020828501011115612c9d575f5ffd5b9250929050565b5f5f83601f840112612cb4575f5ffd5b50813567ffffffffffffffff811115612ccb575f5ffd5b6020830191508360208260051b8501011115612c9d575f5ffd5b5f5f5f5f5f5f5f6080888a031215612cfb575f5ffd5b87359650602088013567ffffffffffffffff811115612d18575f5ffd5b612d248a828b01612c5f565b909750955050604088013567ffffffffffffffff811115612d43575f5ffd5b612d4f8a828b01612ca4565b909550935050606088013567ffffffffffffffff811115612d6e575f5ffd5b612d7a8a828b01612ca4565b989b979a50959850939692959293505050565b5f5f60408385031215612d9e575f5ffd5b50508035926020909101359150565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612e6e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452612e59858351612dad565b94506020938401939190910190600101612e1f565b50929695505050505050565b5f8151808452602084019350602083015f5b82811015612ec057815173ffffffffffffffffffffffffffffffffffffffff16865260209586019590910190600101612e8c565b5093949350505050565b805182525f602082015160a06020850152612ee860a0850182612dad565b90506040830151151560408501526060830151848203606086015281815180845260208401915060208160051b8501016020840193505f5b82811015612f6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868303018452612f5a828651612dad565b60209586019594909401939150600101612f20565b50608087015194508781036080890152612f898186612e7a565b98975050505050505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612e6e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452612ff5858351612eca565b94506020938401939190910190600101612fbb565b5f6020828403121561301a575f5ffd5b5035919050565b602081525f61026c6020830184612eca565b5f5f5f5f5f5f60608789031215613048575f5ffd5b863567ffffffffffffffff81111561305e575f5ffd5b61306a89828a01612c5f565b909750955050602087013567ffffffffffffffff811115613089575f5ffd5b61309589828a01612ca4565b909550935050604087013567ffffffffffffffff8111156130b4575f5ffd5b6130c089828a01612ca4565b979a9699509497509295939492505050565b5f5f5f604084860312156130e4575f5ffd5b83359250602084013567ffffffffffffffff811115613101575f5ffd5b61310d86828701612ca4565b9497909650939450505050565b5f5f6040838503121561312b575f5ffd5b82359150602083013567ffffffffffffffff811115613148575f5ffd5b830160408186031215613159575f5ffd5b809150509250929050565b5f5f5f5f60608587031215613177575f5ffd5b8435935060208501359250604085013567ffffffffffffffff81111561319b575f5ffd5b6131a787828801612ca4565b95989497509550505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261323f575f5ffd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610367575f5ffd5b5f6020828403121561327a575f5ffd5b813561165281613249565b600181811c9082168061329957607f821691505b602082108103612bdc577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156103e857805f5260205f20601f840160051c810160208510156132f55750805b601f840160051c820191505b818110156110a1575f8155600101613301565b67ffffffffffffffff83111561332c5761332c6131b3565b6133408361333a8354613285565b836132d0565b5f601f841160018114613390575f851561335a5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556110a1565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156133dd57868501358255602094850194600190920191016133bd565b5086821015613418577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613471576134716131b3565b604052919050565b5f60208284031215613489575f5ffd5b815167ffffffffffffffff81111561349f575f5ffd5b8201601f810184136134af575f5ffd5b805167ffffffffffffffff8111156134c9576134c96131b3565b6134fa60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161342a565b81815285602083850101111561350e575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261355e575f5ffd5b83018035915067ffffffffffffffff821115613578575f5ffd5b602001915036819003821315612c9d575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135e9576135e961358c565b5060010190565b5f60208284031215613600575f5ffd5b815161165281613249565b80516020808301519190811015612bdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f6020828403121561365d575f5ffd5b81518015158114611652575f5ffd5b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b815167ffffffffffffffff8111156136d9576136d96131b3565b6136ed816136e78454613285565b846132d0565b6020601f82116001811461373e575f83156137085750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556110a1565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561378b578785015182556020948501946001909201910161376b565b50848210156137c757868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561382d57835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016137f9565b505060409390930193909352509392505050565b8181038181111561026f5761026f61358c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f60208284031215613891575f5ffd5b815167ffffffffffffffff8111156138a7575f5ffd5b8201601f810184136138b7575f5ffd5b805167ffffffffffffffff8111156138d1576138d16131b3565b8060051b6138e16020820161342a565b918252602081840181019290810190878411156138fc575f5ffd5b6020850194505b83851015610315578451925061391883613249565b82825260209485019490910190613903565b8082018082111561026f5761026f61358c56"; type RolesConstructorParams = | [signer?: Signer] | ConstructorParameters<typeof ContractFactory>; const isSuperArgs = ( xs: RolesConstructorParams ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1; export class Roles__factory extends ContractFactory { constructor(...args: RolesConstructorParams) { if (isSuperArgs(args)) { super(...args); } else { super(_abi, _bytecode, args[0]); } } override deploy( overrides?: Overrides & { from?: PromiseOrValue<string> } ): Promise<Roles> { return super.deploy(overrides || {}) as Promise<Roles>; } override getDeployTransaction( overrides?: Overrides & { from?: PromiseOrValue<string> } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } override attach(address: string): Roles { return super.attach(address) as Roles; } override connect(signer: Signer): Roles__factory { return super.connect(signer) as Roles__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): RolesInterface { return new utils.Interface(_abi) as RolesInterface; } static connect(address: string, signerOrProvider: Signer | Provider): Roles { return new Contract(address, _abi, signerOrProvider) as Roles; } }