@@ -167,15 +167,12 @@ func (e *DerivativeMatchingExpansionData) GetLimitMatchingDerivativeBatchExecuti
167167
168168func  (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
320335func  (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 ,
0 commit comments