-
Notifications
You must be signed in to change notification settings - Fork 83
/
stateful_order.go
65 lines (60 loc) · 1.74 KB
/
stateful_order.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package events
import (
"github.com/dydxprotocol/v4-chain/protocol/indexer/protocol/v1"
"github.com/dydxprotocol/v4-chain/protocol/indexer/shared"
clobtypes "github.com/dydxprotocol/v4-chain/protocol/x/clob/types"
)
func NewLongTermOrderPlacementEvent(
order clobtypes.Order,
) *StatefulOrderEventV1 {
indexerOrder := v1.OrderToIndexerOrder(order)
orderPlace := StatefulOrderEventV1_LongTermOrderPlacementV1{
Order: &indexerOrder,
}
return &StatefulOrderEventV1{
Event: &StatefulOrderEventV1_LongTermOrderPlacement{
LongTermOrderPlacement: &orderPlace,
},
}
}
func NewStatefulOrderRemovalEvent(
removedOrderId clobtypes.OrderId,
reason shared.OrderRemovalReason,
) *StatefulOrderEventV1 {
orderId := v1.OrderIdToIndexerOrderId(removedOrderId)
orderRemoval := StatefulOrderEventV1_StatefulOrderRemovalV1{
RemovedOrderId: &orderId,
Reason: reason,
}
return &StatefulOrderEventV1{
Event: &StatefulOrderEventV1_OrderRemoval{
OrderRemoval: &orderRemoval,
},
}
}
func NewConditionalOrderPlacementEvent(
order clobtypes.Order,
) *StatefulOrderEventV1 {
indexerOrder := v1.OrderToIndexerOrder(order)
orderPlace := StatefulOrderEventV1_ConditionalOrderPlacementV1{
Order: &indexerOrder,
}
return &StatefulOrderEventV1{
Event: &StatefulOrderEventV1_ConditionalOrderPlacement{
ConditionalOrderPlacement: &orderPlace,
},
}
}
func NewConditionalOrderTriggeredEvent(
orderId clobtypes.OrderId,
) *StatefulOrderEventV1 {
indexerOrder := v1.OrderIdToIndexerOrderId(orderId)
orderTriggered := StatefulOrderEventV1_ConditionalOrderTriggeredV1{
TriggeredOrderId: &indexerOrder,
}
return &StatefulOrderEventV1{
Event: &StatefulOrderEventV1_ConditionalOrderTriggered{
ConditionalOrderTriggered: &orderTriggered,
},
}
}