From 37aee51889bf048828024d04dacf277eb9594d24 Mon Sep 17 00:00:00 2001 From: pbca26 Date: Sat, 13 May 2017 10:05:44 -0700 Subject: [PATCH] continiously add sync only coins on iguana crash --- react/src/components/dashboard/syncOnly.js | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/react/src/components/dashboard/syncOnly.js b/react/src/components/dashboard/syncOnly.js index 731d5ad..8d4c082 100644 --- a/react/src/components/dashboard/syncOnly.js +++ b/react/src/components/dashboard/syncOnly.js @@ -12,6 +12,9 @@ import Store from '../../store'; class SyncOnly extends React.Component { constructor(props) { super(props); + this.state = { + autoRestartedForks: {} + }; this.closeSyncOnlyModal = this.closeSyncOnlyModal.bind(this); } @@ -115,6 +118,39 @@ class SyncOnly extends React.Component { }; } + componentWillReceiveProps(props) { + // console.log('SyncOnly', props); + if (props.SyncOnly) { + for (let port in this.props.SyncOnly.forks) { + const forkInfo = this.props.SyncOnly.forks[port]; + + if (!this.state.autoRestartedForks[port] && + forkInfo && + forkInfo.registry && + forkInfo.getinfo && + forkInfo.getinfo.error && + forkInfo.getinfo.error === 'bitcoinrpc needs coin that is active') { + console.log('fork add coin required'); + let _autoRestartedForks = Object.assign({}, this.state.autoRestartedForks); + _autoRestartedForks[port] = true; + + this.setState({ + autoRestartedForks: _autoRestartedForks, + }); + Store.dispatch(addCoin(forkInfo.registry.coin, '1', null, port)); + setTimeout(function() { + let _autoRestartedForks = Object.assign({}, this.state.autoRestartedForks); + _autoRestartedForks[port] = false; + + this.setState({ + autoRestartedForks: _autoRestartedForks, + }); + }.bind(this), 10000); + } + } + } + } + closeSyncOnlyModal() { Store.dispatch(stopInterval('syncOnly', this.props.Interval.interval)); Store.dispatch(toggleSyncOnlyModal(false));