{
  "_format": "hh-sol-artifact-1",
  "contractName": "SafeContractOwnershipMock",
  "sourceName": "contracts/mocks/access/SafeContractOwnershipMock.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": "account",
          "type": "address"
        }
      ],
      "name": "NotPendingContractOwner",
      "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": "pendingOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferPending",
      "type": "event"
    },
    {
      "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": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": [],
      "name": "pendingOwner",
      "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": "0x60a03461015657601f610ecb38819003918201601f19168301916001600160401b0383118484101761015b5780849260409485528339810103126101565780516001600160a01b03811691908290036101565760200151906001600160a01b038216820361015657806100f9575b506307f5828d60e41b6000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460ff19166001179055608052604051610d599081610172823960805181818161085f0152818161092301528181610ab90152610c0f0152f35b7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b80546001600160a01b0319168217905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a33861006d565b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146108835780632b4c9f161461081457806331e66e1e14610791578063572b6c051461074657806379ba5097146105ab5780637e7d9f83146103e95780638da5cb5b1461037857806397883ae2146102fd578063e30c39781461028c5763f2fde38b1461008a57600080fd5b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576100c16108e9565b7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b906100eb610bf8565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361025a575073ffffffffffffffffffffffffffffffffffffffff1691826101e157600092507fffffffffffffffffffffffff000000000000000000000000000000000000000081541690557fffffffffffffffffffffffff00000000000000000000000000000000000000007f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c54167f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b5081036101ea57005b7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557ffcf6b9a1f453b7c06ba4f44b1f8c38b02e8b90a7bd35bd0d5c43e2deb547f568600080a2005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602073ffffffffffffffffffffffffffffffffffffffff7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c5416604051908152f35b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576103346108e9565b73ffffffffffffffffffffffffffffffffffffffff807f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b5416911690810361025a57005b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602073ffffffffffffffffffffffffffffffffffffffff7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b5416604051908152f35b346102875760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576104206108e9565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361028757803b156105675773ffffffffffffffffffffffffffffffffffffffff166040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481855afa801561055b5783916000916104ec575b5073ffffffffffffffffffffffffffffffffffffffff16036104bc57005b7f29b9b08b0000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b9091506020813d602011610553575b8161050860209383610a1a565b8101031261054f57519073ffffffffffffffffffffffffffffffffffffffff8216820361054c5750829073ffffffffffffffffffffffffffffffffffffffff61049e565b80fd5b5080fd5b3d91506104fb565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287577f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b610603610bf8565b73ffffffffffffffffffffffffffffffffffffffff807f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c5416911681810361071957508073ffffffffffffffffffffffffffffffffffffffff91828454167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fffffffffffffffffffffffff00000000000000000000000000000000000000007f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c54167f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c55600080f35b7f618487520000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102875760206107876107826108e9565b61090c565b6040519015158152f35b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102875760406107ca610aa2565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036102875761078760209161096b565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028757565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156109645773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610a14577f01ffc9a7000000000000000000000000000000000000000000000000000000008114610a0e576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b50600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a5b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610287575180151581036102875790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610be6573233148015610bee575b610be657803314908115610b35575b50610b04576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102875760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa90811561055b57600091610bb7575b5038610af8565b610bd9915060203d602011610bdf575b610bd18183610a1a565b810190610a8a565b38610bb0565b503d610bc7565b506000903690565b5060183610610ae9565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610d14573233148015610d19575b610d14577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610c83575b50610c8057503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa90811561055b57600091610cf5575b5038610c76565b610d0e915060203d602011610bdf57610bd18183610a1a565b38610cee565b503390565b5060183610610c3f56fea264697066735822122081a9e8837b83f71925afa313966c3adff801897f794e60d05e04a3bc4cee2c2f64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146108835780632b4c9f161461081457806331e66e1e14610791578063572b6c051461074657806379ba5097146105ab5780637e7d9f83146103e95780638da5cb5b1461037857806397883ae2146102fd578063e30c39781461028c5763f2fde38b1461008a57600080fd5b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576100c16108e9565b7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b906100eb610bf8565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361025a575073ffffffffffffffffffffffffffffffffffffffff1691826101e157600092507fffffffffffffffffffffffff000000000000000000000000000000000000000081541690557fffffffffffffffffffffffff00000000000000000000000000000000000000007f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c54167f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b5081036101ea57005b7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557ffcf6b9a1f453b7c06ba4f44b1f8c38b02e8b90a7bd35bd0d5c43e2deb547f568600080a2005b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602073ffffffffffffffffffffffffffffffffffffffff7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c5416604051908152f35b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576103346108e9565b73ffffffffffffffffffffffffffffffffffffffff807f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b5416911690810361025a57005b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602073ffffffffffffffffffffffffffffffffffffffff7f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b5416604051908152f35b346102875760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576104206108e9565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361028757803b156105675773ffffffffffffffffffffffffffffffffffffffff166040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481855afa801561055b5783916000916104ec575b5073ffffffffffffffffffffffffffffffffffffffff16036104bc57005b7f29b9b08b0000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b9091506020813d602011610553575b8161050860209383610a1a565b8101031261054f57519073ffffffffffffffffffffffffffffffffffffffff8216820361054c5750829073ffffffffffffffffffffffffffffffffffffffff61049e565b80fd5b5080fd5b3d91506104fb565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff907f73a5b5e3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287577f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12b610603610bf8565b73ffffffffffffffffffffffffffffffffffffffff807f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c5416911681810361071957508073ffffffffffffffffffffffffffffffffffffffff91828454167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fffffffffffffffffffffffff00000000000000000000000000000000000000007f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c54167f9d118bc1195e908806a0d8a492ffda365ad8222890448ff28ede06205764e12c55600080f35b7f618487520000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102875760206107876107826108e9565b61090c565b6040519015158152f35b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102875760406107ca610aa2565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346102875760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102875760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610287576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036102875761078760209161096b565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028757565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156109645773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b7fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114610a14577f01ffc9a7000000000000000000000000000000000000000000000000000000008114610a0e576000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60205260ff6040600020541690565b50600190565b50600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a5b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610287575180151581036102875790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610be6573233148015610bee575b610be657803314908115610b35575b50610b04576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102875760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa90811561055b57600091610bb7575b5038610af8565b610bd9915060203d602011610bdf575b610bd18183610a1a565b810190610a8a565b38610bb0565b503d610bc7565b506000903690565b5060183610610ae9565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610d14573233148015610d19575b610d14577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610c83575b50610c8057503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa90811561055b57600091610cf5575b5038610c76565b610d0e915060203d602011610bdf57610bd18183610a1a565b38610cee565b503390565b5060183610610c3f56fea264697066735822122081a9e8837b83f71925afa313966c3adff801897f794e60d05e04a3bc4cee2c2f64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
