CfdEnginePlanLib
Title: CfdEnginePlanLib
Pure plan functions for the CfdEngine plan→apply architecture. Each function takes a RawSnapshot and returns a typed delta describing all effects. No storage reads, no external calls — purely deterministic over memory inputs.
Functions
_liquidationVpiClawbackUsdc
function _liquidationVpiClawbackUsdc(
int256 vpiAccrued
) private pure returns (uint256);
computeOpenMarginAfter
function computeOpenMarginAfter(
uint256 marginAfterFunding,
int256 netMarginChange
) internal pure returns (bool drained, uint256 marginAfter);
computeSideTotalMarginAfterOpen
function computeSideTotalMarginAfterOpen(
uint256 sideTotalMarginAfterFunding,
uint256 effectivePositionMarginAfterFunding,
uint256 positionMarginAfterOpen
) internal pure returns (uint256 sideTotalMarginAfterOpen);
getOpenFailurePolicyCategory
function getOpenFailurePolicyCategory(
CfdEnginePlanTypes.OpenRevertCode code
) internal pure returns (CfdEnginePlanTypes.OpenFailurePolicyCategory);
getExecutionFailurePolicyCategory
function getExecutionFailurePolicyCategory(
CfdEnginePlanTypes.OpenRevertCode code
) internal pure returns (CfdEnginePlanTypes.ExecutionFailurePolicyCategory);
getExecutionFailurePolicyCategory
function getExecutionFailurePolicyCategory(
CfdEnginePlanTypes.CloseRevertCode code
) internal pure returns (CfdEnginePlanTypes.ExecutionFailurePolicyCategory);
_selectedAndOpposite
function _selectedAndOpposite(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdTypes.Side side
)
private
pure
returns (CfdEnginePlanTypes.SideSnapshot memory selected, CfdEnginePlanTypes.SideSnapshot memory opposite);
_absSkewUsdc
function _absSkewUsdc(
CfdEnginePlanTypes.SideSnapshot memory bull,
CfdEnginePlanTypes.SideSnapshot memory bear,
uint256 price
) private pure returns (uint256);
_postOpenSkewUsdc
function _postOpenSkewUsdc(
CfdEnginePlanTypes.SideSnapshot memory bull,
CfdEnginePlanTypes.SideSnapshot memory bear,
CfdTypes.Side side,
uint256 sizeDelta,
uint256 price
) private pure returns (uint256);
_planDeferredTraderCreditConsumption
function _planDeferredTraderCreditConsumption(
uint256 deferredTraderCreditUsdc,
uint256 shortfallUsdc,
bool shortfallAlreadyIncludesDeferred
) private pure returns (uint256 consumedUsdc, uint256 remainingUsdc, uint256 badDebtUsdc);
_planCloseDeferredTraderCreditConsumption
function _planCloseDeferredTraderCreditConsumption(
uint256 deferredTraderCreditUsdc,
CfdEngineSettlementLib.CloseSettlementResult memory lossResult
)
private
pure
returns (uint256 consumedUsdc, uint256 remainingUsdc, uint256 feeRecoveredUsdc, uint256 badDebtUsdc);
planOpen
function planOpen(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdTypes.Order memory order,
uint256 executionPrice,
uint64 publishTime
) internal pure returns (CfdEnginePlanTypes.OpenDelta memory delta);
_applyPendingCarryRealizationToOpenSnapshot
function _applyPendingCarryRealizationToOpenSnapshot(
CfdEnginePlanTypes.RawSnapshot memory snap,
uint256 pendingCarryUsdc
) private pure returns (bool hasShortfall);
_buildPostOpenRiskState
function _buildPostOpenRiskState(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdEnginePlanTypes.OpenDelta memory delta
) private pure returns (PositionRiskAccountingLib.PositionRiskState memory riskState);
_isOpenInsolventAfterPlan
function _isOpenInsolventAfterPlan(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdTypes.Side side,
CfdEnginePlanTypes.OpenDelta memory delta,
CfdEnginePlanTypes.SideSnapshot memory bull,
CfdEnginePlanTypes.SideSnapshot memory bear
) private pure returns (bool);
planClose
function planClose(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdTypes.Order memory order,
uint256 executionPrice,
uint64 publishTime
) internal pure returns (CfdEnginePlanTypes.CloseDelta memory delta);
_computeCloseSolvency
function _computeCloseSolvency(
CfdEnginePlanTypes.RawSnapshot memory snap,
CfdEnginePlanTypes.CloseDelta memory delta,
CfdEnginePlanTypes.SideSnapshot memory bull,
CfdEnginePlanTypes.SideSnapshot memory bear
) private pure returns (CfdEnginePlanTypes.SolvencyPreview memory sp);
_buildCloseSettlementBuckets
function _buildCloseSettlementBuckets(
CfdEnginePlanTypes.RawSnapshot memory snap,
uint256 marginToFreeUsdc,
bool includeOtherLockedMargin
) private pure returns (IMarginClearinghouse.AccountUsdcBuckets memory);
planLiquidation
function planLiquidation(
CfdEnginePlanTypes.RawSnapshot memory snap,
uint256 executionPrice,
uint64 publishTime
) internal pure returns (CfdEnginePlanTypes.LiquidationDelta memory delta);