/* 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 { ShortStrings, ShortStringsInterface } from '../../../../@openzeppelin/contracts/utils/ShortStrings'

const _abi = [
  {
    inputs: [],
    name: 'InvalidShortString',
    type: 'error',
  },
  {
    inputs: [
      {
        internalType: 'string',
        name: 'str',
        type: 'string',
      },
    ],
    name: 'StringTooLong',
    type: 'error',
  },
] as const

const _bytecode =
  '0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202c0294b7d1fab5990125eb3b9b4ff1319281abf7330ab92ee5232ac03fe80e3264736f6c634300081b0033'

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

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

export class ShortStrings__factory extends ContractFactory {
  constructor(...args: ShortStringsConstructorParams) {
    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<
      ShortStrings & {
        deploymentTransaction(): ContractTransactionResponse
      }
    >
  }
  override connect(runner: ContractRunner | null): ShortStrings__factory {
    return super.connect(runner) as ShortStrings__factory
  }

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