aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/app/components/eth-balance.js12
-rw-r--r--ui/app/util.js44
2 files changed, 30 insertions, 26 deletions
diff --git a/ui/app/components/eth-balance.js b/ui/app/components/eth-balance.js
index 3f88ef2d4..76b75d4c8 100644
--- a/ui/app/components/eth-balance.js
+++ b/ui/app/components/eth-balance.js
@@ -2,6 +2,7 @@ const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
const parseBalance = require('../util').parseBalance
+const formatBalance = require('../util').formatBalance
module.exports = EthBalanceComponent
@@ -12,11 +13,8 @@ function EthBalanceComponent() {
EthBalanceComponent.prototype.render = function() {
var state = this.props
- var parsedAmount = parseBalance(state.value)
- var beforeDecimal = parsedAmount[0]
- var afterDecimal = parsedAmount[1]
- var value = beforeDecimal+(afterDecimal ? '.'+afterDecimal : '')
var style = state.style
+ var value = formatBalance(state.value)
return (
@@ -28,12 +26,6 @@ EthBalanceComponent.prototype.render = function() {
display: 'inline',
},
}, value),
- h('.ether-balance-label', {
- style: {
- display: 'inline',
- marginLeft: 6,
- },
- }, 'ETH'),
])
)
diff --git a/ui/app/util.js b/ui/app/util.js
index 81a029350..91f85e43f 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -84,29 +84,41 @@ function weiToEth(bn) {
}
// Takes hex, returns [beforeDecimal, afterDecimal]
-function parseBalance(balance, decimalsToKeep) {
- if (decimalsToKeep === undefined) decimalsToKeep = 4
- if (!balance || balance === '0x0') return ['0', '']
- var wei = numericBalance(balance)
- var padded = wei.toString(10)
- var len = padded.length
- var match = padded.match(/[^0]/)
- var nonZeroIndex = match && match.index
- var beforeDecimal = padded.substr(nonZeroIndex ? nonZeroIndex : 0, len - 18) || '0'
- var afterDecimal = padded.substr(len - 18, decimalsToKeep)
+function parseBalance(balance) {
+ if (!balance || balance === '0x0') return ['0', '0']
+ var wei = numericBalance(balance).toString(10)
+ var eth = String(wei/valueTable['wei'])
+ var beforeDecimal = String(Math.floor(eth))
+ var afterDecimal
+ if(eth.indexOf('.') > -1){
+ afterDecimal = eth.slice(eth.indexOf('.') + 1)
+ }else{
+ afterDecimal = '0'
+ }
return [beforeDecimal, afterDecimal]
}
// Takes wei hex, returns "None" or "${formattedAmount} ETH"
-function formatBalance(balance) {
+function formatBalance(balance, decimalsToKeep) {
var parsed = parseBalance(balance)
var beforeDecimal = parsed[0]
var afterDecimal = parsed[1]
- if (beforeDecimal === '0' && afterDecimal === '') return 'None'
- var result = beforeDecimal
- if (afterDecimal) result += '.'+afterDecimal
- result += ' ETH'
- return result
+ var formatted = "None"
+ if(decimalsToKeep === undefined){
+ if(beforeDecimal === '0'){
+ if(afterDecimal !== '0'){
+ var sigFigs = afterDecimal.match(/^0*(.{2})/) //default: grabs 2 most significant digits
+ if(sigFigs){afterDecimal = sigFigs[0]}
+ formatted = '0.' + afterDecimal + ' ETH'
+ }
+ }else{
+ formatted = beforeDecimal + "." + afterDecimal.slice(0,3) + ' ETH'
+ }
+ }else{
+ afterDecimal += Array(decimalsToKeep).join("0")
+ formatted = beforeDecimal + "." + afterDecimal.slice(0,decimalsToKeep) + ' ETH'
+ }
+ return formatted
}
function dataSize(data) {