diff --git a/src/routes/safe/container/actions.js b/src/routes/safe/container/actions.js index a51fb28e..2dc0c895 100644 --- a/src/routes/safe/container/actions.js +++ b/src/routes/safe/container/actions.js @@ -1,6 +1,7 @@ // @flow import fetchSafe from '~/routes/safe/store/actions/fetchSafe' import fetchTokenBalances from '~/routes/safe/store/actions/fetchTokenBalances' +import fetchEtherBalance from '~/routes/safe/store/actions/fetchEtherBalance' import createTransaction from '~/routes/safe/store/actions/createTransaction' import processTransaction from '~/routes/safe/store/actions/processTransaction' import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions' @@ -15,6 +16,7 @@ export type Actions = { updateSafe: typeof updateSafe, fetchTokens: typeof fetchTokens, processTransaction: typeof processTransaction, + fetchEtherBalance: typeof fetchEtherBalance, } export default { @@ -25,4 +27,5 @@ export default { fetchTokens, fetchTransactions, updateSafe, + fetchEtherBalance, } diff --git a/src/routes/safe/container/index.jsx b/src/routes/safe/container/index.jsx index 322c1e1b..e6d0f2d3 100644 --- a/src/routes/safe/container/index.jsx +++ b/src/routes/safe/container/index.jsx @@ -23,6 +23,7 @@ class SafeView extends React.Component { fetchSafe(safeUrl) fetchTokenBalances(safeUrl, activeTokens) + // fetch tokens there to get symbols for tokens in TXs list fetchTokens() @@ -46,10 +47,11 @@ class SafeView extends React.Component { checkForUpdates() { const { - safeUrl, activeTokens, fetchTokenBalances, + safeUrl, activeTokens, fetchTokenBalances, fetchEtherBalance, } = this.props fetchTokenBalances(safeUrl, activeTokens) + fetchEtherBalance(safeUrl) } render() { diff --git a/src/routes/safe/store/actions/fetchEtherBalance.js b/src/routes/safe/store/actions/fetchEtherBalance.js new file mode 100644 index 00000000..47c4a6d5 --- /dev/null +++ b/src/routes/safe/store/actions/fetchEtherBalance.js @@ -0,0 +1,18 @@ +// @flow +import type { Dispatch as ReduxDispatch } from 'redux' +import { type GlobalState } from '~/store/index' +import updateSafe from '~/routes/safe/store/actions/updateSafe' +import { getBalanceInEtherOf } from '~/logic/wallets/getWeb3' + +const fetchEtherBalance = (safeAddress: string) => async (dispatch: ReduxDispatch) => { + try { + const ethBalance = await getBalanceInEtherOf(safeAddress) + + dispatch(updateSafe({ address: safeAddress, ethBalance })) + } catch (err) { + // eslint-disable-next-line + console.error('Error when fetching Ether balance:', err) + } +} + +export default fetchEtherBalance diff --git a/src/routes/safe/store/actions/fetchTokenBalances.js b/src/routes/safe/store/actions/fetchTokenBalances.js index d9dbcd91..26501fbe 100644 --- a/src/routes/safe/store/actions/fetchTokenBalances.js +++ b/src/routes/safe/store/actions/fetchTokenBalances.js @@ -45,7 +45,7 @@ const fetchTokenBalances = (safeAddress: string, tokens: List) => async ( dispatch(updateSafe({ address: safeAddress, balances: List(withBalances) })) } catch (err) { // eslint-disable-next-line - console.error('Error while loading active tokens from storage:', err) + console.error('Error when fetching token balances:', err) } }