/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import {Signer, BigNumberish} from "ethers";
import {Provider, TransactionRequest} from "@ethersproject/providers";
import {Contract, ContractFactory, Overrides} from "@ethersproject/contracts";

import type {ERC20Mock} from "../ERC20Mock";

export class ERC20Mock__factory extends ContractFactory {
  constructor(signer?: Signer) {
    super(_abi, _bytecode, signer);
  }

  deploy(
    initialAccount: string,
    initialBalance: BigNumberish,
    overrides?: Overrides
  ): Promise<ERC20Mock> {
    return super.deploy(
      initialAccount,
      initialBalance,
      overrides || {}
    ) as Promise<ERC20Mock>;
  }
  getDeployTransaction(
    initialAccount: string,
    initialBalance: BigNumberish,
    overrides?: Overrides
  ): TransactionRequest {
    return super.getDeployTransaction(
      initialAccount,
      initialBalance,
      overrides || {}
    );
  }
  attach(address: string): ERC20Mock {
    return super.attach(address) as ERC20Mock;
  }
  connect(signer: Signer): ERC20Mock__factory {
    return super.connect(signer) as ERC20Mock__factory;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): ERC20Mock {
    return new Contract(address, _abi, signerOrProvider) as ERC20Mock;
  }
}

const _abi = [
  {
    inputs: [
      {
        internalType: "address",
        name: "initialAccount",
        type: "address",
      },
      {
        internalType: "uint256",
        name: "initialBalance",
        type: "uint256",
      },
    ],
    stateMutability: "nonpayable",
    type: "constructor",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "account",
        type: "address",
      },
    ],
    name: "balanceOf",
    outputs: [
      {
        internalType: "uint256",
        name: "",
        type: "uint256",
      },
    ],
    stateMutability: "nonpayable",
    type: "function",
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "account",
        type: "address",
      },
      {
        internalType: "uint256",
        name: "amount",
        type: "uint256",
      },
    ],
    name: "mint",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function",
  },
];

const _bytecode =
  "0x608060405234801561001057600080fd5b5060405161029c38038061029c83398101604081905261002f91610071565b6100398282610040565b50506100cd565b6001600160a01b038216600090815260208190526040812080548392906100689084906100a9565b90915550505050565b60008060408385031215610083578182fd5b82516001600160a01b0381168114610099578283fd5b6020939093015192949293505050565b600082198211156100c857634e487b7160e01b81526011600452602481fd5b500190565b6101c0806100dc6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806340c10f191461003b57806370a0823114610050575b600080fd5b61004e610049366004610124565b610075565b005b61006361005e366004610103565b6100b3565b60405190815260200160405180910390f35b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548392906100aa90849061014d565b90915550505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146100da57600080fd5b600060208284031215610114578081fd5b61011d826100df565b9392505050565b60008060408385031215610136578081fd5b61013f836100df565b946020939093013593505050565b60008219821115610185577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50019056fea2646970667358221220cfadc8365ea83a2561b2b45186e5dfcb5c42b4d1e98e5feb839f7a4d6d43eb3364736f6c63430008030033";
