[
  {
    "type": "constructor",
    "inputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "AUTOMATION_WRITER_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "DEFAULT_ADMIN_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "EDGE_DOMAIN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "IP_DECLARANT_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "LINEAGE_REVOKER_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_AUTHOR_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_BATCH",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_DESCRIPTION_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_PUBLICATION_URL_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_REASON_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_REFERENCES",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_REFERENCE_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_REPLAY_POINTER_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_RUNTIME_ID_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_SUMMARY_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "MAX_TITLE_LEN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "OPERATOR_WRITER_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "PAUSER_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "RECORD_DOMAIN",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "RETRACTION_DELAY",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "RETRACTOR_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "SCHEMA_VERSION",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "UPGRADER_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "UPGRADE_INTERFACE_VERSION",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "cancelRetraction",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "computeEdgeId",
    "inputs": [
      {
        "name": "parentRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "childRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "relation",
        "type": "uint8",
        "internalType": "enum ProteanLedger.RelationType"
      },
      {
        "name": "evidenceHash",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "computeRecordId",
    "inputs": [
      {
        "name": "input",
        "type": "tuple",
        "internalType": "struct ProteanLedger.RecordInput",
        "components": [
          {
            "name": "priorObjectId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "recordType",
            "type": "uint8",
            "internalType": "enum ProteanLedger.RecordType"
          },
          {
            "name": "lifecycleState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.LifecycleState"
          },
          {
            "name": "disclosureState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.DisclosureState"
          },
          {
            "name": "title",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "summary",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "author",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "runtimeId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "replayPointer",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "publicationUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "references",
            "type": "string[]",
            "internalType": "string[]"
          },
          {
            "name": "supersedes",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "retracts",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "publishedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "edgeExists",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "executeRetraction",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "freezeUpgrades",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getEdgeState",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct ProteanLedger.EdgeState",
        "components": [
          {
            "name": "relation",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "flags",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "version",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "createdBlock",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRecord",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct ProteanLedger.Record",
        "components": [
          {
            "name": "recordId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "priorObjectId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "recordType",
            "type": "uint8",
            "internalType": "enum ProteanLedger.RecordType"
          },
          {
            "name": "lifecycleState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.LifecycleState"
          },
          {
            "name": "disclosureState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.DisclosureState"
          },
          {
            "name": "title",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "summary",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "author",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "runtimeId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "replayPointer",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "publicationUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "referencesDigest",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "supersedes",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "retracts",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "publishedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "registeredAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "writer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "version",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "exists",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRetractionProposal",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct ProteanLedger.RetractionProposal",
        "components": [
          {
            "name": "proposer",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "executableAfter",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "reason",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "exists",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getRoleAdmin",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "grantRole",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "hasRetractionProposal",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "hasRole",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "initialize",
    "inputs": [
      {
        "name": "initialAdmin",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "isEdgeLive",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isRetracted",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isSuperseded",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "linkLineage",
    "inputs": [
      {
        "name": "parentRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "childRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "relation",
        "type": "uint8",
        "internalType": "enum ProteanLedger.RelationType"
      },
      {
        "name": "evidenceHash",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "description",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "pause",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "paused",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "proposeRetraction",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "reason",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "proxiableUUID",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "recordExists",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "registerRecord",
    "inputs": [
      {
        "name": "input",
        "type": "tuple",
        "internalType": "struct ProteanLedger.RecordInput",
        "components": [
          {
            "name": "priorObjectId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "recordType",
            "type": "uint8",
            "internalType": "enum ProteanLedger.RecordType"
          },
          {
            "name": "lifecycleState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.LifecycleState"
          },
          {
            "name": "disclosureState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.DisclosureState"
          },
          {
            "name": "title",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "summary",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "author",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "runtimeId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "replayPointer",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "publicationUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "references",
            "type": "string[]",
            "internalType": "string[]"
          },
          {
            "name": "supersedes",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "retracts",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "publishedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "registerRecords",
    "inputs": [
      {
        "name": "inputs",
        "type": "tuple[]",
        "internalType": "struct ProteanLedger.RecordInput[]",
        "components": [
          {
            "name": "priorObjectId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "recordType",
            "type": "uint8",
            "internalType": "enum ProteanLedger.RecordType"
          },
          {
            "name": "lifecycleState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.LifecycleState"
          },
          {
            "name": "disclosureState",
            "type": "uint8",
            "internalType": "enum ProteanLedger.DisclosureState"
          },
          {
            "name": "title",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "summary",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "author",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "runtimeId",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "replayPointer",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "publicationUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "references",
            "type": "string[]",
            "internalType": "string[]"
          },
          {
            "name": "supersedes",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "retracts",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "publishedAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "recordIds",
        "type": "bytes32[]",
        "internalType": "bytes32[]"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "renounceRole",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "callerConfirmation",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "revokeLineage",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "reason",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "revokeRole",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setDisclosure",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "newState",
        "type": "uint8",
        "internalType": "enum ProteanLedger.DisclosureState"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setLifecycle",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "newState",
        "type": "uint8",
        "internalType": "enum ProteanLedger.LifecycleState"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supersedeRecord",
    "inputs": [
      {
        "name": "priorRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "newRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "reason",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supersededBy",
    "inputs": [
      {
        "name": "priorRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "unpause",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "upgradeToAndCall",
    "inputs": [
      {
        "name": "newImplementation",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "data",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "upgradesFrozen",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "DisclosureChanged",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "oldState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.DisclosureState"
      },
      {
        "name": "newState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.DisclosureState"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "EdgeLinked",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "parentRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "childRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "relation",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.RelationType"
      },
      {
        "name": "evidenceHash",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "description",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "EdgeRevoked",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "parentRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "childRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "reason",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Initialized",
    "inputs": [
      {
        "name": "version",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "LedgerInitialized",
    "inputs": [
      {
        "name": "admin",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "schemaVersion",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "LedgerPaused",
    "inputs": [
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "LedgerUnpaused",
    "inputs": [
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "LifecycleChanged",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "oldState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.LifecycleState"
      },
      {
        "name": "newState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.LifecycleState"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RecordContentEmitted",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "title",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "summary",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "author",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "runtimeId",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "replayPointer",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "publicationUrl",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "references",
        "type": "string[]",
        "indexed": false,
        "internalType": "string[]"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RecordRegistered",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "recordType",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ProteanLedger.RecordType"
      },
      {
        "name": "writer",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "priorObjectId",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "contentDigest",
        "type": "bytes32",
        "indexed": false,
        "internalType": "bytes32"
      },
      {
        "name": "publishedAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "registeredAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "lifecycleState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.LifecycleState"
      },
      {
        "name": "disclosureState",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ProteanLedger.DisclosureState"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RecordRetracted",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "reason",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RecordSuperseded",
    "inputs": [
      {
        "name": "priorRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "newRecordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "reason",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RetractionCancelled",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RetractionProposed",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "proposer",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "executableAfter",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "reason",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RoleAdminChanged",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "previousAdminRole",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "newAdminRole",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RoleGranted",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "sender",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RoleRevoked",
    "inputs": [
      {
        "name": "role",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "sender",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Upgraded",
    "inputs": [
      {
        "name": "implementation",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "UpgradesFrozenPermanently",
    "inputs": [
      {
        "name": "actor",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "frozenAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AccessControlBadConfirmation",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessControlUnauthorizedAccount",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "neededRole",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "AddressEmptyCode",
    "inputs": [
      {
        "name": "target",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "AlreadyFrozen",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AuthorTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BatchTooLarge",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotSupersedeAndRetract",
    "inputs": []
  },
  {
    "type": "error",
    "name": "DescriptionTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ERC1967InvalidImplementation",
    "inputs": [
      {
        "name": "implementation",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "ERC1967NonPayable",
    "inputs": []
  },
  {
    "type": "error",
    "name": "EdgeAlreadyExists",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "EdgeNotFound",
    "inputs": [
      {
        "name": "edgeId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "EmptyTitle",
    "inputs": []
  },
  {
    "type": "error",
    "name": "FailedCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidDisclosureState",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidDisclosureTransition",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidInitialization",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidLifecycleState",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidLifecycleTransition",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidRecordType",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidRelation",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotIPDeclarant",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotInitializing",
    "inputs": []
  },
  {
    "type": "error",
    "name": "Paused",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PriorRecordNotFound",
    "inputs": [
      {
        "name": "priorRecordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "PublicationUrlTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ReasonRequired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RecordAlreadyExists",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "RecordIsRetracted",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "RecordNotFound",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "ReferenceTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ReplayPointerTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RetractionProposalAlreadyExists",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "RetractionProposalNotFound",
    "inputs": [
      {
        "name": "recordId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "RetractionTimelockActive",
    "inputs": [
      {
        "name": "executableAfter",
        "type": "uint64",
        "internalType": "uint64"
      }
    ]
  },
  {
    "type": "error",
    "name": "RuntimeIdTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SelfEdgeForbidden",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SummaryTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TitleTooLong",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TooManyReferences",
    "inputs": []
  },
  {
    "type": "error",
    "name": "UUPSUnauthorizedCallContext",
    "inputs": []
  },
  {
    "type": "error",
    "name": "UUPSUnsupportedProxiableUUID",
    "inputs": [
      {
        "name": "slot",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "UpgradesAreFrozen",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroAddress",
    "inputs": []
  }
]