Repository navigation
feat(vip-667): set zero rate model on deprecated vTUSDOLD [BNB Chain] - #773
Closed
Debugger022 wants to merge 1 commit into
Closed
Debugger022 wants to merge 1 commit into
Debugger022 wants to merge 1 commit into
Conversation
Utilization on vTUSDOLD is uncapped and keeps rising with the debt, so the borrow rate will soon pass the VToken ceiling. After that accrueInterest reverts, blocking repay, liquidate and _setInterestRateModel itself. Fast Track is used to execute before that point.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Contributor
Author
|
done with a multisig transaction via Risk steward will close the PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This proposal sets a zero rate interest rate model on the deprecated TUSDOLD market (vTUSDOLD) on BNB Chain, so the remaining debt stops growing. Without it, the market's borrow rate reaches the protocol's hard rate ceiling within days, after which repayments, liquidations and any further change to the market revert.
Background
Mint, borrow and enter market are paused on vTUSDOLD, but interest still accrues on the remaining debt. The market has no cash and a 100% reserve factor, so all interest is booked as reserves and borrows minus reserves stays fixed at about 40,000 TUSDOLD. Utilization is computed as borrows / (cash + borrows - reserves) and is not capped, so it rises with the debt. It is about 2,800% today, and the borrow rate rises with it.
When the rate passes the VToken ceiling of 0.0005% per block, accrueInterest reverts. Every action that accrues interest first then reverts too, including repay, liquidate and _setInterestRateModel itself. At the current pace this happens at about 3.8 to 4.0 million TUSDOLD of borrows, roughly two days after October 1, 2026. Once that point is reached, the interest rate model can no longer be changed by governance and only a contract upgrade would restore the market.
This proposal uses the Fast Track timelock, which holds the _setInterestRateModel permission on vTUSDOLD, so that it executes before the ceiling is reached.
Actions
The call accrues interest one final time at the current rate and then switches the model. From then on no interest accrues on vTUSDOLD, and actions that accrue interest first, such as repay and liquidate, can no longer hit the rate ceiling. Pause states, collateral factors and the reserve factor are unchanged.
The existing debt and the reserves already booked are not changed by this proposal. How to settle the remaining positions will be handled separately.
References
Voting options
Reviewer notes
0x42Ec3Eb6F23460dFDfa3aE5688f3415CDfE0C6ADis an existing WhitePaperInterestRateModel withbaseRatePerBlock = 0andmultiplierPerBlock = 0, read on chain at the fork block. No new contract is deployed.getCash() = 0,totalBorrows ≈ 1,121,872.5,totalReserves ≈ 1,081,896.5, so borrows minus reserves ≈ 39,976 TUSDOLD.borrowRatePerBlock = 1.4757e12.borrowRateMaxMantissa = 0.0005e16(5e12) inVTokenInterfaces.sol:43, enforced by therequireinVToken.sol:589insideaccrueInterest. The current rate is about 30% of it._setInterestRateModel(address)on vTUSDOLD, so the proposal isFAST_TRACK.accrueInterest(), and assertstotalBorrowsandtotalReservesare unchanged.Tests:
npx hardhat test simulations/vip-667/bscmainnet.ts --fork bscmainnetgives 11 passing. propose() via proposer Safe requiredGasLimit ≈ 573K (3.41% of the 16.78M per tx cap); execute() gasUsed ≈ 190K.