drop old base58 functions.

This commit is contained in:
Christopher Jeffrey 2016-04-01 06:36:55 -07:00
parent e17e36d1a0
commit bbf7748fbe

View File

@ -124,53 +124,9 @@ var unbase58 = base58.split('').reduce(function(out, ch, i) {
return out;
}, {});
utils.toBase58 = function toBase58(arr) {
var n = new bn(arr, 16);
// 58 ^ 4
var mod = new bn(0xacad10);
var res = '';
var r, end, i, c;
do {
r = n.mod(mod);
n = n.div(mod);
end = n.cmpn(0) === 0;
assert.equal(r.length, 1);
r = r.words[0];
for (i = 0; i < 4; i++) {
c = r % 58;
r = (r - c) / 58;
if (c === 0 && r === 0 && end)
break;
res = base58[c] + res;
}
assert.equal(r, 0);
} while (!end);
// Add leading "zeroes"
for (i = 0; i < arr.length; i++) {
if (arr[i] !== 0)
break;
res = '1' + res;
}
//utils.print(res);
//utils.print(utils.toBase582(arr));
// assert(utils.toBase582(arr) === res);
return res;
};
// Ported from:
// https://github.com/bitcoin/bitcoin/blob/master/src/base58.cpp
utils.toBase582 = function toBase582(buf) {
utils.toBase58 = function toBase58(buf) {
var zeroes = 0;
var length = 0;
var str = '';
@ -213,7 +169,7 @@ utils.toBase582 = function toBase582(buf) {
return str;
};
utils.fromBase582 = function fromBase58(str) {
utils.fromBase58 = function fromBase58(str) {
var zeroes = 0;
var i = 0;
var b256, ch, carry, j, out;
@ -257,45 +213,6 @@ utils.fromBase582 = function fromBase58(str) {
return out;
};
utils.fromBase58 = function fromBase58(str) {
var i, zeroes, q, w, res, c, z;
// Count leading "zeroes"
for (i = 0; i < str.length; i++)
if (str[i] !== '1')
break;
zeroes = i;
// Read 4-char words and add them to bignum
q = 1;
w = 0;
res = new bn(0);
for (i = zeroes; i < str.length; i++) {
c = unbase58[str[i]];
if (!(c >= 0 && c < 58))
return new Buffer([]);
q *= 58;
w *= 58;
w += c;
if (i === str.length - 1 || q === 0xacad10) {
res = res.mul(new bn(q)).add(new bn(w));
q = 1;
w = 0;
}
}
// Add leading "zeroes"
z = [];
for (i = 0; i < zeroes; i++)
z.push(0);
var ret = new Buffer(z.concat(res.toArray()));
// assert(utils.isEqual(ret, utils.fromBase582(str)));
return ret;
};
utils.isBase58 = function isBase58(msg) {
return typeof msg === 'string' && /^[1-9a-zA-Z]+$/.test(msg);
};