Skip to content

Commit

Permalink
fix: Fix redeem nft math rounding bug
Browse files Browse the repository at this point in the history
  • Loading branch information
akashiceth committed Aug 27, 2023
1 parent 1f00ea7 commit dc5ba6a
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion contracts/interceptors/RedeemNFT.sol
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,15 @@ contract RedeemNFT is IInterceptor {
);

// approve lend pool
IERC20(vars.tokenRepaid).safeApprove(address(vars.lendPool), vars.totalDebt + vars.bidFine);
// repay debt, will failed if debt greater than sell price
if (vars.bidFine > 0) {
// maxinmum debt repay amount 90%
uint256 redeemAmount = (vars.totalDebt * 9000 + HALF_PERCENT) / PERCENTAGE_FACTOR;
IERC20(vars.tokenRepaid).safeIncreaseAllowance(address(vars.lendPool), redeemAmount + vars.bidFine);
vars.lendPool.redeem(token, tokenId, redeemAmount, vars.bidFine);
(, , , vars.totalDebt, , ) = vars.lendPool.getNftDebtData(token, tokenId);
}
IERC20(vars.tokenRepaid).safeIncreaseAllowance(address(vars.lendPool), vars.totalDebt);
vars.lendPool.repay(token, tokenId, vars.totalDebt);
// reset approve
IERC20(vars.tokenRepaid).safeApprove(address(vars.lendPool), 0);
Expand Down

0 comments on commit dc5ba6a

Please sign in to comment.