mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-10-24 12:23:39 +02:00
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
const {
|
|
conversionGreaterThan,
|
|
} = require('../../../../conversion-util')
|
|
const {
|
|
isBalanceSufficient,
|
|
isTokenBalanceSufficient,
|
|
} = require('../../send.utils')
|
|
|
|
function getAmountErrorObject ({
|
|
amount,
|
|
amountConversionRate,
|
|
balance,
|
|
conversionRate,
|
|
gasTotal,
|
|
primaryCurrency,
|
|
selectedToken,
|
|
tokenBalance,
|
|
}) {
|
|
let insufficientFunds = false
|
|
if (gasTotal && conversionRate) {
|
|
insufficientFunds = !isBalanceSufficient({
|
|
amount: selectedToken ? '0x0' : amount,
|
|
amountConversionRate,
|
|
balance,
|
|
conversionRate,
|
|
gasTotal,
|
|
primaryCurrency,
|
|
})
|
|
}
|
|
|
|
let inSufficientTokens = false
|
|
if (selectedToken && tokenBalance !== null) {
|
|
const { decimals } = selectedToken
|
|
inSufficientTokens = !isTokenBalanceSufficient({
|
|
tokenBalance,
|
|
amount,
|
|
decimals,
|
|
})
|
|
}
|
|
|
|
const amountLessThanZero = conversionGreaterThan(
|
|
{ value: 0, fromNumericBase: 'dec' },
|
|
{ value: amount, fromNumericBase: 'hex' },
|
|
)
|
|
|
|
let amountError = null
|
|
|
|
if (insufficientFunds) {
|
|
amountError = 'insufficientFunds'
|
|
} else if (inSufficientTokens) {
|
|
amountError = 'insufficientTokens'
|
|
} else if (amountLessThanZero) {
|
|
amountError = 'negativeETH'
|
|
}
|
|
|
|
return { amount: amountError }
|
|
}
|
|
|
|
module.exports = {
|
|
getAmountErrorObject,
|
|
}
|