From fa15b26792922e8319a61f94e8a51db709b07e20 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Dominguez Date: Fri, 31 Aug 2018 18:36:40 +0900 Subject: [PATCH 1/3] Update bitcoin-uri.service.js Add the conversion to satoshi however a currency can be precised, in that case, the satoshi conversion should be not operated. --- src/js/services/bitcoin-uri.service.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/services/bitcoin-uri.service.js b/src/js/services/bitcoin-uri.service.js index 7d5cef2ba..e5aaacbc2 100644 --- a/src/js/services/bitcoin-uri.service.js +++ b/src/js/services/bitcoin-uri.service.js @@ -205,8 +205,8 @@ switch(key) { case 'amount': var amount = parseFloat(decodedValue); - if (amount) { // Checking for NaN, or no numbers at all etc. - parsed.amount = decodedValue; + if (amount) { // Checking for NaN, or no numbers at all etc. & convert to satoshi + parsed.amount = decodedValue * 100000000; // Need to check if a currency is precised } else { return parsed; } @@ -342,4 +342,4 @@ } -})(); \ No newline at end of file +})(); From 48b8bbf90a70b4d4abe0ee569e284cfedc20427d Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 3 Sep 2018 12:53:12 +1200 Subject: [PATCH 2/3] Added amountSatoshis. --- src/js/services/bitcoin-uri.service.js | 13 ++++++++++++- src/js/services/bitcoin-uri.service.spec.js | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/js/services/bitcoin-uri.service.js b/src/js/services/bitcoin-uri.service.js index e5aaacbc2..3a504d25d 100644 --- a/src/js/services/bitcoin-uri.service.js +++ b/src/js/services/bitcoin-uri.service.js @@ -84,6 +84,14 @@ return result; } + function infoFromImport(data) { + var split = data.split('|'); + // Copay seems to use extra parameter for coin. + if (split.length < 5 || split.length > 6) { + return null; + } + + } /* For parsing: @@ -93,6 +101,7 @@ returns: { amount: '', + amountSatoshis: 0, bareUrl: '', coin: '', copayInvitation: '', @@ -206,7 +215,8 @@ case 'amount': var amount = parseFloat(decodedValue); if (amount) { // Checking for NaN, or no numbers at all etc. & convert to satoshi - parsed.amount = decodedValue * 100000000; // Need to check if a currency is precised + parsed.amount = decodedValue; // Need to check if a currency is precised + parsed.amountSatoshis = amount * 100000000 } else { return parsed; } @@ -252,6 +262,7 @@ var copayInvitationRe = /^[0-9A-HJ-NP-Za-km-z]{70,80}$/; //var legacyRe = /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/; //var legacyTestnetRe = /^[mn][a-km-zA-HJ-NP-Z1-9]{25,34}$/; + var importRe = /^[123]|$/; var privateKeyEncryptedRe = /^6P[1-9A-HJ-NP-Za-km-z]{56}$/; var privateKeyForUncompressedPublicKeyRe = /^5[1-9A-HJ-NP-Za-km-z]{50}$/; var privateKeyForUncompressedPublicKeyTestnetRe = /^9[1-9A-HJ-NP-Za-km-z]{50}$/; diff --git a/src/js/services/bitcoin-uri.service.spec.js b/src/js/services/bitcoin-uri.service.spec.js index 44ba2056d..17be90ab8 100644 --- a/src/js/services/bitcoin-uri.service.spec.js +++ b/src/js/services/bitcoin-uri.service.spec.js @@ -1,4 +1,4 @@ -fdescribe('bitcoinUriService', function() { +describe('bitcoinUriService', function() { var bitcoinUriService; beforeEach(function() { @@ -113,6 +113,7 @@ fdescribe('bitcoinUriService', function() { expect(parsed.isValid).toBe(true); expect(parsed.amount).toBe('20.3'); + expect(parsed.amountSatoshis).toBe(2030000000); expect(parsed.coin).toBe('btc'); expect(parsed.label).toBe('Luke-Jr'); expect(parsed.publicAddress.legacy).toBe('12nCRhMDfxVnuF3uYMXv2fNxBohNmacfWu'); From f84b1e4f35f0e39ff765de089614e3fc40d20cc8 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 3 Sep 2018 13:02:28 +1200 Subject: [PATCH 3/3] Changed name to amountInSatoshis. --- src/js/services/bitcoin-uri.service.js | 4 ++-- src/js/services/bitcoin-uri.service.spec.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/services/bitcoin-uri.service.js b/src/js/services/bitcoin-uri.service.js index 3a504d25d..c20c98b93 100644 --- a/src/js/services/bitcoin-uri.service.js +++ b/src/js/services/bitcoin-uri.service.js @@ -101,7 +101,7 @@ returns: { amount: '', - amountSatoshis: 0, + amountInSatoshis: 0, bareUrl: '', coin: '', copayInvitation: '', @@ -216,7 +216,7 @@ var amount = parseFloat(decodedValue); if (amount) { // Checking for NaN, or no numbers at all etc. & convert to satoshi parsed.amount = decodedValue; // Need to check if a currency is precised - parsed.amountSatoshis = amount * 100000000 + parsed.amountInSatoshis = amount * 100000000 } else { return parsed; } diff --git a/src/js/services/bitcoin-uri.service.spec.js b/src/js/services/bitcoin-uri.service.spec.js index 17be90ab8..032255373 100644 --- a/src/js/services/bitcoin-uri.service.spec.js +++ b/src/js/services/bitcoin-uri.service.spec.js @@ -113,7 +113,7 @@ describe('bitcoinUriService', function() { expect(parsed.isValid).toBe(true); expect(parsed.amount).toBe('20.3'); - expect(parsed.amountSatoshis).toBe(2030000000); + expect(parsed.amountInSatoshis).toBe(2030000000); expect(parsed.coin).toBe('btc'); expect(parsed.label).toBe('Luke-Jr'); expect(parsed.publicAddress.legacy).toBe('12nCRhMDfxVnuF3uYMXv2fNxBohNmacfWu');