Skip to content

Commit efc9c08

Browse files
committed
re-gen
1 parent 2f0910a commit efc9c08

File tree

8 files changed

+5090
-3225
lines changed

8 files changed

+5090
-3225
lines changed

chain/exchange/types/common_utils.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@ import (
1111
"github.com/ethereum/go-ethereum/common"
1212
)
1313

14-
type PriceLevel struct {
15-
Price sdk.Dec
16-
Quantity sdk.Dec
17-
}
18-
1914
type SpotLimitOrderDelta struct {
2015
Order *SpotLimitOrder
2116
FillQuantity sdk.Dec

chain/exchange/types/derivative_execution.go

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,15 +167,12 @@ func (e *DerivativeMatchingExpansionData) GetLimitMatchingDerivativeBatchExecuti
167167

168168
func (e *DerivativeMarketOrderExpansionData) getDerivativeMarketCancelEvents(
169169
marketID common.Hash,
170-
depositDeltas DepositDeltas,
171170
) []*EventCancelDerivativeOrder {
172-
173171
marketIDHex := marketID.Hex()
174172
cancelOrdersEvent := make([]*EventCancelDerivativeOrder, 0, len(e.MarketBuyOrderCancels)+len(e.MarketSellOrderCancels))
175173

176174
for idx := range e.MarketBuyOrderCancels {
177175
orderCancel := e.MarketBuyOrderCancels[idx]
178-
orderCancel.ApplyDerivativeMarketCancellation(depositDeltas)
179176
cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
180177
MarketId: marketIDHex,
181178
IsLimitCancel: false,
@@ -185,7 +182,6 @@ func (e *DerivativeMarketOrderExpansionData) getDerivativeMarketCancelEvents(
185182

186183
for idx := range e.MarketSellOrderCancels {
187184
orderCancel := e.MarketSellOrderCancels[idx]
188-
orderCancel.ApplyDerivativeMarketCancellation(depositDeltas)
189185
cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
190186
MarketId: marketIDHex,
191187
IsLimitCancel: false,
@@ -241,6 +237,7 @@ func (e *DerivativeMatchingExpansionData) applyCancellationsAndGetDerivativeLimi
241237

242238
for idx := range e.RestingLimitSellOrderCancels {
243239
order := e.RestingLimitSellOrderCancels[idx]
240+
244241
applyDerivativeLimitCancellation(order, makerFeeRate, depositDeltas)
245242
cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
246243
MarketId: marketIDHex,
@@ -256,6 +253,7 @@ func (e *DerivativeMatchingExpansionData) applyCancellationsAndGetDerivativeLimi
256253

257254
for idx := range e.TransientLimitBuyOrderCancels {
258255
order := e.TransientLimitBuyOrderCancels[idx]
256+
259257
applyDerivativeLimitCancellation(order, takerFeeRate, depositDeltas)
260258
cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
261259
MarketId: marketIDHex,
@@ -291,9 +289,14 @@ func (e *DerivativeMarketOrderExpansionData) applyCancellationsAndGetDerivativeL
291289
marketID common.Hash,
292290
makerFeeRate sdk.Dec,
293291
depositDeltas DepositDeltas,
294-
) []*EventCancelDerivativeOrder {
292+
) (
293+
cancelOrdersEvent []*EventCancelDerivativeOrder,
294+
restingOrderCancelledDeltas []*DerivativeLimitOrderDelta,
295+
) {
295296
marketIDHex := marketID.Hex()
296-
cancelOrdersEvent := make([]*EventCancelDerivativeOrder, 0, len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels))
297+
cancelOrdersEvent = make([]*EventCancelDerivativeOrder, 0, len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels))
298+
299+
restingOrderCancelledDeltas = make([]*DerivativeLimitOrderDelta, 0, len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels))
297300

298301
for idx := range e.RestingLimitBuyOrderCancels {
299302
order := e.RestingLimitBuyOrderCancels[idx]
@@ -303,6 +306,12 @@ func (e *DerivativeMarketOrderExpansionData) applyCancellationsAndGetDerivativeL
303306
IsLimitCancel: true,
304307
LimitOrder: order,
305308
})
309+
310+
restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
311+
Order: order,
312+
FillQuantity: sdk.ZeroDec(),
313+
CancelQuantity: order.Fillable,
314+
})
306315
}
307316

308317
for idx := range e.RestingLimitSellOrderCancels {
@@ -313,8 +322,14 @@ func (e *DerivativeMarketOrderExpansionData) applyCancellationsAndGetDerivativeL
313322
IsLimitCancel: true,
314323
LimitOrder: order,
315324
})
325+
326+
restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
327+
Order: order,
328+
FillQuantity: sdk.ZeroDec(),
329+
CancelQuantity: order.Fillable,
330+
})
316331
}
317-
return cancelOrdersEvent
332+
return cancelOrdersEvent, restingOrderCancelledDeltas
318333
}
319334

320335
func (e *DerivativeMarketOrderExpansionData) GetMarketDerivativeBatchExecutionData(
@@ -326,10 +341,10 @@ func (e *DerivativeMarketOrderExpansionData) GetMarketDerivativeBatchExecutionDa
326341
depositDeltas := NewDepositDeltas()
327342

328343
// process undermargined limit order forced cancellations
329-
cancelLimitOrdersEvents := e.applyCancellationsAndGetDerivativeLimitCancelEvents(market.MarketID(), market.MakerFeeRate, depositDeltas)
344+
cancelLimitOrdersEvents, restingOrderCancelledDeltas := e.applyCancellationsAndGetDerivativeLimitCancelEvents(market.MarketID(), market.MakerFeeRate, depositDeltas)
330345

331346
// process unfilled market order cancellations
332-
cancelMarketOrdersEvents := e.getDerivativeMarketCancelEvents(market.MarketID(), depositDeltas)
347+
cancelMarketOrdersEvents := e.getDerivativeMarketCancelEvents(market.MarketID())
333348

334349
positions, positionSubaccountIDs := GetPositionSliceData(positionStates)
335350

@@ -358,8 +373,10 @@ func (e *DerivativeMarketOrderExpansionData) GetMarketDerivativeBatchExecutionDa
358373
DepositSubaccountIDs: depositDeltaKeys,
359374
Positions: positions,
360375
PositionSubaccountIDs: positionSubaccountIDs,
361-
RestingLimitOrderFilledDeltas: filledDeltas,
362376
TransientLimitOrderFilledDeltas: nil,
377+
RestingLimitOrderFilledDeltas: filledDeltas,
378+
TransientLimitOrderCancelledDeltas: nil,
379+
RestingLimitOrderCancelledDeltas: restingOrderCancelledDeltas,
363380
MarketBuyOrderExecutionEvent: buyMarketOrderBatchEvent,
364381
MarketSellOrderExecutionEvent: sellMarketOrderBatchEvent,
365382
RestingLimitBuyOrderExecutionEvent: restingLimitBuyOrderBatchEvent,

chain/exchange/types/derivative_orders.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ func NewMarketOrderForLiquidation(position *Position, positionSubaccountID commo
3737
return &order
3838
}
3939

40+
func (m *DerivativeLimitOrder) ToTrimmed() *TrimmedDerivativeLimitOrder {
41+
return &TrimmedDerivativeLimitOrder{
42+
Price: m.OrderInfo.Price,
43+
Quantity: m.OrderInfo.Quantity,
44+
Margin: m.Margin,
45+
Fillable: m.Fillable,
46+
IsBuy: m.IsBuy(),
47+
OrderHash: common.Bytes2Hex(m.OrderHash),
48+
}
49+
}
50+
4051
func (o *DerivativeMarketOrderCancel) GetCancelDepositDelta() *DepositDelta {
4152
order := o.MarketOrder
4253
// no market order quantity was executed, so refund the entire margin hold
@@ -56,7 +67,6 @@ func (o *DerivativeMarketOrderCancel) ApplyDerivativeMarketCancellation(
5667
order := o.MarketOrder
5768
subaccountID := order.SubaccountID()
5869
// For vanilla orders that were not executed at all, increment the available balance
59-
// For reduce-only orders, free the position hold quantity
6070
if order.IsVanilla() {
6171
depositDelta := o.GetCancelDepositDelta()
6272
if depositDelta != nil {

0 commit comments

Comments
 (0)