diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index 664d0920131..33cd684e471 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -574,12 +574,12 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { } /// @notice Gets all nodes - /// @return NodeInfo[] All nodes in the capability registry - /// @return uint32[] All the config counts for the nodes in the capability registry - function getNodes() external view returns (NodeInfo[] memory, uint32[] memory) { + /// @return nodeInfo NodeInfo[] All nodes in the capability registry + /// @return configCounts uint32[] All the config counts for the nodes in the capability registry + function getNodes() external view returns (NodeInfo[] memory nodeInfo, uint32[] memory configCounts) { bytes32[] memory p2pIds = s_nodeP2PIds.values(); - NodeInfo[] memory nodeInfo = new NodeInfo[](p2pIds.length); - uint32[] memory configCounts = new uint32[](p2pIds.length); + nodeInfo = new NodeInfo[](p2pIds.length); + configCounts = new uint32[](p2pIds.length); for (uint256 i; i < p2pIds.length; ++i) { (nodeInfo[i], configCounts[i]) = getNode(p2pIds[i]); 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 786c44db8ab..ead693d88dd 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 @@ -66,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"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\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"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\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"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\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"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\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"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\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"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\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"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.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"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\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"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\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"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.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"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\":[],\"name\":\"getNodeOperators\",\"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\":[],\"name\":\"getNodes\",\"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.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"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\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"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\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"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.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db980620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bd7565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c3b565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cc2565b61024e610249366004613d41565b610489565b005b61024e61025e366004613de6565b610553565b61026b61070f565b6040516101d09190613f50565b61028b610286366004613fd0565b610874565b6040516101d09190614028565b6102ab6102a6366004613fd0565b610961565b6040516101d0919061403b565b61024e6102c6366004613de6565b6109a5565b61024e6102d9366004613de6565b610a7c565b61024e6102ec366004613de6565b610c9f565b6103046102ff36600461404e565b610e67565b6040516101d0929190614078565b610325610320366004613c3b565b611053565b6040516101d09291906140df565b61024e610341366004613de6565b6110f8565b61024e610354366004613de6565b611246565b6103616116b8565b6040516101d09190614107565b61024e61037c366004613de6565b6118a3565b61024e61038f366004613de6565b61195e565b61024e611dcf565b61024e6103aa36600461417a565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141e6565b612212565b6103fd6103f8366004613c3b565b6122de565b6040516101d09190614357565b6104126124e3565b6040516101d0919061436a565b6104276127e1565b6040516101d09291906143dd565b61024e6104433660046144c0565b612959565b6000828260405160200161045d929190614078565b6040516020818303038152906040528051906020012090505b92915050565b600061047660058361296d565b610491612988565b600e805460009164010000000090910463ffffffff169060046104b38361450a565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a0b565b5050505050505050565b61055b612988565b60005b8181101561070a57600083838381811061057a5761057a61452d565b905060200201602081019061058f9190613fd0565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130bb565b811015610629576106188563ffffffff16600c60006105f985876130c590919063ffffffff16565b81526020019081526020016000206004016130d190919063ffffffff16565b506106228161455c565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a150505050806107039061455c565b905061055e565b505050565b600e54606090640100000000900463ffffffff166000610730600183614594565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a71565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130dd565b8383815181106108295761082961452d565b60200260200101819052508161083e9061455c565b91505b61084a8161450a565b90506107dd565b5061085d600184614594565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145b1565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130dd565b6109ad612988565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d861452d565b90506020020160208101906109ed9190613fd0565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a386001830182613a04565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a758161450a565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab661452d565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130bb565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130d1565b506002810154610bf2906009906130d1565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a3e565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c929061455c565b9050610a9a565b50505050565b610ca7612988565b60005b8181101561070a576000838383818110610cc657610cc661452d565b9050602002810190610cd89190614604565b610ce190614642565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146fa565b5050600e8054909150600090610dd99063ffffffff1661450a565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cc2565b60405180910390a3505080610e609061455c565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145b1565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526110429190810190614814565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b9565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611100612988565b60005b8181101561070a57600083838381811061111f5761111f61452d565b90506020020135905061113c81600361296d90919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133c6565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d28282613a04565b6111e0600183016000613a04565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f8161455c565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106112805761128061452d565b90506020028101906112929190614882565b61129b906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145b1565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b6020830151158061145757508260200151816001015414158015611457575060208301516114579060079061296d565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b8154640100000000900463ffffffff168260046114ec8361450a565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f8382815181106115375761153761452d565b6020026020010151600361296d90919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b6115d383828151811061159c5761159c61452d565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133c690919063ffffffff16565b506115dd8161455c565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130d1565b50602086015160018501819055611654906007906133c6565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b19061455c565b9050611264565b600e5460609063ffffffff1660006116d1600183614594565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a71565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145b1565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b5050505050815250508383815181106118655761186561452d565b60200260200101819052508161187a9061455c565b91505b6118868161450a565b905061173d565b50600e5461085d9060019063ffffffff16614594565b6118ab612988565b60005b8181101561070a5760008383838181106118ca576118ca61452d565b90506020028101906118dc919061499c565b6118e5906149df565b905060006118fb82600001518360200151610448565b90506119086003826133c6565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133d2565b5050806119579061455c565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106119985761199861452d565b90506020028101906119aa9190614882565b6119b3906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145b1565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc79060079061296d565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b81548290600490611c5e90640100000000900463ffffffff1661450a565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca78382815181106115375761153761452d565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b611cf483828151811061159c5761159c61452d565b50611cfe8161455c565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133c616565b506040850151611d6d906009906133c6565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc89061455c565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f4761452d565b9050602002016020810190611f5c9190613fd0565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf61452d565b9050602002810190611ff19190614604565b611ffa90614642565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cc2565b60405160208183030381529060405280519060200120826001016040516020016121249190614a85565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146fa565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cc2565b60405180910390a35b505050806122039061455c565b9050611f2b565b505050505050565b61221a612988565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a69061450a565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a0b565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145b1565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145b1565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff1660038111156124685761246861429b565b60038111156124795761247961429b565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a161429b565b60018111156124b2576124b261429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b9565b905060006124ff60056130bb565b825161250b9190614b2e565b67ffffffffffffffff81111561252357612523613a71565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a861452d565b602002602001015190506125c681600561296d90919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145b1565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145b1565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127245761272461429b565b60038111156127355761273561429b565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d61429b565b600181111561276e5761276e61429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad61452d565b602002602001018190525082806127c39061455c565b9350505b506127d18161455c565b905061258b565b50909392505050565b60608060006127f060096133b9565b90506000815167ffffffffffffffff81111561280e5761280e613a71565b60405190808252806020026020018201604052801561287d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282c5790505b5090506000825167ffffffffffffffff81111561289c5761289c613a71565b6040519080825280602002602001820160405280156128c5578160200160208202803683370190505b50905060005b835181101561294e576128f68482815181106128e9576128e961452d565b6020026020010151611053565b8483815181106129085761290861452d565b602002602001018484815181106129215761292161452d565b602002602001018263ffffffff1663ffffffff168152508290525050806129479061455c565b90506128cb565b509094909350915050565b612961612988565b61296a81613666565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a5f575060808201518590612a57906001614b41565b63ffffffff16115b15612aab5760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b5757815163ffffffff166000908152600d602090815260408220908401516001918201918391612aec9190614594565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b14826130bb565b811015612b5457612b43846000015163ffffffff16600c60006105f985876000016130c590919063ffffffff16565b50612b4d8161455c565b9050612b0b565b50505b60005b85811015612c4157612b87878783818110612b7757612b7761452d565b85926020909102013590506133c6565b612be8578251878783818110612b9f57612b9f61452d565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c309063ffffffff16600c60008a8a86818110612c0a57612c0a61452d565b9050602002013581526020019081526020016000206004016133c690919063ffffffff16565b50612c3a8161455c565b9050612b5a565b5060005b83811015612f2d5736858583818110612c6057612c6061452d565b9050602002810190612c729190614604565b9050612c806003823561296d565b612cb9576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cc56005823561296d565b15612cff576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d1c906145b1565b90501115612d685783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7a57612e0f8235600c60008c8c86818110612d8e57612d8e61452d565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612dbe57612dbe61452d565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296d90919063ffffffff16565b612e6a57888882818110612e2557612e2561452d565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e738161455c565b9050612d6b565b5060028301805460018101825560009182526020918290208335910155612ea390820182614b5e565b82356000908152600386016020526040902091612ec1919083614bc3565b508351602080860151612f1c92918435908c908c90612ee290880188614b5e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375b92505050565b50612f268161455c565b9050612c45565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130ab929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b6000612981838361383c565b60006129818383613866565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318e57602002820191906000526020600020905b81548152602001906001019080831161317a575b505050505090506000815167ffffffffffffffff8111156131b1576131b1613a71565b6040519080825280602002602001820160405280156131f757816020015b6040805180820190915260008152606060208201528152602001906001900390816131cf5790505b50905060005b81518110156133185760405180604001604052808483815181106132235761322361452d565b602002602001015181526020018560030160008685815181106132485761324861452d565b602002602001015181526020019081526020016000208054613269906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054613295906145b1565b80156132e25780601f106132b7576101008083540402835291602001916132e2565b820191906000526020600020905b8154815290600101906020018083116132c557829003601f168201915b50505050508152508282815181106132fc576132fc61452d565b6020026020010181905250806133119061455c565b90506131fd565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a081016133a7856133b9565b81526020019190915295945050505050565b6060600061298183613959565b600061298183836139b5565b608081015173ffffffffffffffffffffffffffffffffffffffff161561352057608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134cb575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa1580156134a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c99190614cde565b155b156135205760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353f90826146fa565b506020820151600182019061355490826146fa565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360038111156135965761359661429b565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135dd576135dd61429b565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c90613802908690869086908b908d90600401614cfb565b600060405180830381600087803b15801561381c57600080fd5b505af1158015613830573d6000803e3d6000fd5b50505050505050505050565b60008260000182815481106138535761385361452d565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561394f57600061388a600183614b2e565b855490915060009061389e90600190614b2e565b90508181146139035760008660000182815481106138be576138be61452d565b90600052602060002001549050808760000184815481106138e1576138e161452d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061391457613914614d7d565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a957602002820191906000526020600020905b815481526020019060010190808311613995575b50505050509050919050565b60008181526001830160205260408120546139fc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a10906145b1565b6000825580601f10613a20575050565b601f01602090049060005260206000209081019061296a9190613a58565b508054600082559060005260206000209081019061296a91905b5b80821115613a6d5760008155600101613a59565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613ac357613ac3613a71565b60405290565b60405160a0810167ffffffffffffffff81118282101715613ac357613ac3613a71565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b3357613b33613a71565b604052919050565b600067ffffffffffffffff821115613b5557613b55613a71565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b9257600080fd5b8135613ba5613ba082613b3b565b613aec565b818152846020838601011115613bba57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613bea57600080fd5b823567ffffffffffffffff80821115613c0257600080fd5b613c0e86838701613b81565b93506020850135915080821115613c2457600080fd5b50613c3185828601613b81565b9150509250929050565b600060208284031215613c4d57600080fd5b5035919050565b60005b83811015613c6f578181015183820152602001613c57565b50506000910152565b60008151808452613c90816020860160208601613c54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129816020830184613c78565b60008083601f840112613ce757600080fd5b50813567ffffffffffffffff811115613cff57600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296a57600080fd5b803563ffffffff81168114613d3c57600080fd5b919050565b600080600080600080600060a0888a031215613d5c57600080fd5b873567ffffffffffffffff80821115613d7457600080fd5b613d808b838c01613cd5565b909950975060208a0135915080821115613d9957600080fd5b50613da68a828b01613cd5565b9096509450506040880135613dba81613d1a565b92506060880135613dca81613d1a565b9150613dd860808901613d28565b905092959891949750929550565b60008060208385031215613df957600080fd5b823567ffffffffffffffff811115613e1057600080fd5b613e1c85828601613cd5565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e5857815187529582019590820190600101613e3c565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613ebb60e0870184613e28565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f42578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2f87840182613c78565b9588019594880194925050600101613ee5565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fb1858351613e63565b94509285019290850190600101613f77565b5092979650505050505050565b600060208284031215613fe257600080fd5b61298182613d28565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140206040850182613c78565b949350505050565b6020815260006129816020830184613feb565b6020815260006129816020830184613e63565b6000806040838503121561406157600080fd5b61406a83613d28565b946020939093013593505050565b60408152600061408b6040830185613c78565b828103602084015261409d8185613c78565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140206080850182613e28565b6040815260006140f260408301856140a6565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614168858351613feb565b9450928501929085019060010161412e565b6000806000806040858703121561419057600080fd5b843567ffffffffffffffff808211156141a857600080fd5b6141b488838901613cd5565b909650945060208701359150808211156141cd57600080fd5b506141da87828801613cd5565b95989497509550505050565b60008060008060008060008060c0898b03121561420257600080fd5b61420b89613d28565b9750602089013567ffffffffffffffff8082111561422857600080fd5b6142348c838d01613cd5565b909950975060408b013591508082111561424d57600080fd5b5061425a8b828c01613cd5565b909650945050606089013561426e81613d1a565b9250608089013561427e81613d1a565b915061428c60a08a01613d28565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142df60a0850182613c78565b9050602083015184820360208601526142f88282613c78565b9150506040830151600481106143105761431061429b565b604085015260608301516002811061432a5761432a61429b565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061298160208301846142ca565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143cb8583516142ca565b94509285019290850190600101614391565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614452577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144408683516140a6565b95509382019390820190600101614406565b50508584038187015286518085528782019482019350915060005b8281101561448f57845163ffffffff168452938101939281019260010161446d565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3c57600080fd5b6000602082840312156144d257600080fd5b6129818261449c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818103614523576145236144db565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361458d5761458d6144db565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144db565b600181811c908216806145c557607f821691505b6020821081036145fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261463857600080fd5b9190910192915050565b60006040823603121561465457600080fd5b6040516040810167ffffffffffffffff828210818311171561467857614678613a71565b816040526146858561449c565b8352602085013591508082111561469b57600080fd5b506146a836828601613b81565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146db5750805b601f850160051c820191505b8181101561220a578281556001016146e7565b815167ffffffffffffffff81111561471457614714613a71565b6147288161472284546145b1565b846146b4565b602080601f83116001811461477b57600084156147455750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147c8578886015182559484019460019091019084016147a9565b508582101561480457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561482657600080fd5b815167ffffffffffffffff81111561483d57600080fd5b8201601f8101841361484e57600080fd5b805161485c613ba082613b3b565b81815285602083850101111561487157600080fd5b61409d826020830160208601613c54565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261463857600080fd5b6000608082360312156148c857600080fd5b6148d0613aa0565b6148d983613d28565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490a57600080fd5b9085019036601f83011261491d57600080fd5b81358181111561492f5761492f613a71565b8060051b9150614940848301613aec565b818152918301840191848101903684111561495a57600080fd5b938501935b838510156149785784358252938501939085019061495f565b606087015250939695505050505050565b6020815260006129816020830184613e28565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261463857600080fd5b803560028110613d3c57600080fd5b600060a082360312156149f157600080fd5b6149f9613ac9565b823567ffffffffffffffff80821115614a1157600080fd5b614a1d36838701613b81565b83526020850135915080821115614a3357600080fd5b50614a4036828601613b81565b602083015250604083013560048110614a5857600080fd5b6040820152614a69606084016149d0565b6060820152614a7a6080840161449c565b608082015292915050565b6000602080835260008454614a99816145b1565b80848701526040600180841660008114614aba5760018114614af257614b20565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b20565b896000528660002060005b85811015614b185781548b8201860152908301908801614afd565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144db565b63ffffffff81811683821601908082111561086d5761086d6144db565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b9357600080fd5b83018035915067ffffffffffffffff821115614bae57600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bdb57614bdb613a71565b614bef83614be983546145b1565b836146b4565b6000601f841160018114614c415760008515614c0b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cd7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c905786850135825560209485019460019092019101614c70565b5086821015614ccb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614cf057600080fd5b815161298181613d1a565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d3457600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5a90820187613c78565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"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\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"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\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"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\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"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\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"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\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"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\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"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.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"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\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"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\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"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.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"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\":[],\"name\":\"getNodeOperators\",\"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\":[],\"name\":\"getNodes\",\"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.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"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\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"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\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"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.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db080620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bce565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c32565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cb9565b61024e610249366004613d38565b610489565b005b61024e61025e366004613ddd565b610553565b61026b61070f565b6040516101d09190613f47565b61028b610286366004613fc7565b610874565b6040516101d0919061401f565b6102ab6102a6366004613fc7565b610961565b6040516101d09190614032565b61024e6102c6366004613ddd565b6109a5565b61024e6102d9366004613ddd565b610a7c565b61024e6102ec366004613ddd565b610c9f565b6103046102ff366004614045565b610e67565b6040516101d092919061406f565b610325610320366004613c32565b611053565b6040516101d09291906140d6565b61024e610341366004613ddd565b6110f8565b61024e610354366004613ddd565b611246565b6103616116b8565b6040516101d091906140fe565b61024e61037c366004613ddd565b6118a3565b61024e61038f366004613ddd565b61195e565b61024e611dcf565b61024e6103aa366004614171565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141dd565b612212565b6103fd6103f8366004613c32565b6122de565b6040516101d0919061434e565b6104126124e3565b6040516101d09190614361565b6104276127e1565b6040516101d09291906143d4565b61024e6104433660046144b7565b612950565b6000828260405160200161045d92919061406f565b6040516020818303038152906040528051906020012090505b92915050565b6000610476600583612964565b61049161297f565b600e805460009164010000000090910463ffffffff169060046104b383614501565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a02565b5050505050505050565b61055b61297f565b60005b8181101561070a57600083838381811061057a5761057a614524565b905060200201602081019061058f9190613fc7565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130b2565b811015610629576106188563ffffffff16600c60006105f985876130bc90919063ffffffff16565b81526020019081526020016000206004016130c890919063ffffffff16565b5061062281614553565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061070390614553565b905061055e565b505050565b600e54606090640100000000900463ffffffff16600061073060018361458b565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a68565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130d4565b83838151811061082957610829614524565b60200260200101819052508161083e90614553565b91505b61084a81614501565b90506107dd565b5061085d60018461458b565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145a8565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130d4565b6109ad61297f565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d8614524565b90506020020160208101906109ed9190613fc7565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a3860018301826139fb565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a7581614501565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab6614524565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130b2565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130c8565b506002810154610bf2906009906130c8565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a35565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c9290614553565b9050610a9a565b50505050565b610ca761297f565b60005b8181101561070a576000838383818110610cc657610cc6614524565b9050602002810190610cd891906145fb565b610ce190614639565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146f1565b5050600e8054909150600090610dd99063ffffffff16614501565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cb9565b60405180910390a3505080610e6090614553565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145a8565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611042919081019061480b565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b0565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b61110061297f565b60005b8181101561070a57600083838381811061111f5761111f614524565b90506020020135905061113c81600361296490919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133bd565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d282826139fb565b6111e06001830160006139fb565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f81614553565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061128057611280614524565b90506020028101906112929190614879565b61129b906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145a8565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611457575082602001518160010154141580156114575750602083015161145790600790612964565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b8154640100000000900463ffffffff168260046114ec83614501565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f83828151811061153757611537614524565b6020026020010151600361296490919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b6115d383828151811061159c5761159c614524565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133bd90919063ffffffff16565b506115dd81614553565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130c8565b50602086015160018501819055611654906007906133bd565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b190614553565b9050611264565b600e5460609063ffffffff1660006116d160018361458b565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a68565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145a8565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b50505050508152505083838151811061186557611865614524565b60200260200101819052508161187a90614553565b91505b61188681614501565b905061173d565b50600e5461085d9060019063ffffffff1661458b565b6118ab61297f565b60005b8181101561070a5760008383838181106118ca576118ca614524565b90506020028101906118dc9190614993565b6118e5906149d6565b905060006118fb82600001518360200151610448565b90506119086003826133bd565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133c9565b50508061195790614553565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061199857611998614524565b90506020028101906119aa9190614879565b6119b3906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145a8565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc790600790612964565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b81548290600490611c5e90640100000000900463ffffffff16614501565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca783828151811061153757611537614524565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b611cf483828151811061159c5761159c614524565b50611cfe81614553565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133bd16565b506040850151611d6d906009906133bd565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc890614553565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f47614524565b9050602002016020810190611f5c9190613fc7565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf614524565b9050602002810190611ff191906145fb565b611ffa90614639565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cb9565b60405160208183030381529060405280519060200120826001016040516020016121249190614a7c565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146f1565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cb9565b60405180910390a35b5050508061220390614553565b9050611f2b565b505050505050565b61221a61297f565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a690614501565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a02565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145a8565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145a8565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff16600381111561246857612468614292565b600381111561247957612479614292565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a1614292565b60018111156124b2576124b2614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b0565b905060006124ff60056130b2565b825161250b9190614b25565b67ffffffffffffffff81111561252357612523613a68565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a8614524565b602002602001015190506125c681600561296490919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145a8565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145a8565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff16600381111561272457612724614292565b600381111561273557612735614292565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d614292565b600181111561276e5761276e614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad614524565b602002602001018190525082806127c390614553565b9350505b506127d181614553565b905061258b565b50909392505050565b60608060006127f060096133b0565b9050805167ffffffffffffffff81111561280c5761280c613a68565b60405190808252806020026020018201604052801561287b57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282a5790505b509250805167ffffffffffffffff81111561289857612898613a68565b6040519080825280602002602001820160405280156128c1578160200160208202803683370190505b50915060005b815181101561294a576128f28282815181106128e5576128e5614524565b6020026020010151611053565b85838151811061290457612904614524565b6020026020010185848151811061291d5761291d614524565b602002602001018263ffffffff1663ffffffff1681525082905250508061294390614553565b90506128c7565b50509091565b61295861297f565b6129618161365d565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a56575060808201518590612a4e906001614b38565b63ffffffff16115b15612aa25760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b4e57815163ffffffff166000908152600d602090815260408220908401516001918201918391612ae3919061458b565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b0b826130b2565b811015612b4b57612b3a846000015163ffffffff16600c60006105f985876000016130bc90919063ffffffff16565b50612b4481614553565b9050612b02565b50505b60005b85811015612c3857612b7e878783818110612b6e57612b6e614524565b85926020909102013590506133bd565b612bdf578251878783818110612b9657612b96614524565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c279063ffffffff16600c60008a8a86818110612c0157612c01614524565b9050602002013581526020019081526020016000206004016133bd90919063ffffffff16565b50612c3181614553565b9050612b51565b5060005b83811015612f245736858583818110612c5757612c57614524565b9050602002810190612c6991906145fb565b9050612c7760038235612964565b612cb0576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cbc60058235612964565b15612cf6576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d13906145a8565b90501115612d5f5783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7157612e068235600c60008c8c86818110612d8557612d85614524565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612db557612db5614524565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296490919063ffffffff16565b612e6157888882818110612e1c57612e1c614524565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e6a81614553565b9050612d62565b5060028301805460018101825560009182526020918290208335910155612e9a90820182614b55565b82356000908152600386016020526040902091612eb8919083614bba565b508351602080860151612f1392918435908c908c90612ed990880188614b55565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375292505050565b50612f1d81614553565b9050612c3c565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130a2929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b60006129788383613833565b6000612978838361385d565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318557602002820191906000526020600020905b815481526020019060010190808311613171575b505050505090506000815167ffffffffffffffff8111156131a8576131a8613a68565b6040519080825280602002602001820160405280156131ee57816020015b6040805180820190915260008152606060208201528152602001906001900390816131c65790505b50905060005b815181101561330f57604051806040016040528084838151811061321a5761321a614524565b6020026020010151815260200185600301600086858151811061323f5761323f614524565b602002602001015181526020019081526020016000208054613260906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461328c906145a8565b80156132d95780601f106132ae576101008083540402835291602001916132d9565b820191906000526020600020905b8154815290600101906020018083116132bc57829003601f168201915b50505050508152508282815181106132f3576132f3614524565b60200260200101819052508061330890614553565b90506131f4565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161339e856133b0565b81526020019190915295945050505050565b6060600061297883613950565b600061297883836139ac565b608081015173ffffffffffffffffffffffffffffffffffffffff161561351757608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134c2575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190614cd5565b155b156135175760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353690826146f1565b506020820151600182019061354b90826146f1565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561358d5761358d614292565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135d4576135d4614292565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c906137f9908690869086908b908d90600401614cf2565b600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50505050505050505050565b600082600001828154811061384a5761384a614524565b9060005260206000200154905092915050565b60008181526001830160205260408120548015613946576000613881600183614b25565b855490915060009061389590600190614b25565b90508181146138fa5760008660000182815481106138b5576138b5614524565b90600052602060002001549050808760000184815481106138d8576138d8614524565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061390b5761390b614d74565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a057602002820191906000526020600020905b81548152602001906001019080831161398c575b50505050509050919050565b60008181526001830160205260408120546139f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a07906145a8565b6000825580601f10613a17575050565b601f0160209004906000526020600020908101906129619190613a4f565b508054600082559060005260206000209081019061296191905b5b80821115613a645760008155600101613a50565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613aba57613aba613a68565b60405290565b60405160a0810167ffffffffffffffff81118282101715613aba57613aba613a68565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b2a57613b2a613a68565b604052919050565b600067ffffffffffffffff821115613b4c57613b4c613a68565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b8957600080fd5b8135613b9c613b9782613b32565b613ae3565b818152846020838601011115613bb157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613be157600080fd5b823567ffffffffffffffff80821115613bf957600080fd5b613c0586838701613b78565b93506020850135915080821115613c1b57600080fd5b50613c2885828601613b78565b9150509250929050565b600060208284031215613c4457600080fd5b5035919050565b60005b83811015613c66578181015183820152602001613c4e565b50506000910152565b60008151808452613c87816020860160208601613c4b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129786020830184613c6f565b60008083601f840112613cde57600080fd5b50813567ffffffffffffffff811115613cf657600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296157600080fd5b803563ffffffff81168114613d3357600080fd5b919050565b600080600080600080600060a0888a031215613d5357600080fd5b873567ffffffffffffffff80821115613d6b57600080fd5b613d778b838c01613ccc565b909950975060208a0135915080821115613d9057600080fd5b50613d9d8a828b01613ccc565b9096509450506040880135613db181613d11565b92506060880135613dc181613d11565b9150613dcf60808901613d1f565b905092959891949750929550565b60008060208385031215613df057600080fd5b823567ffffffffffffffff811115613e0757600080fd5b613e1385828601613ccc565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e4f57815187529582019590820190600101613e33565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613eb260e0870184613e1f565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f39578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2687840182613c6f565b9588019594880194925050600101613edc565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fa8858351613e5a565b94509285019290850190600101613f6e565b5092979650505050505050565b600060208284031215613fd957600080fd5b61297882613d1f565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140176040850182613c6f565b949350505050565b6020815260006129786020830184613fe2565b6020815260006129786020830184613e5a565b6000806040838503121561405857600080fd5b61406183613d1f565b946020939093013593505050565b6040815260006140826040830185613c6f565b82810360208401526140948185613c6f565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140176080850182613e1f565b6040815260006140e9604083018561409d565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261415f858351613fe2565b94509285019290850190600101614125565b6000806000806040858703121561418757600080fd5b843567ffffffffffffffff8082111561419f57600080fd5b6141ab88838901613ccc565b909650945060208701359150808211156141c457600080fd5b506141d187828801613ccc565b95989497509550505050565b60008060008060008060008060c0898b0312156141f957600080fd5b61420289613d1f565b9750602089013567ffffffffffffffff8082111561421f57600080fd5b61422b8c838d01613ccc565b909950975060408b013591508082111561424457600080fd5b506142518b828c01613ccc565b909650945050606089013561426581613d11565b9250608089013561427581613d11565b915061428360a08a01613d1f565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142d660a0850182613c6f565b9050602083015184820360208601526142ef8282613c6f565b91505060408301516004811061430757614307614292565b604085015260608301516002811061432157614321614292565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061297860208301846142c1565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143c28583516142c1565b94509285019290850190600101614388565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614449577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261443786835161409d565b955093820193908201906001016143fd565b50508584038187015286518085528782019482019350915060005b8281101561448657845163ffffffff1684529381019392810192600101614464565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3357600080fd5b6000602082840312156144c957600080fd5b61297882614493565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80831681810361451a5761451a6144d2565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614584576145846144d2565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144d2565b600181811c908216806145bc57607f821691505b6020821081036145f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261462f57600080fd5b9190910192915050565b60006040823603121561464b57600080fd5b6040516040810167ffffffffffffffff828210818311171561466f5761466f613a68565b8160405261467c85614493565b8352602085013591508082111561469257600080fd5b5061469f36828601613b78565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146d25750805b601f850160051c820191505b8181101561220a578281556001016146de565b815167ffffffffffffffff81111561470b5761470b613a68565b61471f8161471984546145a8565b846146ab565b602080601f831160018114614772576000841561473c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147bf578886015182559484019460019091019084016147a0565b50858210156147fb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561481d57600080fd5b815167ffffffffffffffff81111561483457600080fd5b8201601f8101841361484557600080fd5b8051614853613b9782613b32565b81815285602083850101111561486857600080fd5b614094826020830160208601613c4b565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261462f57600080fd5b6000608082360312156148bf57600080fd5b6148c7613a97565b6148d083613d1f565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490157600080fd5b9085019036601f83011261491457600080fd5b81358181111561492657614926613a68565b8060051b9150614937848301613ae3565b818152918301840191848101903684111561495157600080fd5b938501935b8385101561496f57843582529385019390850190614956565b606087015250939695505050505050565b6020815260006129786020830184613e1f565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261462f57600080fd5b803560028110613d3357600080fd5b600060a082360312156149e857600080fd5b6149f0613ac0565b823567ffffffffffffffff80821115614a0857600080fd5b614a1436838701613b78565b83526020850135915080821115614a2a57600080fd5b50614a3736828601613b78565b602083015250604083013560048110614a4f57600080fd5b6040820152614a60606084016149c7565b6060820152614a7160808401614493565b608082015292915050565b6000602080835260008454614a90816145a8565b80848701526040600180841660008114614ab15760018114614ae957614b17565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b17565b896000528660002060005b85811015614b0f5781548b8201860152908301908801614af4565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144d2565b63ffffffff81811683821601908082111561086d5761086d6144d2565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b8a57600080fd5b83018035915067ffffffffffffffff821115614ba557600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bd257614bd2613a68565b614be683614be083546145a8565b836146ab565b6000601f841160018114614c385760008515614c025750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cce565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c875786850135825560209485019460019092019101614c67565b5086821015614cc2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614ce757600080fd5b815161297881613d11565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d2b57600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5190820187613c6f565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -406,26 +406,33 @@ func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodeOperators() ( return _CapabilityRegistry.Contract.GetNodeOperators(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodes(opts *bind.CallOpts) ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodes(opts *bind.CallOpts) (GetNodes, + + error) { var out []interface{} err := _CapabilityRegistry.contract.Call(opts, &out, "getNodes") + outstruct := new(GetNodes) if err != nil { - return *new([]CapabilityRegistryNodeInfo), *new([]uint32), err + return *outstruct, err } - out0 := *abi.ConvertType(out[0], new([]CapabilityRegistryNodeInfo)).(*[]CapabilityRegistryNodeInfo) - out1 := *abi.ConvertType(out[1], new([]uint32)).(*[]uint32) + outstruct.NodeInfo = *abi.ConvertType(out[0], new([]CapabilityRegistryNodeInfo)).(*[]CapabilityRegistryNodeInfo) + outstruct.ConfigCounts = *abi.ConvertType(out[1], new([]uint32)).(*[]uint32) - return out0, out1, err + return *outstruct, err } -func (_CapabilityRegistry *CapabilityRegistrySession) GetNodes() ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) GetNodes() (GetNodes, + + error) { return _CapabilityRegistry.Contract.GetNodes(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodes() ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodes() (GetNodes, + + error) { return _CapabilityRegistry.Contract.GetNodes(&_CapabilityRegistry.CallOpts) } @@ -2071,6 +2078,11 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseOwnershipTransferred return event, nil } +type GetNodes struct { + NodeInfo []CapabilityRegistryNodeInfo + ConfigCounts []uint32 +} + func (_CapabilityRegistry *CapabilityRegistry) ParseLog(log types.Log) (generated.AbigenLog, error) { switch log.Topics[0] { case _CapabilityRegistry.abi.Events["CapabilityConfigured"].ID: @@ -2168,7 +2180,9 @@ type CapabilityRegistryInterface interface { GetNodeOperators(opts *bind.CallOpts) ([]CapabilityRegistryNodeOperator, error) - GetNodes(opts *bind.CallOpts) ([]CapabilityRegistryNodeInfo, []uint32, error) + GetNodes(opts *bind.CallOpts) (GetNodes, + + error) IsCapabilityDeprecated(opts *bind.CallOpts, hashedCapabilityId [32]byte) (bool, 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 54f0035dcab..1716fed90b6 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 ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 07b0d5eae760a400aaf3616201adb1ab962f92f77e05184677d94c8fc158f347 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin be7e699bfab89cb95e8d1318dfc74c2af9465d7347478792d6d4afd06ac85402 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2