crypto-wallet-core
Version:
A multi-currency support library for address derivation, private key creation, and transaction creation
210 lines • 13.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const src_1 = require("../src");
describe('Address Validation', () => {
const btcAddress = '1NuKwkDtCymgA1FNLUBaUWLD8s4kdKWvgn';
const btcTestAddress = 'mkUNMewkQsHKRcUvv5HLKbqmepCqNH8goc';
const bchAddress = 'qr8uujscckc56ancdkmqnyyl2rx6pnp24gmdfrf8qd';
const bchTestLegacyAddress = 'mms6yCDGo3fDdapguTSMtCyF9XGfWJpD6H';
const dogeAddress = 'DQnSpKaUdXYZz8Q4WUBCdaGBSthiAJbWBr';
const dogeTestAddress = 'nY525SPsHXVopmUMm1JyReDEop45MSWc3D';
const ltcAddress = 'LYgDcZ3oW3aZBhZUyiC84fb99hyUPVxLwB';
const ltcTestAddress = 'QhpBFbYvLG2bgCZ3D1ztGEUVqmcgY5vjVF';
const ethAddress = '37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const prefixEthAddress = '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const maticAddress = '37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const prefixMaticAddress = '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const xrpAddress = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh';
const solAddress = '7EWwMxKQa5Gru7oTcS1Wi3AaEgTfA6MU3z7MaLUT6hnD';
const btcUri = 'bitcoin:1NuKwkDtCymgA1FNLUBaUWLD8s4kdKWvgn';
const bchUri = 'bitcoincash:pp8skudq3x5hzw8ew7vzsw8tn4k8wxsqsv0lt0mf3g';
const dogeUri = 'dogecoin:DQnSpKaUdXYZz8Q4WUBCdaGBSthiAJbWBr';
const ltcUri = 'litecoin:LYgDcZ3oW3aZBhZUyiC84fb99hyUPVxLwB';
const ethUri = 'ethereum:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const ethUriParams = 'ethereum:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=123&gasPrice=123&gas=123&gasLimit=123';
const ethUriSingleParam = 'ethereum:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=123';
const btcTestUri = 'bitcoin:mkUNMewkQsHKRcUvv5HLKbqmepCqNH8goc';
const bchTestUri = 'bchtest:qq083kgf3wjg7ya8nun36e8nf24g9xgvachahfnyle';
const dogeTestUri = 'dogecoin:mpz836YMHb7Ubjx4G2YnutwQRd1yz5ssNv';
const ltcTestUri = 'litecoin:QhpBFbYvLG2bgCZ3D1ztGEUVqmcgY5vjVF';
const xrpUri = 'ripple:rEqj9WKSH7wEkPvWf6b4gCi26Y3F7HbKUF';
const xrpUriParams = 'ripple:rEqj9WKSH7wEkPvWf6b4gCi26Y3F7HbKUF?amount=123456&dt=123456';
const xrpUriSingleParam = 'ripple:rEqj9WKSH7wEkPvWf6b4gCi26Y3F7HbKUF?amount=123456';
const maticUri = 'matic:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const maticUriParams = 'matic:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=123&gasPrice=123&gas=123&gasLimit=123';
const maticUriSingleParam = 'matic:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=123';
const solUri = 'solana:7EWwMxKQa5Gru7oTcS1Wi3AaEgTfA6MU3z7MaLUT6hnD';
const invalidBtcAddress = '1NuKwkDtCymgA1FNLUBaUWLD8s4kKWvgn';
const invalidBchAddress = 'r8uujscckc56ancdkmqnyyl2rx6pnp24gmdfrf8qd';
const invalidDogeAddress = 'DQnSpKaUdXYZz8Q4WUBCdaGBSthiAJbWB';
const invalidLtcAddress = 'LYgDcZ3oW3aZBhZUyiC84fb99hyUPVxLw';
const invalidEthAddress = '37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08';
const invalidXrpAddress = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTH';
const invalidMaticAddress = '57d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08';
const invalidSolAddress = '7EWwMxKQa5Gru7oTcS1Wi3AaEgTfA6MU3z7MaLUT6hn0';
const invalidEthPrefix = '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const invalidXrpPrefix = 'rEqj9WKSH7wEkPvWf6b4gCi26Y3F7HbKUF';
const invalidMaticPrefix = '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
const invalidEthUriParams = 'ethereum:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=invalid&gasLimit=123&gas=123';
const invalidXrpUriParams = 'ripple:rEqj9WKSH7wEkPvWf6b4gCi26Y3F7HbKUF?amount=invalid&dt=123';
const invalidMaticUriParams = 'matic:0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A?value=invalid&gasLimit=123&gas=123';
const invalidSolUri = 'solana:7EWwMxKQa5Gru7oTcS1Wi3AaEgTfA6MU3z7MaLUT6hn0';
it('should be able to validate an BTC address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('BTC', 'mainnet', btcAddress);
const isValidTestAddress = await src_1.Validation.validateAddress('BTC', 'testnet', btcTestAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidTestAddress).to.equal(true);
});
it('should be able to validate an BCH address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('BCH', 'mainnet', bchAddress);
const isValidTestLegacyAddress = await src_1.Validation.validateAddress('BCH', 'testnet', bchTestLegacyAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidTestLegacyAddress).to.equal(true);
});
it('should be able to validate an DOGE address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('DOGE', 'mainnet', dogeAddress);
const isValidTestAddress = await src_1.Validation.validateAddress('DOGE', 'testnet', dogeTestAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidTestAddress).to.equal(true);
});
it('should be able to validate an LTC address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('LTC', 'mainnet', ltcAddress);
const isValidTestAddress = await src_1.Validation.validateAddress('LTC', 'testnet', ltcTestAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidTestAddress).to.equal(true);
});
it('should be able to validate an ETH address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('ETH', 'mainnet', ethAddress);
const isValidPrefixAddress = await src_1.Validation.validateAddress('ETH', 'mainnet', prefixEthAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidPrefixAddress).to.equal(true);
});
it('should be able to validate an XRP address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('XRP', 'mainnet', xrpAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
});
it('should be able to validate an MATIC address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('MATIC', 'mainnet', maticAddress);
const isValidPrefixAddress = await src_1.Validation.validateAddress('MATIC', 'mainnet', prefixMaticAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
(0, chai_1.expect)(isValidPrefixAddress).to.equal(true);
});
it('should be able to validate an BTC Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('BTC', btcUri);
const isValidTestUri = await src_1.Validation.validateUri('BTC', btcTestUri);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidTestUri).to.equal(true);
});
it('should be able to validate an BCH Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('BCH', bchUri);
const isValidTestUri = await src_1.Validation.validateUri('BCH', bchTestUri);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidTestUri).to.equal(true);
});
it('should be able to validate an DOGE Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('DOGE', dogeUri);
const isValidTestUri = await src_1.Validation.validateUri('DOGE', dogeTestUri);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidTestUri).to.equal(true);
});
it('should be able to validate an LTC Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('LTC', ltcUri);
const isValidTestUri = await src_1.Validation.validateUri('LTC', ltcTestUri);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidTestUri).to.equal(true);
});
it('should be able to validate an ETH Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('ETH', ethUri);
const isValidUriParams = await src_1.Validation.validateUri('ETH', ethUriParams);
const isValidUriSingleParam = await src_1.Validation.validateUri('ETH', ethUriSingleParam);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidUriParams).to.equal(true);
(0, chai_1.expect)(isValidUriSingleParam).to.equal(true);
});
it('should be able to validate an XRP Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('XRP', xrpUri);
const isValidUriParams = await src_1.Validation.validateUri('XRP', xrpUriParams);
const isValidUriSingleParam = await src_1.Validation.validateUri('XRP', xrpUriSingleParam);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidUriParams).to.equal(true);
(0, chai_1.expect)(isValidUriSingleParam).to.equal(true);
});
it('should be able to validate an MATIC Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('MATIC', maticUri);
const isValidUriParams = await src_1.Validation.validateUri('MATIC', maticUriParams);
const isValidUriSingleParam = await src_1.Validation.validateUri('MATIC', maticUriSingleParam);
(0, chai_1.expect)(isValidUri).to.equal(true);
(0, chai_1.expect)(isValidUriParams).to.equal(true);
(0, chai_1.expect)(isValidUriSingleParam).to.equal(true);
});
it('should be able to invalidate an incorrect BTC address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('BTC', 'mainnet', invalidBtcAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect BCH address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('BCH', 'mainnet', invalidBchAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect DOGE address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('DOGE', 'mainnet', invalidDogeAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect LTC address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('LTC', 'mainnet', invalidLtcAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect ETH address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('ETH', 'mainnet', invalidEthAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect XRP address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('XRP', 'mainnet', invalidXrpAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate an incorrect MATIC address', async () => {
const inValidAddress = await src_1.Validation.validateAddress('MATIC', 'mainnet', invalidMaticAddress);
(0, chai_1.expect)(inValidAddress).to.equal(false);
});
it('should be able to invalidate incorrect ETH Uri params', async () => {
const inValidEthUri = await src_1.Validation.validateUri('ETH', invalidEthUriParams);
(0, chai_1.expect)(inValidEthUri).to.equal(false);
});
it('should be able to invalidate ETH URI without ethereum prefix', async () => {
const inValidEthPrefix = await src_1.Validation.validateUri('ETH', invalidEthPrefix);
(0, chai_1.expect)(inValidEthPrefix).to.equal(false);
});
it('should be able to invalidate incorrect XRP Uri params', async () => {
const inValidXrpUri = await src_1.Validation.validateUri('XRP', invalidXrpUriParams);
(0, chai_1.expect)(inValidXrpUri).to.equal(false);
});
it('should be able to invalidate XRP URI without ripple prefix', async () => {
const inValidXrpPrefix = await src_1.Validation.validateUri('XRP', invalidXrpPrefix);
(0, chai_1.expect)(inValidXrpPrefix).to.equal(false);
});
it('should be able to invalidate incorrect MATIC Uri params', async () => {
const inValidMaticUri = await src_1.Validation.validateUri('MATIC', invalidMaticUriParams);
(0, chai_1.expect)(inValidMaticUri).to.equal(false);
});
it('should be able to invalidate MATIC URI without ethereum prefix', async () => {
const inValidMaticPrefix = await src_1.Validation.validateUri('MATIC', invalidMaticPrefix);
(0, chai_1.expect)(inValidMaticPrefix).to.equal(false);
});
it('should be able to validate a SOL address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('SOL', 'mainnet', solAddress);
(0, chai_1.expect)(isValidAddress).to.equal(true);
});
it('should be able to invalidate an incorrect SOL address', async () => {
const isValidAddress = await src_1.Validation.validateAddress('SOL', 'mainnet', invalidSolAddress);
(0, chai_1.expect)(isValidAddress).to.equal(false);
});
it('should be able to validate a SOL Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('SOL', solUri);
(0, chai_1.expect)(isValidUri).to.equal(true);
});
it('should be able to invalidate an incorrect SOL Uri', async () => {
const isValidUri = await src_1.Validation.validateUri('SOL', invalidSolUri);
(0, chai_1.expect)(isValidUri).to.equal(false);
});
});
//# sourceMappingURL=validation.js.map