Skip to content

Commit

Permalink
feat(algo): add to home balance and menu left
Browse files Browse the repository at this point in the history
  • Loading branch information
Philip London committed Jun 26, 2020
1 parent 6967cfc commit 83e41c1
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import { add, lift, map, prop, reduce } from 'ramda'
import { createDeepEqualSelector } from 'services/ReselectHelper'
import { Exchange, Remote } from 'blockchain-wallet-v4/src'
import {
getAlgoBalance as getAlgoWalletBalance,
getBchBalance as getBchWalletBalance,
getBtcBalance as getBtcWalletBalance,
getEthBalance as getEthWalletBalance,
getPaxBalance as getPaxWalletBalance,
getUsdtBalance as getUsdtWalletBalance,
getXlmBalance as getXlmWalletBalance
} from '../wallet/selectors'
import { INVALID_COIN_TYPE } from 'blockchain-wallet-v4/src/model'
import { selectors } from 'data'

export const getBtcBalance = createDeepEqualSelector(
Expand Down Expand Up @@ -57,6 +59,7 @@ export const getBchBalance = createDeepEqualSelector(
}
)

export const getAlgoBalance = getAlgoWalletBalance
export const getEthBalance = getEthWalletBalance
export const getPaxBalance = getPaxWalletBalance
export const getUsdtBalance = getUsdtWalletBalance
Expand Down Expand Up @@ -170,6 +173,24 @@ export const getUsdtBalanceInfo = createDeepEqualSelector(
}
)

export const getAlgoBalanceInfo = createDeepEqualSelector(
[
getAlgoBalance,
selectors.core.data.algo.getRates,
selectors.core.settings.getCurrency
],
(algoBalanceR, algoRatesR, currencyR) => {
const transform = (value, rates, toCurrency) =>
Exchange.convertAlgoToFiat({
value,
fromUnit: 'mALGO',
toCurrency,
rates
}).value
return lift(transform)(algoBalanceR, algoRatesR, currencyR)
}
)

export const getXlmBalanceInfo = createDeepEqualSelector(
[
getXlmBalance,
Expand All @@ -190,6 +211,7 @@ export const getXlmBalanceInfo = createDeepEqualSelector(

export const getTotalBalance = createDeepEqualSelector(
[
getAlgoBalanceInfo,
getBchBalanceInfo,
getBtcBalanceInfo,
getEthBalanceInfo,
Expand All @@ -200,6 +222,7 @@ export const getTotalBalance = createDeepEqualSelector(
selectors.router.getPathname
],
(
algoBalanceInfoR,
bchBalanceInfoR,
btcBalanceInfoR,
ethBalanceInfoR,
Expand All @@ -210,6 +233,7 @@ export const getTotalBalance = createDeepEqualSelector(
path
) => {
const transform = (
algoBalance,
bchBalance,
btcBalance,
ethBalance,
Expand All @@ -222,14 +246,16 @@ export const getTotalBalance = createDeepEqualSelector(
Number(btcBalance) +
Number(ethBalance) +
Number(bchBalance) +
Number(paxBalance) +
Number(algoBalance) +
Number(xlmBalance) +
Number(usdtBalance) +
Number(xlmBalance)
Number(paxBalance)
)
const totalBalance = `${Exchange.getSymbol(currency)}${total}`
return { totalBalance, path }
}
return lift(transform)(
algoBalanceInfoR,
bchBalanceInfoR,
btcBalanceInfoR,
ethBalanceInfoR,
Expand All @@ -240,3 +266,24 @@ export const getTotalBalance = createDeepEqualSelector(
)
}
)

export const getBalanceSelector = coin => {
switch (coin) {
case 'BTC':
return getBtcBalance
case 'BCH':
return getBchBalance
case 'ETH':
return getEthBalance
case 'PAX':
return getPaxBalance
case 'XLM':
return getXlmBalance
case 'USDT':
return getUsdtBalance
case 'ALGO':
return getAlgoBalance
default:
return Remote.Failure(INVALID_COIN_TYPE)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
import { createDeepEqualSelector } from 'services/ReselectHelper'
import { Exchange, Remote } from 'blockchain-wallet-v4/src'
import { formatFiat } from 'core/exchange/currency'
import { INVALID_COIN_TYPE } from 'blockchain-wallet-v4/src/model'
import { selectors } from 'data'
import BigNumber from 'bignumber.js'

Expand Down Expand Up @@ -388,5 +389,7 @@ export const getBalanceSelector = (coin: CoinType) => {
return getUsdtBalance
case 'ALGO':
return getAlgoBalance
default:
return Remote.Failure(INVALID_COIN_TYPE)
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,5 @@
import * as balanceSelectors from 'components/Balances/wallet/selectors'
import { Remote } from 'blockchain-wallet-v4/src'

export const getData = (state, ownProps) => {
switch (ownProps.coin) {
case 'BTC':
return balanceSelectors.getBtcBalance(state)
case 'BCH':
return balanceSelectors.getBchBalance(state)
case 'ETH':
return balanceSelectors.getEthBalance(state)
case 'XLM':
return balanceSelectors.getXlmBalance(state)
case 'PAX':
return balanceSelectors.getPaxBalance(state)
case 'USDT':
return balanceSelectors.getUsdtBalance(state)
default:
return Remote.Failure('Unsupported Coin Code')
}
return balanceSelectors.getBalanceSelector(ownProps.coin)(state)
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const Template = props => {
supportedCoins.BTC,
supportedCoins.ETH,
supportedCoins.BCH,
supportedCoins.ALGO,
supportedCoins.XLM,
supportedCoins.USDT,
supportedCoins.PAX
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,9 @@ import { Remote } from 'blockchain-wallet-v4/src'
export const getData = (state, ownProps: OwnProps) => {
switch (ownProps.viewType) {
case 'Wallet':
switch (ownProps.coin) {
case 'BTC':
return walletBalanceSelectors.getBtcBalance(state)
case 'BCH':
return walletBalanceSelectors.getBchBalance(state)
case 'ETH':
return walletBalanceSelectors.getEthBalance(state)
case 'XLM':
return walletBalanceSelectors.getXlmBalance(state)
case 'PAX':
return walletBalanceSelectors.getPaxBalance(state)
case 'USDT':
return walletBalanceSelectors.getUsdtBalance(state)
default:
return Remote.Failure('Unsupported Coin Code')
}
return walletBalanceSelectors.getBalanceSelector(ownProps.coin)(state)
case 'Total':
return totalBalanceSelectors.getBalanceSelector(ownProps.coin)(state)
case 'Hardware':
switch (ownProps.coin) {
case 'BTC':
Expand All @@ -36,22 +23,5 @@ export const getData = (state, ownProps: OwnProps) => {
default:
return Remote.Failure('Unsupported Coin Code')
}
default:
switch (ownProps.coin) {
case 'BTC':
return totalBalanceSelectors.getBtcBalance(state)
case 'BCH':
return totalBalanceSelectors.getBchBalance(state)
case 'ETH':
return totalBalanceSelectors.getEthBalance(state)
case 'XLM':
return totalBalanceSelectors.getXlmBalance(state)
case 'PAX':
return totalBalanceSelectors.getPaxBalance(state)
case 'USDT':
return totalBalanceSelectors.getUsdtBalance(state)
default:
return Remote.Failure('Unsupported Coin Code')
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ const Success = (props: Props) => {
supportedCoins.BTC,
supportedCoins.ETH,
supportedCoins.BCH,
supportedCoins.ALGO,
supportedCoins.XLM,
supportedCoins.USDT,
supportedCoins.PAX
Expand Down

0 comments on commit 83e41c1

Please sign in to comment.