diff --git a/app/manifest.json b/app/manifest.json index 2e2d28f37..dede7402a 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_appName__", "short_name": "Metamask", - "version": "2.4.0", + "version": "2.4.1", "manifest_version": 2, "description": "__MSG_appDescription__", "icons": { diff --git a/app/scripts/lib/id-management.js b/app/scripts/lib/id-management.js index b9a2fc3a8..4e18bc8a9 100644 --- a/app/scripts/lib/id-management.js +++ b/app/scripts/lib/id-management.js @@ -1,4 +1,6 @@ const ethUtil = require('ethereumjs-util') +const Transaction = require('ethereumjs-tx') +const configManager = require('./config-manager-singleton') module.exports = IdManagement diff --git a/test/unit/util_test.js b/test/unit/util_test.js index 12a16999e..e2390c8d4 100644 --- a/test/unit/util_test.js +++ b/test/unit/util_test.js @@ -25,12 +25,26 @@ describe('util', function() { }) }) describe('parseBalance', function() { - it('should render 0.01 eth correctly', function() { + it('should render 12.023 eth correctly', function() { const input = 'A6DA46CCA6858000' const output = util.parseBalance(input) assert.deepEqual(output, ['12', '023']) }) }) + describe('parseBalance', function() { + it('should render 0.0000000342422 eth correctly', function() { + const input = '0x7F8FE81C0' + const output = util.parseBalance(input) + assert.deepEqual(output, ['0', '0000000342422']) + }) + }) + describe('parseBalance', function() { + it('should render 0 eth correctly', function() { + const input = '0x0' + const output = util.parseBalance(input) + assert.deepEqual(output, ['0', '0']) + }) + }) describe('addressSummary', function() { it('should add case-sensitive checksum', function() { diff --git a/ui/app/util.js b/ui/app/util.js index 5252fc9d3..de631dba9 100644 --- a/ui/app/util.js +++ b/ui/app/util.js @@ -84,16 +84,13 @@ function weiToEth (bn) { // Takes hex, returns [beforeDecimal, afterDecimal] 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' - } + let beforeDecimal, afterDecimal + let wei = numericBalance(balance).toString() + let trailingZeros = /0+$/ + + beforeDecimal = wei.length > 18 ? wei.slice(0, wei.length - 18) : '0' + afterDecimal = ("000000000000000000" + wei).slice(-18).replace(trailingZeros, "") + if(afterDecimal == ""){afterDecimal = "0" } return [beforeDecimal, afterDecimal] }