diff options
author | Alexander Tseung <alextsg@gmail.com> | 2017-12-23 03:00:46 +0800 |
---|---|---|
committer | Alexander Tseung <alextsg@gmail.com> | 2017-12-23 03:00:46 +0800 |
commit | 06410381d4b738fe22aa24973c7f9568d295f570 (patch) | |
tree | 69bd8701cdaa417cb6c0f46deff43414122101db /ui/app/components/send/send-utils.js | |
parent | 06f496310ce7d719bbb5690f307db143ba57a1a7 (diff) | |
parent | a218008adf85dfb5fa8ca93c789e14d9f2090813 (diff) | |
download | tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.gz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.bz2 tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.lz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.xz tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.tar.zst tangerine-wallet-browser-06410381d4b738fe22aa24973c7f9568d295f570.zip |
Merge branch 'NewUI-flat' into merge-master
Diffstat (limited to 'ui/app/components/send/send-utils.js')
-rw-r--r-- | ui/app/components/send/send-utils.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/ui/app/components/send/send-utils.js b/ui/app/components/send/send-utils.js new file mode 100644 index 000000000..d8211930d --- /dev/null +++ b/ui/app/components/send/send-utils.js @@ -0,0 +1,68 @@ +const { + addCurrencies, + conversionUtil, + conversionGTE, +} = 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, + 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 +} + +module.exports = { + isBalanceSufficient, + isTokenBalanceSufficient, +} |