aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/pending-tx/confirm-send-token.js
diff options
context:
space:
mode:
authorChi Kei Chan <chikeichan@gmail.com>2017-10-20 03:35:39 +0800
committerGitHub <noreply@github.com>2017-10-20 03:35:39 +0800
commitf1c097ab5c833d0e4bab639d65e5641211cb9753 (patch)
tree0e63ad5171608accdd2a0d669687a16cd8c17b95 /ui/app/components/pending-tx/confirm-send-token.js
parent332c7441b656ec82ebfba863e3feb4dbf365d67b (diff)
parentc2880c4b8fe56f3b175d75b6ae8a84271dde3e28 (diff)
downloadtangerine-wallet-browser-f1c097ab5c833d0e4bab639d65e5641211cb9753.tar.gz
tangerine-wallet-browser-f1c097ab5c833d0e4bab639d65e5641211cb9753.tar.zst
tangerine-wallet-browser-f1c097ab5c833d0e4bab639d65e5641211cb9753.zip
Merge branch 'NewUI-flat' into MM-128-get-currentCurrency-from-state
Diffstat (limited to 'ui/app/components/pending-tx/confirm-send-token.js')
-rw-r--r--ui/app/components/pending-tx/confirm-send-token.js51
1 files changed, 34 insertions, 17 deletions
diff --git a/ui/app/components/pending-tx/confirm-send-token.js b/ui/app/components/pending-tx/confirm-send-token.js
index 155242f56..42b676954 100644
--- a/ui/app/components/pending-tx/confirm-send-token.js
+++ b/ui/app/components/pending-tx/confirm-send-token.js
@@ -11,12 +11,22 @@ const Identicon = require('../identicon')
const ethUtil = require('ethereumjs-util')
const BN = ethUtil.BN
const hexToBn = require('../../../../app/scripts/lib/hex-to-bn')
-const { conversionUtil } = require('../../conversion-util')
+const {
+ conversionUtil,
+ multiplyCurrencies,
+ addCurrencies,
+} = require('../../conversion-util')
const MIN_GAS_PRICE_GWEI_BN = new BN(1)
const GWEI_FACTOR = new BN(1e9)
const MIN_GAS_PRICE_BN = MIN_GAS_PRICE_GWEI_BN.mul(GWEI_FACTOR)
+const {
+ getSelectedTokenExchangeRate,
+ getTokenExchangeRate,
+ getSelectedAddress,
+} = require('../../selectors')
+
module.exports = connect(mapStateToProps, mapDispatchToProps)(ConfirmSendToken)
function mapStateToProps (state, ownProps) {
@@ -28,10 +38,8 @@ function mapStateToProps (state, ownProps) {
identities,
} = state.metamask
const accounts = state.metamask.accounts
- const selectedAddress = state.metamask.selectedAddress || Object.keys(accounts)[0]
- const tokenExchangeRates = state.metamask.tokenExchangeRates
- const pair = `${symbol.toLowerCase()}_eth`
- const { rate: tokenExchangeRate = 0 } = tokenExchangeRates[pair] || {}
+ const selectedAddress = getSelectedAddress(state)
+ const tokenExchangeRate = getTokenExchangeRate(state, symbol)
return {
conversionRate,
@@ -86,15 +94,12 @@ ConfirmSendToken.prototype.getGasFee = function () {
const txParams = txMeta.txParams || {}
const { decimals } = token
- // Gas
const gas = txParams.gas
- const gasBn = hexToBn(gas)
-
- // Gas Price
const gasPrice = txParams.gasPrice || MIN_GAS_PRICE_BN.toString(16)
- const gasPriceBn = hexToBn(gasPrice)
- const txFeeBn = gasBn.mul(gasPriceBn)
-
+ const gasTotal = multiplyCurrencies(gas, gasPrice, {
+ multiplicandBase: 16,
+ multiplierBase: 16,
+ })
const FIAT = conversionUtil(txFeeBn, {
fromNumericBase: 'BN',
@@ -105,7 +110,7 @@ ConfirmSendToken.prototype.getGasFee = function () {
numberOfDecimals: 2,
conversionRate,
})
- const ETH = conversionUtil(txFeeBn, {
+ const ETH = conversionUtil(gasTotal, {
fromNumericBase: 'BN',
toNumericBase: 'dec',
fromDenomination: 'WEI',
@@ -114,12 +119,22 @@ ConfirmSendToken.prototype.getGasFee = function () {
numberOfDecimals: 6,
conversionRate,
})
+ const tokenGas = multiplyCurrencies(gas, gasPrice, {
+ toNumericBase: 'dec',
+ multiplicandBase: 16,
+ multiplierBase: 16,
+ toCurrency: 'BAT',
+ conversionRate: tokenExchangeRate,
+ invertConversionRate: true,
+ fromDenomination: 'WEI',
+ numberOfDecimals: decimals || 4,
+ })
return {
fiat: +Number(FIAT).toFixed(2),
eth: ETH,
token: tokenExchangeRate
- ? +(ETH * tokenExchangeRate).toFixed(decimals)
+ ? tokenGas
: null,
}
}
@@ -130,14 +145,14 @@ ConfirmSendToken.prototype.getData = function () {
const { value } = params[0] || {}
const txMeta = this.gatherTxMeta()
const txParams = txMeta.txParams || {}
-
+
return {
from: {
address: txParams.from,
name: identities[txParams.from].name,
},
to: {
- address: txParams.to,
+ address: value,
name: identities[value] ? identities[value].name : 'New Recipient',
},
memo: txParams.memo || '',
@@ -196,6 +211,8 @@ ConfirmSendToken.prototype.renderTotalPlusGas = function () {
const { fiat: fiatAmount, token: tokenAmount } = this.getAmount()
const { fiat: fiatGas, token: tokenGas } = this.getGasFee()
+ const tokenTotal = addCurrencies(tokenAmount, tokenGas || '0')
+
return fiatAmount && fiatGas
? (
h('section.flex-row.flex-center.confirm-screen-total-box ', [
@@ -273,7 +290,7 @@ ConfirmSendToken.prototype.render = function () {
h(
Identicon,
{
- address: txParams.to,
+ address: toAddress,
diameter: 60,
},
),