Back to Ccxt

Coinone Fetch Tickers

wiki/examples/js/coinone-fetch-tickers.md

4.5.521.6 KB
Original Source
javascript


import { nice as ansi } from 'ansicolor';
import ololog from 'ololog';
import asTable from 'as-table';

import ccxt from '../../js/ccxt.js';

const { noLocate } = ololog;
const log = noLocate;

const table = asTable.configure ({
       delimiter: ' | '.dim,
       right: true,
   });

const exchange = new ccxt.coinone ({
   'verbose': process.argv.includes ('--verbose'),
})

let printTickersAsTable = function (exchange, tickers) {
   log (exchange.id.green, exchange.iso8601 (exchange.milliseconds ()))
   log ('Fetched', Object.values (tickers).length.toString ().green, 'tickers:')
   log (table (ccxt.sortBy (Object.values (tickers), 'symbol', false)))
}

async function fetchAllAndPrint () {
   const tickers = await exchange.fetchTickers ()
   log ('---------------------------------------- fetchTickers ----------------------------------------')
   printTickersAsTable (exchange, tickers)
}

async function fetchOneByOneAndPrint () {
   const markets = await exchange.loadMarkets ()
   const symbols = Object.keys (markets)
   const tickers = []

   log ('---------------------------------------- fetchTicker (one by one) ----------------------------------------')

   for (let i = 0; i < symbols.length; i++) {
       const ticker = await exchange.fetchTicker (symbols[i])
       tickers.push (ticker)
       log (`${i+1} / ${symbols.length}`)
       log ('\u001b[1A'.repeat (2))  // cursor up
   }

   printTickersAsTable (exchange, tickers)
}

(async () => {
   await fetchAllAndPrint ()
   log ('\n')
   await fetchOneByOneAndPrint ()
}) ()