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