Solvency gate for ReferenceCurve reserves. Source: src/core/reserve/ReserveManager_v1.sol. Interfaces: IReserveManager_v1.

Functions

activateEndowment

IReserveManager_v1.sol#L392

cancelUnbackedDrawCeilingChange

Cancel the queued unbacked-draw ceiling change. Parameters IReserveManager_v1.sol#L641

closePosition

Retire an open position. The position must be empty — both lockedIssuance and outstandingReserves must equal zero at the moment of the call. Parameters IReserveManager_v1.sol#L554

draw

Draw collateral against an open position. No issuance lock change. Parameters IReserveManager_v1.sol#L527

drawUnbackedReserves

Draw collateral from ReferenceCurve reserves without locking issuance. Parameters IReserveManager_v1.sol#L604

executeUnbackedDrawCeilingChange

Execute the queued unbacked-draw ceiling change. Parameters IReserveManager_v1.sol#L656

finalizeEndowmentSetup

IReserveManager_v1.sol#L393

lockAndDraw

Lock additional issuance against an open position, optionally drawing collateral atomically in the same call. Parameters IReserveManager_v1.sol#L511

mergePositions

Merge two or more open positions into a single fresh position under the caller’s namespace. Parameters Returns IReserveManager_v1.sol#L581

openPosition

Open a new position. Locks issuanceAmount_ of issuance and optionally draws reserveAmount_ of collateral against the freshly opened position in the same call. Parameters Returns IReserveManager_v1.sol#L492

queueUnbackedDrawCeilingChange

Queue a change of the unbacked-draw ceiling. Executable after the effective delay (600 seconds on chain 412346, otherwise 24 hours), inside a 3-day window. Parameters Returns IReserveManager_v1.sol#L634

registerEndowmentController

IReserveManager_v1.sol#L391

repay

Repay collateral against an open position; releases proportional issuance. Parameters Returns IReserveManager_v1.sol#L540

restoreUnbackedReserves

Return collateral to ReferenceCurve reserves that was previously drawn without locking issuance. Parameters IReserveManager_v1.sol#L615

View functions

getEndowmentAdmin

Returns IReserveManager_v1.sol#L388

getEndowmentController

Returns IReserveManager_v1.sol#L380

getExpectedEndowmentController

Returns IReserveManager_v1.sol#L384

getPendingUnbackedDrawCeilingChange

The queued unbacked-draw ceiling change, or a zero-valued record if none is queued. Returns IReserveManager_v1.sol#L450

getPendingUnbackedDrawCeilingQueueVcs

The virtual collateral supply recorded when the pending ceiling change was queued, or 0 if none is queued. Returns IReserveManager_v1.sol#L441

getPosition

Read a position record under a module’s namespace. Parameters Returns IReserveManager_v1.sol#L356

getTotalLockedIssuance

Total locked issuance across all open positions. Returns IReserveManager_v1.sol#L363

getTotalOutstandingReserves

Total outstanding collateral across all open positions. Returns IReserveManager_v1.sol#L367

getTotalUnbackedReserveDrawn

Total collateral drawn from ReferenceCurve without backing issuance. Returns IReserveManager_v1.sol#L374

getUnbackedDrawCeilingAmount

The absolute unbacked-draw ceiling: floor(min(VCS now, recorded VCS) * ceilingBps / 10_000). Returns IReserveManager_v1.sol#L419

getUnbackedDrawCeilingBaseVcs

The virtual collateral supply recorded as the ceiling base. Returns IReserveManager_v1.sol#L432

getUnbackedDrawCeilingBps

The unbacked-draw ceiling in basis points of the virtual collateral supply. Returns IReserveManager_v1.sol#L405

getUnbackedDrawnBy

Parameters Returns IReserveManager_v1.sol#L376

isEndowmentActivated

Returns IReserveManager_v1.sol#L390

isEndowmentSetupOpen

Returns IReserveManager_v1.sol#L389

isPendingUnbackedDrawCeilingChangeExpired

Whether a queued unbacked-draw ceiling change exists and its execution window has closed. Returns IReserveManager_v1.sol#L469

isPositionOpen

Whether id_ is allocated to module_ and therefore usable for lockAndDraw / repay. Parameters Returns IReserveManager_v1.sol#L347

isUnbackedDrawsAllowed

Whether this market admits unbacked draws. Fixed at init. Returns IReserveManager_v1.sol#L399

Events

EndowmentActivated

Parameters IReserveManager_v1.sol#L204

EndowmentControllerRegistered

Parameters IReserveManager_v1.sol#L201

EndowmentSetupFinalized

Parameters IReserveManager_v1.sol#L207

IssuanceLocked

Additional issuance was added to an existing open position. Parameters IReserveManager_v1.sol#L213

PositionClosed

A position was explicitly closed by its owning module. Parameters IReserveManager_v1.sol#L245

PositionOpened

A position was opened by a module. Parameters IReserveManager_v1.sol#L197

PositionsMerged

A set of positions was merged into a single fresh position. Parameters IReserveManager_v1.sol#L259

Repaid

A position was repaid. Parameters IReserveManager_v1.sol#L235

ReservesDrawn

Reserves were drawn against a position. Parameters IReserveManager_v1.sol#L222

UnbackedDrawCeilingBaseRecorded

The virtual collateral supply that bounds the ceiling base was recorded. Emitted at init and on each executed ceiling change. At execute, the value is the lower of the VCS at queue time and the VCS at execute time. Parameters IReserveManager_v1.sol#L323

UnbackedDrawCeilingChangeCancelled

A queued change of the unbacked-draw ceiling was cancelled. Parameters IReserveManager_v1.sol#L299

UnbackedDrawCeilingChangeExecuted

A queued change of the unbacked-draw ceiling was executed. Parameters IReserveManager_v1.sol#L308

UnbackedDrawCeilingChangeQueued

A change of the unbacked-draw ceiling was queued. Parameters IReserveManager_v1.sol#L288

UnbackedDrawCeilingQueueVcsRecorded

The virtual collateral supply at queue time of a ceiling change was recorded. Execute caps the new base at it. Parameters IReserveManager_v1.sol#L332

UnbackedDrawPolicyInitialized

The launch-fixed unbacked-draw policy was set at init. Parameters IReserveManager_v1.sol#L280

UnbackedReservesDrawn

Collateral was drawn from ReferenceCurve without backing issuance. Parameters IReserveManager_v1.sol#L270

UnbackedReservesRestored

Unbacked collateral was returned to ReferenceCurve reserves. Parameters IReserveManager_v1.sol#L275

Errors

ReserveManager__ApprovalSafeCannotQueue

The market’s approval Safe may not queue a ceiling change. The admin queues and the approval Safe executes, so one Safe cannot do both. Parameters IReserveManager_v1.sol#L188

ReserveManager__CallerNotApprovalSafe

Only the market’s approval Safe may execute a ceiling change. Parameters IReserveManager_v1.sol#L182

ReserveManager__CeilingRequiresUnbackedDraws

A market that does not admit unbacked draws must use a ceiling of zero. Parameters IReserveManager_v1.sol#L120

ReserveManager__EndowmentAdminOnly

Parameters IReserveManager_v1.sol#L140

ReserveManager__EndowmentAlreadyActivated

IReserveManager_v1.sol#L149

ReserveManager__EndowmentControllerAlreadyRegistered

Parameters IReserveManager_v1.sol#L138

ReserveManager__EndowmentControllerNotRegistered

IReserveManager_v1.sol#L147

ReserveManager__EndowmentControllerOnly

Parameters IReserveManager_v1.sol#L141

ReserveManager__EndowmentCurveUnsupported

Parameters IReserveManager_v1.sol#L132

ReserveManager__EndowmentDrawExceedsReferenceValue

Parameters IReserveManager_v1.sol#L150

ReserveManager__EndowmentExpectedControllerOnly

Parameters IReserveManager_v1.sol#L144

ReserveManager__EndowmentMarketNotReady

Parameters IReserveManager_v1.sol#L153

ReserveManager__EndowmentNotActivated

IReserveManager_v1.sol#L148

ReserveManager__EndowmentPriorExposure

IReserveManager_v1.sol#L139

ReserveManager__EndowmentSetupIdentitiesMustDiffer

Parameters IReserveManager_v1.sol#L129

ReserveManager__EndowmentSetupIdentityZero

IReserveManager_v1.sol#L128

ReserveManager__EndowmentSetupNotOpen

IReserveManager_v1.sol#L134

ReserveManager__EndowmentSetupNotReady

Parameters IReserveManager_v1.sol#L135

ReserveManager__EndowmentSetupOpen

IReserveManager_v1.sol#L133

ReserveManager__InvalidEndowmentInitConfig

IReserveManager_v1.sol#L127

ReserveManager__InvalidInitConfigLength

The init configuration is not the 64-byte encoding of (bool, uint). Parameters IReserveManager_v1.sol#L125

ReserveManager__InvalidUnbackedDrawCeilingBps

A ceiling in basis points is above 10_000. Parameters IReserveManager_v1.sol#L115

ReserveManager__MergeRequiresAtLeastTwoPositions

mergePositions requires at least two input ids. Parameters IReserveManager_v1.sol#L98

ReserveManager__NoPendingUnbackedDrawCeilingChange

No ceiling change is queued. IReserveManager_v1.sol#L163

ReserveManager__PositionNotEmpty

closePosition requires both fields to be zero. Parameters IReserveManager_v1.sol#L92

ReserveManager__PositionNotOpen

The selector requires an open position owned by the caller. Parameters IReserveManager_v1.sol#L67

ReserveManager__PositionUndercollateralized

Post-state of a state-changing call violates the per-position invariant outstandingReserves <= lockedIssuance * P_f. Raised by the checkCollateralization post-check applied to every selector that can move collateral or issuance out of the ReserveManager. Parameters IReserveManager_v1.sol#L85

ReserveManager__RepaymentExceedsOutstanding

Repayment exceeds the position’s outstanding collateral. Parameters IReserveManager_v1.sol#L72

ReserveManager__UnbackedDrawCeilingChangeAlreadyQueued

A ceiling change is already queued and must be cancelled first. Parameters IReserveManager_v1.sol#L160

ReserveManager__UnbackedDrawCeilingChangeExpired

Execution was attempted after the execution window ended. Parameters IReserveManager_v1.sol#L178

ReserveManager__UnbackedDrawCeilingChangeHashMismatch

The supplied operation hash does not match the queued one. Parameters IReserveManager_v1.sol#L168

ReserveManager__UnbackedDrawCeilingChangeTooEarly

Execution was attempted before the delay elapsed. Parameters IReserveManager_v1.sol#L174

ReserveManager__UnbackedDrawCeilingExceeded

The draw would push total outstanding unbacked draws above the ceiling. Parameters IReserveManager_v1.sol#L109

ReserveManager__UnbackedDrawsNotAllowed

Unbacked draws are not admitted for this market. The launch-fixed flag is false, so no role can enable them. IReserveManager_v1.sol#L102