PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/eosjs-ecc/lib
Просмотр файла: common.test.js
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
/* eslint-env mocha */
var assert = require('assert');
var ecc = require('.');
var wif = '5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss';
describe('Common API', function () {
it('unsafeRandomKey',
/*#__PURE__*/
(0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee() {
var pvt;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return ecc.unsafeRandomKey();
case 2:
pvt = _context.sent;
assert.equal((0, _typeof2["default"])(pvt), 'string', 'pvt');
assert(/^5[HJK]/.test(wif)); // assert(/^PVT_K1_/.test(pvt)) // todo
case 5:
case "end":
return _context.stop();
}
}
}, _callee);
})));
it('seedPrivate', function () {
assert.equal(ecc.seedPrivate(''), wif); // assert.equal(ecc.seedPrivate(''), 'PVT_K1_2jH3nnhxhR3zPUcsKaWWZC9ZmZAnKm3GAnFD1xynGJE1Znuvjd')
});
it('privateToPublic', function () {
// const pub = 'PUB_K1_859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2Ht7beeX'
var pub = 'EOS859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVM';
assert.equal(ecc.privateToPublic(wif), pub);
});
it('isValidPublic', function () {
var keys = [[true, 'PUB_K1_859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2Ht7beeX'], [true, 'EOS859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVM'], [false, 'MMM859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVM'], [false, 'EOS859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVm', 'EOS'], [true, 'PUB859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVM', 'PUB'], [false, 'PUB859gxfnXyUriMgUeThh1fWv3oqcpLFyHa3TfFYC4PK2HqhToVm', 'PUB']];
for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
var key = _keys[_i];
var _key = (0, _slicedToArray2["default"])(key, 3),
valid = _key[0],
pubkey = _key[1],
prefix = _key[2];
assert.equal(valid, ecc.isValidPublic(pubkey, prefix), pubkey);
}
});
it('isValidPrivate', function () {
var keys = [[true, '5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss'], [false, '5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjsm']];
for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {
var key = _keys2[_i2];
assert.equal(key[0], ecc.isValidPrivate(key[1]), key[1]);
}
});
it('hashs', function () {
var hashes = [// ['sha1', 'da39a3ee5e6b4b0d3255bfef95601890afd80709'],
['sha256', 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855']];
for (var _i3 = 0, _hashes = hashes; _i3 < _hashes.length; _i3++) {
var hash = _hashes[_i3];
assert.equal(ecc[hash[0]](''), hash[1]);
assert.equal(ecc[hash[0]](Buffer.from('')), hash[1]);
}
});
it('signatures', function () {
var pvt = ecc.seedPrivate('');
var pubkey = ecc.privateToPublic(pvt);
var data = 'hi';
var dataSha256 = ecc.sha256(data);
var sigs = [ecc.sign(data, pvt), ecc.signHash(dataSha256, pvt)];
for (var _i4 = 0, _sigs = sigs; _i4 < _sigs.length; _i4++) {
var sig = _sigs[_i4];
assert(ecc.verify(sig, data, pubkey), 'verify data');
assert(ecc.verifyHash(sig, dataSha256, pubkey), 'verify hash');
assert.equal(pubkey, ecc.recover(sig, data), 'recover from data');
assert.equal(pubkey, ecc.recoverHash(sig, dataSha256), 'recover from hash');
}
});
});
describe('Common API (initialized)', function () {
it('initialize', function () {
return ecc.initialize();
});
it('randomKey', function () {
var cpuEntropyBits = 1;
ecc.key_utils.addEntropy(1, 2, 3);
var pvt = ecc.unsafeRandomKey().then(function (pvt) {
assert.equal((0, _typeof2["default"])(pvt), 'string', 'pvt');
assert(/^5[HJK]/.test(wif)); // assert(/^PVT_K1_/.test(pvt))
});
});
});Выполнить команду
Для локальной разработки. Не используйте в интернете!