{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20BatchTransfersFacetMock",
  "sourceName": "contracts/mocks/token/ERC20/facets/ERC20BatchTransfersFacetMock.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": [],
      "name": "ERC20BatchTransferValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "decrement",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initERC20BatchTransfersStorage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606d57601f610ece38819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610e4590816100898239608051818181610b990152610cfb0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806331e66e1e146102fd5780634885b2541461023757806388d695b2146101875763c30f1be11461004857600080fd5b346101825760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825761007f610ce4565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610155577fc05327e6000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101825760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825760043567ffffffffffffffff8111610182576101d6903690600401610380565b6024359167ffffffffffffffff8311610182576101fa61022c933690600401610380565b9290917f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee610226610ce4565b90610899565b602060405160018152f35b346101825760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825760043573ffffffffffffffffffffffffffffffffffffffff811681036101825760243567ffffffffffffffff8111610182576102a6903690600401610380565b916044359267ffffffffffffffff8411610182576102cb61022c943690600401610380565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6102f7610ce4565b90610411565b346101825760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610182576040610336610b82565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b9181601f840112156101825782359167ffffffffffffffff8311610182576020808501948460051b01011161018257565b91908110156103c15760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff811681036101825790565b94909291959384810361086f5780156108665773ffffffffffffffffffffffffffffffffffffffff8716600052856020526040600020549160009560009260005b8181106105dd575050505050505073ffffffffffffffffffffffffffffffffffffffff809116931691838303610489575b50505050565b83156105af576001018260005280602052604060002084600052602052604060002054917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415806105a6575b610512575b505060207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591604051908152a338808080610483565b80830392808410156105635750507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591602091846000528252604060002085600052825280604060002055916104dc565b608491859187604051937f137ad6ab0000000000000000000000000000000000000000000000000000000085526004850152602484015260448301526064820152fd5b508015156104d7565b827ff7e1ac0f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff61060561060083858b6103b1565b6103f0565b168015610822576106178285876103b1565b358c816106e2575b907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff6020949316938492604051908152a3891515806106d8575b61067c575b50600101610452565b89870390878210156106a257600090815260208c90526040902090860190556001610673565b878b917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858a141561066e565b50998a8101908111156107f857998c8c73ffffffffffffffffffffffffffffffffffffffff821684811461076a575073ffffffffffffffffffffffffffffffffffffffff602094939260407fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936000908782528852208481540190555b92939450505061061f565b915050888293949596979892116107c25750810195949392916020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8f61075f565b8891507fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff8c7f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361086f578415610af25773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b81811061098b57505050505080151580610981575b6108fa575b5050505050565b808503948086101561093757505073ffffffffffffffffffffffffffffffffffffffff1660005260205260406000209101905538808080806108f3565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50838114156108ee565b73ffffffffffffffffffffffffffffffffffffffff6109ae6106008385896103b1565b168015610aae576109c08285876103b1565b3580610a14575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a3016108d9565b96878101908111156107f8579673ffffffffffffffffffffffffffffffffffffffff8916828114610a6157509060019291604060008381528c602052208181540190555b909192506109c7565b8c829c9211610a785750908a60019392019a610a58565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b505050505050565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b3b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610182575180151581036101825790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610cd2573233148015610cda575b610cd257803314908115610c15575b50610be4576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101825760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa908115610cc657600091610c97575b5038610bd8565b610cb9915060203d602011610cbf575b610cb18183610afa565b810190610b6a565b38610c90565b503d610ca7565b6040513d6000823e3d90fd5b506000903690565b5060183610610bc9565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610e00573233148015610e05575b610e00577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610d6f575b50610d6c57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa908115610cc657600091610de1575b5038610d62565b610dfa915060203d602011610cbf57610cb18183610afa565b38610dda565b503390565b5060183610610d2b56fea2646970667358221220c9fb5c5cd5c5e8578066cad4b6979e3671f1d7688b40fe1eaa11931032553e5b64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806331e66e1e146102fd5780634885b2541461023757806388d695b2146101875763c30f1be11461004857600080fd5b346101825760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825761007f610ce4565b73ffffffffffffffffffffffffffffffffffffffff807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354169116908103610155577fc05327e6000000000000000000000000000000000000000000000000000000006000527fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346101825760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825760043567ffffffffffffffff8111610182576101d6903690600401610380565b6024359167ffffffffffffffff8311610182576101fa61022c933690600401610380565b9290917f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee610226610ce4565b90610899565b602060405160018152f35b346101825760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101825760043573ffffffffffffffffffffffffffffffffffffffff811681036101825760243567ffffffffffffffff8111610182576102a6903690600401610380565b916044359267ffffffffffffffff8411610182576102cb61022c943690600401610380565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6102f7610ce4565b90610411565b346101825760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610182576040610336610b82565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b9181601f840112156101825782359167ffffffffffffffff8311610182576020808501948460051b01011161018257565b91908110156103c15760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff811681036101825790565b94909291959384810361086f5780156108665773ffffffffffffffffffffffffffffffffffffffff8716600052856020526040600020549160009560009260005b8181106105dd575050505050505073ffffffffffffffffffffffffffffffffffffffff809116931691838303610489575b50505050565b83156105af576001018260005280602052604060002084600052602052604060002054917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415806105a6575b610512575b505060207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591604051908152a338808080610483565b80830392808410156105635750507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591602091846000528252604060002085600052825280604060002055916104dc565b608491859187604051937f137ad6ab0000000000000000000000000000000000000000000000000000000085526004850152602484015260448301526064820152fd5b508015156104d7565b827ff7e1ac0f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff61060561060083858b6103b1565b6103f0565b168015610822576106178285876103b1565b358c816106e2575b907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff6020949316938492604051908152a3891515806106d8575b61067c575b50600101610452565b89870390878210156106a257600090815260208c90526040902090860190556001610673565b878b917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858a141561066e565b50998a8101908111156107f857998c8c73ffffffffffffffffffffffffffffffffffffffff821684811461076a575073ffffffffffffffffffffffffffffffffffffffff602094939260407fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936000908782528852208481540190555b92939450505061061f565b915050888293949596979892116107c25750810195949392916020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8f61075f565b8891507fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff8c7f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361086f578415610af25773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b81811061098b57505050505080151580610981575b6108fa575b5050505050565b808503948086101561093757505073ffffffffffffffffffffffffffffffffffffffff1660005260205260406000209101905538808080806108f3565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50838114156108ee565b73ffffffffffffffffffffffffffffffffffffffff6109ae6106008385896103b1565b168015610aae576109c08285876103b1565b3580610a14575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a3016108d9565b96878101908111156107f8579673ffffffffffffffffffffffffffffffffffffffff8916828114610a6157509060019291604060008381528c602052208181540190555b909192506109c7565b8c829c9211610a785750908a60019392019a610a58565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b505050505050565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b3b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90816020910312610182575180151581036101825790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610cd2573233148015610cda575b610cd257803314908115610c15575b50610be4576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116101825760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa908115610cc657600091610c97575b5038610bd8565b610cb9915060203d602011610cbf575b610cb18183610afa565b810190610b6a565b38610c90565b503d610ca7565b6040513d6000823e3d90fd5b506000903690565b5060183610610bc9565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015610e00573233148015610e05575b610e00577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115610d6f575b50610d6c57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa908115610cc657600091610de1575b5038610d62565b610dfa915060203d602011610cbf57610cb18183610afa565b38610dda565b503390565b5060183610610d2b56fea2646970667358221220c9fb5c5cd5c5e8578066cad4b6979e3671f1d7688b40fe1eaa11931032553e5b64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
