UNPKG

ocn-registry

Version:

Oli-systems OCN registry smart contracts

1,243 lines 176 kB
{ "address": "0x6d2eecf5a50fB741D39244E9B485bA3e4e676AE8", "abi": [ { "inputs": [ { "internalType": "address", "name": "_paymentManager", "type": "address" }, { "internalType": "address", "name": "_certificateVerifier", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "CerificateOwnerMismatch", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "DomainNameAlreadyRegistered", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "EmptyCountryCode", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "EmptyDomainName", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "EmptyOperator", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "EmptyPartyId", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "verifier", "type": "address" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "InvalidCertificate", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "NoRolesProvided", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "PartyAlreadyRegistered", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "PartyNotRegistered", "type": "error" }, { "inputs": [ { "internalType": "enum OcnRegistry.Role", "name": "role", "type": "uint8" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "ProviderNotFound", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "reason", "type": "string" } ], "name": "SignerMismatch", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "string", "name": "domain", "type": "string" } ], "name": "OperatorUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "indexed": false, "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "indexed": true, "internalType": "address", "name": "partyAddress", "type": "address" }, { "indexed": false, "internalType": "enum OcnRegistry.Role[]", "name": "roles", "type": "uint8[]" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "url", "type": "string" }, { "indexed": false, "internalType": "enum IOcnPaymentManager.PaymentStatus", "name": "paymentStatus", "type": "uint8" }, { "indexed": false, "internalType": "enum IOcnCvManager.CvStatus", "name": "cvStatus", "type": "uint8" }, { "indexed": false, "internalType": "bool", "name": "active", "type": "bool" } ], "name": "PartyDelete", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "indexed": false, "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "indexed": true, "internalType": "address", "name": "partyAddress", "type": "address" }, { "indexed": false, "internalType": "enum OcnRegistry.Role[]", "name": "roles", "type": "uint8[]" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "url", "type": "string" }, { "indexed": false, "internalType": "enum IOcnPaymentManager.PaymentStatus", "name": "paymentStatus", "type": "uint8" }, { "indexed": false, "internalType": "enum IOcnCvManager.CvStatus", "name": "cvStatus", "type": "uint8" }, { "indexed": false, "internalType": "bool", "name": "active", "type": "bool" }, { "indexed": true, "internalType": "address", "name": "operatorAddress", "type": "address" } ], "name": "PartyUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "adminDeleteOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" } ], "name": "adminDeleteParty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "certificateVerifier", "outputs": [ { "internalType": "contract ICertificateVerifier", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deleteNode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "deleteNodeRaw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deleteParty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "party", "type": "address" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "deletePartyRaw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "getNode", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNodeOperators", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "party", "type": "address" } ], "name": "getOperatorByAddress", "outputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "string", "name": "domain", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" } ], "name": "getOperatorByOcpi", "outputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "string", "name": "domain", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getParties", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "getPartiesByOperator", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "enum OcnRegistry.Role", "name": "role", "type": "uint8" } ], "name": "getPartiesByRole", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPartiesCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_partyAddress", "type": "address" } ], "name": "getPartyDetailsByAddress", "outputs": [ { "internalType": "address", "name": "partyAddress", "type": "address" }, { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "internalType": "enum OcnRegistry.Role[]", "name": "roles", "type": "uint8[]" }, { "internalType": "enum IOcnPaymentManager.PaymentStatus", "name": "paymentStatus", "type": "uint8" }, { "internalType": "address", "name": "operatorAddress", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "url", "type": "string" }, { "internalType": "bool", "name": "active", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes2", "name": "_countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "_partyId", "type": "bytes3" } ], "name": "getPartyDetailsByOcpi", "outputs": [ { "internalType": "address", "name": "partyAddress", "type": "address" }, { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "internalType": "enum OcnRegistry.Role[]", "name": "roles", "type": "uint8[]" }, { "internalType": "enum IOcnPaymentManager.PaymentStatus", "name": "paymentStatus", "type": "uint8" }, { "internalType": "address", "name": "operatorAddress", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "url", "type": "string" }, { "internalType": "bool", "name": "active", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "verifier", "type": "address" } ], "name": "isAllowedVerifier", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentManager", "outputs": [ { "internalType": "contract IOcnPaymentManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "verifier", "type": "address" } ], "name": "removeVerifier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "domain", "type": "string" } ], "name": "setNode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "string", "name": "domain", "type": "string" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "setNodeRaw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "components": [ { "internalType": "bytes", "name": "certificateData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "internalType": "enum OcnRegistry.Role", "name": "role", "type": "uint8" } ], "internalType": "struct OcnRegistry.RoleDetails[]", "name": "roles", "type": "tuple[]" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "url", "type": "string" } ], "name": "setParty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "party", "type": "address" }, { "internalType": "bytes2", "name": "countryCode", "type": "bytes2" }, { "internalType": "bytes3", "name": "partyId", "type": "bytes3" }, { "components": [ { "internalType": "bytes", "name": "certificateData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "internalType": "enum OcnRegistry.Role", "name": "role", "type": "uint8" } ], "internalType": "struct OcnRegistry.RoleDetails[]", "name": "roles", "type": "tuple[]" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "url", "type": "string" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "setPartyRaw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum OcnRegistry.Role", "name": "role", "type": "uint8" }, { "internalType": "address", "name": "oracleAddress", "type": "address" } ], "name": "setProviderOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "verifier", "type": "address" } ], "name": "setVerifier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "transactionHash": "0x8cc3d4403f66a354845c674b535743db84bc24414f055f149a957f41f828a475", "receipt": { "to": null, "from": "0xdD3D370a673cfdCfB0c4cA2a3fE313e1559d1fdc", "contractAddress": "0x6d2eecf5a50fB741D39244E9B485bA3e4e676AE8", "transactionIndex": 0, "gasUsed": "4018873", "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000800000000000020100000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000001000000000200000000000000000000000000000000000000000000000000100000000000020000000000000000000000000000000000000200000000000000000000000000000", "blockHash": "0x3e99f0994ed1f20c9ec4b2210649c4e9ec141ba54c083ed0f0f3f6219ecffdb9", "transactionHash": "0x8cc3d4403f66a354845c674b535743db84bc24414f055f149a957f41f828a475", "logs": [ { "transactionIndex": 0, "blockNumber": 15, "transactionHash": "0x8cc3d4403f66a354845c674b535743db84bc24414f055f149a957f41f828a475", "address": "0x6d2eecf5a50fB741D39244E9B485bA3e4e676AE8", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000dd3d370a673cfdcfb0c4ca2a3fe313e1559d1fdc", "0x000000000000000000000000dd3d370a673cfdcfb0c4ca2a3fe313e1559d1fdc" ], "data": "0x", "logIndex": 0, "blockHash": "0x3e99f0994ed1f20c9ec4b2210649c4e9ec141ba54c083ed0f0f3f6219ecffdb9" } ], "blockNumber": 15, "cumulativeGasUsed": "4018873", "status": 1, "byzantium": true }, "args": [ "0xd26131272867B163d7037A26cd7AB5B1c12f2659", "0x789Ee7dA07388810a4B32Ec53ede3Bb6204f76F4" ], "numDeployments": 1, "solcInputHash": "4df7959444b7c5ddbe744b4be2594459", "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_paymentManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_certificateVerifier\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"CerificateOwnerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"DomainNameAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"EmptyCountryCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"EmptyDomainName\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"EmptyOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"EmptyPartyId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidCertificate\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NoRolesProvided\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PartyAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PartyNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum OcnRegistry.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"ProviderNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SignerMismatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"}],\"name\":\"OperatorUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"indexed\":false,\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum OcnRegistry.Role[]\",\"name\":\"roles\",\"type\":\"uint8[]\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum IOcnPaymentManager.PaymentStatus\",\"name\":\"paymentStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IOcnCvManager.CvStatus\",\"name\":\"cvStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"PartyDelete\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"indexed\":false,\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum OcnRegistry.Role[]\",\"name\":\"roles\",\"type\":\"uint8[]\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum IOcnPaymentManager.PaymentStatus\",\"name\":\"paymentStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IOcnCvManager.CvStatus\",\"name\":\"cvStatus\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"}],\"name\":\"PartyUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"adminDeleteOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"}],\"name\":\"adminDeleteParty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"certificateVerifier\",\"outputs\":[{\"internalType\":\"contract ICertificateVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"deleteNodeRaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteParty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"party\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"deletePartyRaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getNode\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"party\",\"type\":\"address\"}],\"name\":\"getOperatorByAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"}],\"name\":\"getOperatorByOcpi\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParties\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getPartiesByOperator\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum OcnRegistry.Role\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"getPartiesByRole\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPartiesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_partyAddress\",\"type\":\"address\"}],\"name\":\"getPartyDetailsByAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"internalType\":\"enum OcnRegistry.Role[]\",\"name\":\"roles\",\"type\":\"uint8[]\"},{\"internalType\":\"enum IOcnPaymentManager.PaymentStatus\",\"name\":\"paymentStatus\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"_countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"_partyId\",\"type\":\"bytes3\"}],\"name\":\"getPartyDetailsByOcpi\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"internalType\":\"enum OcnRegistry.Role[]\",\"name\":\"roles\",\"type\":\"uint8[]\"},{\"internalType\":\"enum IOcnPaymentManager.PaymentStatus\",\"name\":\"paymentStatus\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"isAllowedVerifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentManager\",\"outputs\":[{\"internalType\":\"contract IOcnPaymentManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"removeVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"}],\"name\":\"setNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"setNodeRaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"certificateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"enum OcnRegistry.Role\",\"name\":\"role\",\"type\":\"uint8\"}],\"internalType\":\"struct OcnRegistry.RoleDetails[]\",\"name\":\"roles\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"setParty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"party\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"countryCode\",\"type\":\"bytes2\"},{\"internalType\":\"bytes3\",\"name\":\"partyId\",\"type\":\"bytes3\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"certificateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"enum OcnRegistry.Role\",\"name\":\"role\",\"type\":\"uint8\"}],\"internalType\":\"struct OcnRegistry.RoleDetails[]\",\"name\":\"roles\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"setPartyRaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum OcnRegistry.Role\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"setProviderOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/OcnRegistry.sol\":\"OcnRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.20;\\n\\nimport {IAccessControl} from \\\"./IAccessControl.sol\\\";\\nimport {Context} from \\\"../utils/Context.sol\\\";\\nimport {ERC165} from \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n * require(hasRole(MY_ROLE, msg.sender));\\n * ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDef