aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Finlay <somniac@me.com>2016-04-15 04:24:53 +0800
committerDan Finlay <somniac@me.com>2016-04-15 04:24:53 +0800
commit2f8a5d1c3a1f472aecfaac959f07c7f013512d39 (patch)
treec98b6cd328ea969f6702de724f33015b010cbefb
parent9be7bebbb3f5450a7ddf82ccb4e07e49725e8cf7 (diff)
parente10480dec19e196d942505e32b3bcec3ec88c250 (diff)
downloadtangerine-wallet-browser-2f8a5d1c3a1f472aecfaac959f07c7f013512d39.tar.gz
tangerine-wallet-browser-2f8a5d1c3a1f472aecfaac959f07c7f013512d39.tar.zst
tangerine-wallet-browser-2f8a5d1c3a1f472aecfaac959f07c7f013512d39.zip
Merge pull request #109 from MetaMask/FixEthResolution
Fix eth resolution
-rw-r--r--CHANGELOG.md1
-rw-r--r--ui/app/util.js9
-rw-r--r--ui/test/unit/util_test.js16
3 files changed, 22 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 83c0f1709..25b59193b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
- Corrected text above account list. Selected account is visible to all sites, not just the current domain.
- Merged the UI codebase into the main plugin codebase for simpler maintenance.
+- Fix Ether display rounding error. Now rendering to four decimal points.
## 1.5.0 2016-04-13
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')
})
})