From 140036f00686c8f9fc513688959d184929246ad6 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 28 Aug 2020 18:59:53 +0300 Subject: [PATCH 01/11] fix file hash --- public/views/walletHome.html | 8 ++++++-- src/js/controllers/index.js | 2 +- src/js/controllers/walletHome.js | 21 +++++++++++++++++---- src/js/services/fileSystem.js | 2 +- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index 7dda3c26d..ec457a704 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -565,6 +565,8 @@

Add fields + + @@ -724,8 +726,10 @@

{{(assetIndexSelectorValue == -5 ? 'Add answer' : 'Add fields')|translate}} - - +
+ + +
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 3fd7df55a..8a03cbc9f 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1904,7 +1904,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r })(); document.addEventListener('click', function(e){ - let inside = e.target.closest('.custom-dropdown'); + var inside = e.target.closest('.custom-dropdown'); if (!inside) $rootScope.$emit("closeAssetDropDown"); }); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 1aea3880e..a7f6f6ece 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -2437,14 +2437,27 @@ angular.module('copayApp.controllers') self.setSendError("cannot read the file whose hash is going to be posted"); return; } - const hash = require("crypto") + var hash = require("crypto") .createHash("sha256") .update(data) .digest("hex"); - home.feedvaluespairs.push({ - name: home.attachedFile.name, - value: hash, + var added = false; + home.feedvaluespairs.forEach(function(pair, i) { + if (added) return; + if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { + home.feedvaluespairs[i] = { + name: home.attachedFile.name, + value: hash, + }; + added = true; + } }); + if (!added) { + home.feedvaluespairs.push({ + name: home.attachedFile.name, + value: hash, + }); + } $scope.$apply(); }); }; diff --git a/src/js/services/fileSystem.js b/src/js/services/fileSystem.js index 12b759a2f..0630717b3 100644 --- a/src/js/services/fileSystem.js +++ b/src/js/services/fileSystem.js @@ -122,7 +122,7 @@ angular.module('copayApp.services') //on mobile, big files can crash the application, we write data by chunk to prevent this issue function writeByChunks(writer, data, handle) { var written = 0; - const BLOCK_SIZE = 1*1024*1024; // write 1M every time of write + var BLOCK_SIZE = 1*1024*1024; // write 1M every time of write function writeNext(cbFinish) { var chunkSize = Math.min(BLOCK_SIZE, data.byteLength - written); var dataChunk = data.slice(written, written + chunkSize); From 4be313d508c29e8d87cb3ad307df6bac62deb15d Mon Sep 17 00:00:00 2001 From: Tarmo Date: Sat, 29 Aug 2020 03:00:09 +0300 Subject: [PATCH 02/11] fix --- public/views/preferencesInformation.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/views/preferencesInformation.html b/public/views/preferencesInformation.html index 97011d0f4..9552c90e9 100644 --- a/public/views/preferencesInformation.html +++ b/public/views/preferencesInformation.html @@ -109,7 +109,7 @@

Balance By Address

{{key}}
-
+
{{row.amount}} Send this From dabb80f021908945e6e1be068d369e641148469e Mon Sep 17 00:00:00 2001 From: Tarmo Date: Mon, 21 Sep 2020 04:49:48 +0300 Subject: [PATCH 03/11] no file hash for data feeds --- public/views/walletHome.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index d9505f07a..2f72566a8 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -745,7 +745,7 @@

{{(assetIndexSelectorValue == -5 ? 'Add answer' : 'Add fields')|translate}} -
+
From 6a035fec98a359807ba1c62039884ee5b8133eec Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 15:57:48 +0300 Subject: [PATCH 04/11] fix merge conflicts --- public/views/walletHome.html | 20 ++++++++++++++------ src/js/controllers/index.js | 2 +- src/js/controllers/walletHome.js | 4 ++-- src/js/services/fileSystem.js | 2 +- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index 2f72566a8..5c95d7ebf 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -584,8 +584,12 @@

Add fields - - +
+ + {{home.oldAndroidFileName}} +
+ +

@@ -745,10 +749,14 @@

{{(assetIndexSelectorValue == -5 ? 'Add answer' : 'Add fields')|translate}} -
- - -
+
+
+ + {{home.oldAndroidFileName}} +
+ + +

diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 35eeb941c..1bd725a41 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1916,7 +1916,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r })(); document.addEventListener('click', function(e){ - var inside = e.target.closest('.custom-dropdown'); + let inside = e.target.closest('.custom-dropdown'); if (!inside) $rootScope.$emit("closeAssetDropDown"); }); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index b6a515f75..c92b9cef1 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -2438,11 +2438,11 @@ angular.module('copayApp.controllers') self.setSendError("cannot read the file whose hash is going to be posted"); return; } - var hash = require("crypto") + const hash = require("crypto") .createHash("sha256") .update(data) .digest("hex"); - var added = false; + let added = false; home.feedvaluespairs.forEach(function(pair, i) { if (added) return; if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { diff --git a/src/js/services/fileSystem.js b/src/js/services/fileSystem.js index 0630717b3..12b759a2f 100644 --- a/src/js/services/fileSystem.js +++ b/src/js/services/fileSystem.js @@ -122,7 +122,7 @@ angular.module('copayApp.services') //on mobile, big files can crash the application, we write data by chunk to prevent this issue function writeByChunks(writer, data, handle) { var written = 0; - var BLOCK_SIZE = 1*1024*1024; // write 1M every time of write + const BLOCK_SIZE = 1*1024*1024; // write 1M every time of write function writeNext(cbFinish) { var chunkSize = Math.min(BLOCK_SIZE, data.byteLength - written); var dataChunk = data.slice(written, written + chunkSize); From 3673079d28ffe316d84931c9728de8df72a27a4f Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 16:03:57 +0300 Subject: [PATCH 05/11] find first empty fields --- src/js/controllers/walletHome.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index f61a43c29..7643097f4 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -98,10 +98,23 @@ angular.module('copayApp.controllers') .createHash("sha256") .update(data) .digest("hex"); - home.feedvaluespairs.push({ - name: home.attachedFile.name, - value: hash, + let added = false; + home.feedvaluespairs.forEach(function(pair, i) { + if (added) return; + if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { + home.feedvaluespairs[i] = { + name: home.attachedFile.name, + value: hash, + }; + added = true; + } }); + if (!added) { + home.feedvaluespairs.push({ + name: home.attachedFile.name, + value: hash, + }); + } $scope.$apply(); }) }, function(error) { From 1188e993e71ff2c9a085d48c2ea9e9c43d0b77da Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 16:21:26 +0300 Subject: [PATCH 06/11] refactor --- src/js/controllers/walletHome.js | 92 ++++++++++++-------------------- 1 file changed, 33 insertions(+), 59 deletions(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 7643097f4..61d3fab2d 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -89,34 +89,7 @@ angular.module('copayApp.controllers') if (!self.oldAndroidFilePath) return; self.importing = true; - fileSystemService.readFile(self.oldAndroidFilePath, function(err, data) { - if (err) { - self.setSendError("cannot read the file whose hash is going to be posted"); - return; - } - const hash = require("crypto") - .createHash("sha256") - .update(data) - .digest("hex"); - let added = false; - home.feedvaluespairs.forEach(function(pair, i) { - if (added) return; - if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { - home.feedvaluespairs[i] = { - name: home.attachedFile.name, - value: hash, - }; - added = true; - } - }); - if (!added) { - home.feedvaluespairs.push({ - name: home.attachedFile.name, - value: hash, - }); - } - $scope.$apply(); - }) + this.addHashToFeedValues(self.oldAndroidFilePath); }, function(error) { alert(error); }); @@ -198,6 +171,37 @@ angular.module('copayApp.controllers') } }); + this.addHashToFeedValues = function(filePath) { + fileSystemService.readFile(filePath, function(err, data) { + if (err) { + self.setSendError("cannot read the file whose hash is going to be posted"); + return; + } + const hash = require("crypto") + .createHash("sha256") + .update(data) + .digest("hex"); + let added = false; + home.feedvaluespairs.forEach(function(pair, i) { + if (added) return; + if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { + home.feedvaluespairs[i] = { + name: home.attachedFile.name, + value: hash, + }; + added = true; + } + }); + if (!added) { + home.feedvaluespairs.push({ + name: home.attachedFile.name, + value: hash, + }); + } + $scope.$apply(); + }); + }; + this.countChecker = function() { self.newPaymentsCount = $rootScope.newPaymentsCount; }; @@ -2481,37 +2485,7 @@ angular.module('copayApp.controllers') home.attachedFile = $ev.target.files[0]; if (!home.attachedFile) return; - fileSystemService.readFile(home.attachedFile.path, function ( - err, - data - ) { - if (err) { - self.setSendError("cannot read the file whose hash is going to be posted"); - return; - } - const hash = require("crypto") - .createHash("sha256") - .update(data) - .digest("hex"); - let added = false; - home.feedvaluespairs.forEach(function(pair, i) { - if (added) return; - if ((typeof pair.name === 'undefined' && typeof pair.value === 'undefined') || (pair.name === '' && pair.value === '')) { - home.feedvaluespairs[i] = { - name: home.attachedFile.name, - value: hash, - }; - added = true; - } - }); - if (!added) { - home.feedvaluespairs.push({ - name: home.attachedFile.name, - value: hash, - }); - } - $scope.$apply(); - }); + this.addHashToFeedValues(home.attachedFile.path); }; this.openTxModal = function(btx) { From 104a8763337d64875c005354d8b7d1501ee41ab2 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 16:55:38 +0300 Subject: [PATCH 07/11] match whitespace --- public/views/walletHome.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index 351af01af..729342149 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -749,14 +749,14 @@

{{(assetIndexSelectorValue == -5 ? 'Add answer' : 'Add fields')|translate}} -
-
- - {{home.oldAndroidFileName}} -
- - -

+
+
+ + {{home.oldAndroidFileName}} +
+ + +
From f921e572ad6751c381b38f7729a1fd4d8dc85866 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 21:12:15 +0300 Subject: [PATCH 08/11] fix --- src/js/controllers/walletHome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index cc706b366..5e4167b59 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -2488,7 +2488,7 @@ angular.module('copayApp.controllers') home.attachedFile = $ev.target.files[0]; if (!home.attachedFile) return; - this.addHashToFeedValues(home.attachedFile.path); + this.addHashToFeedValues(home.attachedFile); }; this.openTxModal = function(btx) { From 5999e594b2a81e35f8f5bd8587ac7cef509bb105 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 22:37:51 +0300 Subject: [PATCH 09/11] reset previousFileHashName --- public/views/walletHome.html | 8 ++++---- src/js/controllers/walletHome.js | 9 +++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index c2dd73144..cfc7a5c7c 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -586,10 +586,10 @@

- {{home.oldAndroidFileName}} + {{home.previousFileHashName}}
- +

@@ -753,10 +753,10 @@

- {{home.oldAndroidFileName}} + {{home.previousFileHashName}}
- + diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index e30154064..3cee33b60 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -76,13 +76,13 @@ angular.module('copayApp.controllers') self.android = isMobile.Android() && window.cordova; self.androidVersion = isMobile.Android() ? parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf("Android")+8)) : null; self.oldAndroidFilePath = null; - self.oldAndroidFileName = ''; + self.previousFileHashName = ''; self.oldAndroidInputFileClick = function() { if(isMobile.Android() && self.androidVersion < 5) { window.plugins.mfilechooser.open([], function(uri) { self.oldAndroidFilePath = 'file://' + uri; - self.oldAndroidFileName = uri.split('/').pop(); + self.previousFileHashName = uri.split('/').pop(); $timeout(function() { $rootScope.$apply(); }); @@ -2024,6 +2024,7 @@ angular.module('copayApp.controllers') this.resetDataForm = function() { this.resetError(); + self.previousFileHashName = ''; $scope.home.feedvaluespairs = [{}]; $timeout(function() { $rootScope.$digest(); @@ -2189,6 +2190,7 @@ angular.module('copayApp.controllers') var paymentData = Buffer.from(base64data, 'base64').toString('utf8'); paymentData = paymentData ? JSON.parse(paymentData) : null; if (paymentData) { + self.previousFileHashName = ''; $scope.home.feedvaluespairs = []; for (var key in paymentData) { $scope.home.feedvaluespairs.push({name: key, value: paymentData[key], readonly: true}); @@ -2308,6 +2310,7 @@ angular.module('copayApp.controllers') delete dataPrompt.content; break; } + self.previousFileHashName = ''; $scope.home.feedvaluespairs = []; for (var key in dataPrompt) { var value = dataPrompt[key]; @@ -2776,6 +2779,7 @@ angular.module('copayApp.controllers') this._amount = this._address = null; this.bSendAll = false; + self.previousFileHashName = ''; $scope.home.feedvaluespairs = []; resetAAFields(); var form = $scope.sendPaymentForm; @@ -2861,6 +2865,7 @@ angular.module('copayApp.controllers') data = {}; break; } + self.previousFileHashName = ''; $scope.home.feedvaluespairs = []; for (var key in data) { var value = data[key]; From 745130fc1ca517812d7d2c40da6e92fb4f6c5ea4 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Fri, 2 Oct 2020 22:41:19 +0300 Subject: [PATCH 10/11] fix --- src/js/controllers/walletHome.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 3cee33b60..6ebcf8f6b 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -2484,6 +2484,7 @@ angular.module('copayApp.controllers') home.attachedFile = $ev.target.files[0]; if (!home.attachedFile) return; + self.previousFileHashName = home.attachedFile.name; this.addHashToFeedValues(home.attachedFile); }; From 6c3eaee5d7f5d10ff0ff1ba8d184d581215e16b8 Mon Sep 17 00:00:00 2001 From: Tarmo Date: Mon, 5 Oct 2020 03:13:43 +0300 Subject: [PATCH 11/11] fix --- src/js/controllers/walletHome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 225061dd1..6637b1f36 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -86,7 +86,7 @@ angular.module('copayApp.controllers') $timeout(function() { $rootScope.$apply(); }); - if (!self.oldAndroidFilePath) + if (!self.previousFileHashName) return; self.importing = true; this.addHashToFeedValues(self.oldAndroidFilePath);