Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager interface {
// CreateOrder validates, submits, and starts monitoring an order
CreateOrder(ctx context.Context, req OrderRequest) (*OrderResult, error)
// CancelOrder cancels an order and stops monitoring once confirmed
CancelOrder(ctx context.Context, orderID string) error
// CancelAllOrders cancels all open orders managed by this manager
CancelAllOrders(ctx context.Context) error
}
OrderManager interface
type OrderHandle ¶
type OrderHandle struct {
OrderID string
Request OrderRequest
// Channels for lifecycle events
// Users can select on these or use the helper methods
Updates <-chan OrderUpdate
// contains filtered or unexported fields
}
OrderHandle provides a way to track the lifecycle of an order It uses channels to communicate updates, offering a Go-idiomatic way to "await" states or react to events.
type OrderManagerImpl ¶
type OrderManagerImpl struct {
// contains filtered or unexported fields
}
OrderManagerImpl implements the OrderManager interface
func NewOrderManager ¶
func NewOrderManager( trading *trading.TradingService, market *market.MarketService, realtime *realtime.RealtimeService, logger *zap.SugaredLogger, ) *OrderManagerImpl
NewOrderManager creates a new OrderManager instance
func (*OrderManagerImpl) CancelAllOrders ¶
func (om *OrderManagerImpl) CancelAllOrders(ctx context.Context) error
CancelAllOrders cancels all tracked orders
func (*OrderManagerImpl) CancelOrder ¶
func (om *OrderManagerImpl) CancelOrder(ctx context.Context, orderID string) error
CancelOrder cancels an order
func (*OrderManagerImpl) CreateOrder ¶
func (om *OrderManagerImpl) CreateOrder(ctx context.Context, req OrderRequest) (*OrderResult, error)
CreateOrder validates and submits an order
type OrderRequest ¶
type OrderRequest struct {
TokenID string
Price float64
Size float64
Side clob.Side
OrderType string // "GTC", "FOK", "FAK", "GTD"
NegRisk bool // Whether the market is Negative Risk
// Optional metadata for tracking
StrategyID string
Notes string
}
OrderRequest represents a request to place an order
type OrderResult ¶
type OrderResult struct {
OrderID string
Status OrderStatus
Error error
Handle *OrderHandle
}
OrderResult is the immediate result of placing an order (before monitoring)
type OrderStatus ¶
type OrderStatus string
OrderStatus represents the lifecycle state of an order
const ( StatusCreated OrderStatus = "created" StatusPending OrderStatus = "pending" StatusOpen OrderStatus = "open" StatusPartiallyFilled OrderStatus = "partially_filled" StatusFilled OrderStatus = "filled" StatusCancelled OrderStatus = "cancelled" StatusRejected OrderStatus = "rejected" StatusExpired OrderStatus = "expired" )
type OrderUpdate ¶
type OrderUpdate struct {
Status OrderStatus
FilledSize float64 // Incremental fill size for this update
TotalFilled float64
AvgPrice float64
Timestamp time.Time
Reason string
TxHash string // For on-chain settlement
}
OrderUpdate represents a change in order state
type UserEvent ¶
type UserEvent struct {
Type string `json:"type"` // "order" or "trade"?
ID string `json:"id"`
OrderID string `json:"order_id"` // sometimes used in trades
EventType string `json:"event_type"` // PLACEMENT, CANCELLATION, UPDATE
Status string `json:"status"` // sometimes present
Price interface{} `json:"price"` // string or float
Size interface{} `json:"original_size"`
SizeMatched interface{} `json:"size_matched"`
Side string `json:"side"`
}
handleUserMessage parses raw WS messages and updates order handles UserEvent represents a raw event from the User WebSocket channel