Handling all cash URI addresses formats at the same time.

This commit is contained in:
Brendon Duncan 2018-08-29 18:27:58 +12:00
commit 6d48572f28

View file

@ -168,16 +168,10 @@ angular.module('copayApp.services').factory('incomingData', function(bitcoinUriS
} }
return true; return true;
// Cash URI // Cash URI
} else if (allParsed.isValid && allParsed.publicAddress && (allParsed.publicAddress.cashAddr || allParsed.publicAddress.bitpay)) { } else if (allParsed.isValid && allParsed.coin === 'bch' && allParsed.publicAddress) {
var coin = 'bch';
var prefix = allParsed.testnet ? 'bchtest:' : 'bitcoincash:'; var prefix = allParsed.testnet ? 'bchtest:' : 'bitcoincash:';
var addrIn = prefix + allParsed.publicAddress.cashAddr; var addrIn = allParsed.publicAddress.legacy || allParsed.publicAddress.bitpay || prefix + allParsed.publicAddress.cashAddr;
originalAddress = allParsed.publicAddress.cashAddr ? null : allParsed.publicAddress.legacy || allParsed.publicAddress.bitpay;
if (allParsed.publicAddress.bitpay) {
addrIn = allParsed.publicAddress.bitpay;
originalAddress = allParsed.publicAddress.bitpay;
}
addr = bitcoinCashJsService.readAddress(addrIn).legacy; addr = bitcoinCashJsService.readAddress(addrIn).legacy;
var message = allParsed.message; var message = allParsed.message;
@ -186,17 +180,17 @@ angular.module('copayApp.services').factory('incomingData', function(bitcoinUriS
// paypro not yet supported on cash // paypro not yet supported on cash
if (allParsed.url) { if (allParsed.url) {
payproService.getPayProDetails(allParsed.url, coin, function(err, details) { payproService.getPayProDetails(allParsed.url, allParsed.coin, function(err, details) {
if (err) { if (err) {
if (addr && amount) if (addr && amount)
goSend(addr, amount, message, coin, serviceId, serviceData); goSend(addr, amount, message, allParsed.coin, serviceId, serviceData);
else else
popupService.showAlert(gettextCatalog.getString('Error'), err); popupService.showAlert(gettextCatalog.getString('Error'), err);
} }
handlePayPro(details, coin); handlePayPro(details, allParsed.coin);
}); });
} else { } else {
goSend(addr, amount, message, coin, serviceId, serviceData); goSend(addr, amount, message, allParsed.coin, serviceId, serviceData);
} }
return true; return true;