/* 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 {
  ProvisionTracker,
  ProvisionTrackerInterface,
} from '../../../../../../@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker'

const _abi = [
  {
    inputs: [
      {
        internalType: 'uint256',
        name: 'tokensAvailable',
        type: 'uint256',
      },
      {
        internalType: 'uint256',
        name: 'tokensRequired',
        type: 'uint256',
      },
    ],
    name: 'ProvisionTrackerInsufficientTokens',
    type: 'error',
  },
] as const

const _bytecode =
  '0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204153bca5db4a499b4883212cb652f2bd0af5f4b2b10f2c260eb0d9ad791d219464736f6c634300081b0033'

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

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

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

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