| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- // Generated by IcedCoffeeScript 1.7.1-c
- (function() {
- var BaseX, BigInteger, base32, base58, buffer_to_ui8a, nbi, nbs, nbv, _ref;
- _ref = require('bn'), nbv = _ref.nbv, nbi = _ref.nbi, BigInteger = _ref.BigInteger;
- nbs = require('./bn').nbs;
- buffer_to_ui8a = require('./util').buffer_to_ui8a;
- BaseX = (function() {
- function BaseX(alphabet) {
- var a, i, _i, _len, _ref1;
- this.alphabet = alphabet;
- this.base = this.alphabet.length;
- this.basebn = nbv(this.base);
- this.lookup = {};
- _ref1 = this.alphabet;
- for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) {
- a = _ref1[i];
- this.lookup[a] = i;
- }
- }
- BaseX.prototype.encode = function(buffer) {
- var c, chars, num, pad, q, r, _i, _len;
- num = nbi().fromBuffer(buffer);
- chars = (function() {
- var _ref1, _results;
- _results = [];
- while (num.compareTo(BigInteger.ZERO) > 0) {
- _ref1 = num.divideAndRemainder(this.basebn), q = _ref1[0], r = _ref1[1];
- c = this.alphabet[r.intValue()];
- num = q;
- _results.push(c);
- }
- return _results;
- }).call(this);
- chars.reverse();
- pad = [];
- for (_i = 0, _len = buffer.length; _i < _len; _i++) {
- c = buffer[_i];
- if (c === 0) {
- pad.push(this.alphabet[0]);
- } else {
- break;
- }
- }
- return (pad.concat(chars)).join('');
- };
- BaseX.prototype.decode = function(str) {
- var base, c, char_index, i, num, pad, start, _i, _j, _len, _ref1;
- num = BigInteger.ZERO;
- base = BigInteger.ONE;
- i = 0;
- for (i = _i = 0, _len = str.length; _i < _len; i = ++_i) {
- c = str[i];
- if (c !== this.alphabet[0]) {
- break;
- }
- }
- start = i;
- pad = new Buffer((function() {
- var _j, _results;
- _results = [];
- for (i = _j = 0; 0 <= start ? _j < start : _j > start; i = 0 <= start ? ++_j : --_j) {
- _results.push(0);
- }
- return _results;
- })());
- _ref1 = str.slice(start);
- for (i = _j = _ref1.length - 1; _j >= 0; i = _j += -1) {
- c = _ref1[i];
- if ((char_index = this.lookup[c]) == null) {
- throw new Error('Value passed is not a valid BaseX string.');
- }
- num = num.add(base.multiply(nbv(char_index)));
- base = base.multiply(this.basebn);
- }
- return Buffer.concat([pad, new Buffer(num.toByteArray())]);
- };
- return BaseX;
- })();
- exports.base58 = base58 = new BaseX('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
- exports.base32 = base32 = new BaseX('abcdefghijkmnpqrstuvwxyz23456789');
- exports.base91 = new BaseX("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+{}[]|;:,<>./?");
- }).call(this);
|