/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, ContractFactory, ContractTransactionResponse, Interface } from 'ethers'
import type { Signer, BigNumberish, AddressLike, ContractDeployTransaction, ContractRunner } from 'ethers'
import type { NonPayableOverrides } from '../../../common'
import type { RewardsManagerMock, RewardsManagerMockInterface } from '../../../contracts/mocks/RewardsManagerMock'

const _abi = [
  {
    inputs: [
      {
        internalType: 'contract MockGRTToken',
        name: 'token_',
        type: 'address',
      },
      {
        internalType: 'uint256',
        name: 'rewards',
        type: 'uint256',
      },
    ],
    stateMutability: 'nonpayable',
    type: 'constructor',
  },
  {
    inputs: [
      {
        internalType: 'bytes32',
        name: '',
        type: 'bytes32',
      },
    ],
    name: 'onSubgraphAllocationUpdate',
    outputs: [
      {
        internalType: 'uint256',
        name: '',
        type: 'uint256',
      },
    ],
    stateMutability: 'nonpayable',
    type: 'function',
  },
  {
    inputs: [
      {
        internalType: 'bytes32',
        name: 'subgraphDeploymentID',
        type: 'bytes32',
      },
    ],
    name: 'onSubgraphSignalUpdate',
    outputs: [
      {
        internalType: 'uint256',
        name: '',
        type: 'uint256',
      },
    ],
    stateMutability: 'nonpayable',
    type: 'function',
  },
  {
    inputs: [
      {
        internalType: 'address',
        name: '',
        type: 'address',
      },
    ],
    name: 'takeRewards',
    outputs: [
      {
        internalType: 'uint256',
        name: '',
        type: 'uint256',
      },
    ],
    stateMutability: 'nonpayable',
    type: 'function',
  },
  {
    inputs: [],
    name: 'token',
    outputs: [
      {
        internalType: 'contract MockGRTToken',
        name: '',
        type: 'address',
      },
    ],
    stateMutability: 'view',
    type: 'function',
  },
] as const

const _bytecode =
  '0x6080604052348015600f57600080fd5b50604051610242380380610242833981016040819052602c916054565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155608c565b60008060408385031215606657600080fd5b82516001600160a01b0381168114607c57600080fd5b6020939093015192949293505050565b6101a78061009b6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d1c2fec14610051578063db75092614610078578063eeac3e0e14610051578063fc0c546a1461008b575b600080fd5b61006561005f366004610128565b50600090565b6040519081526020015b60405180910390f35b610065610086366004610141565b6100b6565b60005461009e906001600160a01b031681565b6040516001600160a01b03909116815260200161006f565b600080546001546040516340c10f1960e01b815233600482015260248101919091526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561010757600080fd5b505af115801561011b573d6000803e3d6000fd5b5050600154949350505050565b60006020828403121561013a57600080fd5b5035919050565b60006020828403121561015357600080fd5b81356001600160a01b038116811461016a57600080fd5b939250505056fea26469706673582212200e74f2315ff84b6e4d019106a66879aeda166ce080e57393c6c2df14c3ae2e5f64736f6c634300081b0033'

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

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

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

  override getDeployTransaction(
    token_: AddressLike,
    rewards: BigNumberish,
    overrides?: NonPayableOverrides & { from?: string },
  ): Promise<ContractDeployTransaction> {
    return super.getDeployTransaction(token_, rewards, overrides || {})
  }
  override deploy(token_: AddressLike, rewards: BigNumberish, overrides?: NonPayableOverrides & { from?: string }) {
    return super.deploy(token_, rewards, overrides || {}) as Promise<
      RewardsManagerMock & {
        deploymentTransaction(): ContractTransactionResponse
      }
    >
  }
  override connect(runner: ContractRunner | null): RewardsManagerMock__factory {
    return super.connect(runner) as RewardsManagerMock__factory
  }

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