feat: fix exchange rate bug by removing those bad methods that dont work right

This commit is contained in:
Mr. Dummy Tester 2020-12-25 20:47:28 -06:00
parent fc23f18420
commit bda95affc2
2 changed files with 5 additions and 4 deletions

View File

@ -184,5 +184,6 @@ export const collateralToLiquidity = (collateralAmount: BN | number, reserve?: L
export const liquidityToCollateral = (liquidityAmount: BN | number, reserve?: LendingReserve) => {
const amount = typeof liquidityAmount === 'number' ? liquidityAmount : liquidityAmount.toNumber();
console.log('Exchange rate:', collateralExchangeRate(reserve));
return Math.floor(amount * collateralExchangeRate(reserve));
};

View File

@ -2,7 +2,6 @@ import { useEffect } from 'react';
import { LABELS } from '../../../constants';
import { useEnrichedPools } from '../../../contexts/market';
import { useUserDeposits } from '../../../hooks';
import { collateralToLiquidity, liquidityToCollateral } from '../../../models';
import { usePoolForBasket } from '../../../utils/pools';
import { Position } from './interfaces';
@ -39,10 +38,11 @@ export function useLeverage({
return;
}
// If there is more of A than B
const exchangeRate = enriched[0].liquidityB / enriched[0].liquidityA;
const amountDesiredToPurchase = parseFloat(newPosition.asset.value);
const leverageDesired = newPosition.leverage;
const amountAvailableInOysterForMargin = collateralToLiquidity(collateralDeposit.info.amount, desiredType.info);
const amountAvailableInOysterForMargin = collateralDeposit.info.amount * exchangeRate;
const amountToDepositOnMargin = amountDesiredToPurchase / leverageDesired;
if (amountToDepositOnMargin > amountAvailableInOysterForMargin) {
@ -55,7 +55,7 @@ export function useLeverage({
const supplyRatio = liqA / liqB;
// change in liquidity is amount desired (in units of B) converted to collateral units(A)
const chgLiqA = liquidityToCollateral(amountDesiredToPurchase, desiredType.info);
const chgLiqA = amountDesiredToPurchase / exchangeRate;
const newLiqA = liqA - chgLiqA;
const newLiqB = liqB + amountDesiredToPurchase;
const newSupplyRatio = newLiqA / newLiqB;