Skip to content

Commit 2e2db5b

Browse files
committed
Fix bug around partial fills
1 parent 9adb110 commit 2e2db5b

2 files changed

Lines changed: 7 additions & 13 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<PropertyGroup>
66
<LangVersion>latest</LangVersion>
7-
<Version>2.13.5</Version>
7+
<Version>2.13.6</Version>
88
</PropertyGroup>
99

1010
</Project>

src/Crypto.Websocket.Extensions/Orders/Sources/HyperliquidOrderSource.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,7 @@ public CryptoOrder ConvertOrder(UserOrderResponse response)
143143

144144
var price = Math.Abs(FirstNonZero(order.LimitPrice, existing?.Price) ?? 0);
145145

146-
var isPartiallyFilled = order.Size < order.OriginalSize && order.Size > 0;
147-
var currentStatus = ConvertOrderStatus(response, isPartiallyFilled);
146+
var currentStatus = ConvertOrderStatus(response);
148147

149148
var newOrder = new CryptoOrder
150149
{
@@ -153,11 +152,11 @@ public CryptoOrder ConvertOrder(UserOrderResponse response)
153152
ClientId = order.ClientOrderId ?? existing?.ClientId,
154153
Pair = order.Coin ?? existing?.Pair ?? string.Empty,
155154
Side = order.Side == Side.Ask ? CryptoOrderSide.Ask : CryptoOrderSide.Bid,
156-
AmountFilled = isPartiallyFilled ? order.Size : 0,
157-
AmountFilledCumulative = isPartiallyFilled ? order.Size + (existing?.AmountFilledCumulative ?? 0) : 0,
155+
AmountFilled = 0,
156+
AmountFilledCumulative = existing?.AmountFilledCumulative,
158157
AmountOrig = FirstNonZero(order.OriginalSize, existing?.AmountOrig),
159-
AmountFilledQuote = isPartiallyFilled ? order.Size * order.LimitPrice : 0,
160-
AmountFilledCumulativeQuote = isPartiallyFilled ? order.Size * order.LimitPrice + (existing?.AmountFilledCumulativeQuote ?? 0) : 0,
158+
AmountFilledQuote = 0,
159+
AmountFilledCumulativeQuote = existing?.AmountFilledCumulativeQuote,
161160
AmountOrigQuote = order.OriginalSize * order.LimitPrice,
162161
Created = order.Timestamp,
163162
Updated = response.StatusTimestamp,
@@ -240,13 +239,8 @@ private CryptoOrder ConvertFill(Fill fill)
240239
/// <summary>
241240
/// Convert order status
242241
/// </summary>
243-
public static CryptoOrderStatus ConvertOrderStatus(UserOrderResponse response, bool isPartiallyFilled)
242+
public static CryptoOrderStatus ConvertOrderStatus(UserOrderResponse response)
244243
{
245-
if (isPartiallyFilled)
246-
{
247-
return CryptoOrderStatus.PartiallyFilled;
248-
}
249-
250244
var status = response.Status;
251245
switch (status)
252246
{

0 commit comments

Comments
 (0)