aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/util.js
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2017-08-09 07:23:14 +0800
committerGitHub <noreply@github.com>2017-08-09 07:23:14 +0800
commit922ecb914963c420ef2acdb9e2db91444065f62f (patch)
tree9135982572ae502242d5cce39890593f1fec68f8 /app/scripts/lib/util.js
parent67e4855b9d79afb3046c6499f4610cb5a8b70837 (diff)
parent7db1f30590c9dbd01456517ebf0a24e1f76ddd40 (diff)
downloadtangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar.gz
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar.bz2
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar.lz
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar.xz
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.tar.zst
tangerine-wallet-browser-922ecb914963c420ef2acdb9e2db91444065f62f.zip
Merge branch 'master' into greenkeeper/initial
Diffstat (limited to 'app/scripts/lib/util.js')
-rw-r--r--app/scripts/lib/util.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/scripts/lib/util.js b/app/scripts/lib/util.js
index bddd60ee8..70390e95c 100644
--- a/app/scripts/lib/util.js
+++ b/app/scripts/lib/util.js
@@ -1,8 +1,39 @@
+const ethUtil = require('ethereumjs-util')
+const BN = ethUtil.BN
+
module.exports = {
getStack,
+ sufficientBalance,
+ hexToBn,
+ bnToHex,
+ BnMultiplyByFraction,
}
function getStack () {
const stack = new Error('Stack trace generator - not an error').stack
return stack
}
+
+function sufficientBalance (txParams, hexBalance) {
+ const balance = hexToBn(hexBalance)
+ const value = hexToBn(txParams.value)
+ const gasLimit = hexToBn(txParams.gas)
+ const gasPrice = hexToBn(txParams.gasPrice)
+
+ const maxCost = value.add(gasLimit.mul(gasPrice))
+ return balance.gte(maxCost)
+}
+
+function bnToHex (inputBn) {
+ return ethUtil.addHexPrefix(inputBn.toString(16))
+}
+
+function hexToBn (inputHex) {
+ return new BN(ethUtil.stripHexPrefix(inputHex), 16)
+}
+
+function BnMultiplyByFraction (targetBN, numerator, denominator) {
+ const numBN = new BN(numerator)
+ const denomBN = new BN(denominator)
+ return targetBN.mul(numBN).div(denomBN)
+}