{
  "_format": "hh-sol-artifact-1",
  "contractName": "ContractOwnershipMock",
  "sourceName": "contracts/mocks/access/ContractOwnershipMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialOwner",
          "type": "address"
        },
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotTargetContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        }
      ],
      "name": "TargetIsNotAContract",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "enforceIsContractOwner",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "enforceIsTargetContractOwner",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a03461015657601f610bcc38819003918201601f19168301916001600160401b0383118484101761015b5780849260409485528339810103126101565780516001600160a01b03811691908290036101565760200151906001600160a01b038216820361015657806100f9575b506307f5828d60e41b6000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460ff19166001179055608052604051610a5a9081610172823960805181818161056001528181610624015281816107ba01526109100152f35b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc80546001600160a01b0319168217905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a33861006d565b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146105845780632b4c9f161461051557806331e66e1e14610492578063572b6c05146104475780637e7d9f83146102855780638da5cb5b1461021457806397883ae2146101995763f2fde38b1461007457600080fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576100ab6105ea565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc6100d46108f9565b9080549273ffffffffffffffffffffffffffffffffffffffff8085169316838103610167575073ffffffffffffffffffffffffffffffffffffffff169283830361011a57005b7fffffffffffffffffffffffff000000000000000000000000000000000000000016831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576101d06105ea565b73ffffffffffffffffffffffffffffffffffffffff807fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416911690810361016757005b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019457602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346101945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576102bc6105ea565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361019457803b156104035773ffffffffffffffffffffffffffffffffffffffff166040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481855afa80156103f7578391600091610388575b5073ffffffffffffffffffffffffffffffffffffffff160361035857005b7f29b9b08b0000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b9091506020813d6020116103ef575b816103a46020938361071b565b810103126103eb57519073ffffffffffffffffffffffffffffffffffffffff821682036103e85750829073ffffffffffffffffffffffffffffffffffffffff61033a565b80fd5b5080fd5b3d9150610397565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101945760206104886104836105ea565b61060d565b6040519015158152f35b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101945760406104cb6107a3565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036101945761048860209161066c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361019457565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156106655773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610715577f01ffc9a700000000000000000000000000000000000000000000000000000000811461070f576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b50600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761075c57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610194575180151581036101945790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156108e75732331480156108ef575b6108e757803314908115610836575b50610805576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101945760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156103f7576000916108b8575b50386107f9565b6108da915060203d6020116108e0575b6108d2818361071b565b81019061078b565b386108b1565b503d6108c8565b506000903690565b50601836106107ea565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610a15573233148015610a1a575b610a15577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610984575b5061098157503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156103f7576000916109f6575b5038610977565b610a0f915060203d6020116108e0576108d2818361071b565b386109ef565b503390565b506018361061094056fea26469706673582212206e20595977c3aac938af28a0c11887077b954087331ac615624d9338c205707e64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146105845780632b4c9f161461051557806331e66e1e14610492578063572b6c05146104475780637e7d9f83146102855780638da5cb5b1461021457806397883ae2146101995763f2fde38b1461007457600080fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576100ab6105ea565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc6100d46108f9565b9080549273ffffffffffffffffffffffffffffffffffffffff8085169316838103610167575073ffffffffffffffffffffffffffffffffffffffff169283830361011a57005b7fffffffffffffffffffffffff000000000000000000000000000000000000000016831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576101d06105ea565b73ffffffffffffffffffffffffffffffffffffffff807fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416911690810361016757005b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019457602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346101945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576102bc6105ea565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361019457803b156104035773ffffffffffffffffffffffffffffffffffffffff166040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481855afa80156103f7578391600091610388575b5073ffffffffffffffffffffffffffffffffffffffff160361035857005b7f29b9b08b0000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b9091506020813d6020116103ef575b816103a46020938361071b565b810103126103eb57519073ffffffffffffffffffffffffffffffffffffffff821682036103e85750829073ffffffffffffffffffffffffffffffffffffffff61033a565b80fd5b5080fd5b3d9150610397565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101945760206104886104836105ea565b61060d565b6040519015158152f35b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101945760406104cb6107a3565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346101945760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101945760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610194576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036101945761048860209161066c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361019457565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156106655773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610715577f01ffc9a700000000000000000000000000000000000000000000000000000000811461070f576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b50600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761075c57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610194575180151581036101945790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156108e75732331480156108ef575b6108e757803314908115610836575b50610805576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101945760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156103f7576000916108b8575b50386107f9565b6108da915060203d6020116108e0575b6108d2818361071b565b81019061078b565b386108b1565b503d6108c8565b506000903690565b50601836106107ea565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610a15573233148015610a1a575b610a15577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610984575b5061098157503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156103f7576000916109f6575b5038610977565b610a0f915060203d6020116108e0576108d2818361071b565b386109ef565b503390565b506018361061094056fea26469706673582212206e20595977c3aac938af28a0c11887077b954087331ac615624d9338c205707e64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
