aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send_/send.utils.js
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2018-04-27 00:38:38 +0800
committerDan <danjm.com@gmail.com>2018-04-27 00:38:38 +0800
commit8ff7806f1b471a90fa3f45ebc10f0f4452ade541 (patch)
treefe4c9483f6b7ffadda35f304f15bbf3a02974910 /ui/app/components/send_/send.utils.js
parent02a6d2089ede7d3faf4990c40b85b9f773f82c64 (diff)
downloadtangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar.gz
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar.bz2
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar.lz
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar.xz
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.tar.zst
tangerine-wallet-browser-8ff7806f1b471a90fa3f45ebc10f0f4452ade541.zip
Core of the refactor complete
Diffstat (limited to 'ui/app/components/send_/send.utils.js')
-rw-r--r--ui/app/components/send_/send.utils.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/ui/app/components/send_/send.utils.js b/ui/app/components/send_/send.utils.js
index e69de29bb..f56f91e48 100644
--- a/ui/app/components/send_/send.utils.js
+++ b/ui/app/components/send_/send.utils.js
@@ -0,0 +1,78 @@
+const {
+ addCurrencies,
+ conversionUtil,
+ conversionGTE,
+ multiplyCurrencies,
+} = require('../../conversion-util')
+const {
+ calcTokenAmount,
+} = require('../../token-util')
+
+function isBalanceSufficient ({
+ amount = '0x0',
+ gasTotal = '0x0',
+ balance,
+ primaryCurrency,
+ amountConversionRate,
+ conversionRate,
+}) {
+ const totalAmount = addCurrencies(amount, gasTotal, {
+ aBase: 16,
+ bBase: 16,
+ toNumericBase: 'hex',
+ })
+
+ const balanceIsSufficient = conversionGTE(
+ {
+ value: balance,
+ fromNumericBase: 'hex',
+ fromCurrency: primaryCurrency,
+ conversionRate,
+ },
+ {
+ value: totalAmount,
+ fromNumericBase: 'hex',
+ conversionRate: amountConversionRate || conversionRate,
+ fromCurrency: primaryCurrency,
+ },
+ )
+
+ return balanceIsSufficient
+}
+
+function isTokenBalanceSufficient ({
+ amount = '0x0',
+ tokenBalance,
+ decimals,
+}) {
+ const amountInDec = conversionUtil(amount, {
+ fromNumericBase: 'hex',
+ })
+
+ const tokenBalanceIsSufficient = conversionGTE(
+ {
+ value: tokenBalance,
+ fromNumericBase: 'dec',
+ },
+ {
+ value: calcTokenAmount(amountInDec, decimals),
+ fromNumericBase: 'dec',
+ },
+ )
+
+ return tokenBalanceIsSufficient
+}
+
+function getGasTotal (gasLimit, gasPrice) {
+ return multiplyCurrencies(gasLimit, gasPrice, {
+ toNumericBase: 'hex',
+ multiplicandBase: 16,
+ multiplierBase: 16,
+ })
+}
+
+module.exports = {
+ getGasTotal,
+ isBalanceSufficient,
+ isTokenBalanceSufficient,
+} \ No newline at end of file