Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CfdEnginePlanLib

Git Source

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

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);

_computeGlobalFundingPnl

function _computeGlobalFundingPnl(
    CfdEnginePlanTypes.SideSnapshot memory bull,
    CfdEnginePlanTypes.SideSnapshot memory bear
) private pure returns (int256 bullFunding, int256 bearFunding);

_isCollectedFundingLoss

function _isCollectedFundingLoss(
    CfdEnginePlanTypes.FundingPayoutType payoutType
) private pure returns (bool);

_solvencyCappedFundingPnl

function _solvencyCappedFundingPnl(
    CfdEnginePlanTypes.SideSnapshot memory bull,
    CfdEnginePlanTypes.SideSnapshot memory bear
) private pure returns (int256);

_planDeferredPayoutConsumption

function _planDeferredPayoutConsumption(
    uint256 deferredPayoutUsdc,
    uint256 shortfallUsdc,
    bool shortfallAlreadyIncludesDeferred
) private pure returns (uint256 consumedUsdc, uint256 remainingUsdc, uint256 badDebtUsdc);

_planCloseDeferredPayoutConsumption

function _planCloseDeferredPayoutConsumption(
    uint256 deferredPayoutUsdc,
    CfdEngineSettlementLib.CloseSettlementResult memory lossResult
)
    private
    pure
    returns (uint256 consumedUsdc, uint256 remainingUsdc, uint256 feeRecoveredUsdc, uint256 badDebtUsdc);

planGlobalFunding

function planGlobalFunding(
    CfdEnginePlanTypes.RawSnapshot memory snap,
    uint256 executionPrice,
    uint64 publishTime
) internal pure returns (CfdEnginePlanTypes.GlobalFundingDelta memory gfd);

planFunding

function planFunding(
    CfdEnginePlanTypes.RawSnapshot memory snap,
    uint256 executionPrice,
    uint64 publishTime,
    bool isClose,
    bool isFullClose
) internal pure returns (CfdEnginePlanTypes.FundingDelta memory fd);

planOpen

function planOpen(
    CfdEnginePlanTypes.RawSnapshot memory snap,
    CfdTypes.Order memory order,
    uint256 executionPrice,
    uint64 publishTime
) internal pure returns (CfdEnginePlanTypes.OpenDelta memory delta);

_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,
    CfdEnginePlanTypes.FundingDelta memory fd,
    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);