IPC removed, replaced by WS

This commit is contained in:
Luis Fernando Molina committed 2020-04-06 08:33:07 +02:00
1 parent ba4217fb24
commit 656c193511
503 files changed
+28128 -34498

No files matched your search

+9 -11
View File
@@ -31,6 +31,7 @@ module.exports =
, index
, ordered: x => x // a stub to keep assoc keys in order (in JS it does nothing, it's mostly for Python)
, unique: x => Array.from (index (x))
, arrayConcat: (a, b) => a.concat (b)
/* ............................................. */
@@ -199,7 +200,7 @@ module.exports =
return out
}
return x
}
@@ -217,22 +218,19 @@ module.exports =
/* ............................................. */
, deepExtend: function deepExtend (...xs) {
let out = undefined
for (const x of xs) {
if (isDictionary (x)) {
if (!isObject (out))
if (!isObject (out)) {
out = {}
for (const k in x)
}
for (const k in x) {
out[k] = deepExtend (out[k], x[k])
} else out = x
}
} else {
out = x
}
}
return out
}
+31 -6
View File
@@ -106,9 +106,13 @@ const decimalToPrecision = (x, roundingMode
/* handle tick size */
if (countingMode === TICK_SIZE) {
const missing = x % numPrecisionDigits
const reminder = x / numPrecisionDigits
if (reminder !== Math.floor (reminder)) {
const precisionDigitsString = decimalToPrecision (numPrecisionDigits, ROUND, 100, DECIMAL_PLACES, NO_PADDING)
const newNumPrecisionDigits = precisionFromString (precisionDigitsString)
let missing = x % numPrecisionDigits
// See: https://github.com/ccxt/ccxt/pull/6486
missing = Number (decimalToPrecision (missing, ROUND, 8, DECIMAL_PLACES, NO_PADDING));
const fpError = decimalToPrecision (missing / numPrecisionDigits, ROUND, Math.max (newNumPrecisionDigits, 8), DECIMAL_PLACES, NO_PADDING)
if (precisionFromString (fpError) !== 0) {
if (roundingMode === ROUND) {
if (x > 0) {
if (missing >= numPrecisionDigits / 2) {
@@ -127,8 +131,6 @@ const decimalToPrecision = (x, roundingMode
x = x - missing
}
}
const precisionDigitsString = decimalToPrecision (numPrecisionDigits, ROUND, 100, DECIMAL_PLACES, NO_PADDING)
const newNumPrecisionDigits = precisionFromString (precisionDigitsString)
return decimalToPrecision (x, ROUND, newNumPrecisionDigits, DECIMAL_PLACES, paddingMode);
}
@@ -282,10 +284,33 @@ const decimalToPrecision = (x, roundingMode
return String.fromCharCode (...out)
}
// toWei / fromWei
function fromWei (amount, decimals = 18) {
if (amount === undefined) {
return amount
}
const exponential = Math.floor (amount).toExponential () // wei must be whole numbers
const [ n, exponent ] = exponential.split ('e')
const newExponent = parseInt (exponent) - decimals
return parseFloat (n + 'e' + newExponent)
}
function toWei (amount, decimals = 18) {
if (amount === undefined) {
return amount
}
const exponential = parseFloat (amount).toExponential ()
const [ n, exponent ] = exponential.split ('e')
const newExponent = parseInt (exponent) + decimals
return numberToString (Math.floor (parseFloat (n + 'e' + newExponent))) // wei must be whole numbers
}
/* ------------------------------------------------------------------------ */
module.exports = {
toWei,
fromWei,
numberToString,
precisionFromString,
decimalToPrecision,
+2 -2
View File
@@ -18,7 +18,7 @@ module.exports = {
const queue = []
return Object.assign ((cost) => {
return Object.assign ((rateLimit, cost) => {
if (queue.length > cfg.maxCapacity)
throw new Error ('Backlog is over max capacity of ' + cfg.maxCapacity)
@@ -46,7 +46,7 @@ module.exports = {
const t = now ()
, elapsed = t - lastTimestamp
lastTimestamp = t
numTokens = Math.min (cfg.capacity, numTokens + elapsed * cfg.refillRate)
numTokens = Math.min (cfg.capacity, numTokens + elapsed * (1 / rateLimit))
await sleep (cfg.delay)
}
running = false
+2
View File
@@ -3,6 +3,7 @@
/* ------------------------------------------------------------------------ */
const isNumber = Number.isFinite
, isInteger = Number.isInteger
, isArray = Array.isArray
, hasProps = o => ((o !== undefined) && (o !== null))
, isString = s => (typeof s === 'string')
@@ -25,6 +26,7 @@ const asFloat = x => ((isNumber (x) || isString (x)) ? parseFloat (x) : Na
module.exports = {
isNumber
, isInteger
, isArray
, isObject
, isString