{
  "compiler": {
    "version": "0.8.27+commit.40a35a09"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidInitialization"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "NotInitializing"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "owner",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "OwnableInvalidOwner"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "OwnableUnauthorizedAccount"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "maxAllowed",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "WithdrawArrayTooLarge"
      },
      {
        "inputs": [
          {
            "internalType": "uint64",
            "name": "version",
            "type": "uint64",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "Initialized",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "previousOwner",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "newOwner",
            "type": "address",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "OwnershipTransferred",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "contract Groth16Verifier_CheckHashesValue",
            "name": "_depositVerifier",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "__ZetoFungible_init"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "_deposit"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "nullifiers",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "output",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "root",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "_withdrawWithNullifiers"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "owner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "renounceOwnership"
      },
      {
        "inputs": [
          {
            "internalType": "contract IERC20",
            "name": "_erc20",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setERC20"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "transferOwnership"
      }
    ],
    "devdoc": {
      "kind": "dev",
      "methods": {
        "owner()": {
          "details": "Returns the address of the current owner."
        },
        "renounceOwnership()": {
          "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
        },
        "transferOwnership(address)": {
          "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
        }
      },
      "version": 1
    },
    "userdoc": {
      "kind": "user",
      "methods": {},
      "version": 1
    }
  },
  "settings": {
    "remappings": [
      "@iden3/=node_modules/@iden3/",
      "@openzeppelin/=node_modules/@openzeppelin/",
      "eth-gas-reporter/=node_modules/eth-gas-reporter/",
      "forge-std/=lib/forge-std/src/",
      "hardhat/=node_modules/hardhat/"
    ],
    "optimizer": {
      "enabled": true,
      "runs": 10000
    },
    "metadata": {
      "bytecodeHash": "ipfs"
    },
    "compilationTarget": {
      "contracts/lib/zeto_fungible_withdraw_nullifier.sol": "ZetoFungibleWithdrawWithNullifiers"
    },
    "evmVersion": "cancun",
    "libraries": {},
    "viaIR": true
  },
  "sources": {
    "contracts/lib/common.sol": {
      "keccak256": "0x41a6c108b95ddee950755303e6e59bceca9c55d518cc7e4ca6e8f5badfe490cb",
      "urls": [
        "bzz-raw://c6865168ec6355ee85c6ce11d17c7c1bc57baec729de7cdbb9d6e8d860f70957",
        "dweb:/ipfs/QmXysx5oVKrSzoAvhzQCQs5bx1p5T5LeuJW6DtvgT7pXnV"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/verifier_check_hashes_value.sol": {
      "keccak256": "0x26fe5872592dd81fce74ba053455b6fc0d4d3f61eb49b089fea3977da5592520",
      "urls": [
        "bzz-raw://64b6b7225355b6d39b4daec59248ccbbdfd38cfdd47ed864f46ba85d6370d9ca",
        "dweb:/ipfs/QmdFGUMMeGKmHRBrvzHjm2xf4v7shmpsp91CsHXytLLVXz"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_check_nullifier_value.sol": {
      "keccak256": "0x3c0a37c3b844cc95ff55441db084dc6c0d747537676d6327e6c8bddf538ad447",
      "urls": [
        "bzz-raw://ee1d06a4788a884448806882828fde9f448b64e8df5842ac35cd5a0e92cb6d04",
        "dweb:/ipfs/QmSTMaxtLJDrPBQJvbfr7n2iAKfXH1X2xEHUj8iH9omf1w"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_check_nullifier_value_batch.sol": {
      "keccak256": "0x9060f313e27164f7177893a0670545d137a8d277e2cf9972f11c6009d23b58aa",
      "urls": [
        "bzz-raw://f49fedc4d4d1f390a27927349d1e714322522e116d47501247231e297321075b",
        "dweb:/ipfs/QmawNtBp7TnfMyHxFek5WxBEQpzWmSBcACzjCJDPunrvJH"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/zeto_fungible.sol": {
      "keccak256": "0xea8b1e381a2a71f93f502980a2d15f828c4e0577f5b55ccb19e5643368e613bc",
      "urls": [
        "bzz-raw://6fb967615097e25885cc44d22487b368f7435b5bd0f46417f8e4038bcd984ebd",
        "dweb:/ipfs/QmSdRLMf81HcyvTgU3cgw9nxvkjxVJGkYmAbdWQ2CDebYg"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/zeto_fungible_withdraw_nullifier.sol": {
      "keccak256": "0x31a7597b3bae1a55b87e5c924f6c9bbe9e5fc23d5834aa949f8f99b47f93b157",
      "urls": [
        "bzz-raw://8a51d5fb01deb69936063ce1fdba969298591ac8229e9e2d3db4b9824d21e681",
        "dweb:/ipfs/QmPea91goek1BMKtnkgfAcsiyraeMfaCHR1WXxvRyaQdBt"
      ],
      "license": "Apache-2.0"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {
      "keccak256": "0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a",
      "urls": [
        "bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6",
        "dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {
      "keccak256": "0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05",
      "urls": [
        "bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08",
        "dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {
      "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397",
      "urls": [
        "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9",
        "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/access/Ownable.sol": {
      "keccak256": "0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb",
      "urls": [
        "bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6",
        "dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
      "keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7",
      "urls": [
        "bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db",
        "dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Context.sol": {
      "keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
      "urls": [
        "bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
        "dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
      ],
      "license": "MIT"
    }
  },
  "version": 1
}