OrderEscrowAccounting
Inherits: IOrderRouterAccounting
Constants
engine
ICfdEngine public immutable engine
clearinghouse
IMarginClearinghouse internal immutable clearinghouse
USDC
IERC20 internal immutable USDC
State Variables
orderRecords
mapping(uint64 => OrderRecord) internal orderRecords
pendingOrderCounts
mapping(bytes32 => uint256) public pendingOrderCounts
pendingCloseSize
mapping(bytes32 => uint256) public pendingCloseSize
marginHeadOrderId
mapping(bytes32 => uint64) public marginHeadOrderId
marginTailOrderId
mapping(bytes32 => uint64) public marginTailOrderId
claimableUsdc
mapping(address => uint256) public claimableUsdc
Functions
constructor
constructor(
address _engine
) ;
getAccountEscrow
function getAccountEscrow(
bytes32 accountId
) public view override returns (IOrderRouterAccounting.AccountEscrowView memory escrow);
getAccountOrderSummary
function getAccountOrderSummary(
bytes32 accountId
) public view returns (IOrderRouterAccounting.AccountOrderSummary memory summary);
_summarizePendingOrders
function _summarizePendingOrders(
bytes32 accountId
)
internal
view
returns (
uint256 pendingOrderCount,
uint256 executionBountyUsdc,
uint256 pendingCloseSize_,
bool hasTerminalCloseQueued
);
getMarginReservationIds
function getMarginReservationIds(
bytes32 accountId
) public view override returns (uint64[] memory orderIds);
_reserveExecutionBounty
function _reserveExecutionBounty(
bytes32 accountId,
uint64 orderId,
uint256 executionBountyUsdc,
bool isClose
) internal;
_reserveCommittedMargin
function _reserveCommittedMargin(
bytes32 accountId,
uint64 orderId,
bool isClose,
uint256 marginDelta
) internal;
_consumeOrderEscrow
function _consumeOrderEscrow(
uint64 orderId,
bool success,
uint8 failedPolicy
) internal returns (uint256 executionBountyUsdc);
_collectExecutionBounty
function _collectExecutionBounty(
uint64 orderId
) internal returns (uint256 executionBountyUsdc);
_refundExecutionBounty
function _refundExecutionBounty(
uint64 orderId
) internal;
_tryTransferUsdc
function _tryTransferUsdc(
address to,
uint256 amount
) internal returns (bool success);
_releaseCommittedMargin
function _releaseCommittedMargin(
uint64 orderId
) internal;
_linkMarginOrder
function _linkMarginOrder(
bytes32 accountId,
uint64 orderId
) internal;
_unlinkMarginOrder
function _unlinkMarginOrder(
bytes32 accountId,
uint64 orderId
) internal;
_pruneMarginQueue
function _pruneMarginQueue(
bytes32 accountId
) internal;
_orderRecord
function _orderRecord(
uint64 orderId
) internal view virtual returns (OrderRecord storage record);
_pendingHeadOrderId
function _pendingHeadOrderId(
bytes32 accountId
) internal view virtual returns (uint64);
_reserveCloseExecutionBounty
function _reserveCloseExecutionBounty(
bytes32 accountId,
uint256 executionBountyUsdc
) internal virtual;
_revertInsufficientFreeEquity
function _revertInsufficientFreeEquity() internal pure virtual;
_revertMarginOrderLinkCorrupted
function _revertMarginOrderLinkCorrupted() internal pure virtual;
Structs
OrderRecord
struct OrderRecord {
CfdTypes.Order core;
IOrderRouterAccounting.OrderStatus status;
uint256 executionBountyUsdc;
uint64 retryAfterTimestamp;
uint64 nextPendingOrderId;
uint64 prevPendingOrderId;
uint64 nextGlobalOrderId;
uint64 prevGlobalOrderId;
uint64 nextMarginOrderId;
uint64 prevMarginOrderId;
bool inMarginQueue;
}