diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index a05a23e650e..7c115530ca5 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -183,20 +183,6 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// configured event ConfigSet(uint32 donId, uint32 configCount); - /// @notice This event is emitted when a new DON is created - /// @param donId The ID of the newly created DON - /// @param isPublic True if the newly created DON is public - event DONAdded(uint256 donId, bool isPublic); - - /// @notice This event is emitted when a DON is removed - /// @param donId The ID of the removed DON - event DONRemoved(uint32 donId); - - /// @notice This event is emitted when a new DON is created - /// @param donId The ID of the updated DON - /// @param isPublic True if the updated DON is public - event DONUpdated(uint256 donId, bool isPublic); - /// @notice This error is emitted when a DON does not exist /// @param donId The ID of the nonexistent DON error DONDoesNotExist(uint32 donId); @@ -562,10 +548,8 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { ) external onlyOwner { uint32 id = s_donId; s_dons[id].id = id; - uint32 configCount = 1; // Initialize config count to start at 1 - _setDONConfig(id, configCount, nodes, capabilityConfigurations, isPublic); + _setDONConfig(id, 1, nodes, capabilityConfigurations, isPublic); ++s_donId; - emit DONAdded(id, isPublic); } /// @notice Updates a DON's configuration. This allows @@ -586,7 +570,6 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { if (configCount == 0) revert DONDoesNotExist(donId); _setDONConfig(donId, ++configCount, nodes, capabilityConfigurations, isPublic); ++s_donId; - emit DONUpdated(donId, isPublic); } /// @notice Removes DONs from the Capability Registry @@ -599,7 +582,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { // DON config count starts at index 1 if (don.configCount == 0) revert DONDoesNotExist(donId); delete s_dons[donId]; - emit DONRemoved(donId); + emit ConfigSet(donId, 0); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol index 497d26870b9..c7735b4e9ab 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol @@ -6,7 +6,6 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddDONTest is BaseTest { - event DONAdded(uint256 donId, bool isPublic); event ConfigSet(uint32 donId, uint32 configCount); uint32 private constant DON_ID = 1; @@ -161,8 +160,6 @@ contract CapabilityRegistry_AddDONTest is BaseTest { vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); emit ConfigSet(DON_ID, 1); - vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); - emit DONAdded(DON_ID, true); s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); ( diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol index c0fcb42d286..fa11493fff5 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol @@ -6,7 +6,7 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_RemoveDONsTest is BaseTest { - event DONRemoved(uint32 donId); + event ConfigSet(uint32 donId, uint32 configCount); uint32 private constant DON_ID = 1; uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 0; @@ -81,7 +81,7 @@ contract CapabilityRegistry_RemoveDONsTest is BaseTest { uint32[] memory donIDs = new uint32[](1); donIDs[0] = DON_ID; vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); - emit DONRemoved(DON_ID); + emit ConfigSet(DON_ID, 0); s_capabilityRegistry.removeDONs(donIDs); ( diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol index db7522f5699..cdcf01ac060 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol @@ -6,7 +6,6 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_UpdateDONTest is BaseTest { - event DONUpdated(uint256 donId, bool isPublic); event ConfigSet(uint32 donId, uint32 configCount); uint32 private constant DON_ID = 1; @@ -194,8 +193,6 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); emit ConfigSet(DON_ID, expectedConfigCount); - vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); - emit DONUpdated(DON_ID, expectedDONIsPublic); s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, expectedDONIsPublic); ( diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index 2dc7f35083c..120f0fc0265 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -55,8 +55,8 @@ type CapabilityRegistryNodeParams struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"donId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"DONAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"donId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"DONUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"capability\",\"type\":\"tuple\"}],\"name\":\"addCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"deprecateCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getDONCapabilityConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600d805463ffffffff191660011790553480156200002157600080fd5b503380600081620000795760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000ac57620000ac81620000b5565b50505062000160565b336001600160a01b038216036200010f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000070565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b61397280620001706000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80635e65e309116100e35780639cb7c5f41161008c578063c63239c511610066578063c63239c5146103cc578063ddbe4f82146103df578063f2fde38b146103f457600080fd5b80639cb7c5f414610386578063ae3c241c146103a6578063b06e07a7146103b957600080fd5b806373ac22b4116100bd57806373ac22b41461034357806379ba5097146103565780638da5cb5b1461035e57600080fd5b80635e65e309146102fd57806365c14dc7146103105780636ae5c5911461033057600080fd5b80631d05394c1161014557806336b402fb1161011f57806336b402fb14610281578063398f3773146102c957806350c946fe146102dc57600080fd5b80631d05394c14610237578063235374051461024a5780632c01a1e81461026e57600080fd5b8063125700111161017657806312570011146101ba578063181f5a77146101e25780631cdf63431461022457600080fd5b80630c5801e314610192578063117392ce146101a7575b600080fd5b6101a56101a0366004612aeb565b610407565b005b6101a56101b5366004612b57565b610718565b6101cd6101c8366004612b6f565b610963565b60405190151581526020015b60405180910390f35b60408051808201909152601881527f4361706162696c697479526567697374727920312e302e30000000000000000060208201525b6040516101d99190612bec565b6101a5610232366004612bff565b610976565b6101a5610245366004612bff565b610a39565b61025d610258366004612c5a565b610b5e565b6040516101d9959493929190612cb0565b6101a561027c366004612bff565b610dbe565b6102bb61028f366004612d74565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b6040519081526020016101d9565b6101a56102d7366004612bff565b611043565b6102ef6102ea366004612b6f565b6111dc565b6040516101d9929190612d96565b6101a561030b366004612bff565b611281565b61032361031e366004612b6f565b611784565b6040516101d99190612e22565b6101a561033e366004612e73565b61186a565b6101a5610351366004612bff565b61194b565b6101a5611d9f565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d9565b610399610394366004612b6f565b611e9c565b6040516101d99190612f96565b6101a56103b4366004612b6f565b611f46565b6102176103c7366004612fa4565b612011565b6101a56103da366004612fce565b6120e6565b6103e76121e4565b6040516101d99190613061565b6101a56104023660046130d1565b612329565b82811461044f576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff16905b84811015610710576000868683818110610487576104876130ee565b90506020020135905060008585848181106104a4576104a46130ee565b90506020028101906104b6919061311d565b6104bf90613225565b805190915073ffffffffffffffffffffffffffffffffffffffff16610510576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061054d57503373ffffffffffffffffffffffffffffffffffffffff851614155b15610584576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160008381526009602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614158061063657506020808201516040516105ca9201612bec565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060008681526009835292909220919261061d92600101910161333e565b6040516020818303038152906040528051906020012014155b156106fd578051600083815260096020908152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921782558201516001909101906106a3908261342d565b50806000015173ffffffffffffffffffffffffffffffffffffffff167f14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a8383602001516040516106f4929190613547565b60405180910390a25b5050806107099061358f565b905061046b565b505050505050565b61072061233d565b6040805182356020828101919091528084013582840152825180830384018152606090920190925280519101206107586003826123c0565b1561078f576040517fe288638f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107a160808401606085016130d1565b73ffffffffffffffffffffffffffffffffffffffff161461090c576107cc60808301606084016130d1565b73ffffffffffffffffffffffffffffffffffffffff163b15806108ac57506107fa60808301606084016130d1565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f884efe6100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa91906135c7565b155b1561090c576108c160808301606084016130d1565b6040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610446565b6109176003826123db565b506000818152600260205260409020829061093282826135e4565b505060405181907f65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff0690600090a25050565b60006109706005836123c0565b92915050565b61097e61233d565b60005b81811015610a3457600083838381811061099d5761099d6130ee565b60209081029290920135600081815260099093526040832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681559093509190506109ee6001830182612a51565b50506040518181527f1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f9060200160405180910390a150610a2d8161358f565b9050610981565b505050565b610a4161233d565b60005b81811015610a34576000838383818110610a6057610a606130ee565b9050602002016020810190610a759190612c5a565b63ffffffff8082166000908152600b6020526040812080549394509264010000000090049091169003610adc576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610446565b63ffffffff82166000818152600b602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000016905590519182527f7c551c5f33df1b67ff1dee6d812a4a2ea076c2a5bea7d3da390a75619df1553e910160405180910390a1505080610b579061358f565b9050610a44565b63ffffffff8082166000908152600b6020908152604080832080546401000000009004909416808452600190940182528083206002810180548351818602810186019094528084529495869586956060958695939488939192909190830182828015610be957602002820191906000526020600020905b815481526020019060010190808311610bd5575b505050505090506000815167ffffffffffffffff811115610c0c57610c0c61315b565b604051908082528060200260200182016040528015610c5257816020015b604080518082019091526000815260606020820152815260200190600190039081610c2a5790505b50905060005b8151811015610d73576040518060400160405280848381518110610c7e57610c7e6130ee565b60200260200101518152602001856003016000868581518110610ca357610ca36130ee565b602002602001015181526020019081526020016000208054610cc4906132f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf0906132f1565b8015610d3d5780601f10610d1257610100808354040283529160200191610d3d565b820191906000526020600020905b815481529060010190602001808311610d2057829003601f168201915b5050505050815250828281518110610d5757610d576130ee565b602002602001018190525080610d6c9061358f565b9050610c58565b5063ffffffff8a81166000908152600b602052604090205490811690859068010000000000000000900460ff16610da9866123e7565b929d919c509a50909850909650945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b8281101561103d576000848483818110610df857610df86130ee565b602090810292909201356000818152600a90935260409092206001015491925050151580610e55576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610446565b6000828152600a602090815260408083205463ffffffff168352600982528083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549293919291840191610eaf906132f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610edb906132f1565b8015610f285780601f10610efd57610100808354040283529160200191610f28565b820191906000526020600020905b815481529060010190602001808311610f0b57829003601f168201915b505050505081525050905084158015610f585750805173ffffffffffffffffffffffffffffffffffffffff163314155b15610f8f576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600a6020526040902060010154610fad906007906123f4565b506000838152600a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001681556001810183905560020191909155517f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb9753205906110219085815260200190565b60405180910390a1505050806110369061358f565b9050610ddc565b50505050565b61104b61233d565b60005b81811015610a3457600083838381811061106a5761106a6130ee565b905060200281019061107c919061311d565b61108590613225565b805190915073ffffffffffffffffffffffffffffffffffffffff166110d6576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815260008681526009909252939020825181547fffffffffffffffffffffffff000000000000000000000000000000000000000016921691909117815591519091906001820190611159908261342d565b50905050600c6000815461116c9061358f565b909155508151602083015160405173ffffffffffffffffffffffffffffffffffffffff909216917fda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b916111c191859190613547565b60405180910390a25050806111d59061358f565b905061104e565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600a6020908152838220805463ffffffff808216865260018301548487015260028301548688015264010000000090910416835260030190529182206060820190611258906123e7565b90526000938452600a602052604090932054929364010000000090930463ffffffff1692915050565b60005b81811015610a345760008383838181106112a0576112a06130ee565b90506020028101906112b29190613666565b6112bb9061369a565b905060006112de60005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff1660009081526009602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff9081168352600182018054969091163314965093949193909284019161133b906132f1565b80601f0160208091040260200160405190810160405280929190818152602001828054611367906132f1565b80156113b45780601f10611389576101008083540402835291602001916113b4565b820191906000526020600020905b81548152906001019060200180831161139757829003601f168201915b5050505050815250509050811580156113e45750805173ffffffffffffffffffffffffffffffffffffffff163314155b1561141b576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152600a60205220600101541515806114715783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161044691815260200190565b602084015115806114b757508360200151600a60008660400151815260200190815260200160002060010154141580156114b7575060208401516114b7906007906123c0565b156114ee576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060840151805160000361153057806040517f3748d4c6000000000000000000000000000000000000000000000000000000008152600401610446919061376d565b6040858101516000908152600a602052208054640100000000900463ffffffff1690600461155d83613780565b82546101009290920a63ffffffff8181021990931691831602179091556040878101516000908152600a60205290812054640100000000900490911691505b8251811015611668576115d28382815181106115ba576115ba6130ee565b602002602001015160036123c090919063ffffffff16565b61160a57826040517f3748d4c6000000000000000000000000000000000000000000000000000000008152600401610446919061376d565b61165783828151811061161f5761161f6130ee565b6020908102919091018101516040808b01516000908152600a845281812063ffffffff8089168352600390910190945220916123db16565b506116618161358f565b905061159c565b508551604080880180516000908152600a602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9096169590951790945581518082528382206002015581518152828120600190810154948b015192518252929020909101541461171d576116ec6007826123f4565b50602080880180516040808b01516000908152600a909452909220600101919091555161171b906007906123db565b505b60408781015188516020808b0151845193845263ffffffff909216908301528183015290517ff101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d09169181900360600190a1505050505050508061177d9061358f565b9050611284565b6040805180820190915260008152606060208201526000828152600960209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117e1906132f1565b80601f016020809104026020016040519081016040528092919081815260200182805461180d906132f1565b801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b5050505050815250509050919050565b61187261233d565b600d5463ffffffff166000818152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000168217905560016118c282828989898989612400565b600d80546000906118d89063ffffffff16613780565b91906101000a81548163ffffffff021916908363ffffffff1602179055507fab55f4c8fb4335a586285ae209d1f1e17a7ccb22e1131963624434d98c8546a5828460405161193a92919063ffffffff9290921682521515602082015260400190565b60405180910390a150505050505050565b60005b81811015610a3457600083838381811061196a5761196a6130ee565b905060200281019061197c9190613666565b6119859061369a565b905060006119a860005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff1660009081526009602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff90811683526001820180549690911633149650939491939092840191611a05906132f1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a31906132f1565b8015611a7e5780601f10611a5357610100808354040283529160200191611a7e565b820191906000526020600020905b815481529060010190602001808311611a6157829003601f168201915b505050505081525050905081158015611aae5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611ae5576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152600a602052206001015415158080611b0a57506040840151155b15611b495783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161044691815260200190565b60208401511580611b6657506020840151611b66906007906123c0565b15611b9d576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608401518051600003611bdf57806040517f3748d4c6000000000000000000000000000000000000000000000000000000008152600401610446919061376d565b6040858101516000908152600a602052208054600490611c0c90640100000000900463ffffffff16613780565b82546101009290920a63ffffffff8181021990931691831602179091556040868101516000908152600a602052908120546401000000009004909116905b8251811015611cc657611c688382815181106115ba576115ba6130ee565b611ca057826040517f3748d4c6000000000000000000000000000000000000000000000000000000008152600401610446919061376d565b611cb583828151811061161f5761161f6130ee565b50611cbf8161358f565b9050611c4a565b508551604080880180516000908152600a602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9687161790558251808352848320600201558a018051925182529290206001015551611d3891600791906123db16565b5060408681015187516020808a0151845193845263ffffffff909216908301528183015290517fc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da9181900360600190a150505050505080611d989061358f565b905061194e565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610446565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b604080516080808201835260008083526020808401829052838501829052606084018290528582526002808252918590208551938401865280548452600180820154928501929092529182015493949293919284019160ff1690811115611f0557611f05612ef7565b6001811115611f1657611f16612ef7565b815260029190910154610100900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b611f4e61233d565b611f596003826123c0565b611f92576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b611f9d6005826123c0565b15611fd7576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b611fe26005826123db565b5060405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250565b63ffffffff8083166000908152600b60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915290208054606092919061205f906132f1565b80601f016020809104026020016040519081016040528092919081815260200182805461208b906132f1565b80156120d85780601f106120ad576101008083540402835291602001916120d8565b820191906000526020600020905b8154815290600101906020018083116120bb57829003601f168201915b505050505091505092915050565b6120ee61233d565b63ffffffff8087166000908152600b6020526040812054640100000000900490911690819003612152576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff88166004820152602401610446565b61216c8761215f83613780565b9250828888888888612400565b600d80546000906121829063ffffffff16613780565b91906101000a81548163ffffffff021916908363ffffffff1602179055507f5dce85cddb7818888e0d91ad9cacfeb0082a155fb8497ad810b4d43d51ba17af878360405161193a92919063ffffffff9290921682521515602082015260400190565b606060006121f260036123e7565b9050600061220060056127b4565b825161220c91906137a3565b67ffffffffffffffff8111156122245761222461315b565b60405190808252806020026020018201604052801561229457816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816122425790505b5090506000805b83518110156123205760008482815181106122b8576122b86130ee565b602002602001015190506122d68160056123c090919063ffffffff16565b61230f576122e381611e9c565b8484815181106122f5576122f56130ee565b6020026020010181905250828061230b9061358f565b9350505b506123198161358f565b905061229b565b50909392505050565b61233161233d565b61233a816127be565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146123be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610446565b565b600081815260018301602052604081205415155b9392505050565b60006123d483836128b3565b606060006123d483612902565b60006123d4838361295e565b63ffffffff8781166000908152600b6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000087151502178155938a16835260019093019052908120905b858110156124f457600087878381811061247b5761247b6130ee565b60200291909101359150612491905083826123c0565b156124d7576040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff8b16600482015260248101829052604401610446565b6124e183826123db565b5050806124ed9061358f565b905061245f565b5060005b838110156127265736858583818110612513576125136130ee565b9050602002810190612525919061311d565b905080356125346003826123c0565b61256d576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b6125786005826123c0565b156125b2576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b6000818152600385016020526040812080546125cd906132f1565b90501115612616576040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff8c16600482015260248101829052604401610446565b60005b888110156126ce5760008a8a83818110612635576126356130ee565b602090810292909201356000818152600a84526040808220805463ffffffff640100000000909104811684526003909101909552902090935061267d9290915085906123c016565b6126bd576040517fa7e792500000000000000000000000000000000000000000000000000000000081526004810182905260248101849052604401610446565b506126c78161358f565b9050612619565b506002840180546001810182556000918252602091829020018290556126f6908301836137b6565b600083815260038701602052604090209161271291908361381b565b5050508061271f9061358f565b90506124f8565b5063ffffffff8881166000818152600b602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff16640100000000958d1695860217905581519283528201929092527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a15050505050505050565b6000610970825490565b3373ffffffffffffffffffffffffffffffffffffffff82160361283d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610446565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008181526001830160205260408120546128fa57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610970565b506000610970565b60608160000180548060200260200160405190810160405280929190818152602001828054801561295257602002820191906000526020600020905b81548152602001906001019080831161293e575b50505050509050919050565b60008181526001830160205260408120548015612a475760006129826001836137a3565b8554909150600090612996906001906137a3565b90508181146129fb5760008660000182815481106129b6576129b66130ee565b90600052602060002001549050808760000184815481106129d9576129d96130ee565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612a0c57612a0c613936565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610970565b6000915050610970565b508054612a5d906132f1565b6000825580601f10612a6d575050565b601f01602090049060005260206000209081019061233a91905b80821115612a9b5760008155600101612a87565b5090565b60008083601f840112612ab157600080fd5b50813567ffffffffffffffff811115612ac957600080fd5b6020830191508360208260051b8501011115612ae457600080fd5b9250929050565b60008060008060408587031215612b0157600080fd5b843567ffffffffffffffff80821115612b1957600080fd5b612b2588838901612a9f565b90965094506020870135915080821115612b3e57600080fd5b50612b4b87828801612a9f565b95989497509550505050565b600060808284031215612b6957600080fd5b50919050565b600060208284031215612b8157600080fd5b5035919050565b6000815180845260005b81811015612bae57602081850181015186830182015201612b92565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006123d46020830184612b88565b60008060208385031215612c1257600080fd5b823567ffffffffffffffff811115612c2957600080fd5b612c3585828601612a9f565b90969095509350505050565b803563ffffffff81168114612c5557600080fd5b919050565b600060208284031215612c6c57600080fd5b6123d482612c41565b600081518084526020808501945080840160005b83811015612ca557815187529582019590820190600101612c89565b509495945050505050565b600063ffffffff8088168352602081881681850152604091508615158285015260a06060850152612ce460a0850187612c75565b8481036080860152855180825282820190600581901b8301840184890160005b83811015612d61578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018552815180518452870151878401899052612d4e89850182612b88565b9588019593505090860190600101612d04565b50909d9c50505050505050505050505050565b60008060408385031215612d8757600080fd5b50508035926020909101359150565b60408152600060c0820163ffffffff85511660408401526020808601516060850152604086015160808501526060860151608060a086015282815180855260e0870191508383019450600092505b80831015612e045784518252938301936001929092019190830190612de4565b5063ffffffff8716838701529350612e199050565b50509392505050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015260006020830151604080840152612e5d6060840182612b88565b949350505050565b801515811461233a57600080fd5b600080600080600060608688031215612e8b57600080fd5b853567ffffffffffffffff80821115612ea357600080fd5b612eaf89838a01612a9f565b90975095506020880135915080821115612ec857600080fd5b50612ed588828901612a9f565b9094509250506040860135612ee981612e65565b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8051825260208101516020830152604081015160028110612f70577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b604083015260609081015173ffffffffffffffffffffffffffffffffffffffff16910152565b608081016109708284612f26565b60008060408385031215612fb757600080fd5b612fc083612c41565b946020939093013593505050565b60008060008060008060808789031215612fe757600080fd5b612ff087612c41565b9550602087013567ffffffffffffffff8082111561300d57600080fd5b6130198a838b01612a9f565b9097509550604089013591508082111561303257600080fd5b5061303f89828a01612a9f565b909450925050606087013561305381612e65565b809150509295509295509295565b6020808252825182820181905260009190848201906040850190845b818110156130a357613090838551612f26565b928401926080929092019160010161307d565b50909695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461233a57600080fd5b6000602082840312156130e357600080fd5b81356123d4816130af565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261315157600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156131ad576131ad61315b565b60405290565b6040516080810167ffffffffffffffff811182821017156131ad576131ad61315b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561321d5761321d61315b565b604052919050565b60006040823603121561323757600080fd5b61323f61318a565b823561324a816130af565b815260208381013567ffffffffffffffff8082111561326857600080fd5b9085019036601f83011261327b57600080fd5b81358181111561328d5761328d61315b565b6132bd847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016131d6565b915080825236848285010111156132d357600080fd5b80848401858401376000908201840152918301919091525092915050565b600181811c9082168061330557607f821691505b602082108103612b69577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454613352816132f1565b8084870152604060018084166000811461337357600181146133ab576133d9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a010195506133d9565b896000528660002060005b858110156133d15781548b82018601529083019088016133b6565b8a0184019650505b509398975050505050505050565b601f821115610a3457600081815260208120601f850160051c8101602086101561340e5750805b601f850160051c820191505b818110156107105782815560010161341a565b815167ffffffffffffffff8111156134475761344761315b565b61345b8161345584546132f1565b846133e7565b602080601f8311600181146134ae57600084156134785750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610710565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156134fb578886015182559484019460019091019084016134dc565b508582101561353757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000612e5d6040830184612b88565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135c0576135c0613560565b5060010190565b6000602082840312156135d957600080fd5b81516123d481612e65565b81358155602082013560018201556002810160408301356002811061360857600080fd5b81546060850135613618816130af565b74ffffffffffffffffffffffffffffffffffffffff008160081b1660ff84167fffffffffffffffffffffff000000000000000000000000000000000000000000841617178455505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261315157600080fd5b6000608082360312156136ac57600080fd5b6136b46131b3565b6136bd83612c41565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff808211156136ee57600080fd5b9085019036601f83011261370157600080fd5b8135818111156137135761371361315b565b8060051b91506137248483016131d6565b818152918301840191848101903684111561373e57600080fd5b938501935b8385101561375c57843582529385019390850190613743565b606087015250939695505050505050565b6020815260006123d46020830184612c75565b600063ffffffff80831681810361379957613799613560565b6001019392505050565b8181038181111561097057610970613560565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126137eb57600080fd5b83018035915067ffffffffffffffff82111561380657600080fd5b602001915036819003821315612ae457600080fd5b67ffffffffffffffff8311156138335761383361315b565b6138478361384183546132f1565b836133e7565b6000601f84116001811461389957600085156138635750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b17835561392f565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156138e857868501358255602094850194600190920191016138c8565b5086821015613923577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"capability\",\"type\":\"tuple\"}],\"name\":\"addCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"deprecateCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getDONCapabilityConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeParams[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600d805463ffffffff191660011790553480156200002157600080fd5b503380600081620000795760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000ac57620000ac81620000b5565b50505062000160565b336001600160a01b038216036200010f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000070565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6138ef80620001706000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80635e65e309116100e35780639cb7c5f41161008c578063c63239c511610066578063c63239c5146103cc578063ddbe4f82146103df578063f2fde38b146103f457600080fd5b80639cb7c5f414610386578063ae3c241c146103a6578063b06e07a7146103b957600080fd5b806373ac22b4116100bd57806373ac22b41461034357806379ba5097146103565780638da5cb5b1461035e57600080fd5b80635e65e309146102fd57806365c14dc7146103105780636ae5c5911461033057600080fd5b80631d05394c1161014557806336b402fb1161011f57806336b402fb14610281578063398f3773146102c957806350c946fe146102dc57600080fd5b80631d05394c14610237578063235374051461024a5780632c01a1e81461026e57600080fd5b8063125700111161017657806312570011146101ba578063181f5a77146101e25780631cdf63431461022457600080fd5b80630c5801e314610192578063117392ce146101a7575b600080fd5b6101a56101a0366004612a68565b610407565b005b6101a56101b5366004612ad4565b610718565b6101cd6101c8366004612aec565b610963565b60405190151581526020015b60405180910390f35b60408051808201909152601881527f4361706162696c697479526567697374727920312e302e30000000000000000060208201525b6040516101d99190612b69565b6101a5610232366004612b7c565b610976565b6101a5610245366004612b7c565b610a39565b61025d610258366004612bd7565b610b64565b6040516101d9959493929190612c2d565b6101a561027c366004612b7c565b610dc4565b6102bb61028f366004612cf1565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b6040519081526020016101d9565b6101a56102d7366004612b7c565b611049565b6102ef6102ea366004612aec565b6111e2565b6040516101d9929190612d13565b6101a561030b366004612b7c565b611287565b61032361031e366004612aec565b61178a565b6040516101d99190612d9f565b6101a561033e366004612df0565b611870565b6101a5610351366004612b7c565b611903565b6101a5611d57565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d9565b610399610394366004612aec565b611e54565b6040516101d99190612f13565b6101a56103b4366004612aec565b611efe565b6102176103c7366004612f21565b611fc9565b6101a56103da366004612f4b565b61209e565b6103e7612161565b6040516101d99190612fde565b6101a561040236600461304e565b6122a6565b82811461044f576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff16905b848110156107105760008686838181106104875761048761306b565b90506020020135905060008585848181106104a4576104a461306b565b90506020028101906104b6919061309a565b6104bf906131a2565b805190915073ffffffffffffffffffffffffffffffffffffffff16610510576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061054d57503373ffffffffffffffffffffffffffffffffffffffff851614155b15610584576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160008381526009602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614158061063657506020808201516040516105ca9201612b69565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060008681526009835292909220919261061d9260010191016132bb565b6040516020818303038152906040528051906020012014155b156106fd578051600083815260096020908152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921782558201516001909101906106a390826133aa565b50806000015173ffffffffffffffffffffffffffffffffffffffff167f14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a8383602001516040516106f49291906134c4565b60405180910390a25b5050806107099061350c565b905061046b565b505050505050565b6107206122ba565b60408051823560208281019190915280840135828401528251808303840181526060909201909252805191012061075860038261233d565b1561078f576040517fe288638f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107a1608084016060850161304e565b73ffffffffffffffffffffffffffffffffffffffff161461090c576107cc608083016060840161304e565b73ffffffffffffffffffffffffffffffffffffffff163b15806108ac57506107fa608083016060840161304e565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f884efe6100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190613544565b155b1561090c576108c1608083016060840161304e565b6040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610446565b610917600382612358565b50600081815260026020526040902082906109328282613561565b505060405181907f65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff0690600090a25050565b600061097060058361233d565b92915050565b61097e6122ba565b60005b81811015610a3457600083838381811061099d5761099d61306b565b60209081029290920135600081815260099093526040832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001681559093509190506109ee60018301826129ce565b50506040518181527f1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f9060200160405180910390a150610a2d8161350c565b9050610981565b505050565b610a416122ba565b60005b81811015610a34576000838383818110610a6057610a6061306b565b9050602002016020810190610a759190612bd7565b63ffffffff8082166000908152600b6020526040812080549394509264010000000090049091169003610adc576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610446565b63ffffffff82166000818152600b6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505080610b5d9061350c565b9050610a44565b63ffffffff8082166000908152600b6020908152604080832080546401000000009004909416808452600190940182528083206002810180548351818602810186019094528084529495869586956060958695939488939192909190830182828015610bef57602002820191906000526020600020905b815481526020019060010190808311610bdb575b505050505090506000815167ffffffffffffffff811115610c1257610c126130d8565b604051908082528060200260200182016040528015610c5857816020015b604080518082019091526000815260606020820152815260200190600190039081610c305790505b50905060005b8151811015610d79576040518060400160405280848381518110610c8457610c8461306b565b60200260200101518152602001856003016000868581518110610ca957610ca961306b565b602002602001015181526020019081526020016000208054610cca9061326e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf69061326e565b8015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b5050505050815250828281518110610d5d57610d5d61306b565b602002602001018190525080610d729061350c565b9050610c5e565b5063ffffffff8a81166000908152600b602052604090205490811690859068010000000000000000900460ff16610daf86612364565b929d919c509a50909850909650945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015611043576000848483818110610dfe57610dfe61306b565b602090810292909201356000818152600a90935260409092206001015491925050151580610e5b576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610446565b6000828152600a602090815260408083205463ffffffff168352600982528083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549293919291840191610eb59061326e565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee19061326e565b8015610f2e5780601f10610f0357610100808354040283529160200191610f2e565b820191906000526020600020905b815481529060010190602001808311610f1157829003601f168201915b505050505081525050905084158015610f5e5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15610f95576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600a6020526040902060010154610fb390600790612371565b506000838152600a602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001681556001810183905560020191909155517f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb9753205906110279085815260200190565b60405180910390a15050508061103c9061350c565b9050610de2565b50505050565b6110516122ba565b60005b81811015610a345760008383838181106110705761107061306b565b9050602002810190611082919061309a565b61108b906131a2565b805190915073ffffffffffffffffffffffffffffffffffffffff166110dc576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815260008681526009909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559151909190600182019061115f90826133aa565b50905050600c600081546111729061350c565b909155508151602083015160405173ffffffffffffffffffffffffffffffffffffffff909216917fda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b916111c7918591906134c4565b60405180910390a25050806111db9061350c565b9050611054565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600a6020908152838220805463ffffffff80821686526001830154848701526002830154868801526401000000009091041683526003019052918220606082019061125e90612364565b90526000938452600a602052604090932054929364010000000090930463ffffffff1692915050565b60005b81811015610a345760008383838181106112a6576112a661306b565b90506020028101906112b891906135e3565b6112c190613617565b905060006112e460005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff1660009081526009602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff908116835260018201805496909116331496509394919390928401916113419061326e565b80601f016020809104026020016040519081016040528092919081815260200182805461136d9061326e565b80156113ba5780601f1061138f576101008083540402835291602001916113ba565b820191906000526020600020905b81548152906001019060200180831161139d57829003601f168201915b5050505050815250509050811580156113ea5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611421576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152600a60205220600101541515806114775783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161044691815260200190565b602084015115806114bd57508360200151600a60008660400151815260200190815260200160002060010154141580156114bd575060208401516114bd9060079061233d565b156114f4576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060840151805160000361153657806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161044691906136ea565b6040858101516000908152600a602052208054640100000000900463ffffffff16906004611563836136fd565b82546101009290920a63ffffffff8181021990931691831602179091556040878101516000908152600a60205290812054640100000000900490911691505b825181101561166e576115d88382815181106115c0576115c061306b565b6020026020010151600361233d90919063ffffffff16565b61161057826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161044691906136ea565b61165d8382815181106116255761162561306b565b6020908102919091018101516040808b01516000908152600a845281812063ffffffff80891683526003909101909452209161235816565b506116678161350c565b90506115a2565b508551604080880180516000908152600a602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9096169590951790945581518082528382206002015581518152828120600190810154948b0151925182529290209091015414611723576116f2600782612371565b50602080880180516040808b01516000908152600a909452909220600101919091555161172190600790612358565b505b60408781015188516020808b0151845193845263ffffffff909216908301528183015290517ff101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d09169181900360600190a150505050505050806117839061350c565b905061128a565b6040805180820190915260008152606060208201526000828152600960209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117e79061326e565b80601f01602080910402602001604051908101604052809291908181526020018280546118139061326e565b80156118605780601f1061183557610100808354040283529160200191611860565b820191906000526020600020905b81548152906001019060200180831161184357829003601f168201915b5050505050815250509050919050565b6118786122ba565b600d5463ffffffff166000818152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016821790556118c7816001888888888861237d565b600d80546000906118dd9063ffffffff166136fd565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b60005b81811015610a345760008383838181106119225761192261306b565b905060200281019061193491906135e3565b61193d90613617565b9050600061196060005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff1660009081526009602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff908116835260018201805496909116331496509394919390928401916119bd9061326e565b80601f01602080910402602001604051908101604052809291908181526020018280546119e99061326e565b8015611a365780601f10611a0b57610100808354040283529160200191611a36565b820191906000526020600020905b815481529060010190602001808311611a1957829003601f168201915b505050505081525050905081158015611a665750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611a9d576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152600a602052206001015415158080611ac257506040840151155b15611b015783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161044691815260200190565b60208401511580611b1e57506020840151611b1e9060079061233d565b15611b55576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608401518051600003611b9757806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161044691906136ea565b6040858101516000908152600a602052208054600490611bc490640100000000900463ffffffff166136fd565b82546101009290920a63ffffffff8181021990931691831602179091556040868101516000908152600a602052908120546401000000009004909116905b8251811015611c7e57611c208382815181106115c0576115c061306b565b611c5857826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161044691906136ea565b611c6d8382815181106116255761162561306b565b50611c778161350c565b9050611c02565b508551604080880180516000908152600a602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9687161790558251808352848320600201558a018051925182529290206001015551611cf0916007919061235816565b5060408681015187516020808a0151845193845263ffffffff909216908301528183015290517fc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da9181900360600190a150505050505080611d509061350c565b9050611906565b60015473ffffffffffffffffffffffffffffffffffffffff163314611dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610446565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b604080516080808201835260008083526020808401829052838501829052606084018290528582526002808252918590208551938401865280548452600180820154928501929092529182015493949293919284019160ff1690811115611ebd57611ebd612e74565b6001811115611ece57611ece612e74565b815260029190910154610100900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b611f066122ba565b611f1160038261233d565b611f4a576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b611f5560058261233d565b15611f8f576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b611f9a600582612358565b5060405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250565b63ffffffff8083166000908152600b6020908152604080832080546401000000009004909416808452600190940182528083208584526003019091529020805460609291906120179061326e565b80601f01602080910402602001604051908101604052809291908181526020018280546120439061326e565b80156120905780601f1061206557610100808354040283529160200191612090565b820191906000526020600020905b81548152906001019060200180831161207357829003601f168201915b505050505091505092915050565b6120a66122ba565b63ffffffff8087166000908152600b602052604081205464010000000090049091169081900361210a576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff88166004820152602401610446565b61212487612117836136fd565b925082888888888861237d565b600d805460009061213a9063ffffffff166136fd565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050505050565b6060600061216f6003612364565b9050600061217d6005612731565b82516121899190613720565b67ffffffffffffffff8111156121a1576121a16130d8565b60405190808252806020026020018201604052801561221157816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816121bf5790505b5090506000805b835181101561229d5760008482815181106122355761223561306b565b6020026020010151905061225381600561233d90919063ffffffff16565b61228c5761226081611e54565b8484815181106122725761227261306b565b602002602001018190525082806122889061350c565b9350505b506122968161350c565b9050612218565b50909392505050565b6122ae6122ba565b6122b78161273b565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461233b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610446565b565b600081815260018301602052604081205415155b9392505050565b60006123518383612830565b606060006123518361287f565b600061235183836128db565b63ffffffff8781166000908152600b6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000087151502178155938a16835260019093019052908120905b858110156124715760008787838181106123f8576123f861306b565b6020029190910135915061240e9050838261233d565b15612454576040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff8b16600482015260248101829052604401610446565b61245e8382612358565b50508061246a9061350c565b90506123dc565b5060005b838110156126a357368585838181106124905761249061306b565b90506020028101906124a2919061309a565b905080356124b160038261233d565b6124ea576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b6124f560058261233d565b1561252f576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610446565b60008181526003850160205260408120805461254a9061326e565b90501115612593576040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff8c16600482015260248101829052604401610446565b60005b8881101561264b5760008a8a838181106125b2576125b261306b565b602090810292909201356000818152600a84526040808220805463ffffffff64010000000090910481168452600390910190955290209093506125fa92909150859061233d16565b61263a576040517fa7e792500000000000000000000000000000000000000000000000000000000081526004810182905260248101849052604401610446565b506126448161350c565b9050612596565b5060028401805460018101825560009182526020918290200182905561267390830183613733565b600083815260038701602052604090209161268f919083613798565b5050508061269c9061350c565b9050612475565b5063ffffffff8881166000818152600b602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff16640100000000958d1695860217905581519283528201929092527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a15050505050505050565b6000610970825490565b3373ffffffffffffffffffffffffffffffffffffffff8216036127ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610446565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600081815260018301602052604081205461287757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610970565b506000610970565b6060816000018054806020026020016040519081016040528092919081815260200182805480156128cf57602002820191906000526020600020905b8154815260200190600101908083116128bb575b50505050509050919050565b600081815260018301602052604081205480156129c45760006128ff600183613720565b855490915060009061291390600190613720565b90508181146129785760008660000182815481106129335761293361306b565b90600052602060002001549050808760000184815481106129565761295661306b565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612989576129896138b3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610970565b6000915050610970565b5080546129da9061326e565b6000825580601f106129ea575050565b601f0160209004906000526020600020908101906122b791905b80821115612a185760008155600101612a04565b5090565b60008083601f840112612a2e57600080fd5b50813567ffffffffffffffff811115612a4657600080fd5b6020830191508360208260051b8501011115612a6157600080fd5b9250929050565b60008060008060408587031215612a7e57600080fd5b843567ffffffffffffffff80821115612a9657600080fd5b612aa288838901612a1c565b90965094506020870135915080821115612abb57600080fd5b50612ac887828801612a1c565b95989497509550505050565b600060808284031215612ae657600080fd5b50919050565b600060208284031215612afe57600080fd5b5035919050565b6000815180845260005b81811015612b2b57602081850181015186830182015201612b0f565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006123516020830184612b05565b60008060208385031215612b8f57600080fd5b823567ffffffffffffffff811115612ba657600080fd5b612bb285828601612a1c565b90969095509350505050565b803563ffffffff81168114612bd257600080fd5b919050565b600060208284031215612be957600080fd5b61235182612bbe565b600081518084526020808501945080840160005b83811015612c2257815187529582019590820190600101612c06565b509495945050505050565b600063ffffffff8088168352602081881681850152604091508615158285015260a06060850152612c6160a0850187612bf2565b8481036080860152855180825282820190600581901b8301840184890160005b83811015612cde578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018552815180518452870151878401899052612ccb89850182612b05565b9588019593505090860190600101612c81565b50909d9c50505050505050505050505050565b60008060408385031215612d0457600080fd5b50508035926020909101359150565b60408152600060c0820163ffffffff85511660408401526020808601516060850152604086015160808501526060860151608060a086015282815180855260e0870191508383019450600092505b80831015612d815784518252938301936001929092019190830190612d61565b5063ffffffff8716838701529350612d969050565b50509392505050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015260006020830151604080840152612dda6060840182612b05565b949350505050565b80151581146122b757600080fd5b600080600080600060608688031215612e0857600080fd5b853567ffffffffffffffff80821115612e2057600080fd5b612e2c89838a01612a1c565b90975095506020880135915080821115612e4557600080fd5b50612e5288828901612a1c565b9094509250506040860135612e6681612de2565b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8051825260208101516020830152604081015160028110612eed577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b604083015260609081015173ffffffffffffffffffffffffffffffffffffffff16910152565b608081016109708284612ea3565b60008060408385031215612f3457600080fd5b612f3d83612bbe565b946020939093013593505050565b60008060008060008060808789031215612f6457600080fd5b612f6d87612bbe565b9550602087013567ffffffffffffffff80821115612f8a57600080fd5b612f968a838b01612a1c565b90975095506040890135915080821115612faf57600080fd5b50612fbc89828a01612a1c565b9094509250506060870135612fd081612de2565b809150509295509295509295565b6020808252825182820181905260009190848201906040850190845b818110156130205761300d838551612ea3565b9284019260809290920191600101612ffa565b50909695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146122b757600080fd5b60006020828403121561306057600080fd5b81356123518161302c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126130ce57600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561312a5761312a6130d8565b60405290565b6040516080810167ffffffffffffffff8111828210171561312a5761312a6130d8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561319a5761319a6130d8565b604052919050565b6000604082360312156131b457600080fd5b6131bc613107565b82356131c78161302c565b815260208381013567ffffffffffffffff808211156131e557600080fd5b9085019036601f8301126131f857600080fd5b81358181111561320a5761320a6130d8565b61323a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613153565b9150808252368482850101111561325057600080fd5b80848401858401376000908201840152918301919091525092915050565b600181811c9082168061328257607f821691505b602082108103612ae6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020808352600084546132cf8161326e565b808487015260406001808416600081146132f0576001811461332857613356565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550613356565b896000528660002060005b8581101561334e5781548b8201860152908301908801613333565b8a0184019650505b509398975050505050505050565b601f821115610a3457600081815260208120601f850160051c8101602086101561338b5750805b601f850160051c820191505b8181101561071057828155600101613397565b815167ffffffffffffffff8111156133c4576133c46130d8565b6133d8816133d2845461326e565b84613364565b602080601f83116001811461342b57600084156133f55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610710565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561347857888601518255948401946001909101908401613459565b50858210156134b457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000612dda6040830184612b05565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361353d5761353d6134dd565b5060010190565b60006020828403121561355657600080fd5b815161235181612de2565b81358155602082013560018201556002810160408301356002811061358557600080fd5b815460608501356135958161302c565b74ffffffffffffffffffffffffffffffffffffffff008160081b1660ff84167fffffffffffffffffffffff000000000000000000000000000000000000000000841617178455505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126130ce57600080fd5b60006080823603121561362957600080fd5b613631613130565b61363a83612bbe565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561366b57600080fd5b9085019036601f83011261367e57600080fd5b813581811115613690576136906130d8565b8060051b91506136a1848301613153565b81815291830184019184810190368411156136bb57600080fd5b938501935b838510156136d9578435825293850193908501906136c0565b606087015250939695505050505050565b6020815260006123516020830184612bf2565b600063ffffffff808316818103613716576137166134dd565b6001019392505050565b81810381811115610970576109706134dd565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261376857600080fd5b83018035915067ffffffffffffffff82111561378357600080fd5b602001915036819003821315612a6157600080fd5b67ffffffffffffffff8311156137b0576137b06130d8565b6137c4836137be835461326e565b83613364565b6000601f84116001811461381657600085156137e05750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556138ac565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156138655786850135825560209485019460019092019101613845565b50868210156138a0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -948,359 +948,6 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseConfigSet(log types. return event, nil } -type CapabilityRegistryDONAddedIterator struct { - Event *CapabilityRegistryDONAdded - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *CapabilityRegistryDONAddedIterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONAdded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONAdded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *CapabilityRegistryDONAddedIterator) Error() error { - return it.fail -} - -func (it *CapabilityRegistryDONAddedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type CapabilityRegistryDONAdded struct { - DonId *big.Int - IsPublic bool - Raw types.Log -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterDONAdded(opts *bind.FilterOpts) (*CapabilityRegistryDONAddedIterator, error) { - - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "DONAdded") - if err != nil { - return nil, err - } - return &CapabilityRegistryDONAddedIterator{contract: _CapabilityRegistry.contract, event: "DONAdded", logs: logs, sub: sub}, nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchDONAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONAdded) (event.Subscription, error) { - - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "DONAdded") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(CapabilityRegistryDONAdded) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONAdded", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseDONAdded(log types.Log) (*CapabilityRegistryDONAdded, error) { - event := new(CapabilityRegistryDONAdded) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONAdded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -type CapabilityRegistryDONRemovedIterator struct { - Event *CapabilityRegistryDONRemoved - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *CapabilityRegistryDONRemovedIterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONRemoved) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONRemoved) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *CapabilityRegistryDONRemovedIterator) Error() error { - return it.fail -} - -func (it *CapabilityRegistryDONRemovedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type CapabilityRegistryDONRemoved struct { - DonId uint32 - Raw types.Log -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterDONRemoved(opts *bind.FilterOpts) (*CapabilityRegistryDONRemovedIterator, error) { - - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "DONRemoved") - if err != nil { - return nil, err - } - return &CapabilityRegistryDONRemovedIterator{contract: _CapabilityRegistry.contract, event: "DONRemoved", logs: logs, sub: sub}, nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchDONRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONRemoved) (event.Subscription, error) { - - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "DONRemoved") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(CapabilityRegistryDONRemoved) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONRemoved", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseDONRemoved(log types.Log) (*CapabilityRegistryDONRemoved, error) { - event := new(CapabilityRegistryDONRemoved) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONRemoved", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -type CapabilityRegistryDONUpdatedIterator struct { - Event *CapabilityRegistryDONUpdated - - contract *bind.BoundContract - event string - - logs chan types.Log - sub ethereum.Subscription - done bool - fail error -} - -func (it *CapabilityRegistryDONUpdatedIterator) Next() bool { - - if it.fail != nil { - return false - } - - if it.done { - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONUpdated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - - select { - case log := <-it.logs: - it.Event = new(CapabilityRegistryDONUpdated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -func (it *CapabilityRegistryDONUpdatedIterator) Error() error { - return it.fail -} - -func (it *CapabilityRegistryDONUpdatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -type CapabilityRegistryDONUpdated struct { - DonId *big.Int - IsPublic bool - Raw types.Log -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterDONUpdated(opts *bind.FilterOpts) (*CapabilityRegistryDONUpdatedIterator, error) { - - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "DONUpdated") - if err != nil { - return nil, err - } - return &CapabilityRegistryDONUpdatedIterator{contract: _CapabilityRegistry.contract, event: "DONUpdated", logs: logs, sub: sub}, nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchDONUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONUpdated) (event.Subscription, error) { - - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "DONUpdated") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - - event := new(CapabilityRegistryDONUpdated) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONUpdated", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseDONUpdated(log types.Log) (*CapabilityRegistryDONUpdated, error) { - event := new(CapabilityRegistryDONUpdated) - if err := _CapabilityRegistry.contract.UnpackLog(event, "DONUpdated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - type CapabilityRegistryNodeAddedIterator struct { Event *CapabilityRegistryNodeAdded @@ -2311,12 +1958,6 @@ func (_CapabilityRegistry *CapabilityRegistry) ParseLog(log types.Log) (generate return _CapabilityRegistry.ParseCapabilityDeprecated(log) case _CapabilityRegistry.abi.Events["ConfigSet"].ID: return _CapabilityRegistry.ParseConfigSet(log) - case _CapabilityRegistry.abi.Events["DONAdded"].ID: - return _CapabilityRegistry.ParseDONAdded(log) - case _CapabilityRegistry.abi.Events["DONRemoved"].ID: - return _CapabilityRegistry.ParseDONRemoved(log) - case _CapabilityRegistry.abi.Events["DONUpdated"].ID: - return _CapabilityRegistry.ParseDONUpdated(log) case _CapabilityRegistry.abi.Events["NodeAdded"].ID: return _CapabilityRegistry.ParseNodeAdded(log) case _CapabilityRegistry.abi.Events["NodeOperatorAdded"].ID: @@ -2351,18 +1992,6 @@ func (CapabilityRegistryConfigSet) Topic() common.Hash { return common.HexToHash("0xf264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651") } -func (CapabilityRegistryDONAdded) Topic() common.Hash { - return common.HexToHash("0xab55f4c8fb4335a586285ae209d1f1e17a7ccb22e1131963624434d98c8546a5") -} - -func (CapabilityRegistryDONRemoved) Topic() common.Hash { - return common.HexToHash("0x7c551c5f33df1b67ff1dee6d812a4a2ea076c2a5bea7d3da390a75619df1553e") -} - -func (CapabilityRegistryDONUpdated) Topic() common.Hash { - return common.HexToHash("0x5dce85cddb7818888e0d91ad9cacfeb0082a155fb8497ad810b4d43d51ba17af") -} - func (CapabilityRegistryNodeAdded) Topic() common.Hash { return common.HexToHash("0xc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da") } @@ -2464,24 +2093,6 @@ type CapabilityRegistryInterface interface { ParseConfigSet(log types.Log) (*CapabilityRegistryConfigSet, error) - FilterDONAdded(opts *bind.FilterOpts) (*CapabilityRegistryDONAddedIterator, error) - - WatchDONAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONAdded) (event.Subscription, error) - - ParseDONAdded(log types.Log) (*CapabilityRegistryDONAdded, error) - - FilterDONRemoved(opts *bind.FilterOpts) (*CapabilityRegistryDONRemovedIterator, error) - - WatchDONRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONRemoved) (event.Subscription, error) - - ParseDONRemoved(log types.Log) (*CapabilityRegistryDONRemoved, error) - - FilterDONUpdated(opts *bind.FilterOpts) (*CapabilityRegistryDONUpdatedIterator, error) - - WatchDONUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryDONUpdated) (event.Subscription, error) - - ParseDONUpdated(log types.Log) (*CapabilityRegistryDONUpdated, error) - FilterNodeAdded(opts *bind.FilterOpts) (*CapabilityRegistryNodeAddedIterator, error) WatchNodeAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeAdded) (event.Subscription, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 16031996c77..1c57c977792 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin b4c900aae9e022f01abbac7993d41f93912247613ac6270b0c4da4ef6f2016e3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 0f3be7185a134d687c284e01453ab0534c85d89b8ffb4fb3e8d3f19d41b6b555 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 9071d50b46256a36b777ff444a58354c318d7d6bbe86a9ae28bf91a664502fc9 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2