aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/metamask-controller.js15
-rw-r--r--test/unit/util_test.js21
-rw-r--r--ui/app/components/eth-balance.js35
-rw-r--r--ui/app/util.js33
4 files changed, 52 insertions, 52 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 8a5ffb75a..63970799d 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -77,14 +77,13 @@ module.exports = class MetamaskController {
// handle rpc request
this.provider.sendAsync(request, function onPayloadHandled (err, response) {
- if (err) {
- return logger(err)
- }
- logger(null, request, response)
- try {
- stream.write(response)
- } catch (err) {
- logger(err)
+ logger(err, request, response)
+ if (response) {
+ try {
+ stream.write(response)
+ } catch (err) {
+ logger(err)
+ }
}
})
diff --git a/test/unit/util_test.js b/test/unit/util_test.js
index 41355686e..28f76fcf1 100644
--- a/test/unit/util_test.js
+++ b/test/unit/util_test.js
@@ -148,22 +148,35 @@ describe('util', function() {
it('when given nothing', function() {
var result = util.formatBalance()
+ assert.equal(result, 'None', 'should return "None"')
+ })
+
+ it('should return eth as string followed by ETH', function() {
+ var input = new ethUtil.BN(ethInWei, 10).toJSON()
+ var result = util.formatBalance(input, 4)
+ 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, 3)
+ assert.equal(result, '0.500 ETH')
})
it('should display specified decimal points', function() {
var input = "0x128dfa6a90b28000"
var result = util.formatBalance(input, 2)
- assert.equal(result.formatted, '1.33 ETH')
+ assert.equal(result, '1.33 ETH')
})
- it('should default to 2 decimal points', function() {
+ it('should default to 3 decimal points', function() {
var input = "0x128dfa6a90b28000"
var result = util.formatBalance(input)
- assert.equal(result.formatted, '1.33 ETH')
+ assert.equal(result, '1.337 ETH')
})
it('should show 2 significant digits for tiny balances', function() {
var input = "0x1230fa6a90b28"
var result = util.formatBalance(input)
- assert.equal(result.formatted, '0.00032 ETH')
+ assert.equal(result, '0.00032 ETH')
})
})
diff --git a/ui/app/components/eth-balance.js b/ui/app/components/eth-balance.js
index 288a0fcaf..113e698ad 100644
--- a/ui/app/components/eth-balance.js
+++ b/ui/app/components/eth-balance.js
@@ -2,7 +2,6 @@ const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
const formatBalance = require('../util').formatBalance
-const Tooltip = require('./tooltip')
module.exports = EthBalanceComponent
@@ -32,32 +31,28 @@ EthBalanceComponent.prototype.render = function () {
)
}
EthBalanceComponent.prototype.renderBalance = function (value) {
+
if (value === 'None') return value
- var balance = value.formatted.split(' ')[0]
- var label = value.formatted.split(' ')[1]
+ var balance = value.split(' ')[0]
+ var label = value.split(' ')[1]
return (
- h(Tooltip, {
- title: value.balance,
- position: 'bottom',
+ h('.flex-column', {
+ style: {
+ alignItems: 'flex-end',
+ lineHeight: '13px',
+ fontFamily: 'Montserrat Thin',
+ textRendering: 'geometricPrecision',
+ },
}, [
- h('.flex-column', {
+ h('div', balance),
+ h('div', {
style: {
- alignItems: 'flex-end',
- lineHeight: '13px',
- fontFamily: 'Montserrat Light',
- textRendering: 'geometricPrecision',
+ color: ' #AEAEAE',
+ fontSize: '12px',
},
- }, [
- h('div', balance),
- h('div', {
- style: {
- color: ' #AEAEAE',
- fontSize: '12px',
- },
- }, label),
- ]),
+ }, label),
])
)
}
diff --git a/ui/app/util.js b/ui/app/util.js
index 0a243387a..89853d746 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -110,29 +110,22 @@ function formatBalance (balance, decimalsToKeep) {
var parsed = parseBalance(balance)
var beforeDecimal = parsed[0]
var afterDecimal = parsed[1]
- var formatted, formattedBalance
-
- if (beforeDecimal === '0') {
- if (afterDecimal !== '0') {
- var sigFigs = afterDecimal.match(/^0*(.{2})/) // default: grabs 2 most significant digits
- if (sigFigs) { afterDecimal = sigFigs[0] }
- formattedBalance = afterDecimal.substr(0, 5) === '00000' ? '<0.00001' : `0.${afterDecimal.slice(0, 6)}`
+ 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 {
- formattedBalance = `${beforeDecimal}.${afterDecimal.slice(0, 2)}`
- }
- if (decimalsToKeep) {
- formattedBalance = `${beforeDecimal}.${afterDecimal.slice(0, decimalsToKeep)}`
- }
-
- formatted = `${formattedBalance} ETH`
-
- if (formattedBalance === '0.0' || formattedBalance === undefined) {
- formatted = 'None'
- formattedBalance = 'None'
+ afterDecimal += Array(decimalsToKeep).join('0')
+ formatted = beforeDecimal + '.' + afterDecimal.slice(0, decimalsToKeep) + ' ETH'
}
-
- return {formattedBalance, balance: parsed.join('.'), formatted}
+ return formatted
}
function dataSize (data) {