{
  "_format": "hh-sol-artifact-1",
  "contractName": "AccessControlFacetMock",
  "sourceName": "contracts/mocks/access/facets/AccessControlFacetMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotTargetContractRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        }
      ],
      "name": "TargetIsNotAContract",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "TEST_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "enforceHasRole",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "enforceHasTargetContractRole",
      "outputs": [],
      "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": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "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"
    }
  ],
  "bytecode": "0x60a034606d57601f610c7238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610be9908161008982396080518181816109590152610a840152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80632f2ff15d1461068857806331e66e1e146106055780633ad554d0146105ac5780638bb9c5bf1461049557806391d14854146103fd57806394fc442514610294578063d547741f146100de5763db9b206a1461007457600080fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9576100d76100ae610814565b6004357fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22610837565b005b600080fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957600435610118610814565b610120610942565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361026757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166101d257005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346100d95760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d95760043573ffffffffffffffffffffffffffffffffffffffff81168082036100d957602435906044359273ffffffffffffffffffffffffffffffffffffffff84168094036100d9573b156103d0576040517f91d14854000000000000000000000000000000000000000000000000000000008152826004820152836024820152602081604481855afa9081156103c457600091610395575b501561036257005b7f7a436c160000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6103b7915060203d6020116103bd575b6103af81836108ba565b81019061092a565b8461035a565b503d6103a5565b6040513d6000823e3d90fd5b7f73a5b5e30000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957610434610814565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346100d95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9577ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435610511610942565b9161051d838383610837565b81600052602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055610262826040519384938491604091949373ffffffffffffffffffffffffffffffffffffffff80926060860197865216602085015216910152565b346100d95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d95760206040517f74657374657200000000000000000000000000000000000000000000000000008152f35b346100d95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957604061063e610a6d565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9576004356106c2610814565b6106ca610942565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361026757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561077d57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610262565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100d957565b81600052602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615610872575050565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108fb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100d9575180151581036100d95790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610a5e573233148015610a63575b610a5e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c908033149081156109cd575b506109ca57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156103c457600091610a3f575b50386109c0565b610a58915060203d6020116103bd576103af81836108ba565b38610a38565b503390565b5060183610610989565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610ba1573233148015610ba9575b610ba157803314908115610b00575b50610acf576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116100d95760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156103c457600091610b82575b5038610ac3565b610b9b915060203d6020116103bd576103af81836108ba565b38610b7b565b506000903690565b5060183610610ab456fea2646970667358221220dc5896de2c475d47be16146a83d9b786c1c8afdaafbea71bc7a57e9a7974fd9f64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80632f2ff15d1461068857806331e66e1e146106055780633ad554d0146105ac5780638bb9c5bf1461049557806391d14854146103fd57806394fc442514610294578063d547741f146100de5763db9b206a1461007457600080fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9576100d76100ae610814565b6004357fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22610837565b005b600080fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957600435610118610814565b610120610942565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361026757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166101d257005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346100d95760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d95760043573ffffffffffffffffffffffffffffffffffffffff81168082036100d957602435906044359273ffffffffffffffffffffffffffffffffffffffff84168094036100d9573b156103d0576040517f91d14854000000000000000000000000000000000000000000000000000000008152826004820152836024820152602081604481855afa9081156103c457600091610395575b501561036257005b7f7a436c160000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6103b7915060203d6020116103bd575b6103af81836108ba565b81019061092a565b8461035a565b503d6103a5565b6040513d6000823e3d90fd5b7f73a5b5e30000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957610434610814565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346100d95760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9577ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435610511610942565b9161051d838383610837565b81600052602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055610262826040519384938491604091949373ffffffffffffffffffffffffffffffffffffffff80926060860197865216602085015216910152565b346100d95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d95760206040517f74657374657200000000000000000000000000000000000000000000000000008152f35b346100d95760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d957604061063e610a6d565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346100d95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d9576004356106c2610814565b6106ca610942565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361026757507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561077d57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610262565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100d957565b81600052602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615610872575050565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108fb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100d9575180151581036100d95790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610a5e573233148015610a63575b610a5e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c908033149081156109cd575b506109ca57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156103c457600091610a3f575b50386109c0565b610a58915060203d6020116103bd576103af81836108ba565b38610a38565b503390565b5060183610610989565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610ba1573233148015610ba9575b610ba157803314908115610b00575b50610acf576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116100d95760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156103c457600091610b82575b5038610ac3565b610b9b915060203d6020116103bd576103af81836108ba565b38610b7b565b506000903690565b5060183610610ab456fea2646970667358221220dc5896de2c475d47be16146a83d9b786c1c8afdaafbea71bc7a57e9a7974fd9f64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
