{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20PermitFacetMock",
  "sourceName": "contracts/mocks/token/ERC20/facets/ERC20PermitFacetMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20ApprovalToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "ERC20PermitExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitFromAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitInvalidSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotProxyAdmin",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initERC20PermitStorage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606d57601f610b8038819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610af79081610089823960805181818161085701526109920152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80631de5d8441461048757806331e66e1e146104045780633644e515146103c35780637ecebe001461033e5763d505accf1461005357600080fd5b346103395760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395761008a6105c1565b6024359073ffffffffffffffffffffffffffffffffffffffff8216809203610339576044356064356084359060ff82168092036103395773ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d941693841561030f578142116102e1576020926000926080928785528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528960408401528a6060840152888684015260a083015260c082015260c0815261017860e0826105e4565b519020610183610654565b9060405190868201927f1901000000000000000000000000000000000000000000000000000000000000845260228301526042820152604281526101c86062826105e4565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102d5578173ffffffffffffffffffffffffffffffffffffffff60005116036102ab57821561027d5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591836000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8252604060002085600052825280604060002055604051908152a3005b507ff7e1ac0f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b600080fd5b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576103756105c1565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760206103fc610654565b604051908152f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957604061043d61097b565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576104be610840565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610594577f9d8ff7da000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fe136d7b577e24834119bec976c568a497f54cf7b8bef8b9534f1ac7a342834a080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033957565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761062557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516000907f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8154918260011c906001841693841561081e575b6020831085146107f157828452602084019484929181156107b75750600114610738575b6106be925003826105e4565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261073260c0826105e4565b51902090565b507f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81600090815290917fce6c9d9c5887233b79e8966827dc87013a092e23a7d6c4dfeb06be71659aa4285b81831061079b5750509060206106be928201016106b2565b6020919350806001915483858801015201910190918392610783565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168652506106be92151560051b820160200190506106b2565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b91607f169161068e565b90816020910312610339575180151581036103395790565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561096c573233148015610971575b61096c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c908033149081156108cb575b506108c857503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156102d55760009161093d575b50386108be565b61095f915060203d602011610965575b61095781836105e4565b810190610828565b38610936565b503d61094d565b503390565b5060183610610887565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610aaf573233148015610ab7575b610aaf57803314908115610a0e575b506109dd576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103395760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156102d557600091610a90575b50386109d1565b610aa9915060203d6020116109655761095781836105e4565b38610a89565b506000903690565b50601836106109c256fea2646970667358221220b1d54b2a39957d7ad6c8566d151c949b3fc78ba01637803f6d04eeb45d97164e64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80631de5d8441461048757806331e66e1e146104045780633644e515146103c35780637ecebe001461033e5763d505accf1461005357600080fd5b346103395760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395761008a6105c1565b6024359073ffffffffffffffffffffffffffffffffffffffff8216809203610339576044356064356084359060ff82168092036103395773ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d941693841561030f578142116102e1576020926000926080928785528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528960408401528a6060840152888684015260a083015260c082015260c0815261017860e0826105e4565b519020610183610654565b9060405190868201927f1901000000000000000000000000000000000000000000000000000000000000845260228301526042820152604281526101c86062826105e4565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156102d5578173ffffffffffffffffffffffffffffffffffffffff60005116036102ab57821561027d5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591836000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8252604060002085600052825280604060002055604051908152a3005b507ff7e1ac0f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b600080fd5b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576103756105c1565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760206103fc610654565b604051908152f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957604061043d61097b565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103395760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576104be610840565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610594577f9d8ff7da000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fe136d7b577e24834119bec976c568a497f54cf7b8bef8b9534f1ac7a342834a080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033957565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761062557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516000907f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8154918260011c906001841693841561081e575b6020831085146107f157828452602084019484929181156107b75750600114610738575b6106be925003826105e4565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261073260c0826105e4565b51902090565b507f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81600090815290917fce6c9d9c5887233b79e8966827dc87013a092e23a7d6c4dfeb06be71659aa4285b81831061079b5750509060206106be928201016106b2565b6020919350806001915483858801015201910190918392610783565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168652506106be92151560051b820160200190506106b2565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b91607f169161068e565b90816020910312610339575180151581036103395790565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561096c573233148015610971575b61096c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c908033149081156108cb575b506108c857503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156102d55760009161093d575b50386108be565b61095f915060203d602011610965575b61095781836105e4565b810190610828565b38610936565b503d61094d565b503390565b5060183610610887565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610aaf573233148015610ab7575b610aaf57803314908115610a0e575b506109dd576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103395760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156102d557600091610a90575b50386109d1565b610aa9915060203d6020116109655761095781836105e4565b38610a89565b506000903690565b50601836106109c256fea2646970667358221220b1d54b2a39957d7ad6c8566d151c949b3fc78ba01637803f6d04eeb45d97164e64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
