Git Source
function buildAccountUsdcBuckets(
uint256 settlementBalanceUsdc,
uint256 positionMarginUsdc,
uint256 committedOrderMarginUsdc,
uint256 reservedSettlementUsdc
) internal pure returns (IMarginClearinghouse.AccountUsdcBuckets memory buckets);
function buildPartialCloseUsdcBuckets(
uint256 settlementBalanceUsdc,
uint256 positionMarginUsdc,
uint256 committedOrderMarginUsdc,
uint256 reservedSettlementUsdc
) internal pure returns (IMarginClearinghouse.AccountUsdcBuckets memory buckets);
function getSettlementBalanceUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256);
function getFreeSettlementUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256);
function getPositionMarginUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256);
function getQueuedReservedUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256);
function getGenericReachableUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256 reachableUsdc);
function planFundingLossConsumption(
IMarginClearinghouse.AccountUsdcBuckets memory buckets,
uint256 lossUsdc
) internal pure returns (SettlementConsumption memory consumption);
function planOpenCostApplication(
IMarginClearinghouse.AccountUsdcBuckets memory buckets,
uint256 marginDeltaUsdc,
int256 tradeCostUsdc
) internal pure returns (OpenCostPlan memory plan);
function getTerminalReachableUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets
) internal pure returns (uint256 reachableUsdc);
function getSettlementReachableUsdc(
IMarginClearinghouse.AccountUsdcBuckets memory buckets,
uint256 protectedLockedMarginUsdc
) internal pure returns (uint256 reachableUsdc);
function planTerminalLossConsumption(
IMarginClearinghouse.AccountUsdcBuckets memory buckets,
uint256 protectedLockedMarginUsdc,
uint256 lossUsdc
) internal pure returns (SettlementConsumption memory consumption);
function applyFundingLossMutation(
IMarginClearinghouse.AccountUsdcBuckets memory,
SettlementConsumption memory consumption
) internal pure returns (BucketMutation memory mutation);
function applyTerminalLossMutation(
IMarginClearinghouse.AccountUsdcBuckets memory,
uint256,
SettlementConsumption memory consumption
) internal pure returns (BucketMutation memory mutation);
function planLiquidationResidual(
IMarginClearinghouse.AccountUsdcBuckets memory buckets,
int256 residualUsdc
) internal pure returns (LiquidationResidualPlan memory plan);
struct SettlementConsumption {
uint256 freeSettlementConsumedUsdc;
uint256 activeMarginConsumedUsdc;
uint256 otherLockedMarginConsumedUsdc;
uint256 totalConsumedUsdc;
uint256 uncoveredUsdc;
}
struct BucketMutation {
uint256 settlementDebitUsdc;
uint256 positionMarginUnlockedUsdc;
uint256 otherLockedMarginUnlockedUsdc;
}
struct OpenCostPlan {
int256 netMarginChangeUsdc;
uint256 settlementCreditUsdc;
uint256 settlementDebitUsdc;
uint256 positionMarginUnlockedUsdc;
uint256 positionMarginLockedUsdc;
uint256 resultingSettlementBalanceUsdc;
uint256 resultingPositionMarginUsdc;
uint256 resultingFreeSettlementUsdc;
bool insufficientFreeEquity;
bool insufficientPositionMargin;
}
struct LiquidationResidualPlan {
uint256 settlementRetainedUsdc;
uint256 settlementSeizedUsdc;
uint256 freshTraderPayoutUsdc;
uint256 badDebtUsdc;
BucketMutation mutation;
}