The block every field here was read at. Both multicalls are pinned to it, so icr and
price cannot come from different states (MK-013).
Entire collateral incl. pending redistribution, getEntireDebtAndColl.coll (BTC wei).
Live entire debt = principal + interest from getEntireDebtAndColl (the value ICR uses).
True only for an active position with debt.
Derived: icr / MCR as a number (1.0 at MCR).
getCurrentICR(address, price), 1e18 fixed point.
Interest accrued to NOW, getEntireDebtAndColl.interest (NOT getTroveInterestOwed, which is the stale stored value; C3).
The fixed rate locked at open, in basis points, getTroveInterestRate.
icr < MCR, the protocol's ONLY liquidation gate (TroveManager.sol:1148). There is
no Recovery Mode widening: TroveManager.sol contains no reference to CCR. Always
equal to isLiquidatable(address); a fork test pins that the two agree (MK-001).
Derived: BTC/USD price at which ICR hits MCR = (MCR × entireDebt) / collateral.
getNominalICR(address).
fetchPrice() at blockNumber, the price icr was measured against.
Principal component of the debt (draw + fee + 200 gas reserve, + any pending), excl. interest, getEntireDebtAndColl.principal.
getTroveStatus.
A live Trove position. Every numeric field except
liquidationPriceandhealthFactorcomes straight from a contract getter, correct by construction. The two derived fields are thin transforms of those authoritative values (seedocs/05-math-and-hints.md§4), proven againstcomputeCR.