diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-05-26 10:42:51 +0800 |
---|---|---|
committer | kumavis <kumavis@users.noreply.github.com> | 2016-05-26 10:42:51 +0800 |
commit | 36d6b3959e3958c6ed2517013626f59ff912271e (patch) | |
tree | 8c27a5d2926d65002a2996048c8444657f31acbe /ui/app | |
parent | 7c7fa23374a2d71eab03f53a766452ba6d711cb7 (diff) | |
parent | 2ce9f1a776ea3168438fa2bdfcac90b35492e8ac (diff) | |
download | tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar.gz tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar.bz2 tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar.lz tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar.xz tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.tar.zst tangerine-wallet-browser-36d6b3959e3958c6ed2517013626f59ff912271e.zip |
Merge pull request #222 from MetaMask/balances
Fixes #206
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/components/eth-balance.js | 12 | ||||
-rw-r--r-- | ui/app/util.js | 44 |
2 files changed, 30 insertions, 26 deletions
diff --git a/ui/app/components/eth-balance.js b/ui/app/components/eth-balance.js index 3f88ef2d4..76b75d4c8 100644 --- a/ui/app/components/eth-balance.js +++ b/ui/app/components/eth-balance.js @@ -2,6 +2,7 @@ const Component = require('react').Component const h = require('react-hyperscript') const inherits = require('util').inherits const parseBalance = require('../util').parseBalance +const formatBalance = require('../util').formatBalance module.exports = EthBalanceComponent @@ -12,11 +13,8 @@ function EthBalanceComponent() { EthBalanceComponent.prototype.render = function() { var state = this.props - var parsedAmount = parseBalance(state.value) - var beforeDecimal = parsedAmount[0] - var afterDecimal = parsedAmount[1] - var value = beforeDecimal+(afterDecimal ? '.'+afterDecimal : '') var style = state.style + var value = formatBalance(state.value) return ( @@ -28,12 +26,6 @@ EthBalanceComponent.prototype.render = function() { display: 'inline', }, }, value), - h('.ether-balance-label', { - style: { - display: 'inline', - marginLeft: 6, - }, - }, 'ETH'), ]) ) diff --git a/ui/app/util.js b/ui/app/util.js index 81a029350..91f85e43f 100644 --- a/ui/app/util.js +++ b/ui/app/util.js @@ -84,29 +84,41 @@ function weiToEth(bn) { } // Takes hex, returns [beforeDecimal, afterDecimal] -function parseBalance(balance, decimalsToKeep) { - if (decimalsToKeep === undefined) decimalsToKeep = 4 - if (!balance || balance === '0x0') return ['0', ''] - var wei = numericBalance(balance) - var padded = wei.toString(10) - var len = padded.length - var match = padded.match(/[^0]/) - var nonZeroIndex = match && match.index - var beforeDecimal = padded.substr(nonZeroIndex ? nonZeroIndex : 0, len - 18) || '0' - var afterDecimal = padded.substr(len - 18, decimalsToKeep) +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' + } return [beforeDecimal, afterDecimal] } // Takes wei hex, returns "None" or "${formattedAmount} ETH" -function formatBalance(balance) { +function formatBalance(balance, decimalsToKeep) { var parsed = parseBalance(balance) var beforeDecimal = parsed[0] var afterDecimal = parsed[1] - if (beforeDecimal === '0' && afterDecimal === '') return 'None' - var result = beforeDecimal - if (afterDecimal) result += '.'+afterDecimal - result += ' ETH' - return result + 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{ + afterDecimal += Array(decimalsToKeep).join("0") + formatted = beforeDecimal + "." + afterDecimal.slice(0,decimalsToKeep) + ' ETH' + } + return formatted } function dataSize(data) { |