From 0b807d6e4bbfedbbc51043c00b572e7c8dfe999f Mon Sep 17 00:00:00 2001 From: Taegus Date: Sun, 16 Dec 2018 19:03:15 +0100 Subject: [PATCH] ! fixed bug in transaction syncing --- modules/database.js | 8 ++------ renderer/transactions.js | 18 +++++++++--------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/modules/database.js b/modules/database.js index 3e465eb..d47d52d 100644 --- a/modules/database.js +++ b/modules/database.js @@ -14,12 +14,8 @@ db.ensureIndex({ fieldName: 'block' }, function (err) { }); ipcMain.on('storeTransaction', (event, arg) => { - db.find({ block: arg.block, fromaddr: arg.fromaddr, toaddr: arg.toaddr }, function (err, docs) { - if (docs.length == 0) { - db.insert(arg, function (err, newDoc) { - // do nothing - }); - } + db.update({ block: arg.block, fromaddr: arg.fromaddr, toaddr: arg.toaddr }, arg, { upsert: true }, function (err, numReplaced, upsert) { + // do nothing for now }); }); diff --git a/renderer/transactions.js b/renderer/transactions.js index 5e12fa8..6c6d8a3 100644 --- a/renderer/transactions.js +++ b/renderer/transactions.js @@ -19,7 +19,7 @@ class Transactions { SyncProgress.setText(vsprintf("Syncing address transactions %d/%d, please wait...", [counter, addressList.length])); var startBlock = parseInt(counters.transactions) || 0; - var params = vsprintf('?address=%s&fromBlock=%d&toBlock=%d', [addressList[counter], startBlock, lastBlock]); + var params = vsprintf('?address=%s&fromBlock=%d&toBlock=%d', [addressList[counter].toLowerCase(), startBlock, lastBlock]); $.getJSON("https://richlist.ether1.org/transactions_list.php" + params, function( result ) { result.data.forEach(element => { @@ -33,18 +33,18 @@ class Transactions { ipcRenderer.send('storeTransaction', Transaction); }); - // update the counter and store it back to file system - counters.transactions = lastBlock; - ipcRenderer.sendSync('setJSONFile', - { - file: 'counters.json', - data: counters - }); - // call the transaction sync for the next address EthoTransactions.syncTransactionsForSingleAddress(addressList, counters, lastBlock, counter + 1); }); } else { + // update the counter and store it back to file system + counters.transactions = lastBlock; + ipcRenderer.sendSync('setJSONFile', + { + file: 'counters.json', + data: counters + }); + SyncProgress.setText("Syncing transactions is complete."); EthoTransactions.setIsSyncing(false); }