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

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

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

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

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

const _abi = [
  {
    inputs: [
      {
        internalType: "address",
        name: "initialAccount",
        type: "address",
      },
      {
        internalType: "uint256",
        name: "initialBalance",
        type: "uint256",
      },
    ],
    stateMutability: "payable",
    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",
  },
  {
    inputs: [],
    name: "sender",
    outputs: [
      {
        internalType: "address",
        name: "",
        type: "address",
      },
    ],
    stateMutability: "view",
    type: "function",
  },
];

const _bytecode =
  "0x608060405260405161030e38038061030e83398101604081905261002291610068565b818161002e8282610037565b505050506100c4565b6001600160a01b0382166000908152602081905260408120805483929061005f9084906100a0565b90915550505050565b6000806040838503121561007a578182fd5b82516001600160a01b0381168114610090578283fd5b6020939093015192949293505050565b600082198211156100bf57634e487b7160e01b81526011600452602481fd5b500190565b61023b806100d36000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806340c10f191461004657806367e404ce1461005b57806370a08231146100a5575b600080fd5b61005961005436600461019f565b6100c6565b005b60015461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100b86100b336600461017e565b610104565b60405190815260200161009c565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040812080548392906100fb9084906101c8565b90915550505050565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317905573ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461015557600080fd5b60006020828403121561018f578081fd5b6101988261015a565b9392505050565b600080604083850312156101b1578081fd5b6101ba8361015a565b946020939093013593505050565b60008219821115610200577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b50019056fea2646970667358221220f8e0fbf5f8d5ffb02e4a4d355970b51252aea77227856e20aa0453a0bdd6239f64736f6c63430008030033";
