Skip to content

Commit ef2df04

Browse files
Merge pull request #148 from InjectiveLabs/f/fix_precision_loss
chore: fix precision loss in margin
2 parents a70b207 + 21956a8 commit ef2df04

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

pyinjective/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ def derivative_margin_to_backend(price, quantity, leverage, denom) -> int:
6363

6464
def binary_options_buy_margin_to_backend(price, quantity, denom) -> int:
6565
price_tick_size = Decimal(denom.min_price_tick_size) / pow(10, denom.quote)
66-
margin = price * quantity
66+
margin = Decimal(str(price)) * Decimal(str(quantity))
6767
exchange_margin = floor_to(margin, float(price_tick_size)) * pow(10, 18 + denom.quote)
6868
return int(exchange_margin)
6969

7070
def binary_options_sell_margin_to_backend(price, quantity, denom) -> int:
7171
price_tick_size = Decimal(denom.min_price_tick_size) / pow(10, denom.quote)
72-
margin = (1 - (price / pow (10, denom.quote))) * quantity
72+
margin = (1 - (Decimal(str(price)) / pow (10, denom.quote))) * Decimal(str(quantity))
7373
exchange_margin = floor_to(margin, float(price_tick_size)) * pow(10, 18 + denom.quote)
7474
return int(exchange_margin)
7575

0 commit comments

Comments
 (0)