aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/util.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-04-20 09:56:22 +0800
committerDan Finlay <dan@danfinlay.com>2016-04-20 09:56:22 +0800
commitd6ab6bb4fa506c5fb9479b6e534ab74632c1b819 (patch)
tree752bba009f4a31636d74621431cda51495741693 /ui/app/util.js
parentf79601ee58a07ec6275d4588845578795f550d84 (diff)
downloadtangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar.gz
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar.bz2
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar.lz
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar.xz
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.tar.zst
tangerine-wallet-browser-d6ab6bb4fa506c5fb9479b6e534ab74632c1b819.zip
Fix floating point input bug
When sending a transaction, we were converting to BN before handling decimals, which meant we were losing any precision past a decimal point, since BN does not handle decimals! Put this numeric normalization into a utility function with a test around it and got it working.
Diffstat (limited to 'ui/app/util.js')
-rw-r--r--ui/app/util.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/ui/app/util.js b/ui/app/util.js
index 18862fade..bacf00c66 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -28,6 +28,7 @@ module.exports = {
ethToWei: ethToWei,
weiToEth: weiToEth,
normalizeToWei: normalizeToWei,
+ normalizeNumberToWei: normalizeNumberToWei,
valueTable: valueTable,
bnTable: bnTable,
}
@@ -85,13 +86,20 @@ function dataSize(data) {
// returns a BN in wei
function normalizeToWei(amount, currency) {
try {
- var ether = amount.div(bnTable[currency])
- var wei = ether.mul(bnTable.wei)
- return wei
+ return amount.mul(bnTable.wei).div(bnTable[currency])
} catch (e) {}
return amount
}
+var multiple = new ethUtil.BN('1000', 10)
+function normalizeNumberToWei(n, currency) {
+ var enlarged = n * 1000
+ console.log(`Enlarged, we have ${enlarged}`)
+ var amount = new ethUtil.BN(String(enlarged), 10)
+ console.log("Amount inside is "+ amount.toString(10))
+ return normalizeToWei(amount, currency).div(multiple)
+}
+
function readableDate(ms) {
var date = new Date(ms)
var month = date.getMonth()