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

ICfdEngineCore

Git Source

Core/operator-facing engine surface used by live perps contracts.

Functions

clearinghouse

function clearinghouse() external view returns (address);

orderRouter

function orderRouter() external view returns (address);

settlementModule

function settlementModule() external view returns (address);

USDC

function USDC() external view returns (IERC20);

lastMarkPrice

function lastMarkPrice() external view returns (uint256);

riskParams

function riskParams()
    external
    view
    returns (
        uint256 vpiFactor,
        uint256 maxSkewRatio,
        uint256 maintMarginBps,
        uint256 initMarginBps,
        uint256 fadMarginBps,
        uint256 baseCarryBps,
        uint256 minBountyUsdc,
        uint256 bountyBps
    );

processOrderTyped

function processOrderTyped(
    CfdTypes.Order memory order,
    uint256 currentOraclePrice,
    uint256 vaultDepthUsdc,
    uint64 publishTime
) external;

recordDeferredKeeperCredit

function recordDeferredKeeperCredit(
    address keeper,
    uint256 amountUsdc
) external;

reserveCloseOrderExecutionBounty

function reserveCloseOrderExecutionBounty(
    bytes32 accountId,
    uint256 sizeDelta,
    uint256 amountUsdc,
    address recipient
) external;

absorbRouterCancellationFee

function absorbRouterCancellationFee(
    uint256 amountUsdc
) external;

recordRouterProtocolFee

function recordRouterProtocolFee(
    uint256 amountUsdc
) external;

creditKeeperExecutionBounty

function creditKeeperExecutionBounty(
    address beneficiary,
    uint256 amountUsdc,
    uint256 price,
    uint64 publishTime
) external;

accumulatedFeesUsdc

function accumulatedFeesUsdc() external view returns (uint256);

totalDeferredTraderCreditUsdc

function totalDeferredTraderCreditUsdc() external view returns (uint256);

totalDeferredKeeperCreditUsdc

function totalDeferredKeeperCreditUsdc() external view returns (uint256);

liquidatePosition

function liquidatePosition(
    bytes32 accountId,
    uint256 currentOraclePrice,
    uint256 vaultDepthUsdc,
    uint64 publishTime
) external returns (uint256 keeperBountyUsdc);

lastMarkTime

function lastMarkTime() external view returns (uint64);

updateMarkPrice

function updateMarkPrice(
    uint256 price,
    uint64 publishTime
) external;

CAP_PRICE

function CAP_PRICE() external view returns (uint256);

realizeCarryBeforeMarginChange

function realizeCarryBeforeMarginChange(
    bytes32 accountId,
    uint256 reachableCollateralBasisUsdc
) external;

checkpointCarryUsingStoredMark

function checkpointCarryUsingStoredMark(
    bytes32 accountId,
    uint256 reachableCollateralBasisUsdc
) external;

isFadWindow

function isFadWindow() external view returns (bool);

fadMaxStaleness

function fadMaxStaleness() external view returns (uint256);

engineMarkStalenessLimit

function engineMarkStalenessLimit() external view returns (uint256);

fadDayOverrides

function fadDayOverrides(
    uint256 dayNumber
) external view returns (bool);

isOracleFrozen

function isOracleFrozen() external view returns (bool);

positions

function positions(
    bytes32 accountId
)
    external
    view
    returns (
        uint256 size,
        uint256 margin,
        uint256 entryPrice,
        uint256 maxProfitUsdc,
        CfdTypes.Side side,
        uint64 lastUpdateTime,
        int256 vpiAccrued
    );

degradedMode

function degradedMode() external view returns (bool);

getProtocolStatus

function getProtocolStatus() external view returns (EngineStatusViewTypes.ProtocolStatus memory status);

Errors

CfdEngine__TypedOrderFailure

error CfdEngine__TypedOrderFailure(
    CfdEnginePlanTypes.ExecutionFailurePolicyCategory failureCategory, uint8 failureCode, bool isClose
);

CfdEngine__MarkPriceOutOfOrder

error CfdEngine__MarkPriceOutOfOrder();