UNPKG

crypto-wallet-core

Version:

A multi-currency support library for address derivation, private key creation, and transaction creation

210 lines 13.7 kB
"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