Bug fix: convert values
Fixed: Max value not resolved properly when availability is less than configured max value
This commit is contained in:
parent
65c0d3c91f
commit
64527259d9
@ -50,7 +50,7 @@ function getSinkID(type, quantity, asset, sinkList = null) {
|
|||||||
sinkList = keys.sink_chest.list(SINK_GROUP[type]).map(s => [s, s in balance_cache ? balance_cache[s][asset] || 0 : 0]) //TODO: improve sorting
|
sinkList = keys.sink_chest.list(SINK_GROUP[type]).map(s => [s, s in balance_cache ? balance_cache[s][asset] || 0 : 0]) //TODO: improve sorting
|
||||||
.sort((a, b) => b[1] - a[1]).map(x => x[0]);
|
.sort((a, b) => b[1] - a[1]).map(x => x[0]);
|
||||||
if (!sinkList.length)
|
if (!sinkList.length)
|
||||||
return reject(`Insufficient balance in chests for asset(${asset})`);
|
return reject(`Insufficient balance for asset(${asset}) in chest(${SINK_GROUP[type]})`);
|
||||||
let sinkID = sinkList.shift();
|
let sinkID = sinkList.shift();
|
||||||
getBalance(sinkID, asset).then(balance => {
|
getBalance(sinkID, asset).then(balance => {
|
||||||
if (!(sinkID in balance_cache))
|
if (!(sinkID in balance_cache))
|
||||||
|
|||||||
@ -107,21 +107,21 @@ function getConvertValues() {
|
|||||||
getPoolAvailability("BTC").then(avail => {
|
getPoolAvailability("BTC").then(avail => {
|
||||||
let result = {};
|
let result = {};
|
||||||
if (avail.coin > 0) {
|
if (avail.coin > 0) {
|
||||||
let coin_availability = avail.coin * avail.rate; //convert to currency value
|
let coin_availability = global.toStandardDecimal(avail.coin * avail.rate); //convert to currency value
|
||||||
if (Array.isArray(TO_FIXED_VALUES) && TO_FIXED_VALUES.length)
|
if (Array.isArray(TO_FIXED_VALUES) && TO_FIXED_VALUES.length)
|
||||||
result[pCode.CONVERT_MODE_GET] = TO_FIXED_VALUES.filter(a => a < coin_availability);
|
result[pCode.CONVERT_MODE_GET] = TO_FIXED_VALUES.filter(a => a < coin_availability);
|
||||||
else if (!TO_MIN_VALUE || TO_MIN_VALUE <= coin_availability) {
|
else if (!TO_MIN_VALUE || TO_MIN_VALUE <= coin_availability) {
|
||||||
result[pCode.CONVERT_MODE_GET] = { min: 0 };
|
result[pCode.CONVERT_MODE_GET] = { min: 0 };
|
||||||
result[pCode.CONVERT_MODE_GET].max = (!TO_MAX_VALUE || TO_MIN_VALUE >= coin_availability) ? coin_availability : TO_MAX_VALUE;
|
result[pCode.CONVERT_MODE_GET].max = (!TO_MAX_VALUE || TO_MAX_VALUE >= coin_availability) ? coin_availability : TO_MAX_VALUE;
|
||||||
}
|
}
|
||||||
} else result[pCode.CONVERT_MODE_GET] = null;
|
} else result[pCode.CONVERT_MODE_GET] = null;
|
||||||
if (avail.cash > 0) {
|
if (avail.cash > 0) {
|
||||||
let cash_availability = avail.cash / avail.rate; //convert to coin value
|
let cash_availability = global.toStandardDecimal(avail.cash / avail.rate); //convert to coin value
|
||||||
if (Array.isArray(FROM_FIXED_VALUES) && FROM_FIXED_VALUES.length)
|
if (Array.isArray(FROM_FIXED_VALUES) && FROM_FIXED_VALUES.length)
|
||||||
result[pCode.CONVERT_MODE_PUT] = FROM_FIXED_VALUES.filter(a => a < cash_availability);
|
result[pCode.CONVERT_MODE_PUT] = FROM_FIXED_VALUES.filter(a => a < cash_availability);
|
||||||
else if (!FROM_MIN_VALUE || FROM_MIN_VALUE <= cash_availability) {
|
else if (!FROM_MIN_VALUE || FROM_MIN_VALUE <= cash_availability) {
|
||||||
result[pCode.CONVERT_MODE_PUT] = { min: 0 };
|
result[pCode.CONVERT_MODE_PUT] = { min: 0 };
|
||||||
result[pCode.CONVERT_MODE_PUT].max = (!FROM_MAX_VALUE || FROM_MIN_VALUE >= cash_availability) ? cash_availability : FROM_MAX_VALUE;
|
result[pCode.CONVERT_MODE_PUT].max = (!FROM_MAX_VALUE || FROM_MAX_VALUE >= cash_availability) ? cash_availability : FROM_MAX_VALUE;
|
||||||
}
|
}
|
||||||
} else result[pCode.CONVERT_MODE_PUT] = null;
|
} else result[pCode.CONVERT_MODE_PUT] = null;
|
||||||
resolve(result)
|
resolve(result)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user