/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { MathTestable, MathTestableInterface } from "../MathTestable";

const _abi = [
  {
    inputs: [
      {
        internalType: "uint256",
        name: "y",
        type: "uint256",
      },
    ],
    name: "_sqrt",
    outputs: [
      {
        internalType: "uint256",
        name: "r",
        type: "uint256",
      },
    ],
    stateMutability: "pure",
    type: "function",
  },
];

const _bytecode =
  "0x60806040523480156100115760006000fd5b50610017565b6101fb806100266000396000f3fe60806040523480156100115760006000fd5b50600436106100305760003560e01c80636a263f021461003657610030565b60006000fd5b610050600480360381019061004b919061010a565b610066565b60405161005d9190610128565b60405180910390f35b60006100778261008163ffffffff16565b905080505b919050565b600060038211156100ee578190508050600060016002846100a2919061013a565b6100ac919061017e565b90505b818110156100e857809150815060028182856100cb919061013a565b6100d5919061017e565b6100df919061013a565b905080506100af565b50610100565b6000821415156100ff576001905080505b5b5b919050566101c4565b60006020828403121561011d5760006000fd5b813590505b92915050565b60006020820190508282525b92915050565b6000821515610172577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b82820490505b92915050565b600082198211156101b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b82820190505b92915050565bfea264697066735822122072cfb26ac3a2c49a94f665e04709618123c0edf100210101f50b73fe581b9fc464736f6c634300080b0033";

type MathTestableConstructorParams =
  | [signer?: Signer]
  | ConstructorParameters<typeof ContractFactory>;

const isSuperArgs = (
  xs: MathTestableConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;

export class MathTestable__factory extends ContractFactory {
  constructor(...args: MathTestableConstructorParams) {
    if (isSuperArgs(args)) {
      super(...args);
    } else {
      super(_abi, _bytecode, args[0]);
    }
  }

  deploy(
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<MathTestable> {
    return super.deploy(overrides || {}) as Promise<MathTestable>;
  }
  getDeployTransaction(
    overrides?: Overrides & { from?: string | Promise<string> }
  ): TransactionRequest {
    return super.getDeployTransaction(overrides || {});
  }
  attach(address: string): MathTestable {
    return super.attach(address) as MathTestable;
  }
  connect(signer: Signer): MathTestable__factory {
    return super.connect(signer) as MathTestable__factory;
  }
  static readonly bytecode = _bytecode;
  static readonly abi = _abi;
  static createInterface(): MathTestableInterface {
    return new utils.Interface(_abi) as MathTestableInterface;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): MathTestable {
    return new Contract(address, _abi, signerOrProvider) as MathTestable;
  }
}
