From 88a98c8c2183ff4660cc24413abba4561b0c205f Mon Sep 17 00:00:00 2001 From: Jeremy Letang Date: Wed, 17 Jul 2024 16:34:33 +0100 Subject: [PATCH] fix: prevent division by 0 in datanode estimate API (specific to capped future) Signed-off-by: Jeremy Letang --- datanode/api/trading_data_v2.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/datanode/api/trading_data_v2.go b/datanode/api/trading_data_v2.go index a375c9016e..520b1a07fc 100644 --- a/datanode/api/trading_data_v2.go +++ b/datanode/api/trading_data_v2.go @@ -3887,6 +3887,10 @@ func calcPositionMarginCappedAndFullyCollateralised( ongoing = ongoing.Add(v.Price.Mul(num.DecimalFromInt64(size))) } + // no volume, and we want to prevent division by 0 + if totalVolume == 0 { + return num.DecimalZero() + } averageEntryPrice := ongoing.Div(num.DecimalFromInt64(totalVolume)) if positionSize < 0 {