Bug Fixes
This commit is contained in:
1 parent
82bc086e92
commit
b1af6e078c
131 files changed
+8597
-1930
No files matched your search
+61
@@ -0,0 +1,61 @@
|
||||
'use strict'
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
const log = require ('ololog')
|
||||
, chai = require ('chai')
|
||||
, assert = chai.assert
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
module.exports = (exchange, balance, method) => {
|
||||
|
||||
let currencies = [
|
||||
'USD',
|
||||
'CNY',
|
||||
'EUR',
|
||||
'BTC',
|
||||
'ETH',
|
||||
'JPY',
|
||||
'LTC',
|
||||
'DASH',
|
||||
'DOGE',
|
||||
'UAH',
|
||||
'RUB',
|
||||
'XRP',
|
||||
]
|
||||
|
||||
// log.yellow (balance)
|
||||
|
||||
assert (typeof balance['total'] === 'object')
|
||||
assert (typeof balance['free'] === 'object')
|
||||
assert (typeof balance['used'] === 'object')
|
||||
|
||||
for (let currency of Object.keys (balance['total'])) {
|
||||
let total = balance['total'][currency]
|
||||
let free = balance['free'][currency]
|
||||
let used = balance['used'][currency]
|
||||
if (total !== undefined && free !== undefined && used !== undefined) {
|
||||
assert (total === free + used, 'free and used do not sum to total ' + exchange.id)
|
||||
}
|
||||
}
|
||||
|
||||
let result = currencies
|
||||
.filter (currency => (currency in balance) &&
|
||||
(balance[currency]['total'] !== undefined))
|
||||
|
||||
if (result.length > 0) {
|
||||
result = result.map (currency => currency + ': ' + balance[currency]['total'])
|
||||
if (exchange.currencies.length > result.length)
|
||||
result = result.join (', ') + ' + more...'
|
||||
else
|
||||
result = result.join (', ')
|
||||
|
||||
} else {
|
||||
|
||||
result = 'zero balance'
|
||||
}
|
||||
|
||||
log (result)
|
||||
|
||||
}
|
||||
+7
-62
@@ -2,15 +2,12 @@
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
const log = require ('ololog')
|
||||
, ansi = require ('ansicolor').nice
|
||||
, chai = require ('chai')
|
||||
, expect = chai.expect
|
||||
, assert = chai.assert
|
||||
const log = require ('ololog')
|
||||
, testBalance = require ('./test.balance.js')
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
module.exports = async (exchange, symbol) => {
|
||||
module.exports = async (exchange) => {
|
||||
|
||||
if (!(exchange.has.fetchBalance)) {
|
||||
log (exchange.id.green, ' does not have fetchBalance')
|
||||
@@ -19,61 +16,9 @@ module.exports = async (exchange, symbol) => {
|
||||
|
||||
log ('fetching balance...')
|
||||
|
||||
let balance = await exchange.fetchBalance ()
|
||||
const response = await exchange.fetchBalance ()
|
||||
|
||||
let currencies = [
|
||||
'USD',
|
||||
'CNY',
|
||||
'EUR',
|
||||
'BTC',
|
||||
'ETH',
|
||||
'JPY',
|
||||
'LTC',
|
||||
'DASH',
|
||||
'DOGE',
|
||||
'UAH',
|
||||
'RUB',
|
||||
'XRP',
|
||||
]
|
||||
testBalance (exchange, response)
|
||||
|
||||
// log.yellow (balance)
|
||||
|
||||
assert (typeof balance['total'] === 'object')
|
||||
assert (typeof balance['free'] === 'object')
|
||||
assert (typeof balance['used'] === 'object')
|
||||
|
||||
if ('info' in balance) {
|
||||
for (let currency of Object.keys (balance['total'])) {
|
||||
let total = balance['total'][currency]
|
||||
let free = balance['free'][currency]
|
||||
let used = balance['used'][currency]
|
||||
if (total !== undefined && free !== undefined && used !== undefined) {
|
||||
assert (total === free + used, 'free and used do not sum to total ' + exchange.id)
|
||||
}
|
||||
}
|
||||
|
||||
let result = currencies
|
||||
.filter (currency => (currency in balance) &&
|
||||
(balance[currency]['total'] !== undefined))
|
||||
|
||||
if (result.length > 0) {
|
||||
result = result.map (currency => currency + ': ' + balance[currency]['total'])
|
||||
if (exchange.currencies.length > result.length)
|
||||
result = result.join (', ') + ' + more...'
|
||||
else
|
||||
result = result.join (', ')
|
||||
|
||||
} else {
|
||||
|
||||
result = 'zero balance'
|
||||
}
|
||||
|
||||
log (result)
|
||||
|
||||
} else {
|
||||
|
||||
log (exchange.omit (balance, 'info'))
|
||||
}
|
||||
|
||||
return balance
|
||||
return response
|
||||
}
|
||||
+1
@@ -14,6 +14,7 @@ const log = require ('ololog')
|
||||
module.exports = async (exchange, symbol) => {
|
||||
|
||||
const skippedExchanges = [
|
||||
'btcalpha', // issue with 404 on a documented endpoint https://travis-ci.org/ccxt/ccxt/builds/643930431#L2213
|
||||
'bitmex', // an issue with null values,to be resolved later
|
||||
'cex',
|
||||
'okex',
|
||||
|
||||
+3
-5
@@ -17,11 +17,9 @@ const printOrderBookOneLiner = (orderbook, method, symbol) => {
|
||||
|
||||
log (symbol.toString ().green,
|
||||
method,
|
||||
orderbook['datetime'],
|
||||
'bid: ' + ((bids.length > 0) ? bids[0][0] : 'N/A'),
|
||||
'bidVolume: ' + ((bids.length > 0) ? bids[0][1] : 'N/A'),
|
||||
'ask: ' + ((asks.length > 0) ? asks[0][0] : 'N/A'),
|
||||
'askVolume: ' + ((asks.length > 0) ? asks[0][1] : 'N/A'))
|
||||
orderbook['nonce'] || orderbook['datetime'],
|
||||
bids.length, 'bids:', bids[0],
|
||||
asks.length, 'asks:', asks[0])
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ module.exports = (exchange, ticker, method, symbol) => {
|
||||
assert (!('first' in ticker), '`first` field leftover in ' + exchange.id)
|
||||
assert (ticker['last'] === ticker['close'], '`last` != `close` in ' + exchange.id)
|
||||
|
||||
// log (ticker)
|
||||
log (ticker['datetime'], exchange.id, method, ticker['symbol'].green, ticker['last'])
|
||||
|
||||
keys.forEach (key => assert (key in ticker))
|
||||
|
||||
|
||||
+3
@@ -29,6 +29,9 @@ assert (exchange.parse8601 ('1986-04-26T01:23:47.000Z') === 514862627000);
|
||||
assert (exchange.parse8601 ('1986-04-26T01:23:47.559Z') === 514862627559);
|
||||
assert (exchange.parse8601 ('1986-04-26T01:23:47.062Z') === 514862627062);
|
||||
|
||||
assert (exchange.parse8601 ('1986-04-26T01:23:47.06Z') === 514862627060);
|
||||
assert (exchange.parse8601 ('1986-04-26T01:23:47.6Z') === 514862627600);
|
||||
|
||||
assert (exchange.parse8601 ('1977-13-13T00:00:00.000Z') === undefined);
|
||||
assert (exchange.parse8601 ('1986-04-26T25:71:47.000Z') === undefined);
|
||||
|
||||
|
||||
+2
@@ -134,6 +134,8 @@ assert (decimalToPrecision ('0.098765', ROUND, 1, SIGNIFICANT_DIGITS, PAD_WITH_Z
|
||||
assert (decimalToPrecision ('0', ROUND, 0, SIGNIFICANT_DIGITS) === '0');
|
||||
assert (decimalToPrecision ('-0.123', ROUND, 0, SIGNIFICANT_DIGITS) === '0');
|
||||
|
||||
assert (decimalToPrecision ('0.00000044', ROUND, 5, SIGNIFICANT_DIGITS) === '0.00000044');
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// testDecimalToPrecisionRoundingToTickSize
|
||||
|
||||
|
||||
+3
-8
@@ -9,13 +9,11 @@ const debug = process.argv.includes ('--debug') || false
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
const asTable = require ('as-table')
|
||||
, util = require ('util')
|
||||
, log = require ('ololog')
|
||||
, ansi = require ('ansicolor').nice
|
||||
, fs = require ('fs')
|
||||
, ccxt = require ('../../ccxt.js')
|
||||
, chai = require ('chai')
|
||||
, expect = chai.expect
|
||||
, assert = chai.assert
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
@@ -82,14 +80,12 @@ Object.keys (errors)
|
||||
const keysGlobal = 'keys.json'
|
||||
const keysLocal = 'keys.local.json'
|
||||
|
||||
let keysFile = fs.existsSync (keysLocal) ? keysLocal : keysGlobal
|
||||
const keysFile = fs.existsSync (keysLocal) ? keysLocal : keysGlobal
|
||||
// eslint-disable-next-line import/no-dynamic-require
|
||||
let settings = require (__dirname + '/../../' + keysFile)[exchangeId]
|
||||
const settings = require (__dirname + '/../../' + keysFile)[exchangeId]
|
||||
|
||||
if (settings) {
|
||||
const keys = Object.keys (settings)
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
const key = keys[i]
|
||||
for (const key in settings) {
|
||||
if (settings[key]) {
|
||||
settings[key] = ccxt.deepExtend (exchange[key] || {}, settings[key])
|
||||
}
|
||||
@@ -224,7 +220,6 @@ let testExchange = async exchange => {
|
||||
|
||||
await loadExchange (exchange)
|
||||
|
||||
let delay = exchange.rateLimit
|
||||
let symbol = exchange.symbols[0]
|
||||
const symbols = [
|
||||
'BTC/USD',
|
||||
|
||||
Reference in new issue
Block a user