Skip to content

Commit

Permalink
feat(sb): add fiat to total balance
Browse files Browse the repository at this point in the history
  • Loading branch information
Philip London committed Jul 22, 2020
1 parent 8564227 commit 098339b
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 3 deletions.
Expand Up @@ -8,6 +8,7 @@ import {
getBtcBalance as getBtcWalletBalance,
getEthBalance as getEthWalletBalance,
getFiatBalance,
getFiatBalanceInfo,
getPaxBalance as getPaxWalletBalance,
getUsdtBalance as getUsdtWalletBalance,
getXlmBalance as getXlmWalletBalance
Expand Down Expand Up @@ -230,6 +231,7 @@ export const getTotalBalance = createDeepEqualSelector(
getPaxBalanceInfo,
getUsdtBalanceInfo,
getXlmBalanceInfo,
getFiatBalanceInfo,
selectors.core.settings.getCurrency,
selectors.router.getPathname
],
Expand All @@ -241,6 +243,7 @@ export const getTotalBalance = createDeepEqualSelector(
paxBalanceInfoR,
usdtBalanceInfoR,
xlmBalanceInfoR,
fiatBalanceInfoR,
currency,
path
) => {
Expand All @@ -252,6 +255,7 @@ export const getTotalBalance = createDeepEqualSelector(
paxBalance,
usdtBalance,
xlmBalance,
fiatBalance,
currency
) => {
const total = Currency.formatFiat(
Expand All @@ -261,7 +265,8 @@ export const getTotalBalance = createDeepEqualSelector(
Number(algoBalance) +
Number(xlmBalance) +
Number(usdtBalance) +
Number(paxBalance)
Number(paxBalance) +
Number(fiatBalance)
)
const totalBalance = `${Exchange.getSymbol(currency)}${total}`
return { totalBalance, path }
Expand All @@ -274,6 +279,7 @@ export const getTotalBalance = createDeepEqualSelector(
paxBalanceInfoR,
usdtBalanceInfoR,
xlmBalanceInfoR,
fiatBalanceInfoR,
currency
)
}
Expand Down
@@ -1,10 +1,13 @@
import { add, curry, lift, pathOr, prop, reduce } from 'ramda'
import {
ExtractSuccess,
InterestAccountBalanceType,
InvitationsType,
RemoteDataType,
SBBalancesType,
SBBalanceType,
WalletCurrencyType,
WalletFiatEnum,
WalletFiatType
} from 'core/types'

Expand Down Expand Up @@ -213,7 +216,10 @@ export const getAlgoBalance = createDeepEqualSelector(
)

export const getFiatBalance = curry(
(currency: WalletFiatType, state: RootState) => {
(
currency: WalletFiatType,
state: RootState
): RemoteDataType<string, SBBalanceType['available']> => {
const sbBalancesR = selectors.components.simpleBuy.getSBBalances(state)
const fiatBalance =
sbBalancesR.getOrElse({
Expand Down Expand Up @@ -338,13 +344,54 @@ export const getAlgoBalanceInfo = createDeepEqualSelector(
}
)

export const getFiatBalanceInfo = createDeepEqualSelector(
[
selectors.core.data.btc.getRates,
selectors.core.settings.getCurrency,
selectors.components.simpleBuy.getSBBalances
],
(btcRatesR, currencyR, sbBalancesR) => {
const transform = (
rates,
currency,
sbBalances: ExtractSuccess<typeof sbBalancesR>
) => {
const keys = Object.keys(WalletFiatEnum).filter(
value => typeof WalletFiatEnum[value] === 'number'
)

// @ts-ignore
const balances = keys.map((value: WalletFiatType) => {
const standard = convertBaseToStandard(
'FIAT',
sbBalances[value]?.available || '0'
)

if (value === currency) return Number(standard)

return Exchange.convertFiatToFiat({
value: standard,
fromCurrency: value,
toCurrency: currency,
rates
}).value
})

return balances.reduce(add, 0)
}

return lift(transform)(btcRatesR, currencyR, sbBalancesR)
}
)

export const getTotalBalance = createDeepEqualSelector(
[
getBchBalanceInfo,
getBtcBalanceInfo,
getEthBalanceInfo,
getPaxBalanceInfo,
getXlmBalanceInfo,
getFiatBalanceInfo,
selectors.core.settings.getCurrency
],
(
Expand All @@ -353,6 +400,7 @@ export const getTotalBalance = createDeepEqualSelector(
ethBalanceInfoR,
paxBalanceInfoR,
xlmBalanceInfoR,
fiatBalanceInfoR,
currency
) => {
const transform = (
Expand All @@ -361,14 +409,16 @@ export const getTotalBalance = createDeepEqualSelector(
ethBalance,
paxBalance,
xlmBalance,
fiatBalance,
currency
) => {
const total = formatFiat(
Number(btcBalance) +
Number(ethBalance) +
Number(bchBalance) +
Number(paxBalance) +
Number(xlmBalance)
Number(xlmBalance) +
Number(fiatBalance)
)
const totalBalance = `${Exchange.getSymbol(currency)}${total}`
return { totalBalance }
Expand All @@ -379,6 +429,7 @@ export const getTotalBalance = createDeepEqualSelector(
ethBalanceInfoR,
paxBalanceInfoR,
xlmBalanceInfoR,
fiatBalanceInfoR,
currency
)
}
Expand Down
Expand Up @@ -52,6 +52,7 @@ const Success = (props: Props & SuccessStateType) => {
const link =
viewType === 'Hardware' ? '/lockbox' : coin.txListAppRoute
return (
coin.method &&
coin.invited && (
<HomeBalanceRow
key={i}
Expand Down

0 comments on commit 098339b

Please sign in to comment.