Skip to content

Commit 8a15810

Browse files
committed
Fix properties, and deserialization issue, added test
1 parent 90398b4 commit 8a15810

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

BinanceExchange.API/Models/Response/WithdrawListItem.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class WithdrawListItem : IResponse
1414
public string Id { get; set; }
1515

1616
[DataMember(Order = 2)]
17-
public long Amount { get; set; }
17+
public decimal Amount { get; set; }
1818

1919
[DataMember(Order = 3)]
2020
public string Address { get; set; }

BinanceExchange.API/Models/Websocket/BinanceTradeOrderData.cs

+6-27
Original file line numberDiff line numberDiff line change
@@ -14,136 +14,115 @@ namespace BinanceExchange.API.Models.WebSocket
1414
[DataContract]
1515
public class BinanceTradeOrderData: ISymbolWebSocketResponse
1616
{
17-
[DataMember(Order = 1)]
1817
[JsonProperty(PropertyName = "e")]
1918
public string EventType { get; set; }
2019

21-
[DataMember(Order = 2)]
2220
[JsonProperty(PropertyName = "E")]
2321
[JsonConverter(typeof(EpochTimeConverter))]
2422
public DateTime EventTime { get; set; }
2523

26-
[DataMember(Order = 3)]
2724
[JsonProperty(PropertyName = "s")]
2825
public string Symbol { get; set; }
2926

30-
[DataMember(Order = 4)]
3127
[JsonProperty(PropertyName = "c")]
3228
public string NewClientOrderId { get; set; }
3329

34-
[DataMember(Order = 5)]
3530
[JsonProperty(PropertyName = "S")]
3631
[JsonConverter(typeof(StringEnumConverter))]
3732
public OrderSide Side { get; set; }
3833

39-
[DataMember(Order = 6)]
4034
[JsonProperty(PropertyName = "o")]
4135
[JsonConverter(typeof(StringEnumConverter))]
4236
public OrderType Type { get; set; }
4337

44-
[DataMember(Order = 7)]
38+
[JsonProperty(PropertyName = "O")]
39+
public string DEPRECATED_FIELD_TYPE { get; set; }
40+
4541
[JsonProperty(PropertyName = "f")]
4642
[JsonConverter(typeof(StringEnumConverter))]
4743
public TimeInForce TimeInForce { get; set; }
4844

49-
[DataMember(Order = 7)]
5045
[JsonProperty(PropertyName = "q")]
5146
public decimal Quantity { get; set; }
5247

53-
[DataMember(Order = 8)]
5448
[JsonProperty(PropertyName = "p")]
5549
public decimal Price { get; set; }
5650

5751
#region Undefined API Result fields
5852
//TODO: Update when Binance API updated
59-
[DataMember(Order = 9)]
6053
[JsonProperty(PropertyName = "P")]
6154
public double P { get; set; }
6255

63-
[DataMember(Order = 10)]
6456
[JsonProperty(PropertyName = "F")]
6557
public double F { get; set; }
6658

67-
[DataMember(Order = 11)]
6859
[JsonProperty(PropertyName = "g")]
6960
public string G { get; set; }
7061

71-
[DataMember(Order = 12)]
7262
[JsonProperty(PropertyName = "C")]
7363
public string C { get; set; }
7464
#endregion
7565

76-
[DataMember(Order = 13)]
7766
[JsonProperty(PropertyName = "x")]
7867
[JsonConverter(typeof(StringEnumConverter))]
7968
public ExecutionType ExecutionType { get; set; }
8069

81-
[DataMember(Order = 14)]
8270
[JsonProperty(PropertyName = "X")]
8371
[JsonConverter(typeof(StringEnumConverter))]
8472
public OrderStatus OrderStatus { get; set; }
8573

86-
[DataMember(Order = 15)]
8774
[JsonProperty(PropertyName = "r")]
8875
[JsonConverter(typeof(StringEnumConverter))]
8976
public OrderRejectReason OrderRejectReason { get; set; }
9077

9178
#region Undefined API Result fields
9279
//TODO: Update when Binance API updated
93-
[DataMember(Order = 16)]
9480
[JsonProperty(PropertyName = "i")]
9581
public long OrderId { get; set; }
9682

97-
[DataMember(Order = 17)]
83+
[JsonProperty(PropertyName = "I")]
84+
public string DEPRECATED_FIELD_ORDERID { get; set; }
85+
9886
[JsonProperty(PropertyName = "l")]
9987
public decimal QuantityOfLastFilledTrade { get; set; }
10088

101-
[DataMember(Order = 18)]
10289
[JsonProperty(PropertyName = "z")]
10390
public decimal AccumulatedQuantityOfFilledTradesThisOrder { get; set; }
10491

105-
[DataMember(Order = 19)]
10692
[JsonProperty(PropertyName = "L")]
10793
public decimal PriceOfLastFilledTrade { get; set; }
10894

109-
[DataMember(Order = 20)]
11095
[JsonProperty(PropertyName = "n")]
11196
public decimal Commission { get; set; }
11297

11398
/// <summary>
11499
/// Asset on which commission taken
115100
/// </summary>
116-
[DataMember(Order = 21)]
117101
[JsonProperty(PropertyName = "N")]
118102
public string AssetCommissionTakenFrom { get; set; }
119103
#endregion
120104

121105
/// <summary>
122106
/// Represents Order or Trade time
123107
/// </summary>
124-
[DataMember(Order = 22)]
125108
[JsonProperty(PropertyName = "T")]
126109
[JsonConverter(typeof(EpochTimeConverter))]
127110
public DateTime TimeStamp { get; set; }
128111

129-
[DataMember(Order = 23)]
130112
[JsonProperty(PropertyName = "t")]
131113
public long TradeId { get; set; }
132114

133115
#region Undefined API Result fields
134116

135-
[DataMember(Order = 26)]
136117
[JsonProperty(PropertyName = "w")]
137118
public bool w { get; set; }
138119
#endregion
139120

140-
[DataMember(Order = 27)]
141121
[JsonProperty(PropertyName = "m")]
142122
public bool IsBuyerMaker { get; set; }
143123

144124
#region Undefined API Result fields
145125
//TODO: Update when Binance API updated
146-
[DataMember(Order = 28)]
147126
[JsonProperty(PropertyName = "M")]
148127
public bool M { get; set; }
149128
#endregion
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using BinanceExchange.API.Enums;
2+
using BinanceExchange.API.Models.WebSocket;
3+
using Newtonsoft.Json;
4+
using Xunit;
5+
6+
namespace BinanceExchange.Tests.Client.BinanceClient.ModelTests
7+
{
8+
public class BinanceTradeOrderDataTests
9+
{
10+
[Fact]
11+
public void CanDeserializeCaseSensitiveProperties()
12+
{
13+
var jsonPayload =
14+
"{ \"e\": \"executionReport\", \"E\": 1552602237245, \"s\": \"BNBBTC\", \"c\": \"pc_12cbcdd2ebbe4893a5d5de4ef27b3954\", \"S\": \"SELL\", \"o\": \"LIMIT\", \"f\": \"GTC\", \"q\": \"0.62000000\", \"p\": \"0.00487400\", \"P\": \"0.00000000\", \"F\": \"0.00000000\", \"g\": -1, \"C\": \"pc_31471433322c4166a05c58152650c96a\", \"x\": \"CANCELED\", \"X\": \"CANCELED\", \"r\": \"NONE\", \"i\": 124465346, \"l\": \"0.00000000\", \"z\": \"0.00000000\", \"L\": \"0.00000000\", \"n\": \"0\", \"N\": null, \"T\": 1552602237240, \"t\": -1, \"I\": 286808464, \"w\": false, \"m\": false, \"M\": false, \"O\": 1552601178372, \"Z\": \"0.00000000\", \"Y\": \"0.00000000\" }";
15+
16+
var result = JsonConvert.DeserializeObject<BinanceTradeOrderData>(jsonPayload);
17+
18+
Assert.Equal(124465346,result.OrderId);
19+
Assert.Equal(OrderType.Limit,result.Type);
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)