Bitcoin cash uppercase.
This commit is contained in:
parent
e8005c9ea6
commit
c2cca3c080
2 changed files with 12 additions and 45 deletions
|
|
@ -97,49 +97,6 @@
|
|||
return result;
|
||||
}
|
||||
|
||||
function isValidCashAddr(address, network) {
|
||||
|
||||
var a = address.replace('bitcoincash:', '');
|
||||
var result = {};
|
||||
if (a[0] == '1') {
|
||||
result = Address.fromString(a, 'livenet', 'pubkeyhash');
|
||||
} else if (a[0] == '3') {
|
||||
result = Address.fromString(a, 'livenet', 'scripthash');
|
||||
} else if (a[0] == 'C') {
|
||||
result = Address.fromString(a, 'livenet', 'pubkeyhash', BitpayFormat);
|
||||
} else if (a[0] == 'H') {
|
||||
result = Address.fromString(a, 'livenet', 'scripthash', BitpayFormat);
|
||||
} else if (a[0] == 'q') {
|
||||
result = Address.fromString(address, 'livenet', 'pubkeyhash', CashAddrFormat);
|
||||
} else if (a[0] == 'p') {
|
||||
result = Address.fromString(address, 'livenet', 'scripthash', CashAddrFormat);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
var isValid = false;
|
||||
|
||||
var prefix = network === 'testnet' ? 'bchtest:' : 'bitcoincash:';
|
||||
|
||||
try {
|
||||
if (cashAddrRe.test(address)) {
|
||||
// bitcoinCashJs.Address.isValid() assumes legacy address for string data, so does not work with cashaddr.
|
||||
var bchAddresses = bitcoinCashJsService.readAddress(address.toLowerCase());
|
||||
if (bchAddresses) {
|
||||
var legacyAddress = bchAddresses.legacy;
|
||||
if (bch.Address.isValid(legacyAddress, network)) {
|
||||
isValid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// Nop - Must not be a valid cashAddr.
|
||||
$log.error('Error validating address.', e);
|
||||
}
|
||||
console.log(address,'isValidCashAddr:', isValid);
|
||||
return isValid;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
For parsing:
|
||||
|
|
@ -170,7 +127,7 @@
|
|||
// Need to do testnet, and copay too
|
||||
|
||||
*/
|
||||
// bitcoincash:?r=https://bitpay.com/i/GLRoZMZxaWBqLqpoXexzoD
|
||||
|
||||
function parse(uri) {
|
||||
var parsed = {
|
||||
isValid: false
|
||||
|
|
|
|||
|
|
@ -162,10 +162,20 @@ fdescribe('bitcoinUriService', function() {
|
|||
expect(parsed.testnet).toBe(true);
|
||||
});
|
||||
|
||||
it('cashAddr uppercase', function() {
|
||||
|
||||
var parsed = bitcoinUriService.parse('BITCOINCASH:QZZG9NMC5VX8GAP6XFATX3TWNSDN2YRMCSSULSMY44');
|
||||
|
||||
expect(parsed.isValid).toBe(true);
|
||||
expect(parsed.address).toBe('qzzg9nmc5vx8gap6xfatx3twnsdn2yrmcssulsmy44');
|
||||
expect(parsed.coin).toBe('bch');
|
||||
expect(parsed.legacyAddress).toBe('1D5euC1yUbHiNpXreQrUUYt7LNevD3cviR');
|
||||
expect(parsed.testnet).toBe(false);
|
||||
});
|
||||
|
||||
it('cashAddr with prefix', function() {
|
||||
|
||||
var parsed = bitcoinUriService.parse('bitcoincash:qrq9p82a247lecv08ldk5p5h6ahtnjzpqcnh8yhq92');
|
||||
console.log('parsed:', JSON.stringify(parsed));
|
||||
|
||||
expect(parsed.isValid).toBe(true);
|
||||
expect(parsed.address).toBe('qrq9p82a247lecv08ldk5p5h6ahtnjzpqcnh8yhq92');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue