text: "use strict";
  /* Generated by ts-generator ver. 0.0.8 */
  /* tslint:disable */
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.ABI = [
      {
          anonymous: false,
          inputs: [
              { indexed: true, internalType: 'address', name: 'token', type: 'address' },
              { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
          ],
          name: 'MedianUpdated',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              { indexed: true, internalType: 'address', name: 'token', type: 'address' },
              {
                  indexed: true,
                  internalType: 'address',
                  name: 'oracleAddress',
                  type: 'address',
              },
          ],
          name: 'OracleAdded',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              { indexed: true, internalType: 'address', name: 'token', type: 'address' },
              {
                  indexed: true,
                  internalType: 'address',
                  name: 'oracleAddress',
                  type: 'address',
              },
          ],
          name: 'OracleRemoved',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              { indexed: true, internalType: 'address', name: 'token', type: 'address' },
              { indexed: true, internalType: 'address', name: 'oracle', type: 'address' },
          ],
          name: 'OracleReportRemoved',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              { indexed: true, internalType: 'address', name: 'token', type: 'address' },
              { indexed: true, internalType: 'address', name: 'oracle', type: 'address' },
              {
                  indexed: false,
                  internalType: 'uint256',
                  name: 'timestamp',
                  type: 'uint256',
              },
              { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
          ],
          name: 'OracleReported',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: true,
                  internalType: 'address',
                  name: 'previousOwner',
                  type: 'address',
              },
              {
                  indexed: true,
                  internalType: 'address',
                  name: 'newOwner',
                  type: 'address',
              },
          ],
          name: 'OwnershipTransferred',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              {
                  indexed: false,
                  internalType: 'uint256',
                  name: 'reportExpiry',
                  type: 'uint256',
              },
          ],
          name: 'ReportExpirySet',
          type: 'event',
      },
      {
          anonymous: false,
          inputs: [
              { indexed: false, internalType: 'address', name: 'token', type: 'address' },
              {
                  indexed: false,
                  internalType: 'uint256',
                  name: 'reportExpiry',
                  type: 'uint256',
              },
          ],
          name: 'TokenReportExpirySet',
          type: 'event',
      },
      {
          constant: true,
          inputs: [],
          name: 'initialized',
          outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [
              { internalType: 'address', name: '', type: 'address' },
              { internalType: 'address', name: '', type: 'address' },
          ],
          name: 'isOracle',
          outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [],
          name: 'isOwner',
          outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [
              { internalType: 'address', name: '', type: 'address' },
              { internalType: 'uint256', name: '', type: 'uint256' },
          ],
          name: 'oracles',
          outputs: [{ internalType: 'address', name: '', type: 'address' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [],
          name: 'owner',
          outputs: [{ internalType: 'address', name: '', type: 'address' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: false,
          inputs: [],
          name: 'renounceOwnership',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: true,
          inputs: [],
          name: 'reportExpirySeconds',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: '', type: 'address' }],
          name: 'tokenReportExpirySeconds',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: false,
          inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],
          name: 'transferOwnership',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: true,
          inputs: [],
          name: 'getVersionNumber',
          outputs: [
              { internalType: 'uint256', name: '', type: 'uint256' },
              { internalType: 'uint256', name: '', type: 'uint256' },
              { internalType: 'uint256', name: '', type: 'uint256' },
              { internalType: 'uint256', name: '', type: 'uint256' },
          ],
          payable: false,
          stateMutability: 'pure',
          type: 'function',
      },
      {
          constant: false,
          inputs: [{ internalType: 'uint256', name: '_reportExpirySeconds', type: 'uint256' }],
          name: 'initialize',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: false,
          inputs: [{ internalType: 'uint256', name: '_reportExpirySeconds', type: 'uint256' }],
          name: 'setReportExpiry',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: false,
          inputs: [
              { internalType: 'address', name: '_token', type: 'address' },
              { internalType: 'uint256', name: '_reportExpirySeconds', type: 'uint256' },
          ],
          name: 'setTokenReportExpiry',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: false,
          inputs: [
              { internalType: 'address', name: 'token', type: 'address' },
              { internalType: 'address', name: 'oracleAddress', type: 'address' },
          ],
          name: 'addOracle',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: false,
          inputs: [
              { internalType: 'address', name: 'token', type: 'address' },
              { internalType: 'address', name: 'oracleAddress', type: 'address' },
              { internalType: 'uint256', name: 'index', type: 'uint256' },
          ],
          name: 'removeOracle',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: false,
          inputs: [
              { internalType: 'address', name: 'token', type: 'address' },
              { internalType: 'uint256', name: 'n', type: 'uint256' },
          ],
          name: 'removeExpiredReports',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'isOldestReportExpired',
          outputs: [
              { internalType: 'bool', name: '', type: 'bool' },
              { internalType: 'address', name: '', type: 'address' },
          ],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: false,
          inputs: [
              { internalType: 'address', name: 'token', type: 'address' },
              { internalType: 'uint256', name: 'value', type: 'uint256' },
              { internalType: 'address', name: 'lesserKey', type: 'address' },
              { internalType: 'address', name: 'greaterKey', type: 'address' },
          ],
          name: 'report',
          outputs: [],
          payable: false,
          stateMutability: 'nonpayable',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'numRates',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'medianRate',
          outputs: [
              { internalType: 'uint256', name: '', type: 'uint256' },
              { internalType: 'uint256', name: '', type: 'uint256' },
          ],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'getRates',
          outputs: [
              { internalType: 'address[]', name: '', type: 'address[]' },
              { internalType: 'uint256[]', name: '', type: 'uint256[]' },
              {
                  internalType: 'enum SortedLinkedListWithMedian.MedianRelation[]',
                  name: '',
                  type: 'uint8[]',
              },
          ],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'numTimestamps',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'medianTimestamp',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'getTimestamps',
          outputs: [
              { internalType: 'address[]', name: '', type: 'address[]' },
              { internalType: 'uint256[]', name: '', type: 'uint256[]' },
              {
                  internalType: 'enum SortedLinkedListWithMedian.MedianRelation[]',
                  name: '',
                  type: 'uint8[]',
              },
          ],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'getOracles',
          outputs: [{ internalType: 'address[]', name: '', type: 'address[]' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
      {
          constant: true,
          inputs: [{ internalType: 'address', name: 'token', type: 'address' }],
          name: 'getTokenReportExpirySeconds',
          outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
          payable: false,
          stateMutability: 'view',
          type: 'function',
      },
  ];
  function newSortedOracles(web3, address) {
      return new web3.eth.Contract(exports.ABI, address);
  }
  exports.newSortedOracles = newSortedOracles;
  //# sourceMappingURL=SortedOracles.js.map