The reserve ratio on USDf is broken

after you call the “setMinReserveRate” since current reserveRatio is lower than MIN_RESERVER_RATIO to fix things you need to also call “setReserveRatioAdmin”
otherwise the reserveRatio will never update

function setReserveRatio(uint256 newRatio_) private {
    require(newRatio_ != 0);

    if (newRatio_ >= MIN_RESERVE_RATIO && newRatio_ <= MAX_RESERVE_RATIO) {
        _reserveRatio = newRatio_;
        emit NewReserveRate(_reserveRatio);
    }
}

it fails at newRatio >= MIN_RESERVE_RATIO check

2 Likes

Note: if this function is called and the CR is set to 95%, one could redeem 1 USDF (market price @80cent) for 0.95 USDC. This would deplete the USDC funds right away.
Best to revert the decision to set the MIN_RESERVE_RATIO, or set it to just below USDF price.

2 Likes

as people start buying on uniswap the price is gonna go up so at one point buying on uniswap and redeem will become unprofitable so not everyone will be doing it

2 Likes

I fear that’s the same logic as the current redeem process, which doesn’t seem to help maintain pegg.

2 Likes