/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */

import { Contract, ContractFactory, Signer } from "ethers";
import { Provider } from "ethers/providers";
import { UnsignedTransaction } from "ethers/utils/transaction";

import { TransactionOverrides } from ".";
import { FluxAggregatorTestHelper } from "./FluxAggregatorTestHelper";

export class FluxAggregatorTestHelperFactory extends ContractFactory {
  constructor(signer?: Signer) {
    super(_abi, _bytecode, signer);
  }

  deploy(overrides?: TransactionOverrides): Promise<FluxAggregatorTestHelper> {
    return super.deploy(overrides) as Promise<FluxAggregatorTestHelper>;
  }
  getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction {
    return super.getDeployTransaction(overrides);
  }
  attach(address: string): FluxAggregatorTestHelper {
    return super.attach(address) as FluxAggregatorTestHelper;
  }
  connect(signer: Signer): FluxAggregatorTestHelperFactory {
    return super.connect(signer) as FluxAggregatorTestHelperFactory;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): FluxAggregatorTestHelper {
    return new Contract(
      address,
      _abi,
      signerOrProvider
    ) as FluxAggregatorTestHelper;
  }
}

const _abi = [
  {
    anonymous: false,
    inputs: [],
    name: "Here",
    type: "event"
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "from",
        type: "address"
      },
      {
        indexed: true,
        internalType: "address",
        name: "to",
        type: "address"
      }
    ],
    name: "OwnershipTransferRequested",
    type: "event"
  },
  {
    anonymous: false,
    inputs: [
      {
        indexed: true,
        internalType: "address",
        name: "from",
        type: "address"
      },
      {
        indexed: true,
        internalType: "address",
        name: "to",
        type: "address"
      }
    ],
    name: "OwnershipTransferred",
    type: "event"
  },
  {
    inputs: [],
    name: "acceptOwnership",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [],
    name: "owner",
    outputs: [
      {
        internalType: "address payable",
        name: "",
        type: "address"
      }
    ],
    stateMutability: "view",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_aggregator",
        type: "address"
      },
      {
        internalType: "uint256",
        name: "_roundID",
        type: "uint256"
      }
    ],
    name: "readGetAnswer",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_aggregator",
        type: "address"
      },
      {
        internalType: "uint256",
        name: "_roundID",
        type: "uint256"
      }
    ],
    name: "readGetTimestamp",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_aggregator",
        type: "address"
      }
    ],
    name: "readLatestAnswer",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_aggregator",
        type: "address"
      }
    ],
    name: "readLatestTimestamp",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_aggregator",
        type: "address"
      },
      {
        internalType: "address",
        name: "_oracle",
        type: "address"
      }
    ],
    name: "readOracleRoundState",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  },
  {
    inputs: [
      {
        internalType: "address",
        name: "_to",
        type: "address"
      }
    ],
    name: "transferOwnership",
    outputs: [],
    stateMutability: "nonpayable",
    type: "function"
  }
];

const _bytecode =
  "0x6080604052600080546001600160a01b031916331790556106e0806100256000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c52a1f5e1161005b578063c52a1f5e14610134578063c9592ab91461016f578063d2f79c47146101a8578063f2fde38b146101db57610088565b806379ba50971461008d5780638da5cb5b14610097578063bf5fc18b146100c8578063c0c9c7db14610101575b600080fd5b61009561020e565b005b61009f610310565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610095600480360360408110156100de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561032c565b6100956004803603602081101561011757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103d6565b6100956004803603604081101561014a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610474565b6100956004803603604081101561018557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610517565b610095600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610568565b610095600480360360208110156101f157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166105ae565b60015473ffffffffffffffffffffffffffffffffffffffff16331461029457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015290519081900360640190fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b8173ffffffffffffffffffffffffffffffffffffffff1663b5ab58dc826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561037d57600080fd5b505afa158015610391573d6000803e3d6000fd5b505050506040513d60208110156103a757600080fd5b50506040517ffe92bbc330eb12cd316e909741296a7fbde0684922f2564d9a9021f08959374090600090a15050565b8073ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561041c57600080fd5b505afa158015610430573d6000803e3d6000fd5b505050506040513d602081101561044657600080fd5b50506040517ffe92bbc330eb12cd316e909741296a7fbde0684922f2564d9a9021f08959374090600090a150565b604080517f88aa80e700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600060248301529151918416916388aa80e79160448082019261010092909190829003018186803b1580156104ec57600080fd5b505afa158015610500573d6000803e3d6000fd5b505050506040513d6101008110156103a757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663b633620c826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561037d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561041c57600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461063457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a35056fea2646970667358221220f9e9fc420670adabd044627a86daab1c2812fbeb0800a2a7c6a0fff5e667b25564736f6c63430006060033";
