Browse Source

FIX: Handle BitPay BIP70 scenarios where schema isnt present.

transactionselectrum
Marcos Rodriguez Vélez 6 years ago
committed by Igor Korsakov
parent
commit
68854034d2
  1. 11
      bip70/bip70.js

11
bip70/bip70.js

@ -20,9 +20,14 @@ export default class BitcoinBIP70TransactionDecode {
static decode(data) { static decode(data) {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
try { try {
const url = data.match(/bitcoin:\?r=https?:\/\/\S+/gi); let url;
if (data.match(/bitcoin:\?r=https?:\/\/\S+/gi)) {
url = data.toString().split('bitcoin:?r=')[1];
} else if (data.startsWith('https://bitpay.com/i/') || data.startsWith('https://www.bitpay.com/i/')) {
url = data.toString();
}
const api = new Frisbee({ const api = new Frisbee({
baseURI: url.toString().split('bitcoin:?r=')[1], baseURI: url,
headers: { headers: {
Accept: 'application/payment-request', Accept: 'application/payment-request',
}, },
@ -69,6 +74,6 @@ export default class BitcoinBIP70TransactionDecode {
} }
static matchesPaymentURL(data) { static matchesPaymentURL(data) {
return data !== null && data.match(/bitcoin:\?r=https?:\/\/\S+/gi) !== null; return data !== null && (data.match(/bitcoin:\?r=https?:\/\/\S+/gi) !== null || data.startsWith('https://bitpay.com/i/') || data.startsWith('https://www.bitpay.com/i/'));
} }
} }

Loading…
Cancel
Save