/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
  Contract,
  ContractFactory,
  ContractTransactionResponse,
  Interface,
} from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../common";
import type { BytesLib, BytesLibInterface } from "../BytesLib";

const _abi = [
  {
    type: "function",
    name: "decodeBytesToUint",
    inputs: [
      {
        name: "data",
        type: "bytes",
        internalType: "bytes",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "pure",
  },
] as const;

const _bytecode =
  "0x610278610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063f7ba47a314610038575b5f5ffd5b61004b61004636600461013b565b61005d565b60405190815260200160405180910390f35b5f6020825110156100f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44617461206d757374206265206174206c65617374203332206279746573206c60448201527f6f6e670000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b81806020019051810190610108919061022b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020828403121561014b575f5ffd5b813567ffffffffffffffff811115610161575f5ffd5b8201601f81018413610171575f5ffd5b803567ffffffffffffffff81111561018b5761018b61010e565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156101f7576101f761010e565b60405281815282820160200186101561020e575f5ffd5b816020840160208301375f91810160200191909152949350505050565b5f6020828403121561023b575f5ffd5b505191905056fea264697066735822122022eb5438442f79564432247fa5be52f34d8f18e8216acf5bfc43f857a76f219464736f6c634300081c0033";

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

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

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

  override getDeployTransaction(
    overrides?: NonPayableOverrides & { from?: string }
  ): Promise<ContractDeployTransaction> {
    return super.getDeployTransaction(overrides || {});
  }
  override deploy(overrides?: NonPayableOverrides & { from?: string }) {
    return super.deploy(overrides || {}) as Promise<
      BytesLib & {
        deploymentTransaction(): ContractTransactionResponse;
      }
    >;
  }
  override connect(runner: ContractRunner | null): BytesLib__factory {
    return super.connect(runner) as BytesLib__factory;
  }

  static readonly bytecode = _bytecode;
  static readonly abi = _abi;
  static createInterface(): BytesLibInterface {
    return new Interface(_abi) as BytesLibInterface;
  }
  static connect(address: string, runner?: ContractRunner | null): BytesLib {
    return new Contract(address, _abi, runner) as unknown as BytesLib;
  }
}
