keystore_wdc
Version:
``` npm i keystore_wdc; const KeyStore = require('keystore_wdc'); const ks = new KeyStore(); ``` #### 生成keystore ``` async function create(){ const keystore = await ks.Create("your password"); } ``` * 返回keystore,密码格式不正确返回-1。
86 lines • 3.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Base58 = exports.Base = void 0;
/**
* base58 编码工具
* @param {string} ALPHABET
*/
var utils_1 = require("./utils");
var Base = /** @class */ (function () {
function Base(ALPHABET) {
this.ALPHABET_MAP = {};
this.BASE = ALPHABET.length;
this.LEADER = ALPHABET.charAt(0);
// pre-compute lookup table
for (var z = 0; z < ALPHABET.length; z++) {
var x = ALPHABET.charAt(z);
if (this.ALPHABET_MAP[x] !== undefined)
throw new TypeError(x + ' is ambiguous');
this.ALPHABET_MAP[x] = z;
}
this.ALPHABET = ALPHABET;
}
Base.prototype.encode = function (src) {
var source = utils_1.hex2bin(src);
if (source.length === 0)
return '';
var digits = [0];
for (var i = 0; i < source.length; ++i) {
var carry = source[i];
for (var j = 0; j < digits.length; ++j) {
carry += digits[j] << 8;
digits[j] = carry % this.BASE;
carry = (carry / this.BASE) | 0;
}
while (carry > 0) {
digits.push(carry % this.BASE);
carry = (carry / this.BASE) | 0;
}
}
var string = '';
// deal with leading zeros
for (var k = 0; source[k] === 0 && k < source.length - 1; ++k)
string += this.LEADER;
// convert digits to a string
for (var q = digits.length - 1; q >= 0; --q)
string += this.ALPHABET[digits[q]];
return string;
};
Base.prototype.decodeUnsafe = function (str) {
if (typeof str !== 'string')
throw new TypeError('Expected String');
if (str.length === 0)
return new Uint8Array(0);
var bytes = [0];
for (var i = 0; i < str.length; i++) {
var value = this.ALPHABET_MAP[str[i]];
if (value === undefined)
throw new Error("invalid char " + str[i]);
var carry = value;
for (var j = 0; j < bytes.length; ++j) {
carry += bytes[j] * this.BASE;
bytes[j] = carry & 0xff;
carry >>= 8;
}
while (carry > 0) {
bytes.push(carry & 0xff);
carry >>= 8;
}
}
// deal with leading zeros
for (var k = 0; str[k] === this.LEADER && k < str.length - 1; ++k) {
bytes.push(0);
}
return new Uint8Array(bytes.reverse());
};
Base.prototype.decode = function (str) {
var buffer = this.decodeUnsafe(str);
if (buffer)
return buffer;
throw new Error('Non-base' + this.BASE + ' character');
};
return Base;
}());
exports.Base = Base;
exports.Base58 = new Base('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
//# sourceMappingURL=base58.js.map