clean up base58.
This commit is contained in:
parent
42e12f312f
commit
e17e36d1a0
@ -173,18 +173,23 @@ utils.toBase58 = function toBase58(arr) {
|
|||||||
utils.toBase582 = function toBase582(buf) {
|
utils.toBase582 = function toBase582(buf) {
|
||||||
var zeroes = 0;
|
var zeroes = 0;
|
||||||
var length = 0;
|
var length = 0;
|
||||||
for (var i = 0; i < buf.length; i++) {
|
var str = '';
|
||||||
|
var i, size, b58, carry, j, k;
|
||||||
|
|
||||||
|
for (i = 0; i < buf.length; i++) {
|
||||||
if (buf[i] !== 0)
|
if (buf[i] !== 0)
|
||||||
break;
|
break;
|
||||||
zeroes++;
|
zeroes++;
|
||||||
}
|
}
|
||||||
var size = ((buf.length * 138 / 100) | 0) + 1;
|
|
||||||
var b58 = new Buffer(size);
|
size = ((buf.length * 138 / 100) | 0) + 1;
|
||||||
|
b58 = new Buffer(size);
|
||||||
b58.fill(0);
|
b58.fill(0);
|
||||||
|
|
||||||
for (; i < buf.length; i++) {
|
for (; i < buf.length; i++) {
|
||||||
var carry = buf[i];
|
carry = buf[i];
|
||||||
var j = 0;
|
j = 0;
|
||||||
for (var k = b58.length - 1; k >= 0; k--, j++) {
|
for (k = b58.length - 1; k >= 0; k--, j++) {
|
||||||
if (carry === 0 && j >= length)
|
if (carry === 0 && j >= length)
|
||||||
break;
|
break;
|
||||||
carry += 256 * b58[k];
|
carry += 256 * b58[k];
|
||||||
@ -194,50 +199,62 @@ utils.toBase582 = function toBase582(buf) {
|
|||||||
assert(carry === 0);
|
assert(carry === 0);
|
||||||
length = j;
|
length = j;
|
||||||
}
|
}
|
||||||
var i = size - length;
|
|
||||||
|
i = size - length;
|
||||||
while (b58[i] === 0)
|
while (b58[i] === 0)
|
||||||
i++;
|
i++;
|
||||||
var str = '';
|
|
||||||
for (j = 0; j < zeroes; j++)
|
for (j = 0; j < zeroes; j++)
|
||||||
str += '1';
|
str += '1';
|
||||||
|
|
||||||
for (; i < b58.length; i++)
|
for (; i < b58.length; i++)
|
||||||
str += base58[b58[i]];
|
str += base58[b58[i]];
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.fromBase582 = function fromBase58(str) {
|
utils.fromBase582 = function fromBase58(str) {
|
||||||
var zeroes = 0;
|
var zeroes = 0;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
while (str[i] === '1') {
|
var b256, ch, carry, j, out;
|
||||||
|
|
||||||
|
for (i = 0; i < str.length; i++) {
|
||||||
|
if (str[i] !== '1')
|
||||||
|
break;
|
||||||
zeroes++;
|
zeroes++;
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
var b256 = new Buffer(((str.length * 733) / 1000 | 0) + 1);
|
|
||||||
|
b256 = new Buffer(((str.length * 733) / 1000 | 0) + 1);
|
||||||
b256.fill(0);
|
b256.fill(0);
|
||||||
while (str[i]) {
|
|
||||||
var ch = unbase58[str[i]];
|
for (; i < str.length; i++) {
|
||||||
|
ch = unbase58[str[i]];
|
||||||
if (ch == null)
|
if (ch == null)
|
||||||
return;
|
return new Buffer([]);
|
||||||
var carry = ch;
|
|
||||||
for (var j = b256.length - 1; j >= 0; j--) {
|
carry = ch;
|
||||||
|
for (j = b256.length - 1; j >= 0; j--) {
|
||||||
carry += 58 * b256[j];
|
carry += 58 * b256[j];
|
||||||
b256[j] = carry % 256;
|
b256[j] = carry % 256;
|
||||||
carry = carry / 256 | 0;
|
carry = carry / 256 | 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(carry === 0);
|
assert(carry === 0);
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
if (str[i] != null)
|
|
||||||
return;
|
|
||||||
i = 0;
|
i = 0;
|
||||||
while (b256[i] === 0)
|
while (b256[i] === 0)
|
||||||
i++;
|
i++;
|
||||||
var vch = new Buffer(zeroes + (b256.length - i));
|
|
||||||
|
out = new Buffer(zeroes + (b256.length - i));
|
||||||
|
|
||||||
for (j = 0; j < zeroes; j++)
|
for (j = 0; j < zeroes; j++)
|
||||||
vch[j] = 0;
|
out[j] = 0;
|
||||||
|
|
||||||
for (; i < b256.length; i++)
|
for (; i < b256.length; i++)
|
||||||
vch[i] = b256[i];
|
out[i] = b256[i];
|
||||||
return vch;
|
|
||||||
|
return out;
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.fromBase58 = function fromBase58(str) {
|
utils.fromBase58 = function fromBase58(str) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user