{
  "_format": "hh-sol-artifact-1",
  "contractName": "HatsChecker",
  "sourceName": "contracts/extensions/hats/HatsChecker.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AlreadyInitialized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotCriterionHat",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotWearingCriterionHat",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "subject",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "evidence",
          "type": "bytes"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "internalType": "bool",
          "name": "checked",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "criterionHats",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAppendedBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "appendedBytes",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "hats",
      "outputs": [
        {
          "internalType": "contract IHats",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506105a88061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305023c3114610067578063158ef93e1461009f5780638129fc1c146100ac578063b41a4b19146100b6578063e2b24085146100cb578063f99f0238146100de575b600080fd5b61008a610075366004610334565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60005461008a9060ff1681565b6100b461010e565b005b6100be610118565b604051610096919061034d565b61008a6100d93660046103b3565b610127565b6000546100f69061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610096565b61011661013c565b565b60606101226101e4565b905090565b60006101348484846101ef565b949350505050565b6101446102d3565b600061014e6101e4565b9050600080828060200190518101906101679190610450565b60008054610100600160a81b0319166101006001600160a01b0385160217815591935091505b81518110156101de5760018060008484815181106101ad576101ad610533565b6020908102919091018101518252810191909152604001600020805460ff191691151591909117905560010161018d565b50505050565b606061012230610305565b6000806101fe83850185610334565b60008181526001602052604090205490915060ff1661023057604051632f76bd0160e21b815260040160405180910390fd5b6000546040516321a9204d60e11b81526001600160a01b0387811660048301526024820184905261010090920490911690634352409a90604401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190610549565b6102c8576040516306fdb0d360e31b815260040160405180910390fd5b506001949350505050565b60005460ff16156102f65760405162dc149f60e41b815260040160405180910390fd5b6000805460ff19166001179055565b60405164ffffffffff602c19833b0116808252602090810190602d908301843c60408101815101604052919050565b60006020828403121561034657600080fd5b5035919050565b602081526000825180602084015260005b8181101561037b576020818601810151604086840101520161035e565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146103b057600080fd5b50565b6000806000604084860312156103c857600080fd5b83356103d38161039b565b9250602084013567ffffffffffffffff8111156103ef57600080fd5b8401601f8101861361040057600080fd5b803567ffffffffffffffff81111561041757600080fd5b86602082840101111561042957600080fd5b939660209190910195509293505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561046357600080fd5b825161046e8161039b565b602084015190925067ffffffffffffffff81111561048b57600080fd5b8301601f8101851361049c57600080fd5b805167ffffffffffffffff8111156104b6576104b661043a565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156104e3576104e361043a565b60405291825260208184018101929081018884111561050157600080fd5b6020850194505b8385101561052457845180825260209586019590935001610508565b50809450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561055b57600080fd5b8151801515811461056b57600080fd5b939250505056fea2646970667358221220b156ad2a0a3875555baaa135b2613b56872f21c559acce4275472edb1612ca3564736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806305023c3114610067578063158ef93e1461009f5780638129fc1c146100ac578063b41a4b19146100b6578063e2b24085146100cb578063f99f0238146100de575b600080fd5b61008a610075366004610334565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60005461008a9060ff1681565b6100b461010e565b005b6100be610118565b604051610096919061034d565b61008a6100d93660046103b3565b610127565b6000546100f69061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610096565b61011661013c565b565b60606101226101e4565b905090565b60006101348484846101ef565b949350505050565b6101446102d3565b600061014e6101e4565b9050600080828060200190518101906101679190610450565b60008054610100600160a81b0319166101006001600160a01b0385160217815591935091505b81518110156101de5760018060008484815181106101ad576101ad610533565b6020908102919091018101518252810191909152604001600020805460ff191691151591909117905560010161018d565b50505050565b606061012230610305565b6000806101fe83850185610334565b60008181526001602052604090205490915060ff1661023057604051632f76bd0160e21b815260040160405180910390fd5b6000546040516321a9204d60e11b81526001600160a01b0387811660048301526024820184905261010090920490911690634352409a90604401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190610549565b6102c8576040516306fdb0d360e31b815260040160405180910390fd5b506001949350505050565b60005460ff16156102f65760405162dc149f60e41b815260040160405180910390fd5b6000805460ff19166001179055565b60405164ffffffffff602c19833b0116808252602090810190602d908301843c60408101815101604052919050565b60006020828403121561034657600080fd5b5035919050565b602081526000825180602084015260005b8181101561037b576020818601810151604086840101520161035e565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146103b057600080fd5b50565b6000806000604084860312156103c857600080fd5b83356103d38161039b565b9250602084013567ffffffffffffffff8111156103ef57600080fd5b8401601f8101861361040057600080fd5b803567ffffffffffffffff81111561041757600080fd5b86602082840101111561042957600080fd5b939660209190910195509293505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561046357600080fd5b825161046e8161039b565b602084015190925067ffffffffffffffff81111561048b57600080fd5b8301601f8101851361049c57600080fd5b805167ffffffffffffffff8111156104b6576104b661043a565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156104e3576104e361043a565b60405291825260208184018101929081018884111561050157600080fd5b6020850194505b8385101561052457845180825260209586019590935001610508565b50809450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561055b57600080fd5b8151801515811461056b57600080fd5b939250505056fea2646970667358221220b156ad2a0a3875555baaa135b2613b56872f21c559acce4275472edb1612ca3564736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
