assembly/composables/useValidators.ts
2021-08-05 20:51:26 +03:00

60 lines
1.5 KiB
TypeScript

import { useBigNumber } from "./useBigNumber";
import { useFormatting } from "./useFormatting";
export function useValidators() {
const { formatNumber } = useFormatting()
const { isZero, minus, eq, gt } = useBigNumber();
function validateAmount(amountParsed, balance = null, options = null) {
const mergedOptions = Object.assign(
{ msg: "Your amount exceeds your maximum limit." },
options
);
if (isZero(amountParsed)) {
return "Please provide a valid amount.";
} else if (balance !== null && gt(amountParsed, balance)) {
return mergedOptions.msg;
}
return null;
}
function validateLiquidation(status, liquidation, isWithdraw = false) {
if (eq(status, liquidation) && isZero(status) && isWithdraw) {
return null;
}
if (gt(status, minus(liquidation, "0.0001"))) {
return "Position will liquidate.";
}
return null;
}
function validateIsLoggedIn(isLoggedIn) {
if (!isLoggedIn) {
return "Please connect to a web3 wallet.";
}
return null;
}
function validateLiquidity(borrow, availableLiquidity, tokenSymbol, withdraw = false) {
if (gt(borrow, availableLiquidity)) {
let action = 'borrow'
if (withdraw) {
action = 'withdraw'
}
return `Not enough liquidity to ${action} ${formatNumber(borrow, 2)} ${tokenSymbol}`
}
return null
}
return {
validateAmount,
validateLiquidation,
validateIsLoggedIn,
validateLiquidity
};
}