Last updated
Was this helpful?
Was this helpful?
struct DelayedOrder {
DelayedOrderType orderType; // Types: OpenPosition or ClosePosition
address sender; // Sender address
uint256 marketId; // See annotation
uint256 createdAt; // block.timestamp
uint256 executableAt; // block.timestamp + orderDelaySeconds
bytes data;
}/// @notice Create an order (but do not execute)
function createOrder(
DelayedOrderType orderType,
bytes calldata data
)
emit OrderCreated(
orderId,
delayedOrder.sender,
marketId,
abi.encode(delayedOrder)
);/// @notice Execute an order (probably first call createOrder)
function executeOrder(
uint256 orderId,
bytes calldata makerData
)
returns (
int256 base,
int256 quote
);/// @notice Cancel unexecuted order
function cancelOrder(
uint256 orderId
)
emit OrderCanceled(
orderId
);/// @notice There are many public view functions available
function getCurrentNonce() public view returns (uint256) {
return _getOrderGatewayStorage().nonce;
}
function getOrdersCount() public view returns (uint256) {
return _getOrderGatewayStorage().orderIds.length();
}
function getOrderIds(uint256 start, uint256 end) public view returns (uint256[] memory) {
return _getOrderGatewayStorage().orderIds.valuesAt(start, end);
}
function getUserOrdersCount(address taker) public view returns (uint256) {
return _getOrderGatewayStorage().userOrderIdsMap[taker].length();
}
function getUserOrderIds(address taker, uint256 start, uint256 end) public view returns (uint256[] memory) {
return _getOrderGatewayStorage().userOrderIdsMap[taker].valuesAt(start, end);
}
function getOrder(uint256 orderId) public view returns (DelayedOrder memory) {
return _getOrderGatewayStorage().ordersMap[orderId];
}