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

const _abi = [
  {
    inputs: [],
    name: 'ECDSAInvalidSignature',
    type: 'error',
  },
  {
    inputs: [
      {
        internalType: 'uint256',
        name: 'length',
        type: 'uint256',
      },
    ],
    name: 'ECDSAInvalidSignatureLength',
    type: 'error',
  },
  {
    inputs: [
      {
        internalType: 'bytes32',
        name: 's',
        type: 'bytes32',
      },
    ],
    name: 'ECDSAInvalidSignatureS',
    type: 'error',
  },
] as const

const _bytecode =
  '0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a45519caa943036b099b384dc8f08082679ed7bcf35f4f1926155f3a3b94e9964736f6c634300081b0033'

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

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

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

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