OrderExecutionOrchestrator
Inherits: OrderOracleExecution, OrderQueueBook
Constants
PANIC_SELECTOR
bytes4 internal constant PANIC_SELECTOR = 0x4e487b71;
TYPED_ORDER_FAILURE_SELECTOR
bytes4 internal constant TYPED_ORDER_FAILURE_SELECTOR = ICfdEngineCore.CfdEngine__TypedOrderFailure.selector;
MARK_PRICE_OUT_OF_ORDER_SELECTOR
bytes4 internal constant MARK_PRICE_OUT_OF_ORDER_SELECTOR = ICfdEngineCore.CfdEngine__MarkPriceOutOfOrder.selector;
State Variables
minEngineGas
uint256 public minEngineGas;
maxPruneOrdersPerCall
uint256 public maxPruneOrdersPerCall;
Functions
_maxOrderAge
function _maxOrderAge() internal view virtual returns (uint256);
_queueHeadOrderId
function _queueHeadOrderId() internal view virtual override returns (uint64);
_setQueueHeadOrderId
function _setQueueHeadOrderId(
uint64 orderId
) internal virtual override;
_revertNoOrdersToExecute
function _revertNoOrdersToExecute() internal pure virtual;
_revertInsufficientGas
function _revertInsufficientGas() internal pure virtual;
_revertMevDetected
function _revertMevDetected() internal pure virtual;
_revertCloseOnlyMode
function _revertCloseOnlyMode() internal pure virtual;
_releaseCommittedMarginForExecution
function _releaseCommittedMarginForExecution(
uint64 orderId
) internal virtual;
_deleteOrder
function _deleteOrder(
uint64 orderId,
IOrderRouterAccounting.OrderStatus terminalStatus
) internal virtual;
_skipStaleOrders
function _skipStaleOrders(
uint64 upToId,
uint256 executionPrice,
uint64 oraclePublishTime
) internal returns (uint256 skipped);
_pruneExpiredHeadOrders
function _pruneExpiredHeadOrders(
uint64 upToId,
uint256 maxPrunes,
uint256 executionPrice,
uint64 oraclePublishTime
) internal returns (uint256 pruned);
_processTypedOrderExecution
function _processTypedOrderExecution(
CfdTypes.Order memory order,
uint256 executionPrice,
uint256 vaultDepth,
uint64 oraclePublishTime
) internal returns (bool success, OrderFailReason failureReason, FailedOrderOutcome failureOutcome);
_executePendingOrder
function _executePendingOrder(
uint64 orderId,
CfdTypes.Order memory order,
uint256 executionPrice,
uint64 oraclePublishTime,
RouterExecutionContext memory executionContext,
bool revertOnBlockedExecution,
uint256 pythFee
) internal returns (OrderExecutionStepResult result);
_finalizeOrCleanupOrder
function _finalizeOrCleanupOrder(
uint64 orderId,
uint256 pythFee,
bool success,
FailedOrderOutcome failedOutcome,
bool refundEthNow,
uint256 executionPrice,
uint64 oraclePublishTime
) internal;
_decodeTypedOrderFailure
function _decodeTypedOrderFailure(
bytes memory revertData
)
internal
pure
returns (CfdEnginePlanTypes.ExecutionFailurePolicyCategory failureCategory, uint8 failureCode, bool isClose);
_failedOutcomeFromEngineRevert
function _failedOutcomeFromEngineRevert(
CfdTypes.Order memory order,
bytes memory revertData
) internal pure returns (FailedOrderOutcome outcome);
_failedOutcomeForTerminalFailure
function _failedOutcomeForTerminalFailure(
CfdTypes.Order memory order
) internal pure returns (FailedOrderOutcome outcome);
_failedOutcomeForSlippageFailure
function _failedOutcomeForSlippageFailure(
CfdTypes.Order memory order
) internal pure returns (FailedOrderOutcome outcome);
_cleanupOrder
function _cleanupOrder(
uint64 orderId,
FailedOrderOutcome,
uint256 executionPrice,
uint64 oraclePublishTime
) internal returns (uint256 executionBountyUsdc);
_finalizeExecution
function _finalizeExecution(
uint64 orderId,
uint256 executionPrice,
uint64 oraclePublishTime
) internal;
_sendEth
function _sendEth(
address to,
uint256 amount
) internal virtual;
Events
OrderExecuted
event OrderExecuted(uint64 indexed orderId, uint256 executionPrice);
OrderFailed
event OrderFailed(uint64 indexed orderId, OrderFailReason reason);
Enums
OrderExecutionStepResult
enum OrderExecutionStepResult {
Continue,
Break,
Return
}
FailedOrderOutcome
enum FailedOrderOutcome {
ClearerFull
}
OrderFailReason
enum OrderFailReason {
Expired,
CloseOnly,
SlippageExceeded,
EnginePanic,
AccountLiquidated,
EngineRevert
}