From 082af0ab96a095b46b14c917c2af285fb331497b Mon Sep 17 00:00:00 2001 From: Kerem Kazan Date: Tue, 25 Jun 2024 21:00:54 -0400 Subject: [PATCH] new view function added to get base operators (#280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gamma has a few token owners on the base NodeOperatorFacet, who are not on ds.operators. This is no longer possible and omega has no such token owners. this means that using the base NodeOperatorFacet token owners as a proxy to base operators is prone to creating confusion. this is why gamma is reporting a high number of base operators with status = Exiting, since their status is set to 0 by default. this PR introduces `INodeOperator.getOperators` to standardize how we obtain actual node operator addresses on base. Next steps: - ✅ Gamma proposal - Deploy to gamma - ✅ Update BaseRegistry.getOperators() to use the interface directly, instead of using the token owner workaround - Update the `river_network.total_operators_on_base` metric to exclude operators of status 0 = Exiting. - Keep fetching nodes on base for all operators, regardless of their status. This way we can be aware of nodes on base whose operators have status = Exiting for real - instead of those who appear as Exiting just because they are token owners who are not on ds.operators. - Deploy to omega --- .../facets/DeployNodeOperator.s.sol | 1 + .../facets/operator/INodeOperator.sol | 2 ++ .../facets/operator/NodeOperatorFacet.sol | 5 +++ .../test/base/registry/NodeOperator.t.sol | 24 +++++++++++++ .../contracts/dev/mock_entitlement_checker.go | 35 +++++++++++++++++-- .../contracts/v3/mock_entitlement_checker.go | 35 +++++++++++++++++-- .../generated/dev/abis/INodeOperator.abi.json | 13 +++++++ .../generated/dev/abis/INodeOperator.abi.ts | 13 +++++++ .../generated/dev/abis/INodeOperator.json | 2 +- .../dev/abis/INodeOperator.metadata.json | 19 ++++++++-- .../generated/dev/abis/INodeOperatorBase.json | 2 +- .../dev/abis/INodeOperatorBase.metadata.json | 6 ++-- .../generated/dev/typings/INodeOperator.ts | 20 +++++++++++ .../factories/INodeOperator__factory.ts | 13 +++++++ .../generated/v3/abis/INodeOperator.abi.json | 13 +++++++ .../generated/v3/abis/INodeOperator.abi.ts | 13 +++++++ packages/generated/v3/abis/INodeOperator.json | 2 +- .../v3/abis/INodeOperator.metadata.json | 19 ++++++++-- .../generated/v3/abis/INodeOperatorBase.json | 2 +- .../v3/abis/INodeOperatorBase.metadata.json | 6 ++-- .../generated/v3/typings/INodeOperator.ts | 20 +++++++++++ .../factories/INodeOperator__factory.ts | 13 +++++++ packages/web3/src/v3/BaseRegistry.ts | 10 +----- 23 files changed, 259 insertions(+), 29 deletions(-) diff --git a/contracts/scripts/deployments/facets/DeployNodeOperator.s.sol b/contracts/scripts/deployments/facets/DeployNodeOperator.s.sol index af1e10b5c..cbd12885f 100644 --- a/contracts/scripts/deployments/facets/DeployNodeOperator.s.sol +++ b/contracts/scripts/deployments/facets/DeployNodeOperator.s.sol @@ -20,6 +20,7 @@ contract DeployNodeOperator is Deployer, FacetHelper { addSelector(NodeOperatorFacet.getCommissionRate.selector); addSelector(NodeOperatorFacet.setClaimAddressForOperator.selector); addSelector(NodeOperatorFacet.getClaimAddressForOperator.selector); + addSelector(NodeOperatorFacet.getOperators.selector); } function initializer() public pure override returns (bytes4) { diff --git a/contracts/src/base/registry/facets/operator/INodeOperator.sol b/contracts/src/base/registry/facets/operator/INodeOperator.sol index 22278a527..701b0c095 100644 --- a/contracts/src/base/registry/facets/operator/INodeOperator.sol +++ b/contracts/src/base/registry/facets/operator/INodeOperator.sol @@ -88,6 +88,8 @@ interface INodeOperator is INodeOperatorBase { address operator ) external view returns (address); + function getOperators() external view returns (address[] memory); + // ============================================================= // Commission // ============================================================= diff --git a/contracts/src/base/registry/facets/operator/NodeOperatorFacet.sol b/contracts/src/base/registry/facets/operator/NodeOperatorFacet.sol index a01f7676b..dd9eb75a3 100644 --- a/contracts/src/base/registry/facets/operator/NodeOperatorFacet.sol +++ b/contracts/src/base/registry/facets/operator/NodeOperatorFacet.sol @@ -151,6 +151,11 @@ contract NodeOperatorFacet is INodeOperator, OwnableBase, ERC721ABase, Facet { return NodeOperatorStorage.layout().claimerByOperator[operator]; } + function getOperators() external view returns (address[] memory) { + NodeOperatorStorage.Layout storage ds = NodeOperatorStorage.layout(); + return ds.operators.values(); + } + // ============================================================= // Commission // ============================================================= diff --git a/contracts/test/base/registry/NodeOperator.t.sol b/contracts/test/base/registry/NodeOperator.t.sol index 0424c0599..32a98379a 100644 --- a/contracts/test/base/registry/NodeOperator.t.sol +++ b/contracts/test/base/registry/NodeOperator.t.sol @@ -84,6 +84,30 @@ contract NodeOperatorFacetTest is ); } + function test_getOperatorsAfterRegisterOperator( + address randomOperator1, + address randomOperator2 + ) public { + vm.assume(randomOperator1 != address(0)); + vm.assume(randomOperator2 != address(0)); + vm.assume(randomOperator1 != randomOperator2); + vm.assume(!nodeOperator.isOperator(randomOperator1)); + vm.assume(!nodeOperator.isOperator(randomOperator2)); + address[] memory baseOperators = nodeOperator.getOperators(); + assertEq(baseOperators.length, 0); + vm.prank(randomOperator1); + nodeOperator.registerOperator(randomOperator1); + baseOperators = nodeOperator.getOperators(); + assertEq(baseOperators.length, 1); + assertEq(baseOperators[0], randomOperator1); + vm.prank(randomOperator2); + nodeOperator.registerOperator(randomOperator2); + baseOperators = nodeOperator.getOperators(); + assertEq(baseOperators.length, 2); + assertEq(baseOperators[0], randomOperator1); + assertEq(baseOperators[1], randomOperator2); + } + // ============================================================= // isOperator // ============================================================= diff --git a/core/xchain/contracts/dev/mock_entitlement_checker.go b/core/xchain/contracts/dev/mock_entitlement_checker.go index 3752328c3..8c4724ae4 100644 --- a/core/xchain/contracts/dev/mock_entitlement_checker.go +++ b/core/xchain/contracts/dev/mock_entitlement_checker.go @@ -31,8 +31,8 @@ var ( // MockEntitlementCheckerMetaData contains all meta data concerning the MockEntitlementChecker contract. var MockEntitlementCheckerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"approvedOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementChecker_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__NodeOperator_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getClaimAddressForOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCommissionRate\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodesByOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRandomNodes\",\"inputs\":[{\"name\":\"count\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isValidNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimAddressForOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCommissionRate\",\"inputs\":[{\"name\":\"rateBps\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unregisterNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"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\":\"EntitlementCheckRequested\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"selectedNodes\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"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\":\"NodeRegistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeUnregistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorClaimAddressChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorCommissionChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"commission\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStatusChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumNodeOperatorStatus\"}],\"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\":\"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\":\"error\",\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ApprovalQueryForNonexistentToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BalanceQueryForZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InsufficientNumberOfNodes\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidNodeOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_OperatorNotActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintERC2309QuantityExceedsLimit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintZeroQuantity\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyDelegated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidCommissionRate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidSpace\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStakeRequirement\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStatusTransition\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotClaimer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotEnoughStake\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotTransferable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__StatusNotChanged\",\"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\":\"TransferCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferFromIncorrectOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToNonERC721ReceiverImplementer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"URIQueryForNonexistentToken\",\"inputs\":[]}]", - Bin: "0x60806040523480156200001157600080fd5b506040516200212c3803806200212c833981016040819052620000349162000687565b6200003e62000230565b6200004933620002d8565b6200005b632ac4fee960e21b620003a6565b6200006833600162000486565b7f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550060005b82518110156200022757620000c2838281518110620000af57620000af62000759565b60209081029190910101518390620005e2565b506002826002016000858481518110620000e057620000e062000759565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191660018360038111156200012057620001206200076f565b02179055503382600401600085848151811062000141576200014162000759565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620001cb838281518110620001a657620001a662000759565b60209081029190910181015133600090815260058601909252604090912090620005e2565b50828181518110620001e157620001e162000759565b60200260200101516001600160a01b03167f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e560405160405180910390a26001016200008c565b50505062000785565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200027d576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620002d557805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200030c7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b0382166200033657604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000435576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556200044e565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00546000829003620004cb5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083906000805160206200210c8339815191528180a4600183015b8181146200059857808360006000805160206200210c833981519152600080a46001016200056f565b5081600003620005ba57604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000620005f9836001600160a01b03841662000602565b90505b92915050565b60008181526001830160205260408120546200064b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005fc565b506000620005fc565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200068257600080fd5b919050565b600060208083850312156200069b57600080fd5b82516001600160401b0380821115620006b357600080fd5b818501915085601f830112620006c857600080fd5b815181811115620006dd57620006dd62000654565b8060051b604051601f19603f8301168101818110858211171562000705576200070562000654565b6040529182528482019250838101850191888311156200072457600080fd5b938501935b828510156200074d576200073d856200066a565b8452938501939285019262000729565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b61197780620007956000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806359f12a26116100a2578063a33d1ccb11610071578063a33d1ccb14610246578063c5e41cf61461024e578063e0cc26a214610261578063e97cc6f6146102a9578063fd39105a146102f457600080fd5b806359f12a26146101ea578063672d7a0d146101fd5780636d70f7ae146102105780639ebd11ef1461023357600080fd5b80633c59f126116100e95780633c59f1261461016657806343024ac9146101915780634463ba8f146101b15780634f845445146101c4578063541da4e5146101d757600080fd5b806319fac8fd1461011b5780633682a4501461013057806339bf397e1461014357806339dc5b3e1461015e575b600080fd5b61012e6101293660046115f7565b61034c565b005b61012e61013e36600461162c565b610449565b61014b610546565b6040519081526020015b60405180910390f35b61012e610566565b6101796101743660046115f7565b6105c2565b6040516001600160a01b039091168152602001610155565b6101a461019f36600461162c565b610636565b604051610155919061168c565b61012e6101bf36600461169f565b610783565b6101a46101d23660046115f7565b610ae9565b61012e6101e53660046116f0565b610afa565b61012e6101f83660046117d9565b610b3f565b61012e61020b36600461162c565b610cfb565b61022361021e36600461162c565b610e0e565b6040519015158152602001610155565b61022361024136600461162c565b610e2d565b61012e610e44565b61012e61025c36600461162c565b610e9e565b61014b61026f36600461162c565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5503602052604090205490565b6101796102b736600461162c565b6001600160a01b0390811660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550460205260409020541690565b61033f61030236600461162c565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5502602052604090205460ff1690565b6040516101559190611822565b6000805160206119578339815191526103658133610fa1565b610382576040516306e0839760e01b815260040160405180910390fd5b6127108211156103a55760405163caf6558b60e01b815260040160405180910390fd5b336000908152600382016020526040902054821180156103eb5750600133600090815260028301602052604090205460ff1660038111156103e8576103e861180c565b14155b156104095760405163caf6558b60e01b815260040160405180910390fd5b336000818152600383016020526040808220859055518492917f3f8e6b052699b5c8512c54ad8f8c79ddbf0486d3263c519f20bdbb42cd4bd6da91a35050565b6001600160a01b038116610470576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119578339815191526104898133610fa1565b156104a757604051632e86c00360e11b815260040160405180910390fd5b6104b2336001610fc2565b6104bc813361113c565b503360008181526002830160209081526040808320805460ff1916600117905560048501825280832080546001600160a01b0388166001600160a01b0319909116811790915583526005850190915290206105169161113c565b5060405133907f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e590600090a25050565b600060008051602061193783398151915261056081611151565b91505090565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166105b057604051630ef4733760e31b815260040160405180910390fd5b6105c0636109052560e01b61115b565b565b60006000805160206119378339815191526105dc81611151565b83106106255760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b61062f8184611239565b9392505050565b6060600080516020611937833981519152600061065282611151565b90506000805b828110156106ac57600061066c8583611239565b6001600160a01b0380821660009081526002880160205260409020549192508089169116036106a3578261069f81611860565b9350505b50600101610658565b5060008167ffffffffffffffff8111156106c8576106c86116da565b6040519080825280602002602001820160405280156106f1578160200160208202803683370190505b5090506000805b8481101561077757600061070c8783611239565b6001600160a01b03808216600090815260028a016020526040902054919250808b1691160361076e578084848151811061074857610748611879565b6001600160a01b03909216602092830291909101909101528261076a81611860565b9350505b506001016106f8565b50909695505050505050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146107cf576040516365f4906560e01b815233600482015260240161061c565b6001600160a01b0382166107f6576040516330bdf2f160e21b815260040160405180910390fd5b60008051602061195783398151915261080f8184610fa1565b61082c576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b038316600090815260028201602052604090205460ff1682600381111561085c5761085c61180c565b81600381111561086e5761086e61180c565b0361088c576040516318324e6f60e01b815260040160405180910390fd5b60008160038111156108a0576108a061180c565b1480156108bf575060018360038111156108bc576108bc61180c565b14155b156108dd5760405163184186fd60e01b815260040160405180910390fd5b60018160038111156108f1576108f161180c565b1480156109105750600283600381111561090d5761090d61180c565b14155b1561092e5760405163184186fd60e01b815260040160405180910390fd5b60028160038111156109425761094261180c565b14801561097e5750600083600381111561095e5761095e61180c565b1415801561097e5750600383600381111561097b5761097b61180c565b14155b1561099c5760405163184186fd60e01b815260040160405180910390fd5b60038160038111156109b0576109b061180c565b1480156109ec575060008360038111156109cc576109cc61180c565b141580156109ec575060028360038111156109e9576109e961180c565b14155b15610a0a5760405163184186fd60e01b815260040160405180910390fd5b6003836003811115610a1e57610a1e61180c565b03610a45576001600160a01b03841660009081526006830160205260409020429055610a61565b6001600160a01b03841660009081526006830160205260408120555b6001600160a01b03841660009081526002830160205260409020805484919060ff19166001836003811115610a9857610a9861180c565b0217905550826003811115610aaf57610aaf61180c565b6040516001600160a01b038616907f7db2ae93d80cbf3cf719888318a0b92adff1855bcb01eda517607ed7b0f2183a90600090a350505050565b6060610af482611245565b92915050565b7f4675e3cc15801ffde520a3076d6ad75c0c6dbe8f23bdbea1dd45b676caffe4f38433858585604051610b3195949392919061188f565b60405180910390a150505050565b3360008181527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550560205260409020829060008051602061195783398151915290610b899083610fa1565b610ba657604051637dd0ec8560e01b815260040160405180910390fd5b600080516020611957833981519152610bbf8186610fa1565b610bdc576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b03808616600090815260048301602052604090205481169087168103610c1c576040516366c7dd8d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526005830160205260409020610c409087610fa1565b15610c6b576001600160a01b03811660009081526005830160205260409020610c69908761141a565b505b6001600160a01b038681166000908152600484016020908152604080832080546001600160a01b031916948c16948517905592825260058501905220610cb1908761113c565b50866001600160a01b0316866001600160a01b03167f9acff66817c6f3fac3752bef82306270971b2a3da032a5cb876e05676bb8328860405160405180910390a350505050505050565b600080516020611957833981519152610d148133610fa1565b610d315760405163c931a1fb60e01b815260040160405180910390fd5b600080516020611937833981519152610d4a8184610fa1565b15610d685760405163d1922fc160e01b815260040160405180910390fd5b610d72818461113c565b506001600160a01b038316600081815260028301602052604080822080546001600160a01b03191633179055517f564728e6a7c8edd446557d94e0339d5e6ca2e05f42188914efdbdc87bcbbabf69190a250600233600090815260028301602052604090205460ff166003811115610dec57610dec61180c565b14610e0a57604051637164de9160e01b815260040160405180910390fd5b5050565b6000806000805160206119578339815191525b905061062f8184610fa1565b600080600080516020611937833981519152610e21565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610e8e57604051630ef4733760e31b815260040160405180910390fd5b6105c0632ac4fee960e21b61115b565b6001600160a01b0380821660009081527f180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f60260260205260409020548291339160008051602061193783398151915291168214610f0b5760405163fd2dc62f60e01b815260040160405180910390fd5b600080516020611937833981519152610f248186610fa1565b610f41576040516317e3e0b960e01b815260040160405180910390fd5b610f4b818661141a565b506001600160a01b038516600081815260028301602052604080822080546001600160a01b0319169055517fb1864577e4f285436a80ebc833984755393e2450d58622a65fb4fce87ea3573a9190a25050505050565b6001600160a01b031660009081526001919091016020526040902054151590565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005460008290036110065760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146110f357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016110bb565b508160000361111457604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b600061062f836001600160a01b03841661142f565b6000610af4825490565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146111e8576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611201565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600061062f838361147e565b6060600080516020611937833981519152600061126182611151565b90508084111561128457604051631762997d60e01b815260040160405180910390fd5b60008467ffffffffffffffff81111561129f5761129f6116da565b6040519080825280602002602001820160405280156112c8578160200160208202803683370190505b50905060008267ffffffffffffffff8111156112e6576112e66116da565b60405190808252806020026020018201604052801561130f578160200160208202803683370190505b50905060005b83811015611343578082828151811061133057611330611879565b6020908102919091010152600101611315565b508260005b8781101561140e57600061135c82846114a8565b905061138d84828151811061137357611373611879565b60200260200101518860000161123990919063ffffffff16565b85838151811061139f5761139f611879565b6001600160a01b0390921660209283029190910190910152836113c36001856118d4565b815181106113d3576113d3611879565b60200260200101518482815181106113ed576113ed611879565b602090810291909101015282611402816118e7565b93505050600101611348565b50919695505050505050565b600061062f836001600160a01b038416611504565b600081815260018301602052604081205461147657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610af4565b506000610af4565b600082600001828154811061149557611495611879565b9060005260206000200154905092915050565b604080514460208201524291810191909152606080820184905233901b6bffffffffffffffffffffffff1916608082015260009082906094016040516020818303038152906040528051906020012060001c61062f91906118fe565b600081815260018301602052604081205480156115ed5760006115286001836118d4565b855490915060009061153c906001906118d4565b90508082146115a157600086600001828154811061155c5761155c611879565b906000526020600020015490508087600001848154811061157f5761157f611879565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115b2576115b2611920565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610af4565b6000915050610af4565b60006020828403121561160957600080fd5b5035919050565b80356001600160a01b038116811461162757600080fd5b919050565b60006020828403121561163e57600080fd5b61062f82611610565b60008151808452602080850194506020840160005b838110156116815781516001600160a01b03168752958201959082019060010161165c565b509495945050505050565b60208152600061062f6020830184611647565b600080604083850312156116b257600080fd5b6116bb83611610565b91506020830135600481106116cf57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561170657600080fd5b61170f85611610565b9350602080860135935060408601359250606086013567ffffffffffffffff8082111561173b57600080fd5b818801915088601f83011261174f57600080fd5b813581811115611761576117616116da565b8060051b604051601f19603f83011681018181108582111715611786576117866116da565b60405291825284820192508381018501918b8311156117a457600080fd5b938501935b828510156117c9576117ba85611610565b845293850193928501926117a9565b989b979a50959850505050505050565b600080604083850312156117ec57600080fd5b6117f583611610565b915061180360208401611610565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b6000600182016118725761187261184a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906118c990830184611647565b979650505050505050565b81810381811115610af457610af461184a565b6000816118f6576118f661184a565b506000190190565b60008261191b57634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052603160045260246000fdfe180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f602600988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5500ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"approvedOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementChecker_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__NodeOperator_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getClaimAddressForOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCommissionRate\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodesByOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperators\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRandomNodes\",\"inputs\":[{\"name\":\"count\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isValidNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimAddressForOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCommissionRate\",\"inputs\":[{\"name\":\"rateBps\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unregisterNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"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\":\"EntitlementCheckRequested\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"selectedNodes\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"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\":\"NodeRegistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeUnregistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorClaimAddressChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorCommissionChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"commission\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStatusChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumNodeOperatorStatus\"}],\"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\":\"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\":\"error\",\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ApprovalQueryForNonexistentToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BalanceQueryForZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InsufficientNumberOfNodes\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidNodeOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_OperatorNotActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintERC2309QuantityExceedsLimit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintZeroQuantity\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyDelegated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidCommissionRate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidSpace\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStakeRequirement\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStatusTransition\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotClaimer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotEnoughStake\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotTransferable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__StatusNotChanged\",\"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\":\"TransferCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferFromIncorrectOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToNonERC721ReceiverImplementer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"URIQueryForNonexistentToken\",\"inputs\":[]}]", + Bin: "0x60806040523480156200001157600080fd5b50604051620021c6380380620021c6833981016040819052620000349162000687565b6200003e62000230565b6200004933620002d8565b6200005b63232cd89f60e21b620003a6565b6200006833600162000486565b7f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550060005b82518110156200022757620000c2838281518110620000af57620000af62000759565b60209081029190910101518390620005e2565b506002826002016000858481518110620000e057620000e062000759565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191660018360038111156200012057620001206200076f565b02179055503382600401600085848151811062000141576200014162000759565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620001cb838281518110620001a657620001a662000759565b60209081029190910181015133600090815260058601909252604090912090620005e2565b50828181518110620001e157620001e162000759565b60200260200101516001600160a01b03167f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e560405160405180910390a26001016200008c565b50505062000785565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200027d576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620002d557805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200030c7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b0382166200033657604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000435576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556200044e565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00546000829003620004cb5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620021a68339815191528180a4600183015b818114620005985780836000600080516020620021a6833981519152600080a46001016200056f565b5081600003620005ba57604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000620005f9836001600160a01b03841662000602565b90505b92915050565b60008181526001830160205260408120546200064b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005fc565b506000620005fc565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200068257600080fd5b919050565b600060208083850312156200069b57600080fd5b82516001600160401b0380821115620006b357600080fd5b818501915085601f830112620006c857600080fd5b815181811115620006dd57620006dd62000654565b8060051b604051601f19603f8301168101818110858211171562000705576200070562000654565b6040529182528482019250838101850191888311156200072457600080fd5b938501935b828510156200074d576200073d856200066a565b8452938501939285019262000729565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b611a1180620007956000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063541da4e5116100ad578063a33d1ccb11610071578063a33d1ccb1461025d578063c5e41cf614610265578063e0cc26a214610278578063e97cc6f6146102c0578063fd39105a1461030b57600080fd5b8063541da4e5146101ee57806359f12a2614610201578063672d7a0d146102145780636d70f7ae146102275780639ebd11ef1461024a57600080fd5b806339dc5b3e116100f457806339dc5b3e146101825780633c59f1261461018a57806343024ac9146101b55780634463ba8f146101c85780634f845445146101db57600080fd5b806319fac8fd1461012657806327a099d81461013b5780633682a4501461015957806339bf397e1461016c575b600080fd5b610139610134366004611691565b610363565b005b610143610460565b60405161015091906116ef565b60405180910390f35b61013961016736600461171e565b610480565b61017461057d565b604051908152602001610150565b610139610597565b61019d610198366004611691565b6105f3565b6040516001600160a01b039091168152602001610150565b6101436101c336600461171e565b610667565b6101396101d6366004611739565b6107b4565b6101436101e9366004611691565b610b1a565b6101396101fc36600461178a565b610b2b565b61013961020f366004611873565b610b70565b61013961022236600461171e565b610d2c565b61023a61023536600461171e565b610e3f565b6040519015158152602001610150565b61023a61025836600461171e565b610e5e565b610139610e75565b61013961027336600461171e565b610ecf565b61017461028636600461171e565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5503602052604090205490565b61019d6102ce36600461171e565b6001600160a01b0390811660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550460205260409020541690565b61035661031936600461171e565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5502602052604090205460ff1690565b60405161015091906118bc565b6000805160206119f183398151915261037c8133610fd2565b610399576040516306e0839760e01b815260040160405180910390fd5b6127108211156103bc5760405163caf6558b60e01b815260040160405180910390fd5b336000908152600382016020526040902054821180156104025750600133600090815260028301602052604090205460ff1660038111156103ff576103ff6118a6565b14155b156104205760405163caf6558b60e01b815260040160405180910390fd5b336000818152600383016020526040808220859055518492917f3f8e6b052699b5c8512c54ad8f8c79ddbf0486d3263c519f20bdbb42cd4bd6da91a35050565b60606000805160206119f183398151915261047a81610ff3565b91505090565b6001600160a01b0381166104a7576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119f18339815191526104c08133610fd2565b156104de57604051632e86c00360e11b815260040160405180910390fd5b6104e9336001611000565b6104f3813361117a565b503360008181526002830160209081526040808320805460ff1916600117905560048501825280832080546001600160a01b0388166001600160a01b03199091168117909155835260058501909152902061054d9161117a565b5060405133907f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e590600090a25050565b60006000805160206119d183398151915261047a8161118f565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166105e157604051630ef4733760e31b815260040160405180910390fd5b6105f1636109052560e01b611199565b565b60006000805160206119d183398151915261060d8161118f565b83106106565760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b6106608184611277565b9392505050565b60606000805160206119d183398151915260006106838261118f565b90506000805b828110156106dd57600061069d8583611277565b6001600160a01b0380821660009081526002880160205260409020549192508089169116036106d457826106d0816118fa565b9350505b50600101610689565b5060008167ffffffffffffffff8111156106f9576106f9611774565b604051908082528060200260200182016040528015610722578160200160208202803683370190505b5090506000805b848110156107a857600061073d8783611277565b6001600160a01b03808216600090815260028a016020526040902054919250808b1691160361079f578084848151811061077957610779611913565b6001600160a01b03909216602092830291909101909101528261079b816118fa565b9350505b50600101610729565b50909695505050505050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b03163314610800576040516365f4906560e01b815233600482015260240161064d565b6001600160a01b038216610827576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119f18339815191526108408184610fd2565b61085d576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b038316600090815260028201602052604090205460ff1682600381111561088d5761088d6118a6565b81600381111561089f5761089f6118a6565b036108bd576040516318324e6f60e01b815260040160405180910390fd5b60008160038111156108d1576108d16118a6565b1480156108f0575060018360038111156108ed576108ed6118a6565b14155b1561090e5760405163184186fd60e01b815260040160405180910390fd5b6001816003811115610922576109226118a6565b1480156109415750600283600381111561093e5761093e6118a6565b14155b1561095f5760405163184186fd60e01b815260040160405180910390fd5b6002816003811115610973576109736118a6565b1480156109af5750600083600381111561098f5761098f6118a6565b141580156109af575060038360038111156109ac576109ac6118a6565b14155b156109cd5760405163184186fd60e01b815260040160405180910390fd5b60038160038111156109e1576109e16118a6565b148015610a1d575060008360038111156109fd576109fd6118a6565b14158015610a1d57506002836003811115610a1a57610a1a6118a6565b14155b15610a3b5760405163184186fd60e01b815260040160405180910390fd5b6003836003811115610a4f57610a4f6118a6565b03610a76576001600160a01b03841660009081526006830160205260409020429055610a92565b6001600160a01b03841660009081526006830160205260408120555b6001600160a01b03841660009081526002830160205260409020805484919060ff19166001836003811115610ac957610ac96118a6565b0217905550826003811115610ae057610ae06118a6565b6040516001600160a01b038616907f7db2ae93d80cbf3cf719888318a0b92adff1855bcb01eda517607ed7b0f2183a90600090a350505050565b6060610b2582611283565b92915050565b7f4675e3cc15801ffde520a3076d6ad75c0c6dbe8f23bdbea1dd45b676caffe4f38433858585604051610b62959493929190611929565b60405180910390a150505050565b3360008181527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf55056020526040902082906000805160206119f183398151915290610bba9083610fd2565b610bd757604051637dd0ec8560e01b815260040160405180910390fd5b6000805160206119f1833981519152610bf08186610fd2565b610c0d576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b03808616600090815260048301602052604090205481169087168103610c4d576040516366c7dd8d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526005830160205260409020610c719087610fd2565b15610c9c576001600160a01b03811660009081526005830160205260409020610c9a9087611458565b505b6001600160a01b038681166000908152600484016020908152604080832080546001600160a01b031916948c16948517905592825260058501905220610ce2908761117a565b50866001600160a01b0316866001600160a01b03167f9acff66817c6f3fac3752bef82306270971b2a3da032a5cb876e05676bb8328860405160405180910390a350505050505050565b6000805160206119f1833981519152610d458133610fd2565b610d625760405163c931a1fb60e01b815260040160405180910390fd5b6000805160206119d1833981519152610d7b8184610fd2565b15610d995760405163d1922fc160e01b815260040160405180910390fd5b610da3818461117a565b506001600160a01b038316600081815260028301602052604080822080546001600160a01b03191633179055517f564728e6a7c8edd446557d94e0339d5e6ca2e05f42188914efdbdc87bcbbabf69190a250600233600090815260028301602052604090205460ff166003811115610e1d57610e1d6118a6565b14610e3b57604051637164de9160e01b815260040160405180910390fd5b5050565b6000806000805160206119f18339815191525b90506106608184610fd2565b6000806000805160206119d1833981519152610e52565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ebf57604051630ef4733760e31b815260040160405180910390fd5b6105f163232cd89f60e21b611199565b6001600160a01b0380821660009081527f180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f6026026020526040902054829133916000805160206119d183398151915291168214610f3c5760405163fd2dc62f60e01b815260040160405180910390fd5b6000805160206119d1833981519152610f558186610fd2565b610f72576040516317e3e0b960e01b815260040160405180910390fd5b610f7c8186611458565b506001600160a01b038516600081815260028301602052604080822080546001600160a01b0319169055517fb1864577e4f285436a80ebc833984755393e2450d58622a65fb4fce87ea3573a9190a25050505050565b6001600160a01b031660009081526001919091016020526040902054151590565b606060006106608361146d565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005460008290036110445760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461113157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016110f9565b508160000361115257604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000610660836001600160a01b0384166114c9565b6000610b25825490565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611226576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905561123f565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b60006106608383611518565b60606000805160206119d1833981519152600061129f8261118f565b9050808411156112c257604051631762997d60e01b815260040160405180910390fd5b60008467ffffffffffffffff8111156112dd576112dd611774565b604051908082528060200260200182016040528015611306578160200160208202803683370190505b50905060008267ffffffffffffffff81111561132457611324611774565b60405190808252806020026020018201604052801561134d578160200160208202803683370190505b50905060005b83811015611381578082828151811061136e5761136e611913565b6020908102919091010152600101611353565b508260005b8781101561144c57600061139a8284611542565b90506113cb8482815181106113b1576113b1611913565b60200260200101518860000161127790919063ffffffff16565b8583815181106113dd576113dd611913565b6001600160a01b03909216602092830291909101909101528361140160018561196e565b8151811061141157611411611913565b602002602001015184828151811061142b5761142b611913565b60209081029190910101528261144081611981565b93505050600101611386565b50919695505050505050565b6000610660836001600160a01b03841661159e565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114bd57602002820191906000526020600020905b8154815260200190600101908083116114a9575b50505050509050919050565b600081815260018301602052604081205461151057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b25565b506000610b25565b600082600001828154811061152f5761152f611913565b9060005260206000200154905092915050565b604080514460208201524291810191909152606080820184905233901b6bffffffffffffffffffffffff1916608082015260009082906094016040516020818303038152906040528051906020012060001c6106609190611998565b600081815260018301602052604081205480156116875760006115c260018361196e565b85549091506000906115d69060019061196e565b905080821461163b5760008660000182815481106115f6576115f6611913565b906000526020600020015490508087600001848154811061161957611619611913565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061164c5761164c6119ba565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b25565b6000915050610b25565b6000602082840312156116a357600080fd5b5035919050565b60008151808452602080850194506020840160005b838110156116e45781516001600160a01b0316875295820195908201906001016116bf565b509495945050505050565b60208152600061066060208301846116aa565b80356001600160a01b038116811461171957600080fd5b919050565b60006020828403121561173057600080fd5b61066082611702565b6000806040838503121561174c57600080fd5b61175583611702565b915060208301356004811061176957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156117a057600080fd5b6117a985611702565b9350602080860135935060408601359250606086013567ffffffffffffffff808211156117d557600080fd5b818801915088601f8301126117e957600080fd5b8135818111156117fb576117fb611774565b8060051b604051601f19603f8301168101818110858211171561182057611820611774565b60405291825284820192508381018501918b83111561183e57600080fd5b938501935b828510156118635761185485611702565b84529385019392850192611843565b989b979a50959850505050505050565b6000806040838503121561188657600080fd5b61188f83611702565b915061189d60208401611702565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600483106118de57634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b60006001820161190c5761190c6118e4565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611963908301846116aa565b979650505050505050565b81810381811115610b2557610b256118e4565b600081611990576119906118e4565b506000190190565b6000826119b557634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052603160045260246000fdfe180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f602600988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5500ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", } // MockEntitlementCheckerABI is the input ABI used to generate the binding from. @@ -388,6 +388,37 @@ func (_MockEntitlementChecker *MockEntitlementCheckerCallerSession) GetOperatorS return _MockEntitlementChecker.Contract.GetOperatorStatus(&_MockEntitlementChecker.CallOpts, operator) } +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerCaller) GetOperators(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _MockEntitlementChecker.contract.Call(opts, &out, "getOperators") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerSession) GetOperators() ([]common.Address, error) { + return _MockEntitlementChecker.Contract.GetOperators(&_MockEntitlementChecker.CallOpts) +} + +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerCallerSession) GetOperators() ([]common.Address, error) { + return _MockEntitlementChecker.Contract.GetOperators(&_MockEntitlementChecker.CallOpts) +} + // GetRandomNodes is a free data retrieval call binding the contract method 0x4f845445. // // Solidity: function getRandomNodes(uint256 count) view returns(address[]) diff --git a/core/xchain/contracts/v3/mock_entitlement_checker.go b/core/xchain/contracts/v3/mock_entitlement_checker.go index f01f7cef7..89af97ba7 100644 --- a/core/xchain/contracts/v3/mock_entitlement_checker.go +++ b/core/xchain/contracts/v3/mock_entitlement_checker.go @@ -31,8 +31,8 @@ var ( // MockEntitlementCheckerMetaData contains all meta data concerning the MockEntitlementChecker contract. var MockEntitlementCheckerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"approvedOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementChecker_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__NodeOperator_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getClaimAddressForOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCommissionRate\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodesByOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRandomNodes\",\"inputs\":[{\"name\":\"count\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isValidNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimAddressForOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCommissionRate\",\"inputs\":[{\"name\":\"rateBps\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unregisterNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"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\":\"EntitlementCheckRequested\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"selectedNodes\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"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\":\"NodeRegistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeUnregistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorClaimAddressChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorCommissionChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"commission\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStatusChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumNodeOperatorStatus\"}],\"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\":\"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\":\"error\",\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ApprovalQueryForNonexistentToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BalanceQueryForZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InsufficientNumberOfNodes\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidNodeOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_OperatorNotActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintERC2309QuantityExceedsLimit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintZeroQuantity\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyDelegated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidCommissionRate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidSpace\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStakeRequirement\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStatusTransition\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotClaimer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotEnoughStake\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotTransferable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__StatusNotChanged\",\"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\":\"TransferCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferFromIncorrectOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToNonERC721ReceiverImplementer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"URIQueryForNonexistentToken\",\"inputs\":[]}]", - Bin: "0x60806040523480156200001157600080fd5b506040516200212c3803806200212c833981016040819052620000349162000687565b6200003e62000230565b6200004933620002d8565b6200005b632ac4fee960e21b620003a6565b6200006833600162000486565b7f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550060005b82518110156200022757620000c2838281518110620000af57620000af62000759565b60209081029190910101518390620005e2565b506002826002016000858481518110620000e057620000e062000759565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191660018360038111156200012057620001206200076f565b02179055503382600401600085848151811062000141576200014162000759565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620001cb838281518110620001a657620001a662000759565b60209081029190910181015133600090815260058601909252604090912090620005e2565b50828181518110620001e157620001e162000759565b60200260200101516001600160a01b03167f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e560405160405180910390a26001016200008c565b50505062000785565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200027d576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620002d557805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200030c7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b0382166200033657604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000435576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556200044e565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00546000829003620004cb5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083906000805160206200210c8339815191528180a4600183015b8181146200059857808360006000805160206200210c833981519152600080a46001016200056f565b5081600003620005ba57604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000620005f9836001600160a01b03841662000602565b90505b92915050565b60008181526001830160205260408120546200064b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005fc565b506000620005fc565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200068257600080fd5b919050565b600060208083850312156200069b57600080fd5b82516001600160401b0380821115620006b357600080fd5b818501915085601f830112620006c857600080fd5b815181811115620006dd57620006dd62000654565b8060051b604051601f19603f8301168101818110858211171562000705576200070562000654565b6040529182528482019250838101850191888311156200072457600080fd5b938501935b828510156200074d576200073d856200066a565b8452938501939285019262000729565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b61197780620007956000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806359f12a26116100a2578063a33d1ccb11610071578063a33d1ccb14610246578063c5e41cf61461024e578063e0cc26a214610261578063e97cc6f6146102a9578063fd39105a146102f457600080fd5b806359f12a26146101ea578063672d7a0d146101fd5780636d70f7ae146102105780639ebd11ef1461023357600080fd5b80633c59f126116100e95780633c59f1261461016657806343024ac9146101915780634463ba8f146101b15780634f845445146101c4578063541da4e5146101d757600080fd5b806319fac8fd1461011b5780633682a4501461013057806339bf397e1461014357806339dc5b3e1461015e575b600080fd5b61012e6101293660046115f7565b61034c565b005b61012e61013e36600461162c565b610449565b61014b610546565b6040519081526020015b60405180910390f35b61012e610566565b6101796101743660046115f7565b6105c2565b6040516001600160a01b039091168152602001610155565b6101a461019f36600461162c565b610636565b604051610155919061168c565b61012e6101bf36600461169f565b610783565b6101a46101d23660046115f7565b610ae9565b61012e6101e53660046116f0565b610afa565b61012e6101f83660046117d9565b610b3f565b61012e61020b36600461162c565b610cfb565b61022361021e36600461162c565b610e0e565b6040519015158152602001610155565b61022361024136600461162c565b610e2d565b61012e610e44565b61012e61025c36600461162c565b610e9e565b61014b61026f36600461162c565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5503602052604090205490565b6101796102b736600461162c565b6001600160a01b0390811660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550460205260409020541690565b61033f61030236600461162c565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5502602052604090205460ff1690565b6040516101559190611822565b6000805160206119578339815191526103658133610fa1565b610382576040516306e0839760e01b815260040160405180910390fd5b6127108211156103a55760405163caf6558b60e01b815260040160405180910390fd5b336000908152600382016020526040902054821180156103eb5750600133600090815260028301602052604090205460ff1660038111156103e8576103e861180c565b14155b156104095760405163caf6558b60e01b815260040160405180910390fd5b336000818152600383016020526040808220859055518492917f3f8e6b052699b5c8512c54ad8f8c79ddbf0486d3263c519f20bdbb42cd4bd6da91a35050565b6001600160a01b038116610470576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119578339815191526104898133610fa1565b156104a757604051632e86c00360e11b815260040160405180910390fd5b6104b2336001610fc2565b6104bc813361113c565b503360008181526002830160209081526040808320805460ff1916600117905560048501825280832080546001600160a01b0388166001600160a01b0319909116811790915583526005850190915290206105169161113c565b5060405133907f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e590600090a25050565b600060008051602061193783398151915261056081611151565b91505090565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166105b057604051630ef4733760e31b815260040160405180910390fd5b6105c0636109052560e01b61115b565b565b60006000805160206119378339815191526105dc81611151565b83106106255760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b61062f8184611239565b9392505050565b6060600080516020611937833981519152600061065282611151565b90506000805b828110156106ac57600061066c8583611239565b6001600160a01b0380821660009081526002880160205260409020549192508089169116036106a3578261069f81611860565b9350505b50600101610658565b5060008167ffffffffffffffff8111156106c8576106c86116da565b6040519080825280602002602001820160405280156106f1578160200160208202803683370190505b5090506000805b8481101561077757600061070c8783611239565b6001600160a01b03808216600090815260028a016020526040902054919250808b1691160361076e578084848151811061074857610748611879565b6001600160a01b03909216602092830291909101909101528261076a81611860565b9350505b506001016106f8565b50909695505050505050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146107cf576040516365f4906560e01b815233600482015260240161061c565b6001600160a01b0382166107f6576040516330bdf2f160e21b815260040160405180910390fd5b60008051602061195783398151915261080f8184610fa1565b61082c576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b038316600090815260028201602052604090205460ff1682600381111561085c5761085c61180c565b81600381111561086e5761086e61180c565b0361088c576040516318324e6f60e01b815260040160405180910390fd5b60008160038111156108a0576108a061180c565b1480156108bf575060018360038111156108bc576108bc61180c565b14155b156108dd5760405163184186fd60e01b815260040160405180910390fd5b60018160038111156108f1576108f161180c565b1480156109105750600283600381111561090d5761090d61180c565b14155b1561092e5760405163184186fd60e01b815260040160405180910390fd5b60028160038111156109425761094261180c565b14801561097e5750600083600381111561095e5761095e61180c565b1415801561097e5750600383600381111561097b5761097b61180c565b14155b1561099c5760405163184186fd60e01b815260040160405180910390fd5b60038160038111156109b0576109b061180c565b1480156109ec575060008360038111156109cc576109cc61180c565b141580156109ec575060028360038111156109e9576109e961180c565b14155b15610a0a5760405163184186fd60e01b815260040160405180910390fd5b6003836003811115610a1e57610a1e61180c565b03610a45576001600160a01b03841660009081526006830160205260409020429055610a61565b6001600160a01b03841660009081526006830160205260408120555b6001600160a01b03841660009081526002830160205260409020805484919060ff19166001836003811115610a9857610a9861180c565b0217905550826003811115610aaf57610aaf61180c565b6040516001600160a01b038616907f7db2ae93d80cbf3cf719888318a0b92adff1855bcb01eda517607ed7b0f2183a90600090a350505050565b6060610af482611245565b92915050565b7f4675e3cc15801ffde520a3076d6ad75c0c6dbe8f23bdbea1dd45b676caffe4f38433858585604051610b3195949392919061188f565b60405180910390a150505050565b3360008181527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550560205260409020829060008051602061195783398151915290610b899083610fa1565b610ba657604051637dd0ec8560e01b815260040160405180910390fd5b600080516020611957833981519152610bbf8186610fa1565b610bdc576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b03808616600090815260048301602052604090205481169087168103610c1c576040516366c7dd8d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526005830160205260409020610c409087610fa1565b15610c6b576001600160a01b03811660009081526005830160205260409020610c69908761141a565b505b6001600160a01b038681166000908152600484016020908152604080832080546001600160a01b031916948c16948517905592825260058501905220610cb1908761113c565b50866001600160a01b0316866001600160a01b03167f9acff66817c6f3fac3752bef82306270971b2a3da032a5cb876e05676bb8328860405160405180910390a350505050505050565b600080516020611957833981519152610d148133610fa1565b610d315760405163c931a1fb60e01b815260040160405180910390fd5b600080516020611937833981519152610d4a8184610fa1565b15610d685760405163d1922fc160e01b815260040160405180910390fd5b610d72818461113c565b506001600160a01b038316600081815260028301602052604080822080546001600160a01b03191633179055517f564728e6a7c8edd446557d94e0339d5e6ca2e05f42188914efdbdc87bcbbabf69190a250600233600090815260028301602052604090205460ff166003811115610dec57610dec61180c565b14610e0a57604051637164de9160e01b815260040160405180910390fd5b5050565b6000806000805160206119578339815191525b905061062f8184610fa1565b600080600080516020611937833981519152610e21565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610e8e57604051630ef4733760e31b815260040160405180910390fd5b6105c0632ac4fee960e21b61115b565b6001600160a01b0380821660009081527f180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f60260260205260409020548291339160008051602061193783398151915291168214610f0b5760405163fd2dc62f60e01b815260040160405180910390fd5b600080516020611937833981519152610f248186610fa1565b610f41576040516317e3e0b960e01b815260040160405180910390fd5b610f4b818661141a565b506001600160a01b038516600081815260028301602052604080822080546001600160a01b0319169055517fb1864577e4f285436a80ebc833984755393e2450d58622a65fb4fce87ea3573a9190a25050505050565b6001600160a01b031660009081526001919091016020526040902054151590565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005460008290036110065760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146110f357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016110bb565b508160000361111457604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b600061062f836001600160a01b03841661142f565b6000610af4825490565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146111e8576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611201565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600061062f838361147e565b6060600080516020611937833981519152600061126182611151565b90508084111561128457604051631762997d60e01b815260040160405180910390fd5b60008467ffffffffffffffff81111561129f5761129f6116da565b6040519080825280602002602001820160405280156112c8578160200160208202803683370190505b50905060008267ffffffffffffffff8111156112e6576112e66116da565b60405190808252806020026020018201604052801561130f578160200160208202803683370190505b50905060005b83811015611343578082828151811061133057611330611879565b6020908102919091010152600101611315565b508260005b8781101561140e57600061135c82846114a8565b905061138d84828151811061137357611373611879565b60200260200101518860000161123990919063ffffffff16565b85838151811061139f5761139f611879565b6001600160a01b0390921660209283029190910190910152836113c36001856118d4565b815181106113d3576113d3611879565b60200260200101518482815181106113ed576113ed611879565b602090810291909101015282611402816118e7565b93505050600101611348565b50919695505050505050565b600061062f836001600160a01b038416611504565b600081815260018301602052604081205461147657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610af4565b506000610af4565b600082600001828154811061149557611495611879565b9060005260206000200154905092915050565b604080514460208201524291810191909152606080820184905233901b6bffffffffffffffffffffffff1916608082015260009082906094016040516020818303038152906040528051906020012060001c61062f91906118fe565b600081815260018301602052604081205480156115ed5760006115286001836118d4565b855490915060009061153c906001906118d4565b90508082146115a157600086600001828154811061155c5761155c611879565b906000526020600020015490508087600001848154811061157f5761157f611879565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115b2576115b2611920565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610af4565b6000915050610af4565b60006020828403121561160957600080fd5b5035919050565b80356001600160a01b038116811461162757600080fd5b919050565b60006020828403121561163e57600080fd5b61062f82611610565b60008151808452602080850194506020840160005b838110156116815781516001600160a01b03168752958201959082019060010161165c565b509495945050505050565b60208152600061062f6020830184611647565b600080604083850312156116b257600080fd5b6116bb83611610565b91506020830135600481106116cf57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561170657600080fd5b61170f85611610565b9350602080860135935060408601359250606086013567ffffffffffffffff8082111561173b57600080fd5b818801915088601f83011261174f57600080fd5b813581811115611761576117616116da565b8060051b604051601f19603f83011681018181108582111715611786576117866116da565b60405291825284820192508381018501918b8311156117a457600080fd5b938501935b828510156117c9576117ba85611610565b845293850193928501926117a9565b989b979a50959850505050505050565b600080604083850312156117ec57600080fd5b6117f583611610565b915061180360208401611610565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061184457634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b6000600182016118725761187261184a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906118c990830184611647565b979650505050505050565b81810381811115610af457610af461184a565b6000816118f6576118f661184a565b506000190190565b60008261191b57634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052603160045260246000fdfe180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f602600988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5500ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"approvedOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementChecker_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__NodeOperator_init\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getClaimAddressForOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCommissionRate\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodesByOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperators\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRandomNodes\",\"inputs\":[{\"name\":\"count\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isValidNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimAddressForOperator\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setCommissionRate\",\"inputs\":[{\"name\":\"rateBps\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorStatus\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"internalType\":\"enumNodeOperatorStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unregisterNode\",\"inputs\":[{\"name\":\"node\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"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\":\"EntitlementCheckRequested\",\"inputs\":[{\"name\":\"callerAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"selectedNodes\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"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\":\"NodeRegistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeUnregistered\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorClaimAddressChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorCommissionChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"commission\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorStatusChanged\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumNodeOperatorStatus\"}],\"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\":\"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\":\"error\",\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ApprovalQueryForNonexistentToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BalanceQueryForZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InsufficientNumberOfNodes\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidNodeOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_NodeNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementChecker_OperatorNotActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintERC2309QuantityExceedsLimit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MintZeroQuantity\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyDelegated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"NodeOperator__AlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidCommissionRate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidSpace\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStakeRequirement\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__InvalidStatusTransition\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotClaimer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotEnoughStake\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__NotTransferable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NodeOperator__StatusNotChanged\",\"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\":\"TransferCallerNotOwnerNorApproved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferFromIncorrectOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToNonERC721ReceiverImplementer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TransferToZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"URIQueryForNonexistentToken\",\"inputs\":[]}]", + Bin: "0x60806040523480156200001157600080fd5b50604051620021c6380380620021c6833981016040819052620000349162000687565b6200003e62000230565b6200004933620002d8565b6200005b63232cd89f60e21b620003a6565b6200006833600162000486565b7f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550060005b82518110156200022757620000c2838281518110620000af57620000af62000759565b60209081029190910101518390620005e2565b506002826002016000858481518110620000e057620000e062000759565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191660018360038111156200012057620001206200076f565b02179055503382600401600085848151811062000141576200014162000759565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620001cb838281518110620001a657620001a662000759565b60209081029190910181015133600090815260058601909252604090912090620005e2565b50828181518110620001e157620001e162000759565b60200260200101516001600160a01b03167f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e560405160405180910390a26001016200008c565b50505062000785565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200027d576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620002d557805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200030c7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b0382166200033657604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000435576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556200044e565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00546000829003620004cb5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620021a68339815191528180a4600183015b818114620005985780836000600080516020620021a6833981519152600080a46001016200056f565b5081600003620005ba57604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000620005f9836001600160a01b03841662000602565b90505b92915050565b60008181526001830160205260408120546200064b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005fc565b506000620005fc565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200068257600080fd5b919050565b600060208083850312156200069b57600080fd5b82516001600160401b0380821115620006b357600080fd5b818501915085601f830112620006c857600080fd5b815181811115620006dd57620006dd62000654565b8060051b604051601f19603f8301168101818110858211171562000705576200070562000654565b6040529182528482019250838101850191888311156200072457600080fd5b938501935b828510156200074d576200073d856200066a565b8452938501939285019262000729565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b611a1180620007956000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063541da4e5116100ad578063a33d1ccb11610071578063a33d1ccb1461025d578063c5e41cf614610265578063e0cc26a214610278578063e97cc6f6146102c0578063fd39105a1461030b57600080fd5b8063541da4e5146101ee57806359f12a2614610201578063672d7a0d146102145780636d70f7ae146102275780639ebd11ef1461024a57600080fd5b806339dc5b3e116100f457806339dc5b3e146101825780633c59f1261461018a57806343024ac9146101b55780634463ba8f146101c85780634f845445146101db57600080fd5b806319fac8fd1461012657806327a099d81461013b5780633682a4501461015957806339bf397e1461016c575b600080fd5b610139610134366004611691565b610363565b005b610143610460565b60405161015091906116ef565b60405180910390f35b61013961016736600461171e565b610480565b61017461057d565b604051908152602001610150565b610139610597565b61019d610198366004611691565b6105f3565b6040516001600160a01b039091168152602001610150565b6101436101c336600461171e565b610667565b6101396101d6366004611739565b6107b4565b6101436101e9366004611691565b610b1a565b6101396101fc36600461178a565b610b2b565b61013961020f366004611873565b610b70565b61013961022236600461171e565b610d2c565b61023a61023536600461171e565b610e3f565b6040519015158152602001610150565b61023a61025836600461171e565b610e5e565b610139610e75565b61013961027336600461171e565b610ecf565b61017461028636600461171e565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5503602052604090205490565b61019d6102ce36600461171e565b6001600160a01b0390811660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf550460205260409020541690565b61035661031936600461171e565b6001600160a01b031660009081527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5502602052604090205460ff1690565b60405161015091906118bc565b6000805160206119f183398151915261037c8133610fd2565b610399576040516306e0839760e01b815260040160405180910390fd5b6127108211156103bc5760405163caf6558b60e01b815260040160405180910390fd5b336000908152600382016020526040902054821180156104025750600133600090815260028301602052604090205460ff1660038111156103ff576103ff6118a6565b14155b156104205760405163caf6558b60e01b815260040160405180910390fd5b336000818152600383016020526040808220859055518492917f3f8e6b052699b5c8512c54ad8f8c79ddbf0486d3263c519f20bdbb42cd4bd6da91a35050565b60606000805160206119f183398151915261047a81610ff3565b91505090565b6001600160a01b0381166104a7576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119f18339815191526104c08133610fd2565b156104de57604051632e86c00360e11b815260040160405180910390fd5b6104e9336001611000565b6104f3813361117a565b503360008181526002830160209081526040808320805460ff1916600117905560048501825280832080546001600160a01b0388166001600160a01b03199091168117909155835260058501909152902061054d9161117a565b5060405133907f4d0eb1f4bac8744fd2be119845e23b3befc88094b42bcda1204c65694a00f9e590600090a25050565b60006000805160206119d183398151915261047a8161118f565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166105e157604051630ef4733760e31b815260040160405180910390fd5b6105f1636109052560e01b611199565b565b60006000805160206119d183398151915261060d8161118f565b83106106565760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b6106608184611277565b9392505050565b60606000805160206119d183398151915260006106838261118f565b90506000805b828110156106dd57600061069d8583611277565b6001600160a01b0380821660009081526002880160205260409020549192508089169116036106d457826106d0816118fa565b9350505b50600101610689565b5060008167ffffffffffffffff8111156106f9576106f9611774565b604051908082528060200260200182016040528015610722578160200160208202803683370190505b5090506000805b848110156107a857600061073d8783611277565b6001600160a01b03808216600090815260028a016020526040902054919250808b1691160361079f578084848151811061077957610779611913565b6001600160a01b03909216602092830291909101909101528261079b816118fa565b9350505b50600101610729565b50909695505050505050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b03163314610800576040516365f4906560e01b815233600482015260240161064d565b6001600160a01b038216610827576040516330bdf2f160e21b815260040160405180910390fd5b6000805160206119f18339815191526108408184610fd2565b61085d576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b038316600090815260028201602052604090205460ff1682600381111561088d5761088d6118a6565b81600381111561089f5761089f6118a6565b036108bd576040516318324e6f60e01b815260040160405180910390fd5b60008160038111156108d1576108d16118a6565b1480156108f0575060018360038111156108ed576108ed6118a6565b14155b1561090e5760405163184186fd60e01b815260040160405180910390fd5b6001816003811115610922576109226118a6565b1480156109415750600283600381111561093e5761093e6118a6565b14155b1561095f5760405163184186fd60e01b815260040160405180910390fd5b6002816003811115610973576109736118a6565b1480156109af5750600083600381111561098f5761098f6118a6565b141580156109af575060038360038111156109ac576109ac6118a6565b14155b156109cd5760405163184186fd60e01b815260040160405180910390fd5b60038160038111156109e1576109e16118a6565b148015610a1d575060008360038111156109fd576109fd6118a6565b14158015610a1d57506002836003811115610a1a57610a1a6118a6565b14155b15610a3b5760405163184186fd60e01b815260040160405180910390fd5b6003836003811115610a4f57610a4f6118a6565b03610a76576001600160a01b03841660009081526006830160205260409020429055610a92565b6001600160a01b03841660009081526006830160205260408120555b6001600160a01b03841660009081526002830160205260409020805484919060ff19166001836003811115610ac957610ac96118a6565b0217905550826003811115610ae057610ae06118a6565b6040516001600160a01b038616907f7db2ae93d80cbf3cf719888318a0b92adff1855bcb01eda517607ed7b0f2183a90600090a350505050565b6060610b2582611283565b92915050565b7f4675e3cc15801ffde520a3076d6ad75c0c6dbe8f23bdbea1dd45b676caffe4f38433858585604051610b62959493929190611929565b60405180910390a150505050565b3360008181527f988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf55056020526040902082906000805160206119f183398151915290610bba9083610fd2565b610bd757604051637dd0ec8560e01b815260040160405180910390fd5b6000805160206119f1833981519152610bf08186610fd2565b610c0d576040516306e0839760e01b815260040160405180910390fd5b6001600160a01b03808616600090815260048301602052604090205481169087168103610c4d576040516366c7dd8d60e11b815260040160405180910390fd5b6001600160a01b03811660009081526005830160205260409020610c719087610fd2565b15610c9c576001600160a01b03811660009081526005830160205260409020610c9a9087611458565b505b6001600160a01b038681166000908152600484016020908152604080832080546001600160a01b031916948c16948517905592825260058501905220610ce2908761117a565b50866001600160a01b0316866001600160a01b03167f9acff66817c6f3fac3752bef82306270971b2a3da032a5cb876e05676bb8328860405160405180910390a350505050505050565b6000805160206119f1833981519152610d458133610fd2565b610d625760405163c931a1fb60e01b815260040160405180910390fd5b6000805160206119d1833981519152610d7b8184610fd2565b15610d995760405163d1922fc160e01b815260040160405180910390fd5b610da3818461117a565b506001600160a01b038316600081815260028301602052604080822080546001600160a01b03191633179055517f564728e6a7c8edd446557d94e0339d5e6ca2e05f42188914efdbdc87bcbbabf69190a250600233600090815260028301602052604090205460ff166003811115610e1d57610e1d6118a6565b14610e3b57604051637164de9160e01b815260040160405180910390fd5b5050565b6000806000805160206119f18339815191525b90506106608184610fd2565b6000806000805160206119d1833981519152610e52565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ebf57604051630ef4733760e31b815260040160405180910390fd5b6105f163232cd89f60e21b611199565b6001600160a01b0380821660009081527f180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f6026026020526040902054829133916000805160206119d183398151915291168214610f3c5760405163fd2dc62f60e01b815260040160405180910390fd5b6000805160206119d1833981519152610f558186610fd2565b610f72576040516317e3e0b960e01b815260040160405180910390fd5b610f7c8186611458565b506001600160a01b038516600081815260028301602052604080822080546001600160a01b0319169055517fb1864577e4f285436a80ebc833984755393e2450d58622a65fb4fce87ea3573a9190a25050505050565b6001600160a01b031660009081526001919091016020526040902054151590565b606060006106608361146d565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005460008290036110445760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461113157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016110f9565b508160000361115257604051622e076360e81b815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6000610660836001600160a01b0384166114c9565b6000610b25825490565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611226576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905561123f565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b60006106608383611518565b60606000805160206119d1833981519152600061129f8261118f565b9050808411156112c257604051631762997d60e01b815260040160405180910390fd5b60008467ffffffffffffffff8111156112dd576112dd611774565b604051908082528060200260200182016040528015611306578160200160208202803683370190505b50905060008267ffffffffffffffff81111561132457611324611774565b60405190808252806020026020018201604052801561134d578160200160208202803683370190505b50905060005b83811015611381578082828151811061136e5761136e611913565b6020908102919091010152600101611353565b508260005b8781101561144c57600061139a8284611542565b90506113cb8482815181106113b1576113b1611913565b60200260200101518860000161127790919063ffffffff16565b8583815181106113dd576113dd611913565b6001600160a01b03909216602092830291909101909101528361140160018561196e565b8151811061141157611411611913565b602002602001015184828151811061142b5761142b611913565b60209081029190910101528261144081611981565b93505050600101611386565b50919695505050505050565b6000610660836001600160a01b03841661159e565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114bd57602002820191906000526020600020905b8154815260200190600101908083116114a9575b50505050509050919050565b600081815260018301602052604081205461151057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b25565b506000610b25565b600082600001828154811061152f5761152f611913565b9060005260206000200154905092915050565b604080514460208201524291810191909152606080820184905233901b6bffffffffffffffffffffffff1916608082015260009082906094016040516020818303038152906040528051906020012060001c6106609190611998565b600081815260018301602052604081205480156116875760006115c260018361196e565b85549091506000906115d69060019061196e565b905080821461163b5760008660000182815481106115f6576115f6611913565b906000526020600020015490508087600001848154811061161957611619611913565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061164c5761164c6119ba565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b25565b6000915050610b25565b6000602082840312156116a357600080fd5b5035919050565b60008151808452602080850194506020840160005b838110156116e45781516001600160a01b0316875295820195908201906001016116bf565b509495945050505050565b60208152600061066060208301846116aa565b80356001600160a01b038116811461171957600080fd5b919050565b60006020828403121561173057600080fd5b61066082611702565b6000806040838503121561174c57600080fd5b61175583611702565b915060208301356004811061176957600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156117a057600080fd5b6117a985611702565b9350602080860135935060408601359250606086013567ffffffffffffffff808211156117d557600080fd5b818801915088601f8301126117e957600080fd5b8135818111156117fb576117fb611774565b8060051b604051601f19603f8301168101818110858211171561182057611820611774565b60405291825284820192508381018501918b83111561183e57600080fd5b938501935b828510156118635761185485611702565b84529385019392850192611843565b989b979a50959850505050505050565b6000806040838503121561188657600080fd5b61188f83611702565b915061189d60208401611702565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600483106118de57634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052601160045260246000fd5b60006001820161190c5761190c6118e4565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611963908301846116aa565b979650505050505050565b81810381811115610b2557610b256118e4565b600081611990576119906118e4565b506000190190565b6000826119b557634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052603160045260246000fdfe180c1d0b9e5eeea9f2f078bc2712cd77acc6afea03b37705abe96dda6f602600988e8266be98e92aff755bdd688f8f4a2421e26daa6089c7e2668053a3bf5500ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", } // MockEntitlementCheckerABI is the input ABI used to generate the binding from. @@ -388,6 +388,37 @@ func (_MockEntitlementChecker *MockEntitlementCheckerCallerSession) GetOperatorS return _MockEntitlementChecker.Contract.GetOperatorStatus(&_MockEntitlementChecker.CallOpts, operator) } +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerCaller) GetOperators(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _MockEntitlementChecker.contract.Call(opts, &out, "getOperators") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerSession) GetOperators() ([]common.Address, error) { + return _MockEntitlementChecker.Contract.GetOperators(&_MockEntitlementChecker.CallOpts) +} + +// GetOperators is a free data retrieval call binding the contract method 0x27a099d8. +// +// Solidity: function getOperators() view returns(address[]) +func (_MockEntitlementChecker *MockEntitlementCheckerCallerSession) GetOperators() ([]common.Address, error) { + return _MockEntitlementChecker.Contract.GetOperators(&_MockEntitlementChecker.CallOpts) +} + // GetRandomNodes is a free data retrieval call binding the contract method 0x4f845445. // // Solidity: function getRandomNodes(uint256 count) view returns(address[]) diff --git a/packages/generated/dev/abis/INodeOperator.abi.json b/packages/generated/dev/abis/INodeOperator.abi.json index 609e8e348..7ef53d159 100644 --- a/packages/generated/dev/abis/INodeOperator.abi.json +++ b/packages/generated/dev/abis/INodeOperator.abi.json @@ -56,6 +56,19 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getOperators", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "isOperator", diff --git a/packages/generated/dev/abis/INodeOperator.abi.ts b/packages/generated/dev/abis/INodeOperator.abi.ts index 9d22105a2..ac66cd756 100644 --- a/packages/generated/dev/abis/INodeOperator.abi.ts +++ b/packages/generated/dev/abis/INodeOperator.abi.ts @@ -56,6 +56,19 @@ export default [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getOperators", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "isOperator", diff --git a/packages/generated/dev/abis/INodeOperator.json b/packages/generated/dev/abis/INodeOperator.json index 013391d2e..c2f1428c3 100644 --- a/packages/generated/dev/abis/INodeOperator.json +++ b/packages/generated/dev/abis/INodeOperator.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getClaimAddressForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommissionRate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum NodeOperatorStatus"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimAddressForOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommissionRate","inputs":[{"name":"commission","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newStatus","type":"uint8","internalType":"enum NodeOperatorStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getClaimAddressForOperator(address)":"e97cc6f6","getCommissionRate(address)":"e0cc26a2","getOperatorStatus(address)":"fd39105a","isOperator(address)":"6d70f7ae","registerOperator(address)":"3682a450","setClaimAddressForOperator(address,address)":"59f12a26","setCommissionRate(uint256)":"19fac8fd","setOperatorStatus(address,uint8)":"4463ba8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getClaimAddressForOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getCommissionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"setClaimAddressForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"setOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024\",\"dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getClaimAddressForOperator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getCommissionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum NodeOperatorStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimAddressForOperator"},{"inputs":[{"internalType":"uint256","name":"commission","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommissionRate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatus"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperator"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5","urls":["bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024","dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"function","name":"getClaimAddressForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommissionRate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum NodeOperatorStatus"}],"stateMutability":"view"},{"type":"function","name":"getOperators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimAddressForOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommissionRate","inputs":[{"name":"commission","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newStatus","type":"uint8","internalType":"enum NodeOperatorStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getClaimAddressForOperator(address)":"e97cc6f6","getCommissionRate(address)":"e0cc26a2","getOperatorStatus(address)":"fd39105a","getOperators()":"27a099d8","isOperator(address)":"6d70f7ae","registerOperator(address)":"3682a450","setClaimAddressForOperator(address,address)":"59f12a26","setCommissionRate(uint256)":"19fac8fd","setOperatorStatus(address,uint8)":"4463ba8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getClaimAddressForOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getCommissionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"setClaimAddressForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"setOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74\",\"dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getClaimAddressForOperator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getCommissionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum NodeOperatorStatus","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimAddressForOperator"},{"inputs":[{"internalType":"uint256","name":"commission","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommissionRate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatus"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperator"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56","urls":["bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74","dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/packages/generated/dev/abis/INodeOperator.metadata.json b/packages/generated/dev/abis/INodeOperator.metadata.json index 9a4d74b62..c5c9d9af8 100644 --- a/packages/generated/dev/abis/INodeOperator.metadata.json +++ b/packages/generated/dev/abis/INodeOperator.metadata.json @@ -208,6 +208,19 @@ } ] }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getOperators", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ] + }, { "inputs": [ { @@ -324,10 +337,10 @@ }, "sources": { "contracts/src/base/registry/facets/operator/INodeOperator.sol": { - "keccak256": "0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5", + "keccak256": "0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56", "urls": [ - "bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024", - "dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R" + "bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74", + "dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/INodeOperatorBase.json b/packages/generated/dev/abis/INodeOperatorBase.json index 1142e12bb..b64732537 100644 --- a/packages/generated/dev/abis/INodeOperatorBase.json +++ b/packages/generated/dev/abis/INodeOperatorBase.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperatorBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024\",\"dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperatorBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5","urls":["bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024","dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperatorBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74\",\"dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperatorBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56","urls":["bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74","dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/packages/generated/dev/abis/INodeOperatorBase.metadata.json b/packages/generated/dev/abis/INodeOperatorBase.metadata.json index 164f0defc..d46351110 100644 --- a/packages/generated/dev/abis/INodeOperatorBase.metadata.json +++ b/packages/generated/dev/abis/INodeOperatorBase.metadata.json @@ -190,10 +190,10 @@ }, "sources": { "contracts/src/base/registry/facets/operator/INodeOperator.sol": { - "keccak256": "0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5", + "keccak256": "0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56", "urls": [ - "bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024", - "dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R" + "bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74", + "dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs" ], "license": "MIT" }, diff --git a/packages/generated/dev/typings/INodeOperator.ts b/packages/generated/dev/typings/INodeOperator.ts index cb0ea3a9a..2875d1943 100644 --- a/packages/generated/dev/typings/INodeOperator.ts +++ b/packages/generated/dev/typings/INodeOperator.ts @@ -32,6 +32,7 @@ export interface INodeOperatorInterface extends utils.Interface { "getClaimAddressForOperator(address)": FunctionFragment; "getCommissionRate(address)": FunctionFragment; "getOperatorStatus(address)": FunctionFragment; + "getOperators()": FunctionFragment; "isOperator(address)": FunctionFragment; "registerOperator(address)": FunctionFragment; "setClaimAddressForOperator(address,address)": FunctionFragment; @@ -44,6 +45,7 @@ export interface INodeOperatorInterface extends utils.Interface { | "getClaimAddressForOperator" | "getCommissionRate" | "getOperatorStatus" + | "getOperators" | "isOperator" | "registerOperator" | "setClaimAddressForOperator" @@ -63,6 +65,10 @@ export interface INodeOperatorInterface extends utils.Interface { functionFragment: "getOperatorStatus", values: [PromiseOrValue] ): string; + encodeFunctionData( + functionFragment: "getOperators", + values?: undefined + ): string; encodeFunctionData( functionFragment: "isOperator", values: [PromiseOrValue] @@ -96,6 +102,10 @@ export interface INodeOperatorInterface extends utils.Interface { functionFragment: "getOperatorStatus", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "getOperators", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "isOperator", data: BytesLike): Result; decodeFunctionResult( functionFragment: "registerOperator", @@ -218,6 +228,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise<[number]>; + getOperators(overrides?: CallOverrides): Promise<[string[]]>; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -261,6 +273,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -304,6 +318,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -384,6 +400,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -428,6 +446,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides diff --git a/packages/generated/dev/typings/factories/INodeOperator__factory.ts b/packages/generated/dev/typings/factories/INodeOperator__factory.ts index dc156e8c0..05720265a 100644 --- a/packages/generated/dev/typings/factories/INodeOperator__factory.ts +++ b/packages/generated/dev/typings/factories/INodeOperator__factory.ts @@ -64,6 +64,19 @@ const _abi = [ ], stateMutability: "view", }, + { + type: "function", + name: "getOperators", + inputs: [], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, { type: "function", name: "isOperator", diff --git a/packages/generated/v3/abis/INodeOperator.abi.json b/packages/generated/v3/abis/INodeOperator.abi.json index 609e8e348..7ef53d159 100644 --- a/packages/generated/v3/abis/INodeOperator.abi.json +++ b/packages/generated/v3/abis/INodeOperator.abi.json @@ -56,6 +56,19 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getOperators", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "isOperator", diff --git a/packages/generated/v3/abis/INodeOperator.abi.ts b/packages/generated/v3/abis/INodeOperator.abi.ts index 9d22105a2..ac66cd756 100644 --- a/packages/generated/v3/abis/INodeOperator.abi.ts +++ b/packages/generated/v3/abis/INodeOperator.abi.ts @@ -56,6 +56,19 @@ export default [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getOperators", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address[]" + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "isOperator", diff --git a/packages/generated/v3/abis/INodeOperator.json b/packages/generated/v3/abis/INodeOperator.json index 013391d2e..c2f1428c3 100644 --- a/packages/generated/v3/abis/INodeOperator.json +++ b/packages/generated/v3/abis/INodeOperator.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getClaimAddressForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommissionRate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum NodeOperatorStatus"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimAddressForOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommissionRate","inputs":[{"name":"commission","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newStatus","type":"uint8","internalType":"enum NodeOperatorStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getClaimAddressForOperator(address)":"e97cc6f6","getCommissionRate(address)":"e0cc26a2","getOperatorStatus(address)":"fd39105a","isOperator(address)":"6d70f7ae","registerOperator(address)":"3682a450","setClaimAddressForOperator(address,address)":"59f12a26","setCommissionRate(uint256)":"19fac8fd","setOperatorStatus(address,uint8)":"4463ba8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getClaimAddressForOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getCommissionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"setClaimAddressForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"setOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024\",\"dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getClaimAddressForOperator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getCommissionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum NodeOperatorStatus","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimAddressForOperator"},{"inputs":[{"internalType":"uint256","name":"commission","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommissionRate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatus"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperator"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5","urls":["bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024","dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"function","name":"getClaimAddressForOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommissionRate","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum NodeOperatorStatus"}],"stateMutability":"view"},{"type":"function","name":"getOperators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setClaimAddressForOperator","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommissionRate","inputs":[{"name":"commission","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorStatus","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"newStatus","type":"uint8","internalType":"enum NodeOperatorStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getClaimAddressForOperator(address)":"e97cc6f6","getCommissionRate(address)":"e0cc26a2","getOperatorStatus(address)":"fd39105a","getOperators()":"27a099d8","isOperator(address)":"6d70f7ae","registerOperator(address)":"3682a450","setClaimAddressForOperator(address,address)":"59f12a26","setCommissionRate(uint256)":"19fac8fd","setOperatorStatus(address,uint8)":"4463ba8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getClaimAddressForOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getCommissionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"setClaimAddressForOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"setCommissionRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"setOperatorStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74\",\"dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getClaimAddressForOperator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getCommissionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorStatus","outputs":[{"internalType":"enum NodeOperatorStatus","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setClaimAddressForOperator"},{"inputs":[{"internalType":"uint256","name":"commission","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommissionRate"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setOperatorStatus"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperator"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56","urls":["bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74","dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/packages/generated/v3/abis/INodeOperator.metadata.json b/packages/generated/v3/abis/INodeOperator.metadata.json index 9a4d74b62..c5c9d9af8 100644 --- a/packages/generated/v3/abis/INodeOperator.metadata.json +++ b/packages/generated/v3/abis/INodeOperator.metadata.json @@ -208,6 +208,19 @@ } ] }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getOperators", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ] + }, { "inputs": [ { @@ -324,10 +337,10 @@ }, "sources": { "contracts/src/base/registry/facets/operator/INodeOperator.sol": { - "keccak256": "0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5", + "keccak256": "0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56", "urls": [ - "bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024", - "dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R" + "bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74", + "dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs" ], "license": "MIT" }, diff --git a/packages/generated/v3/abis/INodeOperatorBase.json b/packages/generated/v3/abis/INodeOperatorBase.json index 1142e12bb..b64732537 100644 --- a/packages/generated/v3/abis/INodeOperatorBase.json +++ b/packages/generated/v3/abis/INodeOperatorBase.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperatorBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024\",\"dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperatorBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5","urls":["bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024","dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"event","name":"OperatorClaimAddressChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"claimAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorCommissionChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"commission","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorStatusChanged","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"newStatus","type":"uint8","indexed":true,"internalType":"enum NodeOperatorStatus"}],"anonymous":false},{"type":"error","name":"NodeOperator__AlreadyDelegated","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"NodeOperator__AlreadyRegistered","inputs":[]},{"type":"error","name":"NodeOperator__ClaimAddressNotChanged","inputs":[]},{"type":"error","name":"NodeOperator__InvalidAddress","inputs":[]},{"type":"error","name":"NodeOperator__InvalidCommissionRate","inputs":[]},{"type":"error","name":"NodeOperator__InvalidOperator","inputs":[]},{"type":"error","name":"NodeOperator__InvalidSpace","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStakeRequirement","inputs":[]},{"type":"error","name":"NodeOperator__InvalidStatusTransition","inputs":[]},{"type":"error","name":"NodeOperator__NotClaimer","inputs":[]},{"type":"error","name":"NodeOperator__NotEnoughStake","inputs":[]},{"type":"error","name":"NodeOperator__NotRegistered","inputs":[]},{"type":"error","name":"NodeOperator__NotTransferable","inputs":[]},{"type":"error","name":"NodeOperator__StatusNotChanged","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"NodeOperator__AlreadyDelegated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__ClaimAddressNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidCommissionRate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidSpace\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStakeRequirement\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__InvalidStatusTransition\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotEnoughStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__NotTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NodeOperator__StatusNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"OperatorClaimAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commission\",\"type\":\"uint256\"}],\"name\":\"OperatorCommissionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum NodeOperatorStatus\",\"name\":\"newStatus\",\"type\":\"uint8\"}],\"name\":\"OperatorStatusChanged\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":\"INodeOperatorBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/operator/INodeOperator.sol\":{\"keccak256\":\"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74\",\"dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs\"]},\"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol\":{\"keccak256\":\"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca\",\"dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"NodeOperator__AlreadyDelegated"},{"inputs":[],"type":"error","name":"NodeOperator__AlreadyRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__ClaimAddressNotChanged"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidAddress"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidCommissionRate"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidOperator"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidSpace"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStakeRequirement"},{"inputs":[],"type":"error","name":"NodeOperator__InvalidStatusTransition"},{"inputs":[],"type":"error","name":"NodeOperator__NotClaimer"},{"inputs":[],"type":"error","name":"NodeOperator__NotEnoughStake"},{"inputs":[],"type":"error","name":"NodeOperator__NotRegistered"},{"inputs":[],"type":"error","name":"NodeOperator__NotTransferable"},{"inputs":[],"type":"error","name":"NodeOperator__StatusNotChanged"},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"claimAddress","type":"address","indexed":true}],"type":"event","name":"OperatorClaimAddressChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"commission","type":"uint256","indexed":true}],"type":"event","name":"OperatorCommissionChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"enum NodeOperatorStatus","name":"newStatus","type":"uint8","indexed":true}],"type":"event","name":"OperatorStatusChanged","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":"INodeOperatorBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/operator/INodeOperator.sol":{"keccak256":"0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56","urls":["bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74","dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs"],"license":"MIT"},"contracts/src/base/registry/facets/operator/NodeOperatorStorage.sol":{"keccak256":"0xbd8bd0bbd6173e20355fdb81e1076dbdfd9d031706f301e669c950cccd969db9","urls":["bzz-raw://1540d7cd9a283ab53d57117e76787d457cb6f4db1f3deb747b513320e561baca","dweb:/ipfs/QmQYDBchk2MnDaUspdALGDtqZkT7ZmE5i4Fz3kJoj6DfrC"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/packages/generated/v3/abis/INodeOperatorBase.metadata.json b/packages/generated/v3/abis/INodeOperatorBase.metadata.json index 164f0defc..d46351110 100644 --- a/packages/generated/v3/abis/INodeOperatorBase.metadata.json +++ b/packages/generated/v3/abis/INodeOperatorBase.metadata.json @@ -190,10 +190,10 @@ }, "sources": { "contracts/src/base/registry/facets/operator/INodeOperator.sol": { - "keccak256": "0x51fb272223040fd0ecf38e6ca021169fd6fe29dca4d4cf7bd65a209c236e6ab5", + "keccak256": "0x3a3bcc633851dc36fd914ce9ba3c7ecaecaba96ff9533c52444a5d466721cb56", "urls": [ - "bzz-raw://1107dd9cc7f0c9ad4ea64a8b3a9e7d362f13061b25943cf2fb7a8e4b3eac6024", - "dweb:/ipfs/QmTbfwqkMonebKZPXhZbCwssbo91A4SkDvmLVRapae4i8R" + "bzz-raw://a3d71ec4e6e14b5ed9f2a067c9ccde4d94efc72d90b02ef2f9d659a156576b74", + "dweb:/ipfs/QmXk7qqcE1poxX5yfkRJpcyqeiMdkwexYTKF96CCHwX9fs" ], "license": "MIT" }, diff --git a/packages/generated/v3/typings/INodeOperator.ts b/packages/generated/v3/typings/INodeOperator.ts index cb0ea3a9a..2875d1943 100644 --- a/packages/generated/v3/typings/INodeOperator.ts +++ b/packages/generated/v3/typings/INodeOperator.ts @@ -32,6 +32,7 @@ export interface INodeOperatorInterface extends utils.Interface { "getClaimAddressForOperator(address)": FunctionFragment; "getCommissionRate(address)": FunctionFragment; "getOperatorStatus(address)": FunctionFragment; + "getOperators()": FunctionFragment; "isOperator(address)": FunctionFragment; "registerOperator(address)": FunctionFragment; "setClaimAddressForOperator(address,address)": FunctionFragment; @@ -44,6 +45,7 @@ export interface INodeOperatorInterface extends utils.Interface { | "getClaimAddressForOperator" | "getCommissionRate" | "getOperatorStatus" + | "getOperators" | "isOperator" | "registerOperator" | "setClaimAddressForOperator" @@ -63,6 +65,10 @@ export interface INodeOperatorInterface extends utils.Interface { functionFragment: "getOperatorStatus", values: [PromiseOrValue] ): string; + encodeFunctionData( + functionFragment: "getOperators", + values?: undefined + ): string; encodeFunctionData( functionFragment: "isOperator", values: [PromiseOrValue] @@ -96,6 +102,10 @@ export interface INodeOperatorInterface extends utils.Interface { functionFragment: "getOperatorStatus", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "getOperators", + data: BytesLike + ): Result; decodeFunctionResult(functionFragment: "isOperator", data: BytesLike): Result; decodeFunctionResult( functionFragment: "registerOperator", @@ -218,6 +228,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise<[number]>; + getOperators(overrides?: CallOverrides): Promise<[string[]]>; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -261,6 +273,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -304,6 +318,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -384,6 +400,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides @@ -428,6 +446,8 @@ export interface INodeOperator extends BaseContract { overrides?: CallOverrides ): Promise; + getOperators(overrides?: CallOverrides): Promise; + isOperator( operator: PromiseOrValue, overrides?: CallOverrides diff --git a/packages/generated/v3/typings/factories/INodeOperator__factory.ts b/packages/generated/v3/typings/factories/INodeOperator__factory.ts index dc156e8c0..05720265a 100644 --- a/packages/generated/v3/typings/factories/INodeOperator__factory.ts +++ b/packages/generated/v3/typings/factories/INodeOperator__factory.ts @@ -64,6 +64,19 @@ const _abi = [ ], stateMutability: "view", }, + { + type: "function", + name: "getOperators", + inputs: [], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, { type: "function", name: "isOperator", diff --git a/packages/web3/src/v3/BaseRegistry.ts b/packages/web3/src/v3/BaseRegistry.ts index 9f90336d4..60875759a 100644 --- a/packages/web3/src/v3/BaseRegistry.ts +++ b/packages/web3/src/v3/BaseRegistry.ts @@ -45,20 +45,12 @@ export class BaseRegistry { ) } - private async ownerOf(tokenId: number) { - return this.erc721A.read.ownerOf(tokenId) - } - private async getOperatorStatus(operator: string) { return this.nodeOperator.read.getOperatorStatus(operator) } async getOperators(): Promise { - const totalSupplyBigInt = await this.erc721A.read.totalSupply() - const totalSupply = Number(totalSupplyBigInt) - const zeroToTotalSupply = Array.from(Array(totalSupply).keys()) - const operatorsPromises = zeroToTotalSupply.map((tokenId) => this.ownerOf(tokenId)) - const operatorAddresses = await Promise.all(operatorsPromises) + const operatorAddresses = await this.nodeOperator.read.getOperators() const operatorStatusPromises = operatorAddresses.map((operatorAddress) => this.getOperatorStatus(operatorAddress), )