UNPKG

ripplelib

Version:

A JavaScript API for interacting with Ripple in Node.js and the browser

44 lines (38 loc) 987 B
'use strict'; function normalize(digitArray) { var i = 0; while (digitArray[i] === 0) { ++i; } if (i > 0) { digitArray.splice(0, i); } return digitArray; } function divmod(digitArray, base, divisor) { var remainder = 0; var temp = undefined, divided = undefined; var j = -1; var length = digitArray.length; var quotient = new Array(length); while (++j < length) { temp = remainder * base + digitArray[j]; divided = temp / divisor; quotient[j] = divided << 0; remainder = temp % divisor; } return { quotient: normalize(quotient), remainder: remainder }; } function convertBase(digitArray, fromBase, toBase) { var result = []; var dividend = digitArray, qr = undefined; while (dividend.length > 0) { qr = divmod(dividend, fromBase, toBase); result.unshift(qr.remainder); dividend = qr.quotient; } return normalize(result); } module.exports = convertBase;