A partial redemption on the first Trove drawn would cancel, and revert the whole call, on an ordinary price move before it mines (MK-103).

The contract cancels a partial unless the Trove's resulting NICR, computed at the price when the transaction MINES, sits inside a band about 600 seconds of interest wide (TroveManager.sol:1276-1306), and a cancel on the first Trove drawn reverts the call (:406-408). The two tolerances on this error are how far the price could move up and down, as 1e18 fractions, before that happens; the required tolerance is the measured two block move (REDEMPTION_PRICE_MOVE_TOLERANCE).

Two ways forward. Redeem at least nextViableAmount, which consumes the first Trove whole and is not priced against a hint at all (:1252). Or send anyway with acceptPriceFragilePartial: true, knowing most such sends revert and cost gas.

Hierarchy (View Summary)

Constructors

Properties

Constructors

  • Parameters

    • context: {
          nextViableAmount: bigint;
          priceToleranceDown: bigint;
          priceToleranceUp: bigint;
          requested: bigint;
          requiredTolerance: bigint;
      }

    Returns RedemptionPriceFragile

Properties

context: undefined | Record<string, unknown>