@@ -156,12 +156,18 @@ class AddressActor(owner: Address,
156156 val orders = if (onlyActive) matchingActiveOrders else matchingActiveOrders ++ orderDB.getFinalizedOrders(owner, maybePair)
157157 sender ! Reply .OrdersStatuses (orders)
158158
159- case event : Event .StoreFailed =>
160- log.trace(s " Got $event" )
161- pendingCommands.remove(event.orderId).foreach { item =>
162- item.client ! CanNotPersist (event.reason)
159+ case storeFailed @ Event .StoreFailed (orderId, reason, queueEvent) =>
160+ log.trace(s " Got $storeFailed" )
161+ pendingCommands.remove(orderId).foreach { item =>
162+ item.client ! CanNotPersist (reason)
163+ }
164+ queueEvent match {
165+ case QueueEvent .Placed (_) | QueueEvent .PlacedMarket (_) =>
166+ activeOrders.remove(orderId).foreach { ao =>
167+ openVolume = openVolume |-| ao.reservableBalance
168+ }
169+ case _ =>
163170 }
164- openVolume = openVolume |-| activeOrders(event.orderId).reservableBalance
165171
166172 case event : ValidationEvent =>
167173 log.trace(s " Got $event" )
@@ -389,7 +395,7 @@ class AddressActor(owner: Address,
389395 Success (Some (error.CanNotPersistEvent ))
390396 }
391397 .onComplete {
392- case Success (Some (error)) => self ! Event .StoreFailed (orderId, error)
398+ case Success (Some (error)) => self ! Event .StoreFailed (orderId, error, event )
393399 case Success (None ) => log.trace(s " $event saved " )
394400 case _ => throw new IllegalStateException (" Impossibru" )
395401 }
@@ -477,7 +483,7 @@ object AddressActor {
477483 case class ValidationPassed (acceptedOrder : AcceptedOrder ) extends ValidationEvent {
478484 override def orderId : Order .Id = acceptedOrder.order.id()
479485 }
480- case class StoreFailed (orderId : Order .Id , reason : MatcherError ) extends Event
486+ case class StoreFailed (orderId : Order .Id , reason : MatcherError , queueEvent : QueueEvent ) extends Event
481487 }
482488
483489 private case class CancelExpiredOrder (orderId : ByteStr )
0 commit comments