SAME_BLOCK_BORROW_REPAY prevents a user from repaying twice in the same block - is that intended?

Expert

It looks like SAME_BLOCK_BORROW_REPAY prevents a user from repaying twice in the same block even if they dont borrow anything in that block. Is that intended?

Answers 1

This is the error condition:

equire(
      (stableRatePreviousTimestamp < uint40(block.timestamp) &&
        interestRateMode == DataTypes.InterestRateMode.STABLE) ||
        (variableDebtPreviousIndex < reserveCache.nextVariableBorrowIndex &&
          interestRateMode == DataTypes.InterestRateMode.VARIABLE),
      Errors.SAME_BLOCK_BORROW_REPAY
    );

It looks like this is to prevent the variable of stable rates from being updated twice in the same block, so I think it is intentional it will depend on your use case, but keep in mind there is a repaywithatokens function which in my case was enough to suit my needs