UNPKG

aspernaturet

Version:

A library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs

74 lines (45 loc) 2.38 kB
"use strict"; //----------------------------------------------------------------------------- const [processPath, , exchangeId, methodName, ... params] = process.argv.filter (x => !x.startsWith ('--')) const ccxtFile = process.argv.includes ('--es6') ? 'ccxt.js' : 'build/ccxt.es5.js' const verbose = process.argv.includes ('--verbose') //----------------------------------------------------------------------------- const ccxt = require ('../../ccxt.js') const fs = require ('fs') const asTable = require ('as-table') const util = require ('util') const log = require ('ololog').configure ({ locate: false }) //----------------------------------------------------------------------------- require ('ansicolor').nice; //----------------------------------------------------------------------------- process.on ('uncaughtException', e => { log.bright.red.error (e); process.exit (1) }) process.on ('unhandledRejection', e => { log.bright.red.error (e); process.exit (1) }) //----------------------------------------------------------------------------- const exchange = new (ccxt)[exchangeId] ({ verbose }) //----------------------------------------------------------------------------- let apiKeys = JSON.parse (fs.readFileSync ('./keys.json', 'utf8'))[exchangeId] Object.assign (exchange, apiKeys) //----------------------------------------------------------------------------- let printSupportedExchanges = function () { log ('Supported exchanges:', ccxt.exchanges.join (', ').green) } //----------------------------------------------------------------------------- function printUsage () { log ('This is an example of a basic command-line interface to all exchanges') log ('Usage: node', process.argv[1], 'id'.green, 'method'.yellow, '"param1" param2 "param3" param4 ...'.blue) printSupportedExchanges () } //----------------------------------------------------------------------------- async function main () { const requirements = exchangeId && methodName if (!requirements) { printUsage () } else { let args = params.map (param => param.match (/[a-zA-Z]/g) ? param : parseFloat (param)) console.log (await exchange[methodName] (... args)) } process.exit () } //----------------------------------------------------------------------------- main ()