public override void RevertEffect() { MarkAsProcessed(); var decodedId = OrderIdConverter.Decode(Effect.OrderId); if (decodedId.Side == OrderSide.Buy) { Effect.AccountWrapper.Account.GetBalance(0).UpdateLiabilities(Effect.QuoteAmount); } else { Effect.AccountWrapper.Account.GetBalance(decodedId.Asset).UpdateLiabilities(Effect.Amount); } var order = new Order { OrderId = Effect.OrderId, Amount = Effect.Amount, QuoteAmount = Effect.QuoteAmount, Price = Effect.Price, AccountWrapper = Effect.AccountWrapper }; orderbook.InsertOrder(order); }
public override void CommitEffect() { MarkAsProcessed(); //lock order reserve var decodedId = OrderIdConverter.Decode(order.OrderId); if (decodedId.Side == OrderSide.Buy) { order.AccountWrapper.Account.GetBalance(0).UpdateLiabilities(order.QuoteAmount); } else { order.AccountWrapper.Account.GetBalance(decodedId.Asset).UpdateLiabilities(order.Amount); } //add order to the orderbook orderBook.InsertOrder(order); }