diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs
index de7901ae..d2174318 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedBookTicker.cs
@@ -1,4 +1,5 @@
-using System.Diagnostics;
+using System;
+using System.Diagnostics;
namespace CryptoExchange.Net.SharedApis
{
@@ -15,26 +16,44 @@ namespace CryptoExchange.Net.SharedApis
///
/// Quantity of the best ask
///
- public decimal BestAskQuantity { get; set; }
+ [Obsolete("Use `BestAskQuantities` instead")]
+ public decimal BestAskQuantity => BestAskQuantities.QuantityInBaseAsset ?? BestAskQuantities.QuantityInContracts ?? 0;
+ ///
+ /// Quantities of the best ask
+ ///
+ public SharedOrderQuantity BestAskQuantities { get; set; }
+
///
/// Price of the best bid
///
public decimal BestBidPrice { get; set; }
+
///
/// Quantity of the best bid
///
- public decimal BestBidQuantity { get; set; }
+ [Obsolete("Use `BestBidQuantities` instead")]
+ public decimal BestBidQuantity => BestBidQuantities.QuantityInBaseAsset ?? BestBidQuantities.QuantityInContracts ?? 0;
+ ///
+ /// Quantities of the best bid
+ ///
+ public SharedOrderQuantity BestBidQuantities { get; set; }
///
/// ctor
///
- public SharedBookTicker(SharedSymbol? sharedSymbol, string symbol, decimal bestAskPrice, decimal bestAskQuantity, decimal bestBidPrice, decimal bestBidQuantity)
+ public SharedBookTicker(
+ SharedSymbol? sharedSymbol,
+ string symbol,
+ decimal bestAskPrice,
+ SharedOrderQuantity bestAskQuantity,
+ decimal bestBidPrice,
+ SharedOrderQuantity bestBidQuantity)
: base(sharedSymbol, symbol)
{
BestAskPrice = bestAskPrice;
- BestAskQuantity = bestAskQuantity;
+ BestAskQuantities = bestAskQuantity.WithCalculatedQuantities(bestAskPrice, null);
BestBidPrice = bestBidPrice;
- BestBidQuantity = bestBidQuantity;
+ BestBidQuantities = bestBidQuantity.WithCalculatedQuantities(bestBidPrice, null);
}
}
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs
index b25b173c..2ab68c31 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOpenInterest.cs
@@ -1,4 +1,6 @@
-namespace CryptoExchange.Net.SharedApis
+using System;
+
+namespace CryptoExchange.Net.SharedApis
{
///
/// Open interest
@@ -8,14 +10,19 @@
///
/// Current open interest
///
- public decimal OpenInterest { get; set; }
+ [Obsolete("Use `OpenInterests` instead")]
+ public decimal OpenInterest => OpenInterests.QuantityInBaseAsset ?? OpenInterests.QuantityInContracts ?? 0;
+ ///
+ /// Current open interest
+ ///
+ public SharedOrderQuantity OpenInterests { get; set; }
///
/// ctor
///
- public SharedOpenInterest(decimal openInterest)
+ public SharedOpenInterest(SharedOrderQuantity openInterest)
{
- OpenInterest = openInterest;
+ OpenInterests = openInterest;
}
}
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
index 7057c414..37e517b2 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedOrderBook.cs
@@ -7,6 +7,10 @@ namespace CryptoExchange.Net.SharedApis
///
public record SharedOrderBook
{
+ ///
+ /// The quantity notation the order book is in, either BaseAsset or Contract
+ ///
+ public SharedQuantityType QuantityType { get; set; }
///
/// Asks list
///
@@ -19,8 +23,9 @@ namespace CryptoExchange.Net.SharedApis
///
/// ctor
///
- public SharedOrderBook(ISymbolOrderBookEntry[] asks, ISymbolOrderBookEntry[] bids)
+ public SharedOrderBook(SharedQuantityType quantityType, ISymbolOrderBookEntry[] asks, ISymbolOrderBookEntry[] bids)
{
+ QuantityType = quantityType;
Asks = asks;
Bids = bids;
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs
index 29588d27..b6406c6f 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPosition.cs
@@ -16,7 +16,12 @@ namespace CryptoExchange.Net.SharedApis
///
/// Current size of the position
///
- public decimal PositionSize { get; set; }
+ [Obsolete("Use `PositionSizes` instead")]
+ public decimal PositionSize => PositionSizes.QuantityInContracts ?? PositionSizes.QuantityInBaseAsset ?? 0;
+ ///
+ /// Current size of the position
+ ///
+ public SharedOrderQuantity PositionSizes { get; set; }
///
/// Side of the position
///
@@ -57,10 +62,10 @@ namespace CryptoExchange.Net.SharedApis
///
/// ctor
///
- public SharedPosition(SharedSymbol? sharedSymbol, string symbol, decimal positionSize, DateTime? updateTime)
+ public SharedPosition(SharedSymbol? sharedSymbol, string symbol, SharedOrderQuantity positionSize, DateTime? updateTime)
: base(sharedSymbol, symbol)
{
- PositionSize = positionSize;
+ PositionSizes = positionSize;
UpdateTime = updateTime;
}
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs
index 94b8ccf5..cebb3f67 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedPositionHistory.cs
@@ -24,7 +24,12 @@ namespace CryptoExchange.Net.SharedApis
///
/// Position size
///
- public decimal Quantity { get; set; }
+ [Obsolete("Use `Quantities` instead")]
+ public decimal Quantity => Quantities.QuantityInContracts ?? Quantities .QuantityInBaseAsset ?? 0;
+ ///
+ /// Position size
+ ///
+ public SharedOrderQuantity Quantities { get; set; }
///
/// Realized profit/loss
///
@@ -55,7 +60,7 @@ namespace CryptoExchange.Net.SharedApis
SharedPositionSide side,
decimal openPrice,
decimal closePrice,
- decimal quantity,
+ SharedOrderQuantity quantity,
decimal realizedPnl,
DateTime timestamp)
: base(sharedSymbol, symbol)
@@ -63,7 +68,7 @@ namespace CryptoExchange.Net.SharedApis
PositionSide = side;
AverageOpenPrice = openPrice;
AverageClosePrice = closePrice;
- Quantity = quantity;
+ Quantities = quantity;
RealizedPnl = realizedPnl;
Timestamp = timestamp;
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs
index 162e7360..47f5c4e8 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedTrade.cs
@@ -36,7 +36,7 @@ namespace CryptoExchange.Net.SharedApis
///
public SharedTrade(SharedSymbol? sharedSymbol, string symbol, SharedOrderQuantity quantities, decimal price, DateTime timestamp) : base(sharedSymbol, symbol)
{
- Quantities = quantities;
+ Quantities = quantities.WithCalculatedQuantities(price, null);
Price = price;
Timestamp = timestamp;
}
diff --git a/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs b/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs
index 86ed621e..1032db8d 100644
--- a/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs
+++ b/CryptoExchange.Net/SharedApis/ResponseModels/SharedUserTrade.cs
@@ -16,7 +16,13 @@ namespace CryptoExchange.Net.SharedApis
///
/// Traded quantity
///
- public decimal Quantity { get; set; }
+ [Obsolete("Use `Quantities` instead")]
+ public decimal Quantity => Quantities.QuantityInBaseAsset ?? Quantities.QuantityInQuoteAsset ?? 0;
+ ///
+ /// Traded quantity
+ ///
+ public SharedOrderQuantity Quantities { get; set; }
+
///
/// Trade price
///
@@ -53,14 +59,14 @@ namespace CryptoExchange.Net.SharedApis
///
/// ctor
///
- public SharedUserTrade(SharedSymbol? sharedSymbol, string symbol, string orderId, string id, SharedOrderSide? side, decimal quantity, decimal price, DateTime timestamp)
+ public SharedUserTrade(SharedSymbol? sharedSymbol, string symbol, string orderId, string id, SharedOrderSide? side, SharedOrderQuantity quantity, decimal price, DateTime timestamp)
: base(sharedSymbol, symbol)
{
Symbol = symbol;
OrderId = orderId;
Id = id;
Side = side;
- Quantity = quantity;
+ Quantities = quantity.WithCalculatedQuantities(price, null);
Price = price;
Timestamp = timestamp;
}