Merge pull request #557 from MetaMask/balance-fix

Fix rounding issues.
feature/default_network_editable
Dan Finlay 8 years ago committed by GitHub
commit 9c29328085
  1. 1
      CHANGELOG.md
  2. 17
      ui/app/components/account-eth-balance.js
  3. 15
      ui/app/util.js

@ -3,6 +3,7 @@
## Current Master
- Added feature to reflect current conversion rates of current vault balance.
- Modify balance display logic.
## 2.8.0 2016-08-15

@ -46,16 +46,17 @@ EthBalanceComponent.prototype.render = function () {
EthBalanceComponent.prototype.renderBalance = function (value, state) {
if (value === 'None') return value
var balanceObj = generateBalanceObject(value, state.shorten ? 1 : 3)
var balance, fiatNumber
var balance, fiatDisplayNumber, fiatTooltipNumber
var splitBalance = value.split(' ')
var ethNumber = splitBalance[0]
var ethSuffix = splitBalance[1]
if (state.conversionRate !== 0) {
fiatNumber = (Number(splitBalance[0]) * state.conversionRate).toFixed(2)
fiatTooltipNumber = Number(splitBalance[0]) * state.conversionRate
fiatDisplayNumber = fiatTooltipNumber.toFixed(2)
} else {
fiatNumber = 'N/A'
fiatDisplayNumber = 'N/A'
}
var fiatSuffix = state.currentFiat
@ -99,16 +100,16 @@ EthBalanceComponent.prototype.renderBalance = function (value, state) {
]),
h(Tooltip, {
position: 'bottom',
title: `${fiatNumber} ${fiatSuffix}`,
title: `${fiatTooltipNumber} ${fiatSuffix}`,
}, [
fiatDisplay(fiatNumber, fiatSuffix),
fiatDisplay(fiatDisplayNumber, fiatSuffix),
]),
])
)
}
function fiatDisplay (fiatNumber, fiatSuffix) {
if (fiatNumber !== 'N/A') {
function fiatDisplay (fiatDisplayNumber, fiatSuffix) {
if (fiatDisplayNumber !== 'N/A') {
return h('.flex-row', {
style: {
alignItems: 'flex-end',
@ -124,7 +125,7 @@ function fiatDisplay (fiatNumber, fiatSuffix) {
fontSize: '12px',
color: '#333333',
},
}, fiatNumber),
}, fiatDisplayNumber),
h('div', {
style: {
color: '#AEAEAE',

@ -141,16 +141,21 @@ function shortenBalance (balance, decimalsToKeep = 1) {
var convertedBalance = parseFloat(balance)
if (convertedBalance > 1000000) {
truncatedValue = (balance / 1000000).toFixed(decimalsToKeep)
return `>${truncatedValue}m`
return `${truncatedValue}m`
} else if (convertedBalance > 1000) {
truncatedValue = (balance / 1000).toFixed(decimalsToKeep)
return `>${truncatedValue}k`
return `${truncatedValue}k`
} else if (convertedBalance === 0) {
return '0'
} else if (convertedBalance < 0.001) {
return '<0.001'
} else if (convertedBalance < 1) {
var exponent = balance.match(/\.0*/)[0].length
truncatedValue = (convertedBalance * Math.pow(10, exponent)).toFixed(decimalsToKeep)
return `<${truncatedValue}e-${exponent}`
var stringBalance = convertedBalance.toString()
if (stringBalance.split('.')[1].length > 3) {
return convertedBalance.toFixed(3)
} else {
return stringBalance
}
} else {
return convertedBalance.toFixed(decimalsToKeep)
}

Loading…
Cancel
Save