diff --git a/assets/mainWindow/css/loading.css b/assets/mainWindow/css/loading.css
index f25764a..c8c97c3 100644
--- a/assets/mainWindow/css/loading.css
+++ b/assets/mainWindow/css/loading.css
@@ -105,4 +105,8 @@ body.agamaMode {
.btn:last-child {
margin-left: 20px;
+}
+
+.btn.btn-primary.btn-close-app {
+ margin: 0;
}
\ No newline at end of file
diff --git a/assets/mainWindow/js/loading.js b/assets/mainWindow/js/loading.js
index 445e078..0620761 100644
--- a/assets/mainWindow/js/loading.js
+++ b/assets/mainWindow/js/loading.js
@@ -6,6 +6,13 @@
window.hide();
}
+ function quitApp() {
+ const remote = require('electron').remote;
+ const window = remote.getCurrentWindow();
+
+ window.forseCloseApp();
+ }
+
function normalStart() {
const remote = require('electron').remote;
let appConf = remote.getCurrentWindow().appConfig;
diff --git a/react/change.log b/react/change.log
index ade5842..534043b 100644
--- a/react/change.log
+++ b/react/change.log
@@ -1,3 +1,16 @@
+v0.2.0.22a-beta
+--------------
+UI:
+- fixed activating best chain progress update
+- prevent running two agama instances
+- cli passphru fix
+- fixed logout bug
+- minor placeholders fixes
+- hide address dropdown if wallet has only one address
+- komodod crash report modal
+- values rounding (up to 6 decimals)
+- add coin multi ui reflow fix
+
v0.2.0.21a-beta
--------------
UI:
diff --git a/react/src/actions/actionCreators.js b/react/src/actions/actionCreators.js
index 42f2055..baf8d37 100644
--- a/react/src/actions/actionCreators.js
+++ b/react/src/actions/actionCreators.js
@@ -1,7 +1,6 @@
import 'whatwg-fetch';
import 'bluebird';
-import _config from '../config';
import { translate } from '../translate/translate';
import {
GET_ACTIVE_COINS,
@@ -26,6 +25,7 @@ import {
DASHBOARD_ACTIVE_COIN_CHANGE,
ACTIVE_COIN_GET_ADDRESSES,
DASHBOARD_ACTIVE_COIN_NATIVE_TXHISTORY,
+ DISPLAY_COIND_DOWN_MODAL,
START_INTERVAL,
STOP_INTERVAL
} from './storeType';
@@ -68,14 +68,6 @@ export * from './actions/iguanaHelpers';
export * from './actions/cli';
export * from './actions/update';
-export let Config;
-
-try {
- Config = window.require('electron').remote.getCurrentWindow().appConfig;
-} catch (e) {
- Config = _config;
-}
-
export function changeActiveAddress(address) {
return {
type: DASHBOARD_ACTIVE_ADDRESS,
@@ -359,4 +351,11 @@ export function stopInterval(name, intervals) {
type: STOP_INTERVAL,
name,
}
+}
+
+export function toggleCoindDownModal(display) {
+ return {
+ type: DISPLAY_COIND_DOWN_MODAL,
+ displayCoindDownModal: display,
+ }
}
\ No newline at end of file
diff --git a/react/src/actions/actions/addCoin.js b/react/src/actions/actions/addCoin.js
index b9db9b5..bd11ef1 100644
--- a/react/src/actions/actions/addCoin.js
+++ b/react/src/actions/actions/addCoin.js
@@ -1,7 +1,7 @@
import { translate } from '../../translate/translate';
+import Config from '../../config';
import {
triggerToaster,
- Config,
toggleAddcoinModal,
getDexCoins,
startIguanaInstance,
diff --git a/react/src/actions/actions/addressBalance.js b/react/src/actions/actions/addressBalance.js
index 665f090..5f16784 100644
--- a/react/src/actions/actions/addressBalance.js
+++ b/react/src/actions/actions/addressBalance.js
@@ -1,9 +1,6 @@
-import {
- ACTIVE_COIN_GET_ADDRESSES
-} from '../storeType';
+import { ACTIVE_COIN_GET_ADDRESSES } from '../storeType';
import {
triggerToaster,
- Config,
shepherdGroomPost,
getPassthruAgent,
iguanaHashHex
@@ -12,6 +9,7 @@ import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
function getKMDAddressesNativeState(json) {
return {
diff --git a/react/src/actions/actions/atomic.js b/react/src/actions/actions/atomic.js
index 445cb82..8008e73 100644
--- a/react/src/actions/actions/atomic.js
+++ b/react/src/actions/actions/atomic.js
@@ -1,12 +1,10 @@
import { ATOMIC } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function atomic(payload) {
return dispatch => {
diff --git a/react/src/actions/actions/basiliskCache.js b/react/src/actions/actions/basiliskCache.js
index bd04c35..07a5713 100644
--- a/react/src/actions/actions/basiliskCache.js
+++ b/react/src/actions/actions/basiliskCache.js
@@ -1,15 +1,12 @@
import { DASHBOARD_ACTIVE_COIN_GET_CACHE } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
// TODO: rewrite cache API to use POST
-
export function deleteCacheFile(_payload) {
return dispatch => {
return fetch(`http://127.0.0.1:${Config.agamaPort}/shepherd/groom`, {
diff --git a/react/src/actions/actions/basiliskProcessAddress.js b/react/src/actions/actions/basiliskProcessAddress.js
index 730d1dc..1a4445b 100644
--- a/react/src/actions/actions/basiliskProcessAddress.js
+++ b/react/src/actions/actions/basiliskProcessAddress.js
@@ -1,12 +1,10 @@
import { translate } from '../../translate/translate';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function checkAddressBasilisk(coin, address) {
const payload = {
diff --git a/react/src/actions/actions/basiliskTxHistory.js b/react/src/actions/actions/basiliskTxHistory.js
index b4c6993..7bbb445 100644
--- a/react/src/actions/actions/basiliskTxHistory.js
+++ b/react/src/actions/actions/basiliskTxHistory.js
@@ -1,12 +1,12 @@
import {
triggerToaster,
- Config,
getNativeTxHistoryState
} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function getBasiliskTransactionsList(coin, address) {
const pubkey = JSON.parse(sessionStorage.getItem('IguanaActiveAccount')).pubkey;
diff --git a/react/src/actions/actions/cli.js b/react/src/actions/actions/cli.js
index 05e2769..60c4b3b 100644
--- a/react/src/actions/actions/cli.js
+++ b/react/src/actions/actions/cli.js
@@ -1,12 +1,10 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import { CLI } from '../storeType';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function shepherdCliPromise(mode, chain, cmd) {
const _payload = {
diff --git a/react/src/actions/actions/coinList.js b/react/src/actions/actions/coinList.js
index 7885149..f83ab43 100644
--- a/react/src/actions/actions/coinList.js
+++ b/react/src/actions/actions/coinList.js
@@ -1,11 +1,9 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function shepherdGetCoinList() {
return new Promise((resolve, reject) => {
diff --git a/react/src/actions/actions/createWallet.js b/react/src/actions/actions/createWallet.js
index 0cce199..cde4df6 100644
--- a/react/src/actions/actions/createWallet.js
+++ b/react/src/actions/actions/createWallet.js
@@ -1,12 +1,10 @@
import { translate } from '../../translate/translate';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
function createNewWalletState(json) {
if (json &&
diff --git a/react/src/actions/actions/dexCoins.js b/react/src/actions/actions/dexCoins.js
index 5e85955..8df3a0a 100644
--- a/react/src/actions/actions/dexCoins.js
+++ b/react/src/actions/actions/dexCoins.js
@@ -1,12 +1,12 @@
import {
triggerToaster,
- Config,
dashboardCoinsState
} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function getDexCoins() {
const _payload = {
diff --git a/react/src/actions/actions/edexBalance.js b/react/src/actions/actions/edexBalance.js
index 8926d8c..f54c622 100644
--- a/react/src/actions/actions/edexBalance.js
+++ b/react/src/actions/actions/edexBalance.js
@@ -1,12 +1,10 @@
import { DASHBOARD_ACTIVE_COIN_BALANCE } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function iguanaEdexBalance(coin) {
const _payload = {
diff --git a/react/src/actions/actions/edexGetTx.js b/react/src/actions/actions/edexGetTx.js
index 2efff6e..aa5b987 100644
--- a/react/src/actions/actions/edexGetTx.js
+++ b/react/src/actions/actions/edexGetTx.js
@@ -1,11 +1,9 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function edexGetTransaction(data, dispatch) {
const payload = {
diff --git a/react/src/actions/actions/fullTxHistory.js b/react/src/actions/actions/fullTxHistory.js
index f8914c1..124696a 100644
--- a/react/src/actions/actions/fullTxHistory.js
+++ b/react/src/actions/actions/fullTxHistory.js
@@ -1,12 +1,12 @@
import {
triggerToaster,
- Config,
getNativeTxHistoryState
} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function getFullTransactionsList(coin) {
const payload = {
diff --git a/react/src/actions/actions/getAddrByAccount.js b/react/src/actions/actions/getAddrByAccount.js
index 3cbda4e..0ef1f52 100644
--- a/react/src/actions/actions/getAddrByAccount.js
+++ b/react/src/actions/actions/getAddrByAccount.js
@@ -1,12 +1,9 @@
import { ACTIVE_COIN_GET_ADDRESSES } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function getAddressesByAccountState(json, coin, mode) {
if (mode === 'full' ||
diff --git a/react/src/actions/actions/iguanaHelpers.js b/react/src/actions/actions/iguanaHelpers.js
index 8c5abf2..a0eb8a9 100644
--- a/react/src/actions/actions/iguanaHelpers.js
+++ b/react/src/actions/actions/iguanaHelpers.js
@@ -1,11 +1,8 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
import { checkAC } from '../../components/addcoin/payload';
export function getPassthruAgent(coin) {
diff --git a/react/src/actions/actions/iguanaInstance.js b/react/src/actions/actions/iguanaInstance.js
index cacec24..cd69be1 100644
--- a/react/src/actions/actions/iguanaInstance.js
+++ b/react/src/actions/actions/iguanaInstance.js
@@ -1,11 +1,9 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function restartIguanaInstance(pmid) {
return new Promise((resolve, reject) => {
diff --git a/react/src/actions/actions/log.js b/react/src/actions/actions/log.js
index bfaca4e..ca42d5b 100644
--- a/react/src/actions/actions/log.js
+++ b/react/src/actions/actions/log.js
@@ -1,8 +1,6 @@
import { LOG_GUI_HTTP } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
export function logGuiHttp(payload) {
return dispatch => {
diff --git a/react/src/actions/actions/logout.js b/react/src/actions/actions/logout.js
index 933c869..63f4783 100644
--- a/react/src/actions/actions/logout.js
+++ b/react/src/actions/actions/logout.js
@@ -1,14 +1,15 @@
-import { LOGIN } from '../storeType';
import {
- triggerToaster,
- Config
-} from '../actionCreators';
+ LOGIN,
+ LOGOUT
+} from '../storeType';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
} from './log';
-function logoutState(json, dispatch) {
+function logoutState(json) {
sessionStorage.removeItem('IguanaActiveAccount');
return {
@@ -17,6 +18,12 @@ function logoutState(json, dispatch) {
}
}
+function logoutResetAppState() {
+ return {
+ type: LOGOUT,
+ }
+}
+
export function logout() {
return dispatch => {
dispatch(walletLock());
@@ -68,6 +75,7 @@ function walletLock() {
'response': json,
}));
dispatch(logoutState(json));
+ dispatch(logoutResetAppState());
})
}
}
\ No newline at end of file
diff --git a/react/src/actions/actions/nativeBalance.js b/react/src/actions/actions/nativeBalance.js
index fc2612c..22ebef9 100644
--- a/react/src/actions/actions/nativeBalance.js
+++ b/react/src/actions/actions/nativeBalance.js
@@ -1,9 +1,9 @@
import { DASHBOARD_ACTIVE_COIN_NATIVE_BALANCE } from '../storeType';
import {
triggerToaster,
- Config,
getPassthruAgent
} from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/nativeNewAddress.js b/react/src/actions/actions/nativeNewAddress.js
index bde922e..d41d213 100644
--- a/react/src/actions/actions/nativeNewAddress.js
+++ b/react/src/actions/actions/nativeNewAddress.js
@@ -1,10 +1,10 @@
import { translate } from '../../translate/translate';
import {
triggerToaster,
- Config,
getPassthruAgent,
getKMDAddressesNative
} from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/nativeSend.js b/react/src/actions/actions/nativeSend.js
index 9db596f..8fea38e 100644
--- a/react/src/actions/actions/nativeSend.js
+++ b/react/src/actions/actions/nativeSend.js
@@ -2,7 +2,6 @@ import { DASHBOARD_ACTIVE_COIN_NATIVE_OPIDS } from '../storeType';
import { translate } from '../../translate/translate';
import {
triggerToaster,
- Config,
getPassthruAgent,
iguanaHashHex
} from '../actionCreators';
@@ -10,6 +9,7 @@ import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function sendNativeTx(coin, _payload) {
let ajaxDataToHex;
diff --git a/react/src/actions/actions/nativeSyncInfo.js b/react/src/actions/actions/nativeSyncInfo.js
index 2bbf5a9..ed7c6cb 100644
--- a/react/src/actions/actions/nativeSyncInfo.js
+++ b/react/src/actions/actions/nativeSyncInfo.js
@@ -1,14 +1,15 @@
import { SYNCING_NATIVE_MODE } from '../storeType';
import {
triggerToaster,
- Config,
getPassthruAgent,
- getDebugLog
+ getDebugLog,
+ toggleCoindDownModal
} from '../actionCreators';
import {
logGuiHttp,
guiLogState
} from './log';
+import Config from '../../config';
export function getSyncInfoNativeKMD(skipDebug) {
const coin = 'KMD';
@@ -63,7 +64,8 @@ export function getSyncInfoNativeKMD(skipDebug) {
function getSyncInfoNativeState(json, coin, skipDebug) {
if (coin === 'KMD' &&
json &&
- json.error) {
+ json.error &&
+ json.error.message.indexOf('Activating best') === -1) {
return getSyncInfoNativeKMD(skipDebug);
} else {
if (json &&
@@ -71,12 +73,12 @@ function getSyncInfoNativeState(json, coin, skipDebug) {
Config.cli.default) {
return {
type: SYNCING_NATIVE_MODE,
- progress: Config.cli.default ? json.error : json,
+ progress: json.error,
}
} else {
return {
type: SYNCING_NATIVE_MODE,
- progress: Config.cli.default ? json.result : json,
+ progress: json.result ? json.result : json,
}
}
}
@@ -156,13 +158,20 @@ export function getSyncInfoNative(coin, skipDebug) {
'Komodod is down',
'Critical Error',
'error',
- false
+ true
)
);
+ dispatch(getDebugLog('komodo', 50));
+ dispatch(toggleCoindDownModal(true));
} else {
json = JSON.parse(json);
}
+ if (json.error &&
+ json.error.message.indexOf('Activating best') === -1) {
+ dispatch(getDebugLog('komodo', 1));
+ }
+
dispatch(logGuiHttp({
'timestamp': _timestamp,
'status': 'success',
diff --git a/react/src/actions/actions/nativeTxHistory.js b/react/src/actions/actions/nativeTxHistory.js
index c35c447..2bb72de 100644
--- a/react/src/actions/actions/nativeTxHistory.js
+++ b/react/src/actions/actions/nativeTxHistory.js
@@ -1,9 +1,9 @@
import {
triggerToaster,
- Config,
getPassthruAgent,
getNativeTxHistoryState
} from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/notary.js b/react/src/actions/actions/notary.js
index afef1e8..d51d0ec 100644
--- a/react/src/actions/actions/notary.js
+++ b/react/src/actions/actions/notary.js
@@ -3,10 +3,8 @@ import {
DASHBOARD_GET_NOTARIES_LIST
} from '../storeType';
import { translate } from '../../translate/translate';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/sendFullBasilisk.js b/react/src/actions/actions/sendFullBasilisk.js
index f8663fe..ee058fd 100644
--- a/react/src/actions/actions/sendFullBasilisk.js
+++ b/react/src/actions/actions/sendFullBasilisk.js
@@ -2,9 +2,9 @@ import { DASHBOARD_ACTIVE_COIN_SENDTO } from '../storeType';
import { translate } from '../../translate/translate';
import {
triggerToaster,
- Config,
getDispatch
} from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/settings.js b/react/src/actions/actions/settings.js
index 2a0ef4b..126f10b 100644
--- a/react/src/actions/actions/settings.js
+++ b/react/src/actions/actions/settings.js
@@ -6,10 +6,8 @@ import {
LOAD_APP_CONFIG
} from '../storeType';
import { translate } from '../../translate/translate';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
@@ -378,7 +376,16 @@ export function saveAppConfig(_payload) {
);
})
.then(response => response.json())
- .then(json => dispatch(getAppConfig()))
+ .then(json => {
+ dispatch(getAppConfig());
+ dispatch(
+ triggerToaster(
+ 'Settings are saved',
+ translate('TOASTR.SETTINGS_NOTIFICATION'),
+ 'success'
+ )
+ );
+ })
}
}
@@ -410,4 +417,36 @@ export function getAppConfig() {
.then(response => response.json())
.then(json => dispatch(getAppConfigState(json)))
}
+}
+
+export function resetAppConfig() {
+ return dispatch => {
+ return fetch(`http://127.0.0.1:${Config.agamaPort}/shepherd/appconf/reset`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ })
+ .catch(function(error) {
+ console.log(error);
+ dispatch(
+ triggerToaster(
+ 'resetAppConfig',
+ 'Error',
+ 'error'
+ )
+ );
+ })
+ .then(response => response.json())
+ .then(json => {
+ dispatch(getAppConfig());
+ dispatch(
+ triggerToaster(
+ 'Settings are reset to default',
+ translate('TOASTR.SETTINGS_NOTIFICATION'),
+ 'success'
+ )
+ );
+ })
+ }
}
\ No newline at end of file
diff --git a/react/src/actions/actions/syncInfo.js b/react/src/actions/actions/syncInfo.js
index 6fa7d46..b24b944 100644
--- a/react/src/actions/actions/syncInfo.js
+++ b/react/src/actions/actions/syncInfo.js
@@ -1,8 +1,6 @@
import { SYNCING_FULL_MODE } from '../storeType';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/syncOnly.js b/react/src/actions/actions/syncOnly.js
index a1d40a2..d98aef4 100644
--- a/react/src/actions/actions/syncOnly.js
+++ b/react/src/actions/actions/syncOnly.js
@@ -3,10 +3,8 @@ import {
SYNC_ONLY_DATA
} from '../storeType';
import { translate } from '../../translate/translate';
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import Config from '../../config';
+import { triggerToaster } from '../actionCreators';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/sysInfo.js b/react/src/actions/actions/sysInfo.js
index 740bffa..597e53f 100644
--- a/react/src/actions/actions/sysInfo.js
+++ b/react/src/actions/actions/sysInfo.js
@@ -1,7 +1,5 @@
-import {
- triggerToaster,
- Config
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/update.js b/react/src/actions/actions/update.js
index 457c22b..7ddd761 100644
--- a/react/src/actions/actions/update.js
+++ b/react/src/actions/actions/update.js
@@ -1,7 +1,5 @@
-import {
- Config,
- triggerToaster
-} from '../actionCreators';
+import { triggerToaster } from '../actionCreators';
+import Config from '../../config';
import {
logGuiHttp,
guiLogState
diff --git a/react/src/actions/actions/walletAuth.js b/react/src/actions/actions/walletAuth.js
index 72ddd8b..aa5d767 100644
--- a/react/src/actions/actions/walletAuth.js
+++ b/react/src/actions/actions/walletAuth.js
@@ -3,9 +3,9 @@ import {
ACTIVE_HANDLE
} from '../storeType';
import { translate } from '../../translate/translate';
+import Config from '../../config';
import {
triggerToaster,
- Config,
getMainAddressState,
updateErrosStack
} from '../actionCreators';
diff --git a/react/src/actions/storeType.js b/react/src/actions/storeType.js
index 1b0527e..d00021b 100644
--- a/react/src/actions/storeType.js
+++ b/react/src/actions/storeType.js
@@ -42,4 +42,6 @@ export const SERVICE_ERROR = 'SERVICE_ERROR';
export const DASHBOARD_ACTIVE_ADDRESS = 'DASHBOARD_ACTIVE_ADDRESS';
export const LOAD_APP_INFO = 'LOAD_APP_INFO';
export const LOG_GUI_HTTP = 'LOG_GUI_HTTP';
-export const CLI = 'CLI';
\ No newline at end of file
+export const CLI = 'CLI';
+export const LOGOUT = 'LOGOUT';
+export const DISPLAY_COIND_DOWN_MODAL = 'DISPLAY_COIND_DOWN_MODAL';
\ No newline at end of file
diff --git a/react/src/components/addcoin/addcoin.js b/react/src/components/addcoin/addcoin.js
index a113599..55295d7 100644
--- a/react/src/components/addcoin/addcoin.js
+++ b/react/src/components/addcoin/addcoin.js
@@ -1,7 +1,7 @@
import React from 'react';
import { translate } from '../../translate/translate';
+import Config from '../../config';
import {
- Config,
addCoin,
toggleAddcoinModal,
triggerToaster,
diff --git a/react/src/components/addcoin/addcoin.render.js b/react/src/components/addcoin/addcoin.render.js
index 1e56a08..110ab88 100644
--- a/react/src/components/addcoin/addcoin.render.js
+++ b/react/src/components/addcoin/addcoin.render.js
@@ -42,7 +42,7 @@ const AddCoinRender = function() {
{ this.renderCoinSelectors() }
-
+