From 4645e6f8e979c8d12de420f5fffb1d31d89f37ee Mon Sep 17 00:00:00 2001 From: pbca26 Date: Sun, 10 Sep 2017 16:34:35 +0300 Subject: [PATCH 1/2] rescan handling --- gui/startup/app-settings.html | 4 +-- routes/shepherd.js | 48 ++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/gui/startup/app-settings.html b/gui/startup/app-settings.html index 8b258e8..409022c 100644 --- a/gui/startup/app-settings.html +++ b/gui/startup/app-settings.html @@ -41,7 +41,7 @@
+ class="btn btn-info pull-left hide">Test binaries @@ -64,7 +64,7 @@
- + diff --git a/routes/shepherd.js b/routes/shepherd.js index 5f0d781..5b1b717 100644 --- a/routes/shepherd.js +++ b/routes/shepherd.js @@ -220,7 +220,12 @@ shepherd.post('/native/dashboard/update', function(req, res, next) { _type === 'public' ? 'getaddressesbyaccount' : 'z_listaddresses', [''] ).then(function(_json) { - resolve(JSON.parse(_json).result); + if (_json === 'Work queue depth exceeded' || + !_json) { + resolve({ error: 'daemon is busy' }); + } else { + resolve(JSON.parse(_json).result); + } }); }); })) @@ -340,12 +345,22 @@ shepherd.post('/native/dashboard/update', function(req, res, next) { _bitcoinRPC(coin, 'listunspent') .then(function(__json) { - _returnObj.listunspent = JSON.parse(__json); + if (__json === 'Work queue depth exceeded' || + !__json) { + const returnObj = { + msg: 'success', + result: _returnObj, + }; - calcBalance( - result, - JSON.parse(__json).result - ); + res.end(JSON.stringify(returnObj)); + } else { + _returnObj.listunspent = JSON.parse(__json); + + calcBalance( + result, + JSON.parse(__json).result + ); + } }); }) } @@ -375,7 +390,8 @@ shepherd.post('/native/dashboard/update', function(req, res, next) { headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ payload: _payload }) + body: JSON.stringify({ payload: _payload }), + timeout: 5000, }; request(options, function(error, response, body) { @@ -391,13 +407,27 @@ shepherd.post('/native/dashboard/update', function(req, res, next) { } Promise.all(_promiseStack.map((_call, index) => { + let _params; + if (_call === 'listtransactions') { + _params = [ + '', + 300, + 0 + ]; + } return new Promise((resolve, reject) => { _bitcoinRPC( _coin, - _call + _call, + _params ) .then(function(json) { - _returnObj[_call] = JSON.parse(json); + if (json === 'Work queue depth exceeded' || + !json) { + _returnObj[_call] = { error: 'daemon is busy' }; + } else { + _returnObj[_call] = JSON.parse(json); + } resolve(json); }); }); From 68d728b2de9b5f4866f8e8a503b65a91bb9293a0 Mon Sep 17 00:00:00 2001 From: pbca26 Date: Sun, 10 Sep 2017 17:50:39 +0300 Subject: [PATCH 2/2] kmd passive flag --- main.js | 1 + routes/shepherd.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/main.js b/main.js index 5dfdec0..be84188 100644 --- a/main.js +++ b/main.js @@ -370,6 +370,7 @@ function createWindow(status) { mainWindow.zcashParamsExist = _zcashParamsExist; mainWindow.iguanaIcon = iguanaIcon; mainWindow.testLocation = shepherd.testLocation; + mainWindow.kmdMainPassiveMode = shepherd.kmdMainPassiveMode; if (appConfig.dev) { mainWindow.loadURL('http://127.0.0.1:3000'); diff --git a/routes/shepherd.js b/routes/shepherd.js index 5b1b717..f7aba19 100644 --- a/routes/shepherd.js +++ b/routes/shepherd.js @@ -95,10 +95,15 @@ if (os.platform() === 'win32') { shepherd.appConfigSchema = _appConfig.schema; shepherd.defaultAppConfig = Object.assign({}, shepherd.appConfig); +shepherd.kmdMainPassiveMode = false; shepherd.coindInstanceRegistry = coindInstanceRegistry; shepherd.startKMDNative = function(selection, isManual) { + if (isManual) { + shepherd.kmdMainPassiveMode = true; + } + if (selection === 'KMD') { const herdData = { 'ac_name': 'komodod',