bot18
Version:
A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f
71 lines (56 loc) • 1.78 kB
JavaScript
var x256 = require('x256')
/*
* Recursively merge properties of two objects
*/
function MergeRecursive(obj1, obj2) {
if (obj1==null) return obj2
if (obj2==null) return obj1
for (var p in obj2) {
try {
// property in destination object set; update its value
if ( obj2[p].constructor==Object ) {
obj1[p] = MergeRecursive(obj1[p], obj2[p]);
} else {
obj1[p] = obj2[p];
}
} catch(e) {
// property in destination object not set; create it and set its value
obj1[p] = obj2[p];
}
}
return obj1;
}
function getTypeName(thing){
if(thing===null)return "[object Null]"; // special case
return Object.prototype.toString.call(thing);
}
function abbreviateNumber(value) {
var newValue = value;
if (value >= 1000) {
var suffixes = ["", "k", "m", "b","t"];
var suffixNum = Math.floor( (""+value).length/3 );
var shortValue = '';
for (var precision = 2; precision >= 1; precision--) {
shortValue = parseFloat( (suffixNum != 0 ? (value / Math.pow(1000,suffixNum) ) : value).toPrecision(precision));
var dotLessShortValue = (shortValue + '').replace(/[^a-zA-Z 0-9]+/g,'');
if (dotLessShortValue.length <= 2) { break; }
}
if (shortValue % 1 != 0) shortNum = shortValue.toFixed(1);
newValue = shortValue+suffixes[suffixNum];
}
return newValue;
}
function getColorCode(color) {
if (Array.isArray(color) && color.length == 3)
{
return x256(color[0],color[1],color[2]);
}
else
{
return color;
}
}
exports.MergeRecursive = MergeRecursive
exports.getTypeName = getTypeName
exports.abbreviateNumber = abbreviateNumber
exports.getColorCode = getColorCode