{
  "contractName": "OwnershipRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "methodSignature",
          "type": "bytes4"
        }
      ],
      "name": "GrantedAccess",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "methodSignature",
          "type": "bytes4"
        }
      ],
      "name": "RevokedAccess",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "prevBeneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newBeneficiary",
          "type": "address"
        }
      ],
      "name": "UpdatedBeneficiary",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "prevObligor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newObligor",
          "type": "address"
        }
      ],
      "name": "UpdatedObligor",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        }
      ],
      "name": "getOwnership",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "creatorObligor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "creatorBeneficiary",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "counterpartyObligor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "counterpartyBeneficiary",
              "type": "address"
            }
          ],
          "internalType": "struct AssetOwnership",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes4",
          "name": "methodSignature",
          "type": "bytes4"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantAccess",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes4",
          "name": "methodSignature",
          "type": "bytes4"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasAccess",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRootAccess",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes4",
          "name": "methodSignature",
          "type": "bytes4"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeAccess",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newCounterpartyBeneficiary",
          "type": "address"
        }
      ],
      "name": "setCounterpartyBeneficiary",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newCounterpartyObligor",
          "type": "address"
        }
      ],
      "name": "setCounterpartyObligor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newCreatorBeneficiary",
          "type": "address"
        }
      ],
      "name": "setCreatorBeneficiary",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "assetId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "newCreatorObligor",
          "type": "address"
        }
      ],
      "name": "setCreatorObligor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610ab8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806339262e871161006657806339262e87146100fc5780636031a0941461010f578063bd1f0a6c14610122578063e50e0ef714610135578063e8f7ca3e1461015557610093565b80630d62037a146100985780631717e867146100ad5780631b126815146100c05780633549d08d146100e9575b600080fd5b6100ab6100a6366004610700565b610168565b005b6100ab6100bb36600461072f565b610216565b6100d36100ce36600461072f565b6102c9565b6040516100e0919061077c565b60405180910390f35b6100ab6100f7366004610700565b610340565b6100ab61010a36600461072f565b61041b565b6100ab61011d366004610700565b6104be565b6100ab610130366004610700565b610599565b6101486101433660046106e8565b610631565b6040516100e09190610a2f565b6100d3610163366004610700565b61068d565b61017f826000356001600160e01b031916336102c9565b6101a45760405162461bcd60e51b815260040161019b906109db565b60405180910390fd5b6000828152602081905260409081902060070180546001600160a01b038481166001600160a01b031983161790925591519116907fa7f38588f02421aa73988ed359aee27363c896e7cc3b6e634e4357f7ee408e259061020990859084908690610787565b60405180910390a1505050565b61022d836000356001600160e01b031916336102c9565b6102495760405162461bcd60e51b815260040161019b9061098c565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516808552925291829020805460ff19166001179055905184907face25d271ad11ee299595b3021629bae0349e370d7c2eb7c2dced6e4edb47865906102bc9086906107a6565b60405180910390a3505050565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516845290915281205460ff16806103385750600084815260208181526040808320838052600c0182528083206001600160a01b038616845290915290205460ff165b949350505050565b6000828152602081905260409020600a01546001600160a01b0316806103785760405162461bcd60e51b815260040161019b906107bb565b336001600160a01b03821614806103a157506103a1836000356001600160e01b031916336102c9565b6103bd5760405162461bcd60e51b815260040161019b90610818565b60008381526020819052604090819020600a0180546001600160a01b0319166001600160a01b038516179055517f66808241563a07166fd47b523591fa432148706dc0ddd255d49b69e71f1721ce9061020990859084908690610787565b610432836000356001600160e01b031916336102c9565b61044e5760405162461bcd60e51b815260040161019b9061098c565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516808552925291829020805460ff19169055905184907f42b1b0e7392ad606bb4f5b003296aba62f16e43aa9372f1f40c1522fa2655ffa906102bc9086906107a6565b6000828152602081905260409020600801546001600160a01b0316806104f65760405162461bcd60e51b815260040161019b9061092f565b336001600160a01b038216148061051f575061051f836000356001600160e01b031916336102c9565b61053b5760405162461bcd60e51b815260040161019b906108d2565b6000838152602081905260409081902060080180546001600160a01b0319166001600160a01b038516179055517f66808241563a07166fd47b523591fa432148706dc0ddd255d49b69e71f1721ce9061020990859084908690610787565b6105b0826000356001600160e01b031916336102c9565b6105cc5760405162461bcd60e51b815260040161019b90610875565b6000828152602081905260409081902060090180546001600160a01b038481166001600160a01b031983161790925591519116907fa7f38588f02421aa73988ed359aee27363c896e7cc3b6e634e4357f7ee408e259061020990859084908690610787565b6106396106c1565b5060009081526020818152604091829020825160808101845260078201546001600160a01b03908116825260088301548116938201939093526009820154831693810193909352600a015416606082015290565b600091825260208281526040808420848052600c0182528084206001600160a01b0393909316845291905290205460ff1690565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6000602082840312156106f9578081fd5b5035919050565b60008060408385031215610712578081fd5b82359150602083013561072481610a6a565b809150509250929050565b600080600060608486031215610743578081fd5b8335925060208401356001600160e01b031981168114610761578182fd5b9150604084013561077181610a6a565b809150509250925092565b901515815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b6001600160e01b031991909116815260200190565b6020808252603e908201527f417373657452656769737472792e736574436f756e746572706172747942656e60408201527f65666963696172793a20454e5452595f444f45535f4e4f545f45584953540000606082015260800190565b6020808252603d908201527f417373657452656769737472792e736574436f756e746572706172747942656e60408201527f65666963696172793a20554e415554484f52495a45445f53454e444552000000606082015260800190565b60208082526039908201527f417373657452656769737472792e736574436f756e74657270617274794f626c60408201527f69676f723a20554e415554484f52495a45445f53454e44455200000000000000606082015260800190565b60208082526038908201527f417373657452656769737472792e73657443726561746f7242656e656669636960408201527f6172793a20554e415554484f52495a45445f53454e4445520000000000000000606082015260800190565b60208082526039908201527f417373657452656769737472792e73657443726561746f7242656e656669636960408201527f6172793a20454e5452595f444f45535f4e4f545f455849535400000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c2e7265766f6b654163636573733a20554e415560408201526e2a2427a924ad22a22fa9a2a72222a960891b606082015260800190565b60208082526034908201527f417373657452656769737472792e73657443726561746f724f626c69676f723a604082015273102aa720aaaa2427a924ad22a22fa9a2a72222a960611b606082015260800190565b81516001600160a01b039081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b6001600160a01b0381168114610a7f57600080fd5b5056fea2646970667358221220f9547caeae707c23398d139462f0cca9bfc8d7f2a23680bda0923e81b24c09f764736f6c634300060b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806339262e871161006657806339262e87146100fc5780636031a0941461010f578063bd1f0a6c14610122578063e50e0ef714610135578063e8f7ca3e1461015557610093565b80630d62037a146100985780631717e867146100ad5780631b126815146100c05780633549d08d146100e9575b600080fd5b6100ab6100a6366004610700565b610168565b005b6100ab6100bb36600461072f565b610216565b6100d36100ce36600461072f565b6102c9565b6040516100e0919061077c565b60405180910390f35b6100ab6100f7366004610700565b610340565b6100ab61010a36600461072f565b61041b565b6100ab61011d366004610700565b6104be565b6100ab610130366004610700565b610599565b6101486101433660046106e8565b610631565b6040516100e09190610a2f565b6100d3610163366004610700565b61068d565b61017f826000356001600160e01b031916336102c9565b6101a45760405162461bcd60e51b815260040161019b906109db565b60405180910390fd5b6000828152602081905260409081902060070180546001600160a01b038481166001600160a01b031983161790925591519116907fa7f38588f02421aa73988ed359aee27363c896e7cc3b6e634e4357f7ee408e259061020990859084908690610787565b60405180910390a1505050565b61022d836000356001600160e01b031916336102c9565b6102495760405162461bcd60e51b815260040161019b9061098c565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516808552925291829020805460ff19166001179055905184907face25d271ad11ee299595b3021629bae0349e370d7c2eb7c2dced6e4edb47865906102bc9086906107a6565b60405180910390a3505050565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516845290915281205460ff16806103385750600084815260208181526040808320838052600c0182528083206001600160a01b038616845290915290205460ff165b949350505050565b6000828152602081905260409020600a01546001600160a01b0316806103785760405162461bcd60e51b815260040161019b906107bb565b336001600160a01b03821614806103a157506103a1836000356001600160e01b031916336102c9565b6103bd5760405162461bcd60e51b815260040161019b90610818565b60008381526020819052604090819020600a0180546001600160a01b0319166001600160a01b038516179055517f66808241563a07166fd47b523591fa432148706dc0ddd255d49b69e71f1721ce9061020990859084908690610787565b610432836000356001600160e01b031916336102c9565b61044e5760405162461bcd60e51b815260040161019b9061098c565b6000838152602081815260408083206001600160e01b031986168452600c0182528083206001600160a01b038516808552925291829020805460ff19169055905184907f42b1b0e7392ad606bb4f5b003296aba62f16e43aa9372f1f40c1522fa2655ffa906102bc9086906107a6565b6000828152602081905260409020600801546001600160a01b0316806104f65760405162461bcd60e51b815260040161019b9061092f565b336001600160a01b038216148061051f575061051f836000356001600160e01b031916336102c9565b61053b5760405162461bcd60e51b815260040161019b906108d2565b6000838152602081905260409081902060080180546001600160a01b0319166001600160a01b038516179055517f66808241563a07166fd47b523591fa432148706dc0ddd255d49b69e71f1721ce9061020990859084908690610787565b6105b0826000356001600160e01b031916336102c9565b6105cc5760405162461bcd60e51b815260040161019b90610875565b6000828152602081905260409081902060090180546001600160a01b038481166001600160a01b031983161790925591519116907fa7f38588f02421aa73988ed359aee27363c896e7cc3b6e634e4357f7ee408e259061020990859084908690610787565b6106396106c1565b5060009081526020818152604091829020825160808101845260078201546001600160a01b03908116825260088301548116938201939093526009820154831693810193909352600a015416606082015290565b600091825260208281526040808420848052600c0182528084206001600160a01b0393909316845291905290205460ff1690565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6000602082840312156106f9578081fd5b5035919050565b60008060408385031215610712578081fd5b82359150602083013561072481610a6a565b809150509250929050565b600080600060608486031215610743578081fd5b8335925060208401356001600160e01b031981168114610761578182fd5b9150604084013561077181610a6a565b809150509250925092565b901515815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b6001600160e01b031991909116815260200190565b6020808252603e908201527f417373657452656769737472792e736574436f756e746572706172747942656e60408201527f65666963696172793a20454e5452595f444f45535f4e4f545f45584953540000606082015260800190565b6020808252603d908201527f417373657452656769737472792e736574436f756e746572706172747942656e60408201527f65666963696172793a20554e415554484f52495a45445f53454e444552000000606082015260800190565b60208082526039908201527f417373657452656769737472792e736574436f756e74657270617274794f626c60408201527f69676f723a20554e415554484f52495a45445f53454e44455200000000000000606082015260800190565b60208082526038908201527f417373657452656769737472792e73657443726561746f7242656e656669636960408201527f6172793a20554e415554484f52495a45445f53454e4445520000000000000000606082015260800190565b60208082526039908201527f417373657452656769737472792e73657443726561746f7242656e656669636960408201527f6172793a20454e5452595f444f45535f4e4f545f455849535400000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c2e7265766f6b654163636573733a20554e415560408201526e2a2427a924ad22a22fa9a2a72222a960891b606082015260800190565b60208082526034908201527f417373657452656769737472792e73657443726561746f724f626c69676f723a604082015273102aa720aaaa2427a924ad22a22fa9a2a72222a960611b606082015260800190565b81516001600160a01b039081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b6001600160a01b0381168114610a7f57600080fd5b5056fea2646970667358221220f9547caeae707c23398d139462f0cca9bfc8d7f2a23680bda0923e81b24c09f764736f6c634300060b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
