aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/app/util.js9
-rw-r--r--ui/test/unit/util_test.js16
2 files changed, 21 insertions, 4 deletions
diff --git a/ui/app/util.js b/ui/app/util.js
index 4c31e54f4..74e2c19aa 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -64,11 +64,16 @@ function weiToEth(bn) {
return eth
}
+var decimalsToKeep = 4
function formatBalance(balance) {
if (!balance) return 'None'
var wei = numericBalance(balance)
- var eth = weiToEth(wei)
- return eth.toString(10) + ' ETH'
+ var padded = wei.toString(10)
+ var len = padded.length
+ var nonZeroIndex = padded.match(/[^0]/).index
+ var beforeDecimal = padded.substr(nonZeroIndex ? nonZeroIndex : 0, len - 18)
+ var afterDecimal = padded.substr(len - 18, decimalsToKeep)
+ return `${beforeDecimal}.${afterDecimal} ETH`
}
function dataSize(data) {
diff --git a/ui/test/unit/util_test.js b/ui/test/unit/util_test.js
index 52635eb89..7e34bba1c 100644
--- a/ui/test/unit/util_test.js
+++ b/ui/test/unit/util_test.js
@@ -63,9 +63,21 @@ describe('util', function() {
})
it('should return eth as string followed by ETH', function() {
- var input = new ethUtil.BN(ethInWei).toJSON()
+ var input = new ethUtil.BN(ethInWei, 10).toJSON()
var result = util.formatBalance(input)
- assert.equal(result, '1 ETH')
+ assert.equal(result, '1.0000 ETH')
+ })
+
+ it('should return eth as string followed by ETH', function() {
+ var input = new ethUtil.BN(ethInWei, 10).div(new ethUtil.BN('2', 10)).toJSON()
+ var result = util.formatBalance(input)
+ assert.equal(result, '.5000 ETH')
+ })
+
+ it('should display four decimal points', function() {
+ var input = "0x128dfa6a90b28000"
+ var result = util.formatBalance(input)
+ assert.equal(result, '1.3370 ETH')
})
})