Skip to content

Commit 3a0acb2

Browse files
authored
add ExchangeOrderResult.UpdateSequence (#680)
- sequence that the order update was sent from the server, usually used to keep updates in order or for debugging purposes
1 parent 1b1a0a8 commit 3a0acb2

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

src/ExchangeSharp/API/Exchanges/BinanceGroup/Models/UserDataStream.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public ExchangeOrderResult ExchangeOrderResult
9494
OrderDate = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(OrderCreationTime),
9595
CompletedDate = status.IsCompleted() ? (DateTime?)CryptoUtility.UnixTimeStampToDateTimeMilliseconds(TransactionTime) : null,
9696
TradeDate = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(TransactionTime),
97+
UpdateSequence = EventTime, // in Binance, the sequence nymber is also the EventTime
9798
MarketSymbol = Symbol,
9899
// IsBuy is not provided here
99100
Fees = CommissionAmount,

src/ExchangeSharp/API/Exchanges/Coinbase/Models/Response/Messages.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ internal class BaseMessage
2222

2323
internal class Activate : BaseMessage
2424
{
25-
private ExchangeOrderResult exchangeOrderResult;
26-
2725
public Guid OrderId { get; set; }
2826
public StopType OrderType { get; set; }
2927
public decimal Size { get; set; }
@@ -52,7 +50,8 @@ internal class Activate : BaseMessage
5250
MarketSymbol = ProductId,
5351
IsBuy = Side == OrderSide.Buy,
5452
Fees = null, // only TakerFeeRate is specified - no fees have been charged yet
55-
TradeId = null // no trades have been made
53+
TradeId = null, // no trades have been made
54+
UpdateSequence = null, // unfortunately, the Activate event doesn't provide a sequence number
5655
};
5756
}
5857

@@ -84,7 +83,8 @@ internal class Change : BaseMessage
8483
MarketSymbol = ProductId,
8584
IsBuy = Side == OrderSide.Buy,
8685
Fees = null, // only TakerFeeRate is specified - no fees have been charged yet
87-
TradeId = null // not a trade msg
86+
TradeId = null, // not a trade msg
87+
UpdateSequence = Sequence,
8888
};
8989
}
9090

@@ -116,7 +116,8 @@ internal class Done : BaseMessage
116116
MarketSymbol = ProductId,
117117
IsBuy = Side == OrderSide.Buy,
118118
Fees = null, // not specified here
119-
TradeId = null // not a trade msg
119+
TradeId = null, // not a trade msg
120+
UpdateSequence = Sequence,
120121
};
121122
}
122123

@@ -189,6 +190,7 @@ internal class Match : BaseMessage
189190
IsBuy = Side == OrderSide.Buy,
190191
Fees = (MakerFeeRate ?? TakerFeeRate) * Price * Size,
191192
TradeId = TradeId.ToString(),
193+
UpdateSequence = Sequence,
192194
};
193195
}
194196

@@ -218,7 +220,8 @@ internal class Open : BaseMessage
218220
MarketSymbol = ProductId,
219221
IsBuy = Side == OrderSide.Buy,
220222
Fees = null, // not specified here
221-
TradeId = null // not a trade msg
223+
TradeId = null, // not a trade msg
224+
UpdateSequence = Sequence,
222225
};
223226
}
224227

@@ -250,7 +253,8 @@ internal class Received : BaseMessage
250253
MarketSymbol = ProductId,
251254
IsBuy = Side == OrderSide.Buy,
252255
Fees = null, // not specified here
253-
TradeId = null // not a trade msg
256+
TradeId = null, // not a trade msg
257+
UpdateSequence = Sequence,
254258
};
255259
}
256260

src/ExchangeSharp/Model/ExchangeOrderResult.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ public sealed class ExchangeOrderResult
9191
/// <summary>datetime in UTC of the trade. Null if not a trade.</summary>
9292
public DateTime? TradeDate { get; set; }
9393

94+
/// <summary>
95+
/// sequence that the order update was sent from the server, usually used to keep updates in order or for debugging purposes.
96+
/// Not all exchanges provide this value, so it may be null.
97+
/// </summary>
98+
public long? UpdateSequence { get; set; }
99+
94100
/// <summary>Append another order to this order - order id and type must match</summary>
95101
/// <param name="other">Order to append</param>
96102
public void AppendOrderWithOrder(ExchangeOrderResult other)

0 commit comments

Comments
 (0)