/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { BlockChatUpgradeable, BlockChatUpgradeableInterface, } from "../BlockChatUpgradeable"; const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "previousAdmin", type: "address", }, { indexed: false, internalType: "address", name: "newAdmin", type: "address", }, ], name: "AdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "beacon", type: "address", }, ], name: "BeaconUpgraded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "dataHash", type: "bytes32", }, { indexed: false, internalType: "string", name: "content", type: "string", }, ], name: "DataUploaded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address", }, { indexed: true, internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { indexed: false, internalType: "uint48", name: "createDate", type: "uint48", }, { indexed: false, internalType: "string", name: "content", type: "string", }, ], name: "MessageCreated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32", }, ], name: "RoleAdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleRevoked", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "implementation", type: "address", }, ], name: "Upgraded", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "uint48", name: "start", type: "uint48", }, { internalType: "uint48", name: "length", type: "uint48", }, ], name: "batchRecipientMessageBlock", outputs: [ { internalType: "uint48[]", name: "", type: "uint48[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "sender", type: "address", }, { internalType: "uint48", name: "start", type: "uint48", }, { internalType: "uint48", name: "length", type: "uint48", }, ], name: "batchSenderMessageBlock", outputs: [ { internalType: "uint48[]", name: "", type: "uint48[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "blockSkip", outputs: [ { internalType: "uint48", name: "", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, ], name: "createMessage", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "createMessageCall", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, ], name: "createMessageCallBack", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, ], name: "createMessageHash", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "createMessageHashAndCall", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "string", name: "content", type: "string", }, { internalType: "bool", name: "isToSender", type: "bool", }, ], name: "createMessageHashAndCallBack", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], name: "dataBlockMap", outputs: [ { internalType: "uint48", name: "", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "sender", type: "address", }, { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, { internalType: "uint48", name: "createDate", type: "uint48", }, { internalType: "string", name: "content", type: "string", }, ], name: "getMessageHash", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "string", name: "name", type: "string", }, ], name: "getNameHash", outputs: [ { internalType: "bytes12", name: "", type: "bytes12", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "string", name: "name", type: "string", }, ], name: "getRecipientHash", outputs: [ { internalType: "bytes20", name: "", type: "bytes20", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "bytes20", name: "recipientHash", type: "bytes20", }, ], name: "getRecipientMessageBlockListLength", outputs: [ { internalType: "uint48", name: "", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "grantRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "implementationVersion", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "pure", type: "function", }, { inputs: [], name: "initialize", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], name: "messageHashMap", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes20", name: "", type: "bytes20", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "recipientMessageBlockListMap", outputs: [ { internalType: "uint48", name: "", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "renounceRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "revokeRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "senderMessageBlockListMap", outputs: [ { internalType: "uint48", name: "", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint48", name: "newBlockSkip", type: "uint48", }, ], name: "setBlockSkip", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4", }, ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, ], name: "upgradeTo", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "upgradeToAndCall", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "bytes12", name: "nameHash", type: "bytes12", }, { internalType: "string", name: "content", type: "string", }, ], name: "uploadData", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60a06040523060805234801561001457600080fd5b50600054610100900460ff168061002e575060005460ff16155b6100955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100b7576000805461ffff19166101011790555b80156100c9576000805461ff00191690555b5060805161265f620000fb60003960008181610b0e01528181610b4e01528181610dff0152610e3f015261265f6000f3fe6080604052600436106101cd5760003560e01c806360ba450a116100f75780638129fc1c11610095578063a6b0c3a611610064578063a6b0c3a614610592578063adb58537146105b2578063d547741f146105e2578063f5f35e0b1461060257600080fd5b80638129fc1c146105355780638ea8d25b1461054a57806391d148541461055d578063a217fddf1461057d57600080fd5b806375bf7a03116100d157806375bf7a031461049d57806378e2a033146104bc5780637d7c3079146104dc5780637dfad32c1461051557600080fd5b806360ba450a146103f8578063638633f01461042d578063742bbd3e1461046457600080fd5b80632c4881c31161016f5780633ddf1a591161013e5780633ddf1a591461039f57806344a4c021146103b25780634c2cf181146103c55780634f1ef286146103e557600080fd5b80632c4881c3146103085780632f2ff15d1461033f57806336568abe1461035f5780633659cfe61461037f57600080fd5b806319ae10fe116101ab57806319ae10fe146102695780631a5588651461028b5780631f3d808e146102b8578063248a9ca3146102d857600080fd5b806301ffc9a7146101d2578063021e521e1461020757806306bfcec614610235575b600080fd5b3480156101de57600080fd5b506101f26101ed366004611c6c565b610615565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b50610227610222366004611d29565b61064c565b6040519081526020016101fe565b34801561024157600080fd5b506040805180820182526005815264312e302e3160d81b602082015290516101fe9190611dcb565b34801561027557600080fd5b50610289610284366004611e0e565b610688565b005b34801561029757600080fd5b506102ab6102a6366004611e73565b610841565b6040516101fe9190611eb6565b3480156102c457600080fd5b506102896102d3366004611f02565b61095d565b3480156102e457600080fd5b506102276102f3366004611f64565b60009081526065602052604090206001015490565b34801561031457600080fd5b50610328610323366004611f7d565b610a0a565b60405165ffffffffffff90911681526020016101fe565b34801561034b57600080fd5b5061028961035a366004611fa7565b610a55565b34801561036b57600080fd5b5061028961037a366004611fa7565b610a80565b34801561038b57600080fd5b5061028961039a366004611fd3565b610b03565b6102896103ad366004611e0e565b610bcc565b6102896103c0366004611fee565b610cb4565b3480156103d157600080fd5b506102896103e0366004611e0e565b610dbe565b6102896103f3366004612098565b610df4565b34801561040457600080fd5b50610328610413366004611f64565b60fc6020526000908152604090205465ffffffffffff1681565b34801561043957600080fd5b5061032861044836600461215a565b6001600160601b031916600090815260fb602052604090205490565b34801561047057600080fd5b5061048461047f366004612175565b610eaa565b6040516001600160a01b031990911681526020016101fe565b3480156104a957600080fd5b5060fd546103289065ffffffffffff1681565b3480156104c857600080fd5b506103286104d73660046121b7565b610edd565b3480156104e857600080fd5b506104fc6104f7366004612175565b610ef9565b6040516001600160601b031990911681526020016101fe565b34801561052157600080fd5b506102ab6105303660046121d3565b610f30565b34801561054157600080fd5b50610289611042565b610289610558366004611fee565b6110db565b34801561056957600080fd5b506101f2610578366004611fa7565b6111dc565b34801561058957600080fd5b50610227600081565b34801561059e57600080fd5b506102896105ad3660046121f1565b611207565b3480156105be57600080fd5b506101f26105cd366004611f64565b60fe6020526000908152604090205460ff1681565b3480156105ee57600080fd5b506102896105fd366004611fa7565b61124e565b610289610610366004611e0e565b611274565b60006001600160e01b03198216637965db0b60e01b148061064657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000858585858560405160200161066795949392919061220c565b60405160208183030381529060405280519060200120905095945050505050565b6001600160601b03198416600090815260fb602090815260408083208054825181850281018501909352808352919290919083018282801561071957602002820191906000526020600020906000905b82829054906101000a900465ffffffffffff1665ffffffffffff16815260200190600601906020826005010492830192600103820291508084116106d85790505b50508351939450439333935015915081905061077b575060fd54835165ffffffffffff90911690849061074e9060019061226b565b8151811061075e5761075e612282565b6020026020010151836107719190612298565b65ffffffffffff16115b156107d3576001600160601b03198716600090815260fb6020908152604082208054600181018255908352912060058083049091018054919092066006026101000a65ffffffffffff81810219909216918516021790555b83156107e3576107e3818361133c565b866bffffffffffffffffffffffff1916816001600160a01b03167f04645d1912a047d447f2f3fdbaefa7186c6d734f33ab33159768289870499423428989604051610830939291906122e8565b60405180910390a350505050505050565b606060008265ffffffffffff1667ffffffffffffffff81111561086657610866612082565b60405190808252806020026020018201604052801561088f578160200160208202803683370190505b50905060005b8365ffffffffffff168165ffffffffffff161015610952576001600160a01b038616600090815260ff602052604090206108cf828761230a565b65ffffffffffff16815481106108e7576108e7612282565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff16828265ffffffffffff168151811061092957610929612282565b65ffffffffffff909216602092830291909101909101528061094a81612334565b915050610895565b5090505b9392505050565b604080516001600160601b03193360601b1660208201526001600160a01b031985166034820152600091016040516020818303038152906040526109a09061235a565b600081815260fc602052604090819020805465ffffffffffff19164365ffffffffffff161790555190915081907f49c90b3999c4835facc88391d87593faa6306fe2e94bb3cb5d2e9dbb7d754698906109fc9086908690612381565b60405180910390a250505050565b60ff6020528160005260406000208181548110610a2657600080fd5b9060005260206000209060059182820401919006600602915091509054906101000a900465ffffffffffff1681565b600082815260656020526040902060010154610a718133611488565b610a7b83836114ec565b505050565b6001600160a01b0381163314610af55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610aff8282611572565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b4c5760405162461bcd60e51b8152600401610aec9061239d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b7e6115d9565b6001600160a01b031614610ba45760405162461bcd60e51b8152600401610aec906123e9565b610bad81611607565b60408051600080825260208201909252610bc99183919061162e565b50565b6000610bdb338642878761064c565b90503415610c45576040516301c2b83d60e01b815233600482015260248101829052606086901c906301c2b83d9034906044016000604051808303818588803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b5050505050610ca1565b6040516301c2b83d60e01b815233600482015260248101829052606086901c906301c2b83d90604401600060405180830381600087803b158015610c8857600080fd5b505af1158015610c9c573d6000803e3d6000fd5b505050505b610cad85858585610688565b5050505050565b60003415610d27578660601c6001600160a01b0316348484604051610cda929190612435565b60006040518083038185875af1925050503d8060008114610d17576040519150601f19603f3d011682016040523d82523d6000602084013e610d1c565b606091505b505080915050610d8c565b8660601c6001600160a01b03168383604051610d44929190612435565b6000604051808303816000865af19150503d8060008114610d81576040519150601f19603f3d011682016040523d82523d6000602084013e610d86565b606091505b50909150505b80610da95760405162461bcd60e51b8152600401610aec90612445565b610db587878787610dbe565b50505050505050565b6000610dcd338642878761064c565b600081815260fe60205260409020805460ff191660011790559050610cad85858585610688565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e3d5760405162461bcd60e51b8152600401610aec9061239d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e6f6115d9565b6001600160a01b031614610e955760405162461bcd60e51b8152600401610aec906123e9565b610e9e82611607565b610aff8282600161162e565b60008282604051602001610ebf929190612435565b60405160208183030381529060405280519060200120905092915050565b60fb6020528160005260406000208181548110610a2657600080fd5b60008282604051602001610f0e929190612435565b60408051601f19818403018152919052805160209091012060601b9392505050565b606060008265ffffffffffff1667ffffffffffffffff811115610f5557610f55612082565b604051908082528060200260200182016040528015610f7e578160200160208202803683370190505b50905060005b8365ffffffffffff168165ffffffffffff161015610952576001600160601b03198616600090815260fb60205260409020610fbf828761230a565b65ffffffffffff1681548110610fd757610fd7612282565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff16828265ffffffffffff168151811061101957611019612282565b65ffffffffffff909216602092830291909101909101528061103a81612334565b915050610f84565b600054610100900460ff168061105b575060005460ff16155b6110775760405162461bcd60e51b8152600401610aec90612486565b600054610100900460ff16158015611099576000805461ffff19166101011790555b6110a1611772565b6110a96117f5565b6110b4600033611853565b60fd805465ffffffffffff19166113881790558015610bc9576000805461ff001916905550565b6000341561114e578660601c6001600160a01b0316348484604051611101929190612435565b60006040518083038185875af1925050503d806000811461113e576040519150601f19603f3d011682016040523d82523d6000602084013e611143565b606091505b5050809150506111b3565b8660601c6001600160a01b0316838360405161116b929190612435565b6000604051808303816000865af19150503d80600081146111a8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ad565b606091505b50909150505b806111d05760405162461bcd60e51b8152600401610aec90612445565b610db587878787610688565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6112126000336111dc565b61122e5760405162461bcd60e51b8152600401610aec906124d4565b60fd805465ffffffffffff191665ffffffffffff92909216919091179055565b60008281526065602052604090206001015461126a8133611488565b610a7b8383611572565b61128084848484610dbe565b34156112e157604051632419946f60e11b8152336004820152606085901c9063483328de9034906024016000604051808303818588803b1580156112c357600080fd5b505af11580156112d7573d6000803e3d6000fd5b5050505050611336565b604051632419946f60e11b8152336004820152606085901c9063483328de90602401600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b038216600090815260ff60209081526040808320805482518185028101850190935280835291929091908301828280156113cc57602002820191906000526020600020906000905b82829054906101000a900465ffffffffffff1665ffffffffffff168152602001906006019060208260050104928301926001038202915080841161138b5790505b50505050509050805160001480611429575060fd54815165ffffffffffff9091169082906113fc9060019061226b565b8151811061140c5761140c612282565b60200260200101518361141f9190612298565b65ffffffffffff16115b15610a7b57506001600160a01b0391909116600090815260ff6020908152604082208054600181018255908352912060058083049091018054919092066006026101000a65ffffffffffff818102199092169390911602919091179055565b61149282826111dc565b610aff576114aa816001600160a01b0316601461185d565b6114b583602061185d565b6040516020016114c6929190612523565b60408051601f198184030181529082905262461bcd60e51b8252610aec91600401611dcb565b6114f682826111dc565b610aff5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561152e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61157c82826111dc565b15610aff5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6116126000336111dc565b610bc95760405162461bcd60e51b8152600401610aec906124d4565b60006116386115d9565b9050611643846119f9565b6000835111806116505750815b156116615761165f8484611a9e565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16610cad57805460ff191660011781556040516001600160a01b03831660248201526116e090869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052611a9e565b50805460ff191681556116f16115d9565b6001600160a01b0316826001600160a01b0316146117695760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610aec565b610cad85611b89565b600054610100900460ff168061178b575060005460ff16155b6117a75760405162461bcd60e51b8152600401610aec90612486565b600054610100900460ff161580156117c9576000805461ffff19166101011790555b6117d1611bc9565b6117d9611bc9565b6117e1611bc9565b8015610bc9576000805461ff001916905550565b600054610100900460ff168061180e575060005460ff16155b61182a5760405162461bcd60e51b8152600401610aec90612486565b600054610100900460ff161580156117d1576000805461ffff19166101011790556117d9611bc9565b610aff82826114ec565b6060600061186c836002612598565b6118779060026125b7565b67ffffffffffffffff81111561188f5761188f612082565b6040519080825280601f01601f1916602001820160405280156118b9576020820181803683370190505b509050600360fc1b816000815181106118d4576118d4612282565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061190357611903612282565b60200101906001600160f81b031916908160001a9053506000611927846002612598565b6119329060016125b7565b90505b60018111156119aa576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061196657611966612282565b1a60f81b82828151811061197c5761197c612282565b60200101906001600160f81b031916908160001a90535060049490941c936119a3816125cf565b9050611935565b5083156109565760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610aec565b803b611a5d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610aec565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b611afd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610aec565b600080846001600160a01b031684604051611b1891906125e6565b600060405180830381855af49150503d8060008114611b53576040519150601f19603f3d011682016040523d82523d6000602084013e611b58565b606091505b5091509150611b80828260405180606001604052806027815260200161260360279139611c33565b95945050505050565b611b92816119f9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff1680611be2575060005460ff16155b611bfe5760405162461bcd60e51b8152600401610aec90612486565b600054610100900460ff161580156117e1576000805461ffff19166101011790558015610bc9576000805461ff001916905550565b60608315611c42575081610956565b825115611c525782518084602001fd5b8160405162461bcd60e51b8152600401610aec9190611dcb565b600060208284031215611c7e57600080fd5b81356001600160e01b03198116811461095657600080fd5b80356001600160a01b0381168114611cad57600080fd5b919050565b80356001600160601b031981168114611cad57600080fd5b803565ffffffffffff81168114611cad57600080fd5b60008083601f840112611cf257600080fd5b50813567ffffffffffffffff811115611d0a57600080fd5b602083019150836020828501011115611d2257600080fd5b9250929050565b600080600080600060808688031215611d4157600080fd5b611d4a86611c96565b9450611d5860208701611cb2565b9350611d6660408701611cca565b9250606086013567ffffffffffffffff811115611d8257600080fd5b611d8e88828901611ce0565b969995985093965092949392505050565b60005b83811015611dba578181015183820152602001611da2565b838111156113365750506000910152565b6020815260008251806020840152611dea816040850160208701611d9f565b601f01601f19169190910160400192915050565b80358015158114611cad57600080fd5b60008060008060608587031215611e2457600080fd5b611e2d85611cb2565b9350602085013567ffffffffffffffff811115611e4957600080fd5b611e5587828801611ce0565b9094509250611e68905060408601611dfe565b905092959194509250565b600080600060608486031215611e8857600080fd5b611e9184611c96565b9250611e9f60208501611cca565b9150611ead60408501611cca565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611ef657835165ffffffffffff1683529284019291840191600101611ed2565b50909695505050505050565b600080600060408486031215611f1757600080fd5b83356001600160a01b031981168114611f2f57600080fd5b9250602084013567ffffffffffffffff811115611f4b57600080fd5b611f5786828701611ce0565b9497909650939450505050565b600060208284031215611f7657600080fd5b5035919050565b60008060408385031215611f9057600080fd5b611f9983611c96565b946020939093013593505050565b60008060408385031215611fba57600080fd5b82359150611fca60208401611c96565b90509250929050565b600060208284031215611fe557600080fd5b61095682611c96565b6000806000806000806080878903121561200757600080fd5b61201087611cb2565b9550602087013567ffffffffffffffff8082111561202d57600080fd5b6120398a838b01611ce0565b909750955085915061204d60408a01611dfe565b9450606089013591508082111561206357600080fd5b5061207089828a01611ce0565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156120ab57600080fd5b6120b483611c96565b9150602083013567ffffffffffffffff808211156120d157600080fd5b818501915085601f8301126120e557600080fd5b8135818111156120f7576120f7612082565b604051601f8201601f19908116603f0116810190838211818310171561211f5761211f612082565b8160405282815288602084870101111561213857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561216c57600080fd5b61095682611cb2565b6000806020838503121561218857600080fd5b823567ffffffffffffffff81111561219f57600080fd5b6121ab85828601611ce0565b90969095509350505050565b600080604083850312156121ca57600080fd5b611f9983611cb2565b6000806000606084860312156121e857600080fd5b611e9184611cb2565b60006020828403121561220357600080fd5b61095682611cca565b6001600160601b0319606087901b81168252851660148201526001600160d01b031960d085901b16602882015260008284602e8401375060009101602e01908152949350505050565b634e487b7160e01b600052601160045260246000fd5b60008282101561227d5761227d612255565b500390565b634e487b7160e01b600052603260045260246000fd5b600065ffffffffffff838116908316818110156122b7576122b7612255565b039392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b65ffffffffffff84168152604060208201526000611b806040830184866122bf565b600065ffffffffffff80831681851680830382111561232b5761232b612255565b01949350505050565b600065ffffffffffff8083168181141561235057612350612255565b6001019392505050565b8051602080830151919081101561237b576000198160200360031b1b821691505b50919050565b6020815260006123956020830184866122bf565b949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b8183823760009101908152919050565b60208082526021908201527f426c6f636b436861745570677261646561626c653a2063616c6c206661696c656040820152601960fa1b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602f908201527f426c6f636b436861745570677261646561626c65323a2072657175697265206160408201526e3236b4b7103832b936b4b9b9b4b7b760891b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161255b816017850160208801611d9f565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161258c816028840160208801611d9f565b01602801949350505050565b60008160001904831182151516156125b2576125b2612255565b500290565b600082198211156125ca576125ca612255565b500190565b6000816125de576125de612255565b506000190190565b600082516125f8818460208701611d9f565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220cc81f78ce84ed08893019e8835adaf117cbc7b29d663001bf6c957f2cd691bf764736f6c634300080c0033"; export class BlockChatUpgradeable__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): BlockChatUpgradeable { return super.attach(address) as BlockChatUpgradeable; } connect(signer: Signer): BlockChatUpgradeable__factory { return super.connect(signer) as BlockChatUpgradeable__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): BlockChatUpgradeableInterface { return new utils.Interface(_abi) as BlockChatUpgradeableInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): BlockChatUpgradeable { return new Contract( address, _abi, signerOrProvider ) as BlockChatUpgradeable; } }