Now handles spaces after address prefix.

This commit is contained in:
Brendon Duncan 2018-08-30 20:20:51 +12:00
commit 6a68d73e3a
2 changed files with 35 additions and 4 deletions

View file

@ -144,24 +144,24 @@
var preColonLower = colonSplit[1].toLowerCase(); var preColonLower = colonSplit[1].toLowerCase();
if (preColonLower === 'bitcoin') { if (preColonLower === 'bitcoin') {
parsed.coin = 'btc'; parsed.coin = 'btc';
addressAndParams = colonSplit[2]; addressAndParams = colonSplit[2].trim();
console.log('Is btc'); console.log('Is btc');
} else if (/^(?:bitcoincash)|(?:bitcoin-cash)$/.test(preColonLower)) { } else if (/^(?:bitcoincash)|(?:bitcoin-cash)$/.test(preColonLower)) {
parsed.coin = 'bch'; parsed.coin = 'bch';
parsed.test = false; parsed.test = false;
addressAndParams = colonSplit[2]; addressAndParams = colonSplit[2].trim();
console.log('Is bch'); console.log('Is bch');
} else if (/^(?:bchtest)$/.test(preColonLower)) { } else if (/^(?:bchtest)$/.test(preColonLower)) {
parsed.coin = 'bch'; parsed.coin = 'bch';
parsed.testnet = true; parsed.testnet = true;
addressAndParams = colonSplit[2]; addressAndParams = colonSplit[2].trim();
console.log('Is bch'); console.log('Is bch');
} else if (colonSplit[2] === '') { } else if (colonSplit[2] === '') {
// No colon and no coin specifier. // No colon and no coin specifier.
addressAndParams = colonSplit[1]; addressAndParams = colonSplit[1].trim();
console.log('No prefix.'); console.log('No prefix.');
} else if (/^https?$/.test(colonSplit[1])) { } else if (/^https?$/.test(colonSplit[1])) {

View file

@ -140,6 +140,16 @@ fdescribe('bitcoinUriService', function() {
expect(parsed.testnet).toBe(false); expect(parsed.testnet).toBe(false);
}); });
it('Bitcoin uri with space', function() {
var parsed = bitcoinUriService.parse('bitcoin: 19cPoKU5ZazY8NkLEsxK7drBqJnpGkax3d');
expect(parsed.isValid).toBe(true);
expect(parsed.coin).toBe('btc');
expect(parsed.publicAddress.legacy).toBe('19cPoKU5ZazY8NkLEsxK7drBqJnpGkax3d');
expect(parsed.testnet).toBe(false);
});
it('Bitpay without prefix', function() { it('Bitpay without prefix', function() {
var parsed = bitcoinUriService.parse('CJoRov8TirekvajiimQpb5Hk95evA7H2Yz'); var parsed = bitcoinUriService.parse('CJoRov8TirekvajiimQpb5Hk95evA7H2Yz');
@ -220,6 +230,27 @@ fdescribe('bitcoinUriService', function() {
expect(parsed.testnet).toBe(false); expect(parsed.testnet).toBe(false);
}); });
it('cashAddr with space', function() {
var parsed = bitcoinUriService.parse('bitcoincash: qpar9ldle8z6alcwgclejdhc24ha2xrg0szs5802ce');
expect(parsed.isValid).toBe(true);
expect(parsed.coin).toBe('bch');
expect(parsed.publicAddress.cashAddr).toBe('qpar9ldle8z6alcwgclejdhc24ha2xrg0szs5802ce');
expect(parsed.testnet).toBe(false);
});
it('cashAddr with space on testnet', function() {
var parsed = bitcoinUriService.parse('bchtest: qqjxkmtaxk4nv6w9h5ht2fjcj9c7ruh0fu7cnxsx5j');
expect(parsed.isValid).toBe(true);
expect(parsed.coin).toBe('bch');
expect(parsed.publicAddress.cashAddr).toBe('qqjxkmtaxk4nv6w9h5ht2fjcj9c7ruh0fu7cnxsx5j');
expect(parsed.testnet).toBe(true);
});
it('cashAddr without prefix', function() { it('cashAddr without prefix', function() {
var parsed = bitcoinUriService.parse('qqen2y3l28dpk0dzsag8w027ds96u7z4pc0uxtl0nq'); var parsed = bitcoinUriService.parse('qqen2y3l28dpk0dzsag8w027ds96u7z4pc0uxtl0nq');