test-ic-wallet-middleware-common
Version:
Ic middleware wallet common objects
65 lines (64 loc) • 2.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPxlCode = exports.hexToNumber = exports.roundToDecimalN = exports.getUSDfromToken = exports.hexToUint8Array = exports.to32bits = void 0;
const big_integer_1 = __importDefault(require("big-integer"));
const to32bits = (num) => {
const b = new ArrayBuffer(4);
new DataView(b).setUint32(0, num);
return Array.from(new Uint8Array(b));
};
exports.to32bits = to32bits;
const hexToUint8Array = (hex) => {
const zero = (0, big_integer_1.default)(0);
const n256 = (0, big_integer_1.default)(256);
let bigNumber = (0, exports.hexToNumber)(hex);
if (bigNumber) {
const result = new Uint8Array(32);
let i = 0;
while (bigNumber.greater(zero)) {
result[32 - i - 1] = bigNumber.mod(n256).toJSNumber();
bigNumber = bigNumber.divide(n256);
i += 1;
}
return result;
}
else
return new Uint8Array(32);
};
exports.hexToUint8Array = hexToUint8Array;
const getUSDfromToken = (tokenAmount, marketPrice, decimal) => {
return ((Number(tokenAmount) * Number(marketPrice)) / Math.pow(10, Number(decimal))).toFixed(2);
};
exports.getUSDfromToken = getUSDfromToken;
const roundToDecimalN = (numb, decimal) => {
return Math.round(Math.round(Number(numb) * Math.pow(10, Number(decimal))) / Math.pow(10, Number(decimal)));
};
exports.roundToDecimalN = roundToDecimalN;
const hexToNumber = (hexFormat) => {
if (hexFormat.slice(0, 2) !== "0x")
return undefined;
const hex = hexFormat.substring(2);
if (/^[a-fA-F0-9]+$/.test(hex)) {
let numb = (0, big_integer_1.default)();
for (let index = 0; index < hex.length; index++) {
const digit = hex[hex.length - index - 1];
numb = numb.add((0, big_integer_1.default)(16)
.pow((0, big_integer_1.default)(index))
.multiply((0, big_integer_1.default)(`0x${digit}`)));
}
return numb;
}
else {
return undefined;
}
};
exports.hexToNumber = hexToNumber;
const getPxlCode = (prinCode, vtId) => {
const id = BigInt(prinCode).toString(16);
const link = vtId.toString(16);
return (link.length - 1).toString(16) + id + link;
};
exports.getPxlCode = getPxlCode;