Inputs to computeHints: the position shape plus optional trial/seed overrides.

interface ComputeHintsParams {
    collateral: bigint;
    numTrials?: number;
    principal: bigint;
    randomSeed?: bigint;
}

Hierarchy (View Summary)

Properties

collateral: bigint

Collateral in BTC wei (1e18).

numTrials?: number

Override the auto-scaled trial count (skips the getSize() read).

principal: bigint

The position's PRINCIPAL, which is the quantity the sorted list is keyed on. Not the entire debt (MK-006, MK-090).

Every on-chain insert and re-insert passes a principal-only figure: _computeNominalCR(vars.newColl, vars.newPrincipal) on the adjust path (BorrowerOperations.sol:902-905) and on refinance (:1087), the same on a partial redemption (TroveManager.sol:1287-1290), and getNominalICR itself reads Troves[b].principal + pendingPrincipal (TroveManager.sol:569-576). Accrued interest is never part of the key.

At an OPEN the two coincide, because a new Trove owes no interest yet, so compositeDebt = draw + fee + 200 IS the principal and :652 passes it. That coincidence is why the old name here was entireDebt and why it read as correct: MK-006 was the same mistake in the write path, and it survived a release because the only gate covering hints covered opens. Passing a live Trove's entire debt produces a NICR below the node's real key, so the hint lands in the wrong neighbourhood and reInsert traverses to correct it, which costs gas and on a long list can run out of it.

randomSeed?: bigint

Override the sampling seed (default DEFAULT_HINT_RANDOM_SEED).