Merge pull request #412 from MetaMask/ethBalance

Add method to deal with small decimals
feature/default_network_editable
Dan Finlay 9 years ago committed by GitHub
commit 5a99d2a77c
  1. 17
      ui/app/components/eth-balance.js
  2. 12
      ui/app/util.js

@ -2,7 +2,8 @@ const Component = require('react').Component
const h = require('react-hyperscript') const h = require('react-hyperscript')
const inherits = require('util').inherits const inherits = require('util').inherits
const formatBalance = require('../util').formatBalance const formatBalance = require('../util').formatBalance
const generateBalanceObject = require('../util').generateBalanceObject
const Tooltip = require('./tooltip.js')
module.exports = EthBalanceComponent module.exports = EthBalanceComponent
inherits(EthBalanceComponent, Component) inherits(EthBalanceComponent, Component)
@ -14,7 +15,6 @@ EthBalanceComponent.prototype.render = function () {
var state = this.props var state = this.props
var style = state.style var style = state.style
var value = formatBalance(state.value) var value = formatBalance(state.value)
return ( return (
h('.ether-balance', { h('.ether-balance', {
@ -30,18 +30,22 @@ EthBalanceComponent.prototype.render = function () {
) )
} }
EthBalanceComponent.prototype.renderBalance = function (value) { EthBalanceComponent.prototype.renderBalance = function (value) {
if (value === 'None') return value if (value === 'None') return value
var balanceObj = generateBalanceObject(value)
var balance = value.split(' ')[0] var balance = balanceObj.balance
var label = value.split(' ')[1] var label = balanceObj.label
return ( return (
h(Tooltip, {
position: 'bottom',
title: value.split(' ')[0],
}, [
h('.flex-column', { h('.flex-column', {
style: { style: {
alignItems: 'flex-end', alignItems: 'flex-end',
lineHeight: '13px', lineHeight: '13px',
fontFamily: 'Montserrat Thin', fontFamily: 'Montserrat Light',
textRendering: 'geometricPrecision', textRendering: 'geometricPrecision',
}, },
}, [ }, [
@ -52,6 +56,7 @@ EthBalanceComponent.prototype.renderBalance = function (value) {
fontSize: '12px', fontSize: '12px',
}, },
}, label), }, label),
]),
]) ])
) )
} }

@ -26,6 +26,7 @@ module.exports = {
numericBalance: numericBalance, numericBalance: numericBalance,
parseBalance: parseBalance, parseBalance: parseBalance,
formatBalance: formatBalance, formatBalance: formatBalance,
generateBalanceObject: generateBalanceObject,
dataSize: dataSize, dataSize: dataSize,
readableDate: readableDate, readableDate: readableDate,
ethToWei: ethToWei, ethToWei: ethToWei,
@ -117,6 +118,17 @@ function formatBalance (balance, decimalsToKeep) {
return formatted return formatted
} }
function generateBalanceObject (formattedBalance) {
var balance = formattedBalance.split(' ')[0]
var label = formattedBalance.split(' ')[1]
var beforeDecimal = balance.split('.')[0]
var afterDecimal = balance.split('.')[1]
if (beforeDecimal === '0' && afterDecimal.substr(0, 5) === '00000') { balance = '< 0.00001' }
return { balance, label }
}
function dataSize (data) { function dataSize (data) {
var size = data ? ethUtil.stripHexPrefix(data).length : 0 var size = data ? ethUtil.stripHexPrefix(data).length : 0
return size + ' bytes' return size + ' bytes'

Loading…
Cancel
Save