@bcpros/crypto-wallet-core
Version:
A multi-currency support library for address derivation, private key creation, and transaction creation
107 lines • 7.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var chai_1 = require("chai");
var src_1 = require("../src");
describe('Address Derivation', function () {
it('should be able to generate a valid BTC address', function () {
var xPub = 'xpub6A4DRTebM6TS5f6cUt5YAxKXikhDZd6ANwbyomHhFFkjJApdAwnADvMRfimdaKXf1xk1LTrPuRo7eGCGYARApdytZ18SqoUv6MTYtbCx4Xv';
var path = src_1.Deriver.pathFor('BTC', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/0'/0'");
var address = src_1.Deriver.deriveAddress('BTC', 'mainnet', xPub, 0, false);
var expectedAddress = '1EDh8HXc2jwbyDPLEyDDnYea48f2D8z3ER';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid BCH address', function () {
var xPub = 'xpub6BM8E3eh3homN5uvHh12P4HQEP1QrXCuCA32JRgTTeR7Y7ChML4iV12TfSVV3KHnCGPB1kkDU26EnDHYqw3Koab2a2GjxHQuUVXE3fvcpek';
var path = src_1.Deriver.pathFor('BCH', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/145'/0'");
var address = src_1.Deriver.deriveAddress('BCH', 'mainnet', xPub, 0, false);
var expectedAddress = 'qzltyqgzd3hvj7fvfdymzk6e47zrrczvzc9y37nnrr';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid DOGE address', function () {
var xPub = 'tpubDCs1d9wgHkn2LYY8KrWozaUwG7a3XSkiaGtn8isiNWmLhepenSdqgH1JCMwCLW9eeRZW37D14tpBjxvb3rjkMzak4ub1qHyF4tLbQDNXZ8K';
var path = src_1.Deriver.pathFor('DOGE', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/3'/0'");
var address = src_1.Deriver.deriveAddress('DOGE', 'mainnet', xPub, 0, false);
var expectedAddress = 'DQnSpKaUdXYZz8Q4WUBCdaGBSthiAJbWBr';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid LTC address', function () {
var xPub = 'tpubDCetVaW8PG7S6SuLjRGmmyVA4QtXyXTUsqXySaC4WV44igJ3aJNQgYedjL1FX12a1tDctnh3kRPybKTMUjdi9mzUm4wJF3GNSjf8GwDUHpp';
var path = src_1.Deriver.pathFor('LTC', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/2'/0'");
var address = src_1.Deriver.deriveAddress('LTC', 'mainnet', xPub, 0, false);
var expectedAddress = 'LYgDcZ3oW3aZBhZUyiC84fb99hyUPVxLwB';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid ETH address', function () {
var xPub = 'xpub6D8rChqkgFuaZULuq2n6VrS4zB5Cmv24gcRc889dFRRgYAH1CGQmQZ9kcPfMAfWGPnyMd1X5foBYFmJ5ZPfvwhm6tXjaY13ao1rQHRtkKDv';
var path = src_1.Deriver.pathFor('ETH', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/60'/0'");
var address = src_1.Deriver.deriveAddress('ETH', 'mainnet', xPub, 0, false);
var expectedAddress = '0x9dbfE221A6EEa27a0e2f52961B339e95426931F9';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid XRP address', function () {
var xPub = 'xpub6J8BBe8QHMMiVQK1F8hLpRKnmkwNTa7tkg753KWjkafzcxfWVFBMkpbPjfY9Fz4bgSvn6jiUYg1ivpeF5HjE6jvrdHm6Se7HKgEAjPFGFfr';
var path = src_1.Deriver.pathFor('XRP', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/144'/0'");
var address = src_1.Deriver.deriveAddress('XRP', 'mainnet', xPub, 0, false);
var expectedAddress = 'r9dmAJBfBe7JL2RRLiFWGJ8kM4CHEeTpgN';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid MATIC address', function () {
var xPub = 'xpub6D8rChqkgFuaZULuq2n6VrS4zB5Cmv24gcRc889dFRRgYAH1CGQmQZ9kcPfMAfWGPnyMd1X5foBYFmJ5ZPfvwhm6tXjaY13ao1rQHRtkKDv';
var path = src_1.Deriver.pathFor('MATIC', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/60'/0'");
var address = src_1.Deriver.deriveAddress('MATIC', 'mainnet', xPub, 0, false);
var expectedAddress = '0x9dbfE221A6EEa27a0e2f52961B339e95426931F9';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid ETH address, privKey, pubKey', function () {
var privKey = 'xprv9ypBjKErGMqCdzd44hfSdy1Vk6PGtU3si8ogZcow7rA23HTxMi9XfT99EKmiNdLMr9BAZ9S8ZKCYfN1eCmzYSmXYHje1jnYQseV1VJDDfdS';
var path = src_1.Deriver.pathFor('ETH', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/60'/0'");
var result = src_1.Deriver.derivePrivateKey('ETH', 'mainnet', privKey, 0, false);
var expectedResult = {
address: '0xb497281830dE4F19a3482AbF3D5C35c514e6fB36',
privKey: '62b8311c71f355c5c07f6bffe9b1ae60aa20d90e2e2ec93ec11b6014b2ae6340',
pubKey: '0386d153aad9395924631dbc78fa560107123a759eaa3e105958248c60cd4472ad'
};
(0, chai_1.expect)(result.address).to.equal(expectedResult.address);
(0, chai_1.expect)(result.privKey).to.equal(expectedResult.privKey);
(0, chai_1.expect)(result.pubKey).to.equal(expectedResult.pubKey);
});
it('should be able to generate a valid XRP address, privKey, pubKey', function () {
var privKey = 'xprvA58pn8bWSyoRGvEY97ALTHP4Dj6t47Q3PTBUEw78CF91kALMwhs7D2GutQSvpRN6ACR4RX4HbF3KmF7zDf48gR8nwG7DqLp6ezUcMiPHDtV';
var path = src_1.Deriver.pathFor('XRP', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/144'/0'");
var result = src_1.Deriver.derivePrivateKey('XRP', 'mainnet', privKey, 0, false);
var expectedResult = {
address: 'r9dmAJBfBe7JL2RRLiFWGJ8kM4CHEeTpgN',
privKey: 'd02c6801d8f328ff2ead51d01f9580af36c8d74e2bd463963ac4adbe51ae5f2c',
pubKey: '03dbeec5e9e76da09c5b502a67136bc2d73423e8902a7c35a8cbc0c5a6ac0469e8'
};
(0, chai_1.expect)(result.address).to.equal(expectedResult.address);
(0, chai_1.expect)(result.privKey).to.equal(expectedResult.privKey.toUpperCase());
(0, chai_1.expect)(result.pubKey).to.equal(expectedResult.pubKey.toUpperCase());
});
it('should be able to generate a valid XPI address', function () {
var xPub = 'xpub6D8rChqkgFuaZULuq2n6VrS4zB5Cmv24gcRc889dFRRgYAH1CGQmQZ9kcPfMAfWGPnyMd1X5foBYFmJ5ZPfvwhm6tXjaY13ao1rQHRtkKDv';
var path = src_1.Deriver.pathFor('XPI', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/10605'/0'");
var address = src_1.Deriver.deriveAddress('XPI', 'mainnet', xPub, 0, false);
var expectedAddress = 'lotus_16PSJKPkEQBaJvbbViTqyfwiM4C1y7QMM4jj4VDgP';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
it('should be able to generate a valid XEC address', function () {
var xPub = 'xpub6D8rChqkgFuaZULuq2n6VrS4zB5Cmv24gcRc889dFRRgYAH1CGQmQZ9kcPfMAfWGPnyMd1X5foBYFmJ5ZPfvwhm6tXjaY13ao1rQHRtkKDv';
var path = src_1.Deriver.pathFor('XEC', 'mainnet');
(0, chai_1.expect)(path).to.equal("m/44'/899'/0'");
var address = src_1.Deriver.deriveAddress('XEC', 'mainnet', xPub, 0, false);
var expectedAddress = 'qp98kjdc22329k0a8hvvtexaqtuhygm94saq45dkx4';
(0, chai_1.expect)(address).to.equal(expectedAddress);
});
});
//# sourceMappingURL=address.js.map