Skip to content

Commit

Permalink
Merge pull request #1207 from kaloudis/unified-address-parsing
Browse files Browse the repository at this point in the history
Unified Address parsing: handle uppercase param names
  • Loading branch information
kaloudis authored Dec 20, 2022
2 parents 39e89c3 + 026fa47 commit 6e5eaf2
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 4 deletions.
26 changes: 26 additions & 0 deletions utils/AddressUtils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,32 @@ describe('AddressUtils', () => {
amount: '1000'
});
});

it('processes BIP21 invoices - with lightning param in all caps', () => {
expect(
AddressUtils.processSendAddress(
'bitcoin:BC1QYLH3U67J673H6Y6ALV70M0PL2YZ53TZHVXGG7U?amount=0.00001&label=sbddesign%3A%20For%20lunch%20Tuesday&message=For%20lunch%20Tuesday&LIGHTNING=LNBC10U1P3PJ257PP5YZTKWJCZ5FTL5LAXKAV23ZMZEKAW37ZK6KMV80PK4XAEV5QHTZ7QDPDWD3XGER9WD5KWM36YPRX7U3QD36KUCMGYP282ETNV3SHJCQZPGXQYZ5VQSP5USYC4LK9CHSFP53KVCNVQ456GANH60D89REYKDNGSMTJ6YW3NHVQ9QYYSSQJCEWM5CJWZ4A6RFJX77C490YCED6PEMK0UPKXHY89CMM7SCT66K8GNEANWYKZGDRWRFJE69H9U5U0W57RRCSYSAS7GADWMZXC8C6T0SPJAZUP6&test=haha'
)
).toEqual({
value: 'BC1QYLH3U67J673H6Y6ALV70M0PL2YZ53TZHVXGG7U',
lightning:
'LNBC10U1P3PJ257PP5YZTKWJCZ5FTL5LAXKAV23ZMZEKAW37ZK6KMV80PK4XAEV5QHTZ7QDPDWD3XGER9WD5KWM36YPRX7U3QD36KUCMGYP282ETNV3SHJCQZPGXQYZ5VQSP5USYC4LK9CHSFP53KVCNVQ456GANH60D89REYKDNGSMTJ6YW3NHVQ9QYYSSQJCEWM5CJWZ4A6RFJX77C490YCED6PEMK0UPKXHY89CMM7SCT66K8GNEANWYKZGDRWRFJE69H9U5U0W57RRCSYSAS7GADWMZXC8C6T0SPJAZUP6',
amount: '1000'
});
});

it('processes BIP21 invoices - with amount param in all caps', () => {
expect(
AddressUtils.processSendAddress(
'bitcoin:BC1QYLH3U67J673H6Y6ALV70M0PL2YZ53TZHVXGG7U?AMOUNT=0.00001&label=sbddesign%3A%20For%20lunch%20Tuesday&message=For%20lunch%20Tuesday&LIGHTNING=LNBC10U1P3PJ257PP5YZTKWJCZ5FTL5LAXKAV23ZMZEKAW37ZK6KMV80PK4XAEV5QHTZ7QDPDWD3XGER9WD5KWM36YPRX7U3QD36KUCMGYP282ETNV3SHJCQZPGXQYZ5VQSP5USYC4LK9CHSFP53KVCNVQ456GANH60D89REYKDNGSMTJ6YW3NHVQ9QYYSSQJCEWM5CJWZ4A6RFJX77C490YCED6PEMK0UPKXHY89CMM7SCT66K8GNEANWYKZGDRWRFJE69H9U5U0W57RRCSYSAS7GADWMZXC8C6T0SPJAZUP6&test=haha'
)
).toEqual({
value: 'BC1QYLH3U67J673H6Y6ALV70M0PL2YZ53TZHVXGG7U',
lightning:
'LNBC10U1P3PJ257PP5YZTKWJCZ5FTL5LAXKAV23ZMZEKAW37ZK6KMV80PK4XAEV5QHTZ7QDPDWD3XGER9WD5KWM36YPRX7U3QD36KUCMGYP282ETNV3SHJCQZPGXQYZ5VQSP5USYC4LK9CHSFP53KVCNVQ456GANH60D89REYKDNGSMTJ6YW3NHVQ9QYYSSQJCEWM5CJWZ4A6RFJX77C490YCED6PEMK0UPKXHY89CMM7SCT66K8GNEANWYKZGDRWRFJE69H9U5U0W57RRCSYSAS7GADWMZXC8C6T0SPJAZUP6',
amount: '1000'
});
});
});

describe('isValidLNDHubAddress', () => {
Expand Down
10 changes: 6 additions & 4 deletions utils/AddressUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,15 @@ const bitcoinQrParser = (input: string, prefix: string) => {
});

const value = btcAddress;
if (result.amount) {
amount = new BigNumber(result.amount).multipliedBy(SATS_PER_BTC);
if (result.amount || result.AMOUNT) {
amount = new BigNumber(result.amount || result.AMOUNT).multipliedBy(
SATS_PER_BTC
);
amount = amount.toString();
}

if (result.lightning) {
lightning = result.lightning;
if (result.lightning || result.LIGHTNING) {
lightning = result.lightning || result.LIGHTNING;
}

return [value, amount, lightning];
Expand Down
4 changes: 4 additions & 0 deletions utils/handleAnything.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ const handleAnything = async (
lightning
) {
if (isClipboardValue) return true;
if (!RESTUtils.supportsOnchainSends()) {
invoicesStore.getPayReq(lightning);
return ['PaymentRequest', {}];
}
return [
'Accounts',
{
Expand Down

0 comments on commit 6e5eaf2

Please sign in to comment.