calculate status using spotPrice and fix liquidation price

This commit is contained in:
Georges KABBOUCHI 2021-09-01 00:43:47 +03:00
parent 85ee2a0d48
commit 061f86c0f0

View File

@ -58,13 +58,15 @@ export function useReflexerPosition(
) { ) {
const { web3, chainId, networkName } = useWeb3(); const { web3, chainId, networkName } = useWeb3();
const { activeAccount } = useDSA(); const { activeAccount } = useDSA();
const { isZero, ensureValue, times, div, max, gt } = useBigNumber(); const { isZero, ensureValue, times, div, max, gt, toBN } = useBigNumber();
const { getTokenByKey } = useToken(); const { getTokenByKey } = useToken();
const safeTokenType = computed(() => safe.value.safeTokenType); const safeTokenType = computed(() => safe.value.safeTokenType);
const price = computed(() => ensureValue(safe.value.price).toFixed()); const price = computed(() => ensureValue(safe.value.price).toFixed());
const spotPrice = computed(() => ensureValue(safe.value.spotPrice).toFixed());
const collateralUsd = computed(() => const collateralUsd = computed(() =>
times(collateral.value, price.value).toFixed() times(collateral.value, price.value).toFixed()
); );
@ -89,7 +91,7 @@ export function useReflexerPosition(
? "1.1" ? "1.1"
: div( : div(
debtAmountRef.value, debtAmountRef.value,
times(collateralAmountRef.value, price.value) times(collateralAmountRef.value, spotPrice.value)
).toFixed(); ).toFixed();
}); });
@ -99,12 +101,13 @@ export function useReflexerPosition(
div(div(debt.value, collateral.value), liquidation.value), div(div(debt.value, collateral.value), liquidation.value),
"0" "0"
).toFixed(); ).toFixed();
return isZero(collateralAmountRef.value) && !isZero(debtAmountRef.value) return isZero(collateralAmountRef.value) && !isZero(debtAmountRef.value)
? times(price.value, "1.1").toFixed() ? times(price.value, "1.1").toFixed()
: max( : max(
div( div(
div(debtAmountRef.value, collateralAmountRef.value), div(debtAmountRef.value, collateralAmountRef.value),
liquidation.value toBN(liquidation.value ).multipliedBy(spotPrice.value).dividedBy(price.value)
), ),
"0" "0"
).toFixed(); ).toFixed();
@ -222,17 +225,13 @@ async function getSafeTypes(web3) {
redemptionPrice: new BigNumber(rawRedemptionPrice) redemptionPrice: new BigNumber(rawRedemptionPrice)
.dividedBy(1e27) .dividedBy(1e27)
.toFixed(), .toFixed(),
price: new BigNumber(price) spotPrice: new BigNumber(price).dividedBy(1e27).toFixed(),
.times(rawRedemptionPrice) price: new BigNumber(price).times(rawRedemptionPrice).dividedBy(1e54).toFixed(),
.dividedBy(1e54)
.toFixed(),
liquidation: new BigNumber(1) liquidation: new BigNumber(1)
.dividedBy(new BigNumber(ratioCbyD).dividedBy(1e27)) .dividedBy(new BigNumber(ratioCbyD).dividedBy(1e27))
.toFixed(), .toFixed(),
debtCeiling: debtCeiling, debtCeiling: debtCeiling,
totalDebt: new BigNumber(totalDebt) totalDebt: new BigNumber(totalDebt).multipliedBy(1.00002).toFixed()
.multipliedBy(1.00002)
.toFixed()
}; };
} }
); );
@ -275,6 +274,7 @@ async function getSafes(user, web3) {
]) => { ]) => {
const collateral = new BigNumber(collInWei).dividedBy(1e18); const collateral = new BigNumber(collInWei).dividedBy(1e18);
const debt = new BigNumber(debtInWei).dividedBy(1e18); const debt = new BigNumber(debtInWei).dividedBy(1e18);
const spotPrice = new BigNumber(priceInWei).dividedBy(1e27);
const price = new BigNumber(priceInWei) const price = new BigNumber(priceInWei)
.times(rawRedemptionPrice) .times(rawRedemptionPrice)
.dividedBy(1e54); .dividedBy(1e54);
@ -295,6 +295,7 @@ async function getSafes(user, web3) {
.toFixed(), .toFixed(),
rate: calRate(ratePerBlock), rate: calRate(ratePerBlock),
price: price.toFixed(), price: price.toFixed(),
spotPrice,
liquidation: new BigNumber(1) liquidation: new BigNumber(1)
.dividedBy(new BigNumber(liquidationRatioCbyD).dividedBy(1e27)) .dividedBy(new BigNumber(liquidationRatioCbyD).dividedBy(1e27))
.toFixed(), .toFixed(),
@ -305,7 +306,7 @@ async function getSafes(user, web3) {
.toFixed(), .toFixed(),
status: collateral.isZero() status: collateral.isZero()
? "0" ? "0"
: debt.dividedBy(collateral.multipliedBy(price)).toFixed() : debt.dividedBy(collateral.multipliedBy(spotPrice)).toFixed()
}; };
} }
); );