opinion-clob-sdk 0.1.13__py3-none-any.whl → 0.1.14__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of opinion-clob-sdk might be problematic. Click here for more details.
- opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +32 -32
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +26 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py +390 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/conditional_tokens.py +707 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +111 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +11 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py +41 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py +2 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py +90 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +40 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +2 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order.py +254 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py +9 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py +8 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py +8 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +20 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +182 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py +19 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +176 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +6 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +94 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +347 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +141 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +327 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py +22 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py +1035 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +26 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +364 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +37 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +437 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +63 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +17 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +218 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +4 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +19 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +957 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +135 -0
- {opinion_clob_sdk-0.1.13.dist-info → opinion_clob_sdk-0.1.14.dist-info}/METADATA +1 -1
- {opinion_clob_sdk-0.1.13.dist-info → opinion_clob_sdk-0.1.14.dist-info}/RECORD +73 -30
- {opinion_clob_sdk-0.1.13.dist-info → opinion_clob_sdk-0.1.14.dist-info}/WHEEL +0 -0
- {opinion_clob_sdk-0.1.13.dist-info → opinion_clob_sdk-0.1.14.dist-info}/top_level.txt +0 -0
opinion_clob_sdk/__init__.py
CHANGED
|
@@ -77,8 +77,8 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
77
77
|
"""
|
|
78
78
|
Calculate the maker and taker amounts based on the price and side.
|
|
79
79
|
|
|
80
|
-
Uses precise Decimal arithmetic to ensure precision within
|
|
81
|
-
(
|
|
80
|
+
Uses precise Decimal arithmetic to ensure precision within 4 significant digits
|
|
81
|
+
(to stay well within the matching engine's 6-digit precision limit).
|
|
82
82
|
|
|
83
83
|
Args:
|
|
84
84
|
price: The price of the order (between 0.001 and 0.999)
|
|
@@ -113,59 +113,59 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
113
113
|
|
|
114
114
|
if side == OrderSide.BUY:
|
|
115
115
|
# For BUY: price = maker/taker
|
|
116
|
-
# Goal: Calculate taker and maker with only
|
|
117
|
-
# to
|
|
116
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
117
|
+
# to stay well within the matching engine's 6-digit precision limit
|
|
118
118
|
#
|
|
119
119
|
# Strategy:
|
|
120
|
-
# 1. Round maker_amount to
|
|
121
|
-
# 2. Calculate taker = round(
|
|
122
|
-
# 3. Recalculate maker = round(
|
|
120
|
+
# 1. Round maker_amount to 4 significant digits
|
|
121
|
+
# 2. Calculate taker = round(maker_4digit / price) to 4 significant digits
|
|
122
|
+
# 3. Recalculate maker = round(taker_4digit * price) to verify precision
|
|
123
123
|
#
|
|
124
|
-
# This ensures:
|
|
124
|
+
# This ensures: maker_4digit / taker_4digit = price (exact match within 4 digits)
|
|
125
125
|
|
|
126
|
-
# Step 1: Round maker to
|
|
127
|
-
|
|
126
|
+
# Step 1: Round maker to 4 significant digits
|
|
127
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
128
128
|
|
|
129
129
|
# Step 2: Calculate taker = maker / price
|
|
130
|
-
exact_taker = Decimal(str(
|
|
130
|
+
exact_taker = Decimal(str(maker_4digit)) / price_decimal
|
|
131
131
|
taker_amount = int(exact_taker)
|
|
132
132
|
|
|
133
|
-
# Step 3: Round taker to
|
|
134
|
-
|
|
133
|
+
# Step 3: Round taker to 4 significant digits
|
|
134
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
135
135
|
|
|
136
|
-
# Step 4: Recalculate maker using
|
|
137
|
-
recalculated_maker_decimal = Decimal(str(
|
|
136
|
+
# Step 4: Recalculate maker using 4-digit taker to ensure precision
|
|
137
|
+
recalculated_maker_decimal = Decimal(str(taker_4digit)) * price_decimal
|
|
138
138
|
recalculated_maker_amount = int(recalculated_maker_decimal)
|
|
139
139
|
|
|
140
|
-
# Step 5: Round recalculated maker to
|
|
141
|
-
|
|
140
|
+
# Step 5: Round recalculated maker to 4 significant digits
|
|
141
|
+
recalculated_maker_4digit = round_to_significant_digits(recalculated_maker_amount, 4)
|
|
142
142
|
|
|
143
|
-
# Use the
|
|
144
|
-
taker_amount =
|
|
145
|
-
recalculated_maker_amount =
|
|
143
|
+
# Use the 4-digit values
|
|
144
|
+
taker_amount = taker_4digit
|
|
145
|
+
recalculated_maker_amount = recalculated_maker_4digit
|
|
146
146
|
|
|
147
147
|
else: # SELL
|
|
148
148
|
# For SELL: price = taker/maker
|
|
149
|
-
# Goal: Calculate taker and maker with only
|
|
149
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
150
150
|
#
|
|
151
151
|
# Strategy:
|
|
152
|
-
# 1. Round maker_amount to
|
|
153
|
-
# 2. Calculate taker = round(
|
|
154
|
-
# 3. This ensures:
|
|
152
|
+
# 1. Round maker_amount to 4 significant digits
|
|
153
|
+
# 2. Calculate taker = round(maker_4digit * price) to 4 significant digits
|
|
154
|
+
# 3. This ensures: taker_4digit / maker_4digit = price (exact match within 4 digits)
|
|
155
155
|
|
|
156
|
-
# Step 1: Round maker to
|
|
157
|
-
|
|
156
|
+
# Step 1: Round maker to 4 significant digits
|
|
157
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
158
158
|
|
|
159
159
|
# Step 2: Calculate taker = maker * price
|
|
160
|
-
exact_taker = Decimal(str(
|
|
160
|
+
exact_taker = Decimal(str(maker_4digit)) * price_decimal
|
|
161
161
|
taker_amount = int(exact_taker)
|
|
162
162
|
|
|
163
|
-
# Step 3: Round taker to
|
|
164
|
-
|
|
163
|
+
# Step 3: Round taker to 4 significant digits
|
|
164
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
165
165
|
|
|
166
|
-
# Use the
|
|
167
|
-
taker_amount =
|
|
168
|
-
recalculated_maker_amount =
|
|
166
|
+
# Use the 4-digit values
|
|
167
|
+
taker_amount = taker_4digit
|
|
168
|
+
recalculated_maker_amount = maker_4digit
|
|
169
169
|
|
|
170
170
|
# Ensure amounts are at least 1
|
|
171
171
|
taker_amount = int(max(1, taker_amount))
|
|
@@ -77,8 +77,8 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
77
77
|
"""
|
|
78
78
|
Calculate the maker and taker amounts based on the price and side.
|
|
79
79
|
|
|
80
|
-
Uses precise Decimal arithmetic to ensure precision within
|
|
81
|
-
(
|
|
80
|
+
Uses precise Decimal arithmetic to ensure precision within 4 significant digits
|
|
81
|
+
(to stay well within the matching engine's 6-digit precision limit).
|
|
82
82
|
|
|
83
83
|
Args:
|
|
84
84
|
price: The price of the order (between 0.001 and 0.999)
|
|
@@ -113,59 +113,59 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
113
113
|
|
|
114
114
|
if side == OrderSide.BUY:
|
|
115
115
|
# For BUY: price = maker/taker
|
|
116
|
-
# Goal: Calculate taker and maker with only
|
|
117
|
-
# to
|
|
116
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
117
|
+
# to stay well within the matching engine's 6-digit precision limit
|
|
118
118
|
#
|
|
119
119
|
# Strategy:
|
|
120
|
-
# 1. Round maker_amount to
|
|
121
|
-
# 2. Calculate taker = round(
|
|
122
|
-
# 3. Recalculate maker = round(
|
|
120
|
+
# 1. Round maker_amount to 4 significant digits
|
|
121
|
+
# 2. Calculate taker = round(maker_4digit / price) to 4 significant digits
|
|
122
|
+
# 3. Recalculate maker = round(taker_4digit * price) to verify precision
|
|
123
123
|
#
|
|
124
|
-
# This ensures:
|
|
124
|
+
# This ensures: maker_4digit / taker_4digit = price (exact match within 4 digits)
|
|
125
125
|
|
|
126
|
-
# Step 1: Round maker to
|
|
127
|
-
|
|
126
|
+
# Step 1: Round maker to 4 significant digits
|
|
127
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
128
128
|
|
|
129
129
|
# Step 2: Calculate taker = maker / price
|
|
130
|
-
exact_taker = Decimal(str(
|
|
130
|
+
exact_taker = Decimal(str(maker_4digit)) / price_decimal
|
|
131
131
|
taker_amount = int(exact_taker)
|
|
132
132
|
|
|
133
|
-
# Step 3: Round taker to
|
|
134
|
-
|
|
133
|
+
# Step 3: Round taker to 4 significant digits
|
|
134
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
135
135
|
|
|
136
|
-
# Step 4: Recalculate maker using
|
|
137
|
-
recalculated_maker_decimal = Decimal(str(
|
|
136
|
+
# Step 4: Recalculate maker using 4-digit taker to ensure precision
|
|
137
|
+
recalculated_maker_decimal = Decimal(str(taker_4digit)) * price_decimal
|
|
138
138
|
recalculated_maker_amount = int(recalculated_maker_decimal)
|
|
139
139
|
|
|
140
|
-
# Step 5: Round recalculated maker to
|
|
141
|
-
|
|
140
|
+
# Step 5: Round recalculated maker to 4 significant digits
|
|
141
|
+
recalculated_maker_4digit = round_to_significant_digits(recalculated_maker_amount, 4)
|
|
142
142
|
|
|
143
|
-
# Use the
|
|
144
|
-
taker_amount =
|
|
145
|
-
recalculated_maker_amount =
|
|
143
|
+
# Use the 4-digit values
|
|
144
|
+
taker_amount = taker_4digit
|
|
145
|
+
recalculated_maker_amount = recalculated_maker_4digit
|
|
146
146
|
|
|
147
147
|
else: # SELL
|
|
148
148
|
# For SELL: price = taker/maker
|
|
149
|
-
# Goal: Calculate taker and maker with only
|
|
149
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
150
150
|
#
|
|
151
151
|
# Strategy:
|
|
152
|
-
# 1. Round maker_amount to
|
|
153
|
-
# 2. Calculate taker = round(
|
|
154
|
-
# 3. This ensures:
|
|
152
|
+
# 1. Round maker_amount to 4 significant digits
|
|
153
|
+
# 2. Calculate taker = round(maker_4digit * price) to 4 significant digits
|
|
154
|
+
# 3. This ensures: taker_4digit / maker_4digit = price (exact match within 4 digits)
|
|
155
155
|
|
|
156
|
-
# Step 1: Round maker to
|
|
157
|
-
|
|
156
|
+
# Step 1: Round maker to 4 significant digits
|
|
157
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
158
158
|
|
|
159
159
|
# Step 2: Calculate taker = maker * price
|
|
160
|
-
exact_taker = Decimal(str(
|
|
160
|
+
exact_taker = Decimal(str(maker_4digit)) * price_decimal
|
|
161
161
|
taker_amount = int(exact_taker)
|
|
162
162
|
|
|
163
|
-
# Step 3: Round taker to
|
|
164
|
-
|
|
163
|
+
# Step 3: Round taker to 4 significant digits
|
|
164
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
165
165
|
|
|
166
|
-
# Use the
|
|
167
|
-
taker_amount =
|
|
168
|
-
recalculated_maker_amount =
|
|
166
|
+
# Use the 4-digit values
|
|
167
|
+
taker_amount = taker_4digit
|
|
168
|
+
recalculated_maker_amount = maker_4digit
|
|
169
169
|
|
|
170
170
|
# Ensure amounts are at least 1
|
|
171
171
|
taker_amount = int(max(1, taker_amount))
|
|
@@ -77,8 +77,8 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
77
77
|
"""
|
|
78
78
|
Calculate the maker and taker amounts based on the price and side.
|
|
79
79
|
|
|
80
|
-
Uses precise Decimal arithmetic to ensure precision within
|
|
81
|
-
(
|
|
80
|
+
Uses precise Decimal arithmetic to ensure precision within 4 significant digits
|
|
81
|
+
(to stay well within the matching engine's 6-digit precision limit).
|
|
82
82
|
|
|
83
83
|
Args:
|
|
84
84
|
price: The price of the order (between 0.001 and 0.999)
|
|
@@ -113,59 +113,59 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
113
113
|
|
|
114
114
|
if side == OrderSide.BUY:
|
|
115
115
|
# For BUY: price = maker/taker
|
|
116
|
-
# Goal: Calculate taker and maker with only
|
|
117
|
-
# to
|
|
116
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
117
|
+
# to stay well within the matching engine's 6-digit precision limit
|
|
118
118
|
#
|
|
119
119
|
# Strategy:
|
|
120
|
-
# 1. Round maker_amount to
|
|
121
|
-
# 2. Calculate taker = round(
|
|
122
|
-
# 3. Recalculate maker = round(
|
|
120
|
+
# 1. Round maker_amount to 4 significant digits
|
|
121
|
+
# 2. Calculate taker = round(maker_4digit / price) to 4 significant digits
|
|
122
|
+
# 3. Recalculate maker = round(taker_4digit * price) to verify precision
|
|
123
123
|
#
|
|
124
|
-
# This ensures:
|
|
124
|
+
# This ensures: maker_4digit / taker_4digit = price (exact match within 4 digits)
|
|
125
125
|
|
|
126
|
-
# Step 1: Round maker to
|
|
127
|
-
|
|
126
|
+
# Step 1: Round maker to 4 significant digits
|
|
127
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
128
128
|
|
|
129
129
|
# Step 2: Calculate taker = maker / price
|
|
130
|
-
exact_taker = Decimal(str(
|
|
130
|
+
exact_taker = Decimal(str(maker_4digit)) / price_decimal
|
|
131
131
|
taker_amount = int(exact_taker)
|
|
132
132
|
|
|
133
|
-
# Step 3: Round taker to
|
|
134
|
-
|
|
133
|
+
# Step 3: Round taker to 4 significant digits
|
|
134
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
135
135
|
|
|
136
|
-
# Step 4: Recalculate maker using
|
|
137
|
-
recalculated_maker_decimal = Decimal(str(
|
|
136
|
+
# Step 4: Recalculate maker using 4-digit taker to ensure precision
|
|
137
|
+
recalculated_maker_decimal = Decimal(str(taker_4digit)) * price_decimal
|
|
138
138
|
recalculated_maker_amount = int(recalculated_maker_decimal)
|
|
139
139
|
|
|
140
|
-
# Step 5: Round recalculated maker to
|
|
141
|
-
|
|
140
|
+
# Step 5: Round recalculated maker to 4 significant digits
|
|
141
|
+
recalculated_maker_4digit = round_to_significant_digits(recalculated_maker_amount, 4)
|
|
142
142
|
|
|
143
|
-
# Use the
|
|
144
|
-
taker_amount =
|
|
145
|
-
recalculated_maker_amount =
|
|
143
|
+
# Use the 4-digit values
|
|
144
|
+
taker_amount = taker_4digit
|
|
145
|
+
recalculated_maker_amount = recalculated_maker_4digit
|
|
146
146
|
|
|
147
147
|
else: # SELL
|
|
148
148
|
# For SELL: price = taker/maker
|
|
149
|
-
# Goal: Calculate taker and maker with only
|
|
149
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
150
150
|
#
|
|
151
151
|
# Strategy:
|
|
152
|
-
# 1. Round maker_amount to
|
|
153
|
-
# 2. Calculate taker = round(
|
|
154
|
-
# 3. This ensures:
|
|
152
|
+
# 1. Round maker_amount to 4 significant digits
|
|
153
|
+
# 2. Calculate taker = round(maker_4digit * price) to 4 significant digits
|
|
154
|
+
# 3. This ensures: taker_4digit / maker_4digit = price (exact match within 4 digits)
|
|
155
155
|
|
|
156
|
-
# Step 1: Round maker to
|
|
157
|
-
|
|
156
|
+
# Step 1: Round maker to 4 significant digits
|
|
157
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
158
158
|
|
|
159
159
|
# Step 2: Calculate taker = maker * price
|
|
160
|
-
exact_taker = Decimal(str(
|
|
160
|
+
exact_taker = Decimal(str(maker_4digit)) * price_decimal
|
|
161
161
|
taker_amount = int(exact_taker)
|
|
162
162
|
|
|
163
|
-
# Step 3: Round taker to
|
|
164
|
-
|
|
163
|
+
# Step 3: Round taker to 4 significant digits
|
|
164
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
165
165
|
|
|
166
|
-
# Use the
|
|
167
|
-
taker_amount =
|
|
168
|
-
recalculated_maker_amount =
|
|
166
|
+
# Use the 4-digit values
|
|
167
|
+
taker_amount = taker_4digit
|
|
168
|
+
recalculated_maker_amount = maker_4digit
|
|
169
169
|
|
|
170
170
|
# Ensure amounts are at least 1
|
|
171
171
|
taker_amount = int(max(1, taker_amount))
|
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py
CHANGED
|
@@ -77,8 +77,8 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
77
77
|
"""
|
|
78
78
|
Calculate the maker and taker amounts based on the price and side.
|
|
79
79
|
|
|
80
|
-
Uses precise Decimal arithmetic to ensure precision within
|
|
81
|
-
(
|
|
80
|
+
Uses precise Decimal arithmetic to ensure precision within 4 significant digits
|
|
81
|
+
(to stay well within the matching engine's 6-digit precision limit).
|
|
82
82
|
|
|
83
83
|
Args:
|
|
84
84
|
price: The price of the order (between 0.001 and 0.999)
|
|
@@ -113,59 +113,59 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
113
113
|
|
|
114
114
|
if side == OrderSide.BUY:
|
|
115
115
|
# For BUY: price = maker/taker
|
|
116
|
-
# Goal: Calculate taker and maker with only
|
|
117
|
-
# to
|
|
116
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
117
|
+
# to stay well within the matching engine's 6-digit precision limit
|
|
118
118
|
#
|
|
119
119
|
# Strategy:
|
|
120
|
-
# 1. Round maker_amount to
|
|
121
|
-
# 2. Calculate taker = round(
|
|
122
|
-
# 3. Recalculate maker = round(
|
|
120
|
+
# 1. Round maker_amount to 4 significant digits
|
|
121
|
+
# 2. Calculate taker = round(maker_4digit / price) to 4 significant digits
|
|
122
|
+
# 3. Recalculate maker = round(taker_4digit * price) to verify precision
|
|
123
123
|
#
|
|
124
|
-
# This ensures:
|
|
124
|
+
# This ensures: maker_4digit / taker_4digit = price (exact match within 4 digits)
|
|
125
125
|
|
|
126
|
-
# Step 1: Round maker to
|
|
127
|
-
|
|
126
|
+
# Step 1: Round maker to 4 significant digits
|
|
127
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
128
128
|
|
|
129
129
|
# Step 2: Calculate taker = maker / price
|
|
130
|
-
exact_taker = Decimal(str(
|
|
130
|
+
exact_taker = Decimal(str(maker_4digit)) / price_decimal
|
|
131
131
|
taker_amount = int(exact_taker)
|
|
132
132
|
|
|
133
|
-
# Step 3: Round taker to
|
|
134
|
-
|
|
133
|
+
# Step 3: Round taker to 4 significant digits
|
|
134
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
135
135
|
|
|
136
|
-
# Step 4: Recalculate maker using
|
|
137
|
-
recalculated_maker_decimal = Decimal(str(
|
|
136
|
+
# Step 4: Recalculate maker using 4-digit taker to ensure precision
|
|
137
|
+
recalculated_maker_decimal = Decimal(str(taker_4digit)) * price_decimal
|
|
138
138
|
recalculated_maker_amount = int(recalculated_maker_decimal)
|
|
139
139
|
|
|
140
|
-
# Step 5: Round recalculated maker to
|
|
141
|
-
|
|
140
|
+
# Step 5: Round recalculated maker to 4 significant digits
|
|
141
|
+
recalculated_maker_4digit = round_to_significant_digits(recalculated_maker_amount, 4)
|
|
142
142
|
|
|
143
|
-
# Use the
|
|
144
|
-
taker_amount =
|
|
145
|
-
recalculated_maker_amount =
|
|
143
|
+
# Use the 4-digit values
|
|
144
|
+
taker_amount = taker_4digit
|
|
145
|
+
recalculated_maker_amount = recalculated_maker_4digit
|
|
146
146
|
|
|
147
147
|
else: # SELL
|
|
148
148
|
# For SELL: price = taker/maker
|
|
149
|
-
# Goal: Calculate taker and maker with only
|
|
149
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
150
150
|
#
|
|
151
151
|
# Strategy:
|
|
152
|
-
# 1. Round maker_amount to
|
|
153
|
-
# 2. Calculate taker = round(
|
|
154
|
-
# 3. This ensures:
|
|
152
|
+
# 1. Round maker_amount to 4 significant digits
|
|
153
|
+
# 2. Calculate taker = round(maker_4digit * price) to 4 significant digits
|
|
154
|
+
# 3. This ensures: taker_4digit / maker_4digit = price (exact match within 4 digits)
|
|
155
155
|
|
|
156
|
-
# Step 1: Round maker to
|
|
157
|
-
|
|
156
|
+
# Step 1: Round maker to 4 significant digits
|
|
157
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
158
158
|
|
|
159
159
|
# Step 2: Calculate taker = maker * price
|
|
160
|
-
exact_taker = Decimal(str(
|
|
160
|
+
exact_taker = Decimal(str(maker_4digit)) * price_decimal
|
|
161
161
|
taker_amount = int(exact_taker)
|
|
162
162
|
|
|
163
|
-
# Step 3: Round taker to
|
|
164
|
-
|
|
163
|
+
# Step 3: Round taker to 4 significant digits
|
|
164
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
165
165
|
|
|
166
|
-
# Use the
|
|
167
|
-
taker_amount =
|
|
168
|
-
recalculated_maker_amount =
|
|
166
|
+
# Use the 4-digit values
|
|
167
|
+
taker_amount = taker_4digit
|
|
168
|
+
recalculated_maker_amount = maker_4digit
|
|
169
169
|
|
|
170
170
|
# Ensure amounts are at least 1
|
|
171
171
|
taker_amount = int(max(1, taker_amount))
|
|
@@ -77,8 +77,8 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
77
77
|
"""
|
|
78
78
|
Calculate the maker and taker amounts based on the price and side.
|
|
79
79
|
|
|
80
|
-
Uses precise Decimal arithmetic to ensure precision within
|
|
81
|
-
(
|
|
80
|
+
Uses precise Decimal arithmetic to ensure precision within 4 significant digits
|
|
81
|
+
(to stay well within the matching engine's 6-digit precision limit).
|
|
82
82
|
|
|
83
83
|
Args:
|
|
84
84
|
price: The price of the order (between 0.001 and 0.999)
|
|
@@ -113,59 +113,59 @@ def calculate_order_amounts(price: float, maker_amount: int, side: OrderSide, de
|
|
|
113
113
|
|
|
114
114
|
if side == OrderSide.BUY:
|
|
115
115
|
# For BUY: price = maker/taker
|
|
116
|
-
# Goal: Calculate taker and maker with only
|
|
117
|
-
# to
|
|
116
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
117
|
+
# to stay well within the matching engine's 6-digit precision limit
|
|
118
118
|
#
|
|
119
119
|
# Strategy:
|
|
120
|
-
# 1. Round maker_amount to
|
|
121
|
-
# 2. Calculate taker = round(
|
|
122
|
-
# 3. Recalculate maker = round(
|
|
120
|
+
# 1. Round maker_amount to 4 significant digits
|
|
121
|
+
# 2. Calculate taker = round(maker_4digit / price) to 4 significant digits
|
|
122
|
+
# 3. Recalculate maker = round(taker_4digit * price) to verify precision
|
|
123
123
|
#
|
|
124
|
-
# This ensures:
|
|
124
|
+
# This ensures: maker_4digit / taker_4digit = price (exact match within 4 digits)
|
|
125
125
|
|
|
126
|
-
# Step 1: Round maker to
|
|
127
|
-
|
|
126
|
+
# Step 1: Round maker to 4 significant digits
|
|
127
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
128
128
|
|
|
129
129
|
# Step 2: Calculate taker = maker / price
|
|
130
|
-
exact_taker = Decimal(str(
|
|
130
|
+
exact_taker = Decimal(str(maker_4digit)) / price_decimal
|
|
131
131
|
taker_amount = int(exact_taker)
|
|
132
132
|
|
|
133
|
-
# Step 3: Round taker to
|
|
134
|
-
|
|
133
|
+
# Step 3: Round taker to 4 significant digits
|
|
134
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
135
135
|
|
|
136
|
-
# Step 4: Recalculate maker using
|
|
137
|
-
recalculated_maker_decimal = Decimal(str(
|
|
136
|
+
# Step 4: Recalculate maker using 4-digit taker to ensure precision
|
|
137
|
+
recalculated_maker_decimal = Decimal(str(taker_4digit)) * price_decimal
|
|
138
138
|
recalculated_maker_amount = int(recalculated_maker_decimal)
|
|
139
139
|
|
|
140
|
-
# Step 5: Round recalculated maker to
|
|
141
|
-
|
|
140
|
+
# Step 5: Round recalculated maker to 4 significant digits
|
|
141
|
+
recalculated_maker_4digit = round_to_significant_digits(recalculated_maker_amount, 4)
|
|
142
142
|
|
|
143
|
-
# Use the
|
|
144
|
-
taker_amount =
|
|
145
|
-
recalculated_maker_amount =
|
|
143
|
+
# Use the 4-digit values
|
|
144
|
+
taker_amount = taker_4digit
|
|
145
|
+
recalculated_maker_amount = recalculated_maker_4digit
|
|
146
146
|
|
|
147
147
|
else: # SELL
|
|
148
148
|
# For SELL: price = taker/maker
|
|
149
|
-
# Goal: Calculate taker and maker with only
|
|
149
|
+
# Goal: Calculate taker and maker with only 4 significant digits each
|
|
150
150
|
#
|
|
151
151
|
# Strategy:
|
|
152
|
-
# 1. Round maker_amount to
|
|
153
|
-
# 2. Calculate taker = round(
|
|
154
|
-
# 3. This ensures:
|
|
152
|
+
# 1. Round maker_amount to 4 significant digits
|
|
153
|
+
# 2. Calculate taker = round(maker_4digit * price) to 4 significant digits
|
|
154
|
+
# 3. This ensures: taker_4digit / maker_4digit = price (exact match within 4 digits)
|
|
155
155
|
|
|
156
|
-
# Step 1: Round maker to
|
|
157
|
-
|
|
156
|
+
# Step 1: Round maker to 4 significant digits
|
|
157
|
+
maker_4digit = round_to_significant_digits(maker_amount, 4)
|
|
158
158
|
|
|
159
159
|
# Step 2: Calculate taker = maker * price
|
|
160
|
-
exact_taker = Decimal(str(
|
|
160
|
+
exact_taker = Decimal(str(maker_4digit)) * price_decimal
|
|
161
161
|
taker_amount = int(exact_taker)
|
|
162
162
|
|
|
163
|
-
# Step 3: Round taker to
|
|
164
|
-
|
|
163
|
+
# Step 3: Round taker to 4 significant digits
|
|
164
|
+
taker_4digit = round_to_significant_digits(taker_amount, 4)
|
|
165
165
|
|
|
166
|
-
# Use the
|
|
167
|
-
taker_amount =
|
|
168
|
-
recalculated_maker_amount =
|
|
166
|
+
# Use the 4-digit values
|
|
167
|
+
taker_amount = taker_4digit
|
|
168
|
+
recalculated_maker_amount = maker_4digit
|
|
169
169
|
|
|
170
170
|
# Ensure amounts are at least 1
|
|
171
171
|
taker_amount = int(max(1, taker_amount))
|