Merge branch 'master' into ConfirmationStyle

feature/default_network_editable
Dan Finlay 9 years ago
commit a02f43fb7f
  1. 15
      app/scripts/metamask-controller.js
  2. 21
      test/unit/util_test.js
  3. 35
      ui/app/components/eth-balance.js
  4. 33
      ui/app/util.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)
}
}
})

@ -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')
})
})

@ -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),
])
)
}

@ -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) {

Loading…
Cancel
Save