{
  "_format": "hh-sol-artifact-1",
  "contractName": "CustomSchemaRegistry",
  "sourceName": "contracts/CustomSchemaRegistry.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AlreadyExists",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "registerer",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "contract ISchemaResolver",
              "name": "resolver",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "string",
              "name": "schema",
              "type": "string"
            }
          ],
          "indexed": false,
          "internalType": "struct SchemaRecord",
          "name": "schema",
          "type": "tuple"
        }
      ],
      "name": "Registered",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "uid",
          "type": "bytes32"
        }
      ],
      "name": "getSchema",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "uid",
              "type": "bytes32"
            },
            {
              "internalType": "contract ISchemaResolver",
              "name": "resolver",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "revocable",
              "type": "bool"
            },
            {
              "internalType": "string",
              "name": "schema",
              "type": "string"
            }
          ],
          "internalType": "struct SchemaRecord",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "schema",
          "type": "string"
        },
        {
          "internalType": "contract ISchemaResolver",
          "name": "resolver",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "revocable",
          "type": "bool"
        }
      ],
      "name": "register",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60e08060405234603f576001608052600360a052600060c052610a6c90816100458239608051816105cb015260a051816105f9015260c051816106240152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806354fd4d501461059457806360d7a278146101ba5763a2ea7c6e1461003d57600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760608060405161007b81610795565b6000815260006020820152600060408201520152600435600052600060205260406000206002604051916100ae83610795565b8054835260ff600182015473ffffffffffffffffffffffffffffffffffffffff8116602086015260a01c161515604084015201906040516000928054906100f48261081f565b808452916001811690811561016f5750600114610132575b505061011d8161012e9403826107e0565b606082015260405191829182610744565b0390f35b90935060005260206000206000905b84821061015957508101602001925061011d8161010c565b6001816020925483858701015201910190610141565b61012e965084925060209150927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061011d941682840152151560051b820101945061010c565b600080fd5b346101b55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760043567ffffffffffffffff81116101b557366023820112156101b557806004013567ffffffffffffffff81116101b55736602482840101116101b5576024359073ffffffffffffffffffffffffffffffffffffffff82168092036101b557604435928315158094036101b5576024936040519261026684610795565b60008452602084019485526040840191825261028181610803565b9261028f60405194856107e0565b818452602080850192806000998a94018537850101527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006103346015602060608801968088528951875115156040519687936102f38686019a8b92519283916106fc565b84019260601b168483015260f81b603482015203017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff58101845201826107e0565b5190209384865285602052604086205461056c57906002918585528587528660205260408720918551835573ffffffffffffffffffffffffffffffffffffffff600184019251167fffffffffffffffffffffff00000000000000000000000000000000000000000074ff000000000000000000000000000000000000000084549351151560a01b1692161717905501905180519067ffffffffffffffff821161053f576103e1835461081f565b601f81116104fa575b50602095829187916001601f85111461047c5792610471575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e60405180610466339582610744565b0390a3604051908152f35b015190508680610403565b92601f1916858452828420935b8181106104e357509084600195949392106104ac575b505050811b019055610435565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905586808061049f565b929389600181928786015181550195019301610489565b83875260208720601f840160051c81019160208510610535575b601f0160051c01905b81811061052a57506103ea565b87815560010161051d565b9091508190610514565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6004867f23369fa6000000000000000000000000000000000000000000000000000000008152fd5b346101b55760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55761012e6105ef7f0000000000000000000000000000000000000000000000000000000000000000610872565b6106e8600161061d7f0000000000000000000000000000000000000000000000000000000000000000610872565b92816106487f0000000000000000000000000000000000000000000000000000000000000000610872565b60206040519684610662899651809285808a0191016106fc565b85017f2e000000000000000000000000000000000000000000000000000000000000008382015261069c82518093856021850191016106fc565b01017f2e00000000000000000000000000000000000000000000000000000000000000838201526106d78251809360206002850191016106fc565b01010301601f1981018352826107e0565b60405191829160208352602083019061071f565b60005b83811061070f5750506000910152565b81810151838201526020016106ff565b90601f19601f60209361073d815180928187528780880191016106fc565b0116010190565b60a0606061079293602084528051602085015273ffffffffffffffffffffffffffffffffffffffff60208201511660408501526040810151151582850152015191608080820152019061071f565b90565b6080810190811067ffffffffffffffff8211176107b157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff8211176107b157604052565b67ffffffffffffffff81116107b157601f01601f191660200190565b90600182811c92168015610868575b602083101461083957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161082e565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015610a0e575b806d04ee2d6d415b85acef8100000000600a9210156109f3575b662386f26fc100008110156109df575b6305f5e1008110156109ce575b6127108110156109bf575b60648110156109b1575b10156109a6575b600a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60216001850194601f1961093c61092688610803565b97610934604051998a6107e0565b808952610803565b013660208801378501015b01917f30313233343536373839616263646566000000000000000000000000000000008282061a83530480156109a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a9192610947565b505090565b6001909101906108ed565b6064600291049301926108e6565b612710600491049301926108dc565b6305f5e100600891049301926108d1565b662386f26fc10000601091049301926108c4565b6d04ee2d6d415b85acef8100000000602091049301926108b4565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000810461089a56fea264697066735822122002e6f6db3140d32ffc7660cbec87676f35f9d75741e1fffaa8baa6f72988df4864736f6c634300081b0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806354fd4d501461059457806360d7a278146101ba5763a2ea7c6e1461003d57600080fd5b346101b55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760608060405161007b81610795565b6000815260006020820152600060408201520152600435600052600060205260406000206002604051916100ae83610795565b8054835260ff600182015473ffffffffffffffffffffffffffffffffffffffff8116602086015260a01c161515604084015201906040516000928054906100f48261081f565b808452916001811690811561016f5750600114610132575b505061011d8161012e9403826107e0565b606082015260405191829182610744565b0390f35b90935060005260206000206000905b84821061015957508101602001925061011d8161010c565b6001816020925483858701015201910190610141565b61012e965084925060209150927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061011d941682840152151560051b820101945061010c565b600080fd5b346101b55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55760043567ffffffffffffffff81116101b557366023820112156101b557806004013567ffffffffffffffff81116101b55736602482840101116101b5576024359073ffffffffffffffffffffffffffffffffffffffff82168092036101b557604435928315158094036101b5576024936040519261026684610795565b60008452602084019485526040840191825261028181610803565b9261028f60405194856107e0565b818452602080850192806000998a94018537850101527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006103346015602060608801968088528951875115156040519687936102f38686019a8b92519283916106fc565b84019260601b168483015260f81b603482015203017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff58101845201826107e0565b5190209384865285602052604086205461056c57906002918585528587528660205260408720918551835573ffffffffffffffffffffffffffffffffffffffff600184019251167fffffffffffffffffffffff00000000000000000000000000000000000000000074ff000000000000000000000000000000000000000084549351151560a01b1692161717905501905180519067ffffffffffffffff821161053f576103e1835461081f565b601f81116104fa575b50602095829187916001601f85111461047c5792610471575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b817fd0b86852e21f9e5fa4bc3b0cff9757ffe243d50c4b43968a42202153d651ea5e60405180610466339582610744565b0390a3604051908152f35b015190508680610403565b92601f1916858452828420935b8181106104e357509084600195949392106104ac575b505050811b019055610435565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905586808061049f565b929389600181928786015181550195019301610489565b83875260208720601f840160051c81019160208510610535575b601f0160051c01905b81811061052a57506103ea565b87815560010161051d565b9091508190610514565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6004867f23369fa6000000000000000000000000000000000000000000000000000000008152fd5b346101b55760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101b55761012e6105ef7f0000000000000000000000000000000000000000000000000000000000000000610872565b6106e8600161061d7f0000000000000000000000000000000000000000000000000000000000000000610872565b92816106487f0000000000000000000000000000000000000000000000000000000000000000610872565b60206040519684610662899651809285808a0191016106fc565b85017f2e000000000000000000000000000000000000000000000000000000000000008382015261069c82518093856021850191016106fc565b01017f2e00000000000000000000000000000000000000000000000000000000000000838201526106d78251809360206002850191016106fc565b01010301601f1981018352826107e0565b60405191829160208352602083019061071f565b60005b83811061070f5750506000910152565b81810151838201526020016106ff565b90601f19601f60209361073d815180928187528780880191016106fc565b0116010190565b60a0606061079293602084528051602085015273ffffffffffffffffffffffffffffffffffffffff60208201511660408501526040810151151582850152015191608080820152019061071f565b90565b6080810190811067ffffffffffffffff8211176107b157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff8211176107b157604052565b67ffffffffffffffff81116107b157601f01601f191660200190565b90600182811c92168015610868575b602083101461083957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161082e565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015610a0e575b806d04ee2d6d415b85acef8100000000600a9210156109f3575b662386f26fc100008110156109df575b6305f5e1008110156109ce575b6127108110156109bf575b60648110156109b1575b10156109a6575b600a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60216001850194601f1961093c61092688610803565b97610934604051998a6107e0565b808952610803565b013660208801378501015b01917f30313233343536373839616263646566000000000000000000000000000000008282061a83530480156109a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a9192610947565b505090565b6001909101906108ed565b6064600291049301926108e6565b612710600491049301926108dc565b6305f5e100600891049301926108d1565b662386f26fc10000601091049301926108c4565b6d04ee2d6d415b85acef8100000000602091049301926108b4565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000810461089a56fea264697066735822122002e6f6db3140d32ffc7660cbec87676f35f9d75741e1fffaa8baa6f72988df4864736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
