Git Source
function getMaxLiability(
uint256 bullMaxProfitUsdc,
uint256 bearMaxProfitUsdc
) internal pure returns (uint256);
function getMaxLiabilityAfterClose(
uint256 bullMaxProfitUsdc,
uint256 bearMaxProfitUsdc,
CfdTypes.Side side,
uint256 maxProfitReductionUsdc
) internal pure returns (uint256);
function buildSolvencyState(
uint256 physicalAssetsUsdc,
uint256 protocolFeesUsdc,
uint256 maxLiabilityUsdc,
int256 solvencyFundingPnlUsdc,
uint256 deferredTraderPayoutUsdc,
uint256 deferredClearerBountyUsdc
) internal pure returns (SolvencyState memory state);
function effectiveAssetsAfterPendingPayout(
SolvencyState memory state,
uint256 pendingVaultPayoutUsdc
) internal pure returns (uint256);
function isInsolvent(
SolvencyState memory state
) internal pure returns (bool);
function previewPostOpSolvency(
SolvencyState memory currentState,
PreviewDelta memory delta,
bool alreadyDegraded
) internal pure returns (PreviewResult memory result);
function _applySignedDelta(
uint256 value,
int256 delta
) private pure returns (uint256 updatedValue);
struct PreviewDelta {
int256 physicalAssetsDeltaUsdc;
uint256 protocolFeesDeltaUsdc;
uint256 maxLiabilityAfterUsdc;
int256 deferredTraderPayoutDeltaUsdc;
int256 deferredLiquidationBountyDeltaUsdc;
uint256 pendingVaultPayoutUsdc;
}
struct PreviewResult {
uint256 effectiveAssetsAfterUsdc;
uint256 maxLiabilityAfterUsdc;
bool triggersDegradedMode;
bool postOpDegradedMode;
}
struct SolvencyState {
uint256 physicalAssetsUsdc;
uint256 protocolFeesUsdc;
uint256 netPhysicalAssetsUsdc;
uint256 maxLiabilityUsdc;
int256 solvencyFundingPnlUsdc;
uint256 deferredTraderPayoutUsdc;
uint256 deferredClearerBountyUsdc;
uint256 effectiveAssetsUsdc;
}