opinion-clob-sdk 0.1.2__py3-none-any.whl → 0.1.4__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/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +26 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py +390 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py +0 -0
- 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/chain/contracts/erc20.py +111 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +11 -0
- 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/chain/py_order_utils/builders/__init__.py +0 -0
- 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/chain/py_order_utils/builders/exception.py +2 -0
- 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/chain/py_order_utils/builders/order_builder_test.py +40 -0
- 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/chain/py_order_utils/model/__init__.py +0 -0
- 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/chain/py_order_utils/model/order_type.py +9 -0
- 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/chain/py_order_utils/model/signatures.py +8 -0
- 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/chain/py_order_utils/utils.py +109 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py +19 -0
- 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/chain/safe/enums.py +6 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +94 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +347 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +141 -0
- 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/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +327 -0
- 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/chain/safe/safe_contracts/safe_v1_3_0.py +1035 -0
- 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/chain/safe/safe_signature.py +364 -0
- 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/chain/safe/safe_tx.py +437 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +63 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +17 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +218 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +4 -0
- 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/__init__.py +26 -0
- 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/chain/contract_caller.py +390 -0
- 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/chain/contracts/conditional_tokens.py +707 -0
- 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/chain/exception.py +11 -0
- 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/chain/py_order_utils/builders/__init__.py +0 -0
- 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/chain/py_order_utils/builders/exception.py +2 -0
- 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/chain/py_order_utils/builders/order_builder_test.py +40 -0
- 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/chain/py_order_utils/model/__init__.py +0 -0
- 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/chain/py_order_utils/model/order_type.py +9 -0
- 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/chain/py_order_utils/model/signatures.py +8 -0
- 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/chain/py_order_utils/utils.py +109 -0
- 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/chain/safe/constants.py +19 -0
- 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/chain/safe/enums.py +6 -0
- 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/chain/safe/multisend.py +347 -0
- 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/chain/safe/safe_contracts/__init__.py +0 -0
- 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/chain/safe/safe_contracts/multisend_v1_3_0.py +22 -0
- 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/chain/safe/safe_contracts/utils.py +26 -0
- 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/chain/safe/safe_test.py +37 -0
- 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/chain/safe/signatures.py +63 -0
- 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/chain/safe/utils.py +218 -0
- 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/model.py +19 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +947 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +947 -0
- opinion_clob_sdk/opinion_clob_sdk/sdk.py +10 -9
- opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +135 -0
- opinion_clob_sdk/sdk.py +10 -9
- opinion_clob_sdk/verify_api_calls.py +135 -0
- {opinion_clob_sdk-0.1.2.dist-info → opinion_clob_sdk-0.1.4.dist-info}/METADATA +1 -1
- opinion_clob_sdk-0.1.4.dist-info/RECORD +174 -0
- opinion_clob_sdk-0.1.2.dist-info/RECORD +0 -88
- {opinion_clob_sdk-0.1.2.dist-info → opinion_clob_sdk-0.1.4.dist-info}/WHEEL +0 -0
- {opinion_clob_sdk-0.1.2.dist-info → opinion_clob_sdk-0.1.4.dist-info}/top_level.txt +0 -0
|
@@ -110,6 +110,7 @@ class Client:
|
|
|
110
110
|
"""
|
|
111
111
|
self.conf = Configuration(host=host)
|
|
112
112
|
self.conf.api_key['ApiKeyAuth'] = apikey
|
|
113
|
+
self.api_key = apikey
|
|
113
114
|
multi_sig_addr = fast_to_checksum_address(multi_sig_addr)
|
|
114
115
|
self.contract_caller = ContractCaller(rpc_url=rpc_url, private_key=private_key, multi_sig_addr=multi_sig_addr,
|
|
115
116
|
conditional_tokens_addr=conditional_tokens_addr,
|
|
@@ -158,8 +159,8 @@ class Client:
|
|
|
158
159
|
|
|
159
160
|
# for each quote token, check if the chain_id is the same as the chain_id in the contract_caller
|
|
160
161
|
for quote_token in quote_token_list:
|
|
161
|
-
quote_token_address = fast_to_checksum_address(quote_token.
|
|
162
|
-
ctf_exchange_address = fast_to_checksum_address(quote_token.
|
|
162
|
+
quote_token_address = fast_to_checksum_address(quote_token.quote_token_address)
|
|
163
|
+
ctf_exchange_address = fast_to_checksum_address(quote_token.ctf_exchange_address)
|
|
163
164
|
supported_quote_tokens[quote_token_address] = ctf_exchange_address
|
|
164
165
|
|
|
165
166
|
logging.info(f'Supported quote tokens: {supported_quote_tokens}')
|
|
@@ -193,7 +194,7 @@ class Client:
|
|
|
193
194
|
status = market_data.status
|
|
194
195
|
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
195
196
|
raise OpenApiError('Cannot split on non-activated/resolving/resolved market')
|
|
196
|
-
collateral = fast_to_checksum_address(market_data.
|
|
197
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
197
198
|
condition_id = market_data.condition_id
|
|
198
199
|
|
|
199
200
|
return self.contract_caller.split(collateral_token=collateral, condition_id=bytes.fromhex(condition_id), amount=amount)
|
|
@@ -224,7 +225,7 @@ class Client:
|
|
|
224
225
|
status = market_data.status
|
|
225
226
|
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
226
227
|
raise OpenApiError('Cannot merge on non-activated/resolving/resolved market')
|
|
227
|
-
collateral = fast_to_checksum_address(market_data.
|
|
228
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
228
229
|
condition_id = market_data.condition_id
|
|
229
230
|
|
|
230
231
|
return self.contract_caller.merge(collateral_token=collateral, condition_id=bytes.fromhex(condition_id),
|
|
@@ -253,7 +254,7 @@ class Client:
|
|
|
253
254
|
status = market_data.status
|
|
254
255
|
if not status == TopicStatus.RESOLVED.value:
|
|
255
256
|
raise OpenApiError('Cannot redeem on non-resolved market')
|
|
256
|
-
collateral = market_data.
|
|
257
|
+
collateral = market_data.quote_token
|
|
257
258
|
condition_id = market_data.condition_id
|
|
258
259
|
logging.info(f'Redeem: collateral={collateral}, condition_id={condition_id}')
|
|
259
260
|
return self.contract_caller.redeem(collateral_token=collateral, condition_id=bytes.fromhex(condition_id))
|
|
@@ -540,14 +541,14 @@ class Client:
|
|
|
540
541
|
if int(market.chain_id) != self.chain_id:
|
|
541
542
|
raise OpenApiError('Cannot place order on different chain')
|
|
542
543
|
|
|
543
|
-
quote_token_addr = market.
|
|
544
|
+
quote_token_addr = market.quote_token
|
|
544
545
|
|
|
545
|
-
# find quote token from quote_token_list by
|
|
546
|
-
quote_token = next((item for item in quote_token_list if str.lower(item.
|
|
546
|
+
# find quote token from quote_token_list by quote_token_address
|
|
547
|
+
quote_token = next((item for item in quote_token_list if str.lower(item.quote_token_address) == str.lower(quote_token_addr)), None)
|
|
547
548
|
if not quote_token:
|
|
548
549
|
raise OpenApiError('Quote token not found for this market')
|
|
549
550
|
|
|
550
|
-
exchange_addr = quote_token.
|
|
551
|
+
exchange_addr = quote_token.ctf_exchange_address
|
|
551
552
|
chain_id = quote_token.chain_id
|
|
552
553
|
|
|
553
554
|
makerAmount = 0
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Verification script to check all API method signatures in opinion_clob_sdk
|
|
3
|
+
This script validates that all API calls pass the correct parameters to opinion_api
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import inspect
|
|
7
|
+
from opinion_api.api.prediction_market_api import PredictionMarketApi
|
|
8
|
+
from opinion_api.api.user_api import UserApi
|
|
9
|
+
|
|
10
|
+
# Expected API calls with required parameters
|
|
11
|
+
EXPECTED_API_CALLS = {
|
|
12
|
+
# Market API calls
|
|
13
|
+
'openapi_quote_token_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
14
|
+
'openapi_market_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
15
|
+
'openapi_market_market_id_get': ['apikey', 'market_id'],
|
|
16
|
+
'openapi_market_categorical_market_id_get': ['apikey', 'market_id'],
|
|
17
|
+
'openapi_token_price_history_get': ['apikey', 'token_id', 'interval', 'start_time', 'bars'],
|
|
18
|
+
'openapi_token_orderbook_get': ['apikey', 'token_id'],
|
|
19
|
+
'openapi_token_latest_price_get': ['apikey', 'token_id'],
|
|
20
|
+
'openapi_token_fee_rates_get': ['apikey', 'token_id'],
|
|
21
|
+
'openapi_order_post': ['apikey', 'v2_add_order_req'],
|
|
22
|
+
'openapi_order_cancel_post': ['apikey', 'openapi_cancel_order_request_open_api'],
|
|
23
|
+
'openapi_order_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
24
|
+
'openapi_order_order_id_get': ['apikey', 'order_id'],
|
|
25
|
+
'openapi_positions_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
26
|
+
'openapi_user_balance_get': ['apikey', 'wallet_address', 'chain_id'], # chain_id should be str
|
|
27
|
+
'openapi_trade_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
28
|
+
|
|
29
|
+
# User API calls
|
|
30
|
+
'openapi_user_auth_get': ['apikey'],
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
def verify_api_signatures():
|
|
34
|
+
"""Verify that all API methods have the expected signatures"""
|
|
35
|
+
errors = []
|
|
36
|
+
|
|
37
|
+
# Check PredictionMarketApi methods
|
|
38
|
+
for method_name, expected_params in EXPECTED_API_CALLS.items():
|
|
39
|
+
if method_name == 'openapi_user_auth_get':
|
|
40
|
+
continue # This is in UserApi
|
|
41
|
+
|
|
42
|
+
if not hasattr(PredictionMarketApi, method_name):
|
|
43
|
+
errors.append(f"❌ Method {method_name} not found in PredictionMarketApi")
|
|
44
|
+
continue
|
|
45
|
+
|
|
46
|
+
method = getattr(PredictionMarketApi, method_name)
|
|
47
|
+
sig = inspect.signature(method)
|
|
48
|
+
params = list(sig.parameters.keys())
|
|
49
|
+
|
|
50
|
+
# Remove 'self' from params
|
|
51
|
+
if 'self' in params:
|
|
52
|
+
params.remove('self')
|
|
53
|
+
|
|
54
|
+
# Check if all expected params are in the signature
|
|
55
|
+
for expected_param in expected_params:
|
|
56
|
+
if expected_param not in params:
|
|
57
|
+
errors.append(f"❌ {method_name}: missing parameter '{expected_param}'")
|
|
58
|
+
|
|
59
|
+
# Check UserApi methods
|
|
60
|
+
if hasattr(UserApi, 'openapi_user_auth_get'):
|
|
61
|
+
method = getattr(UserApi, 'openapi_user_auth_get')
|
|
62
|
+
sig = inspect.signature(method)
|
|
63
|
+
params = list(sig.parameters.keys())
|
|
64
|
+
|
|
65
|
+
if 'self' in params:
|
|
66
|
+
params.remove('self')
|
|
67
|
+
|
|
68
|
+
if 'apikey' not in params:
|
|
69
|
+
errors.append("❌ openapi_user_auth_get: missing parameter 'apikey'")
|
|
70
|
+
else:
|
|
71
|
+
errors.append("❌ Method openapi_user_auth_get not found in UserApi")
|
|
72
|
+
|
|
73
|
+
return errors
|
|
74
|
+
|
|
75
|
+
def check_sdk_calls():
|
|
76
|
+
"""Check that SDK methods call the API with correct parameters"""
|
|
77
|
+
import re
|
|
78
|
+
|
|
79
|
+
# Read sdk.py
|
|
80
|
+
with open('/Users/nikli/Work/openapi/openapi/python_sdk/opinion_clob_sdk/sdk.py', 'r') as f:
|
|
81
|
+
sdk_content = f.read()
|
|
82
|
+
|
|
83
|
+
issues = []
|
|
84
|
+
|
|
85
|
+
# Find all API calls in SDK
|
|
86
|
+
api_call_pattern = r'self\.(market_api|user_api)\.(\w+)\((.*?)\)'
|
|
87
|
+
matches = re.finditer(api_call_pattern, sdk_content, re.MULTILINE | re.DOTALL)
|
|
88
|
+
|
|
89
|
+
for match in matches:
|
|
90
|
+
api_type = match.group(1)
|
|
91
|
+
method_name = match.group(2)
|
|
92
|
+
params_str = match.group(3)
|
|
93
|
+
|
|
94
|
+
# Check for apikey parameter
|
|
95
|
+
if 'apikey=' not in params_str:
|
|
96
|
+
issues.append(f"⚠️ {method_name}: missing apikey parameter")
|
|
97
|
+
elif 'apikey=self.api_key' not in params_str:
|
|
98
|
+
issues.append(f"⚠️ {method_name}: apikey should be self.api_key")
|
|
99
|
+
|
|
100
|
+
# Check for chain_id parameter (should be str)
|
|
101
|
+
if 'chain_id=' in params_str:
|
|
102
|
+
if 'chain_id=str(self.chain_id)' not in params_str:
|
|
103
|
+
issues.append(f"⚠️ {method_name}: chain_id should be str(self.chain_id)")
|
|
104
|
+
|
|
105
|
+
return issues
|
|
106
|
+
|
|
107
|
+
if __name__ == '__main__':
|
|
108
|
+
print("=" * 70)
|
|
109
|
+
print("Verifying API Signatures in opinion_api")
|
|
110
|
+
print("=" * 70)
|
|
111
|
+
|
|
112
|
+
errors = verify_api_signatures()
|
|
113
|
+
if errors:
|
|
114
|
+
for error in errors:
|
|
115
|
+
print(error)
|
|
116
|
+
print(f"\n❌ Found {len(errors)} signature issues")
|
|
117
|
+
else:
|
|
118
|
+
print("✅ All API signatures verified successfully")
|
|
119
|
+
|
|
120
|
+
print("\n" + "=" * 70)
|
|
121
|
+
print("Checking SDK API Calls")
|
|
122
|
+
print("=" * 70)
|
|
123
|
+
|
|
124
|
+
issues = check_sdk_calls()
|
|
125
|
+
if issues:
|
|
126
|
+
for issue in issues:
|
|
127
|
+
print(issue)
|
|
128
|
+
print(f"\n⚠️ Found {len(issues)} potential issues in SDK calls")
|
|
129
|
+
else:
|
|
130
|
+
print("✅ All SDK API calls verified successfully")
|
|
131
|
+
|
|
132
|
+
if not errors and not issues:
|
|
133
|
+
print("\n" + "=" * 70)
|
|
134
|
+
print("🎉 All verifications passed!")
|
|
135
|
+
print("=" * 70)
|
opinion_clob_sdk/sdk.py
CHANGED
|
@@ -110,6 +110,7 @@ class Client:
|
|
|
110
110
|
"""
|
|
111
111
|
self.conf = Configuration(host=host)
|
|
112
112
|
self.conf.api_key['ApiKeyAuth'] = apikey
|
|
113
|
+
self.api_key = apikey
|
|
113
114
|
multi_sig_addr = fast_to_checksum_address(multi_sig_addr)
|
|
114
115
|
self.contract_caller = ContractCaller(rpc_url=rpc_url, private_key=private_key, multi_sig_addr=multi_sig_addr,
|
|
115
116
|
conditional_tokens_addr=conditional_tokens_addr,
|
|
@@ -158,8 +159,8 @@ class Client:
|
|
|
158
159
|
|
|
159
160
|
# for each quote token, check if the chain_id is the same as the chain_id in the contract_caller
|
|
160
161
|
for quote_token in quote_token_list:
|
|
161
|
-
quote_token_address = fast_to_checksum_address(quote_token.
|
|
162
|
-
ctf_exchange_address = fast_to_checksum_address(quote_token.
|
|
162
|
+
quote_token_address = fast_to_checksum_address(quote_token.quote_token_address)
|
|
163
|
+
ctf_exchange_address = fast_to_checksum_address(quote_token.ctf_exchange_address)
|
|
163
164
|
supported_quote_tokens[quote_token_address] = ctf_exchange_address
|
|
164
165
|
|
|
165
166
|
logging.info(f'Supported quote tokens: {supported_quote_tokens}')
|
|
@@ -193,7 +194,7 @@ class Client:
|
|
|
193
194
|
status = market_data.status
|
|
194
195
|
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
195
196
|
raise OpenApiError('Cannot split on non-activated/resolving/resolved market')
|
|
196
|
-
collateral = fast_to_checksum_address(market_data.
|
|
197
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
197
198
|
condition_id = market_data.condition_id
|
|
198
199
|
|
|
199
200
|
return self.contract_caller.split(collateral_token=collateral, condition_id=bytes.fromhex(condition_id), amount=amount)
|
|
@@ -224,7 +225,7 @@ class Client:
|
|
|
224
225
|
status = market_data.status
|
|
225
226
|
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
226
227
|
raise OpenApiError('Cannot merge on non-activated/resolving/resolved market')
|
|
227
|
-
collateral = fast_to_checksum_address(market_data.
|
|
228
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
228
229
|
condition_id = market_data.condition_id
|
|
229
230
|
|
|
230
231
|
return self.contract_caller.merge(collateral_token=collateral, condition_id=bytes.fromhex(condition_id),
|
|
@@ -253,7 +254,7 @@ class Client:
|
|
|
253
254
|
status = market_data.status
|
|
254
255
|
if not status == TopicStatus.RESOLVED.value:
|
|
255
256
|
raise OpenApiError('Cannot redeem on non-resolved market')
|
|
256
|
-
collateral = market_data.
|
|
257
|
+
collateral = market_data.quote_token
|
|
257
258
|
condition_id = market_data.condition_id
|
|
258
259
|
logging.info(f'Redeem: collateral={collateral}, condition_id={condition_id}')
|
|
259
260
|
return self.contract_caller.redeem(collateral_token=collateral, condition_id=bytes.fromhex(condition_id))
|
|
@@ -540,14 +541,14 @@ class Client:
|
|
|
540
541
|
if int(market.chain_id) != self.chain_id:
|
|
541
542
|
raise OpenApiError('Cannot place order on different chain')
|
|
542
543
|
|
|
543
|
-
quote_token_addr = market.
|
|
544
|
+
quote_token_addr = market.quote_token
|
|
544
545
|
|
|
545
|
-
# find quote token from quote_token_list by
|
|
546
|
-
quote_token = next((item for item in quote_token_list if str.lower(item.
|
|
546
|
+
# find quote token from quote_token_list by quote_token_address
|
|
547
|
+
quote_token = next((item for item in quote_token_list if str.lower(item.quote_token_address) == str.lower(quote_token_addr)), None)
|
|
547
548
|
if not quote_token:
|
|
548
549
|
raise OpenApiError('Quote token not found for this market')
|
|
549
550
|
|
|
550
|
-
exchange_addr = quote_token.
|
|
551
|
+
exchange_addr = quote_token.ctf_exchange_address
|
|
551
552
|
chain_id = quote_token.chain_id
|
|
552
553
|
|
|
553
554
|
makerAmount = 0
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Verification script to check all API method signatures in opinion_clob_sdk
|
|
3
|
+
This script validates that all API calls pass the correct parameters to opinion_api
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import inspect
|
|
7
|
+
from opinion_api.api.prediction_market_api import PredictionMarketApi
|
|
8
|
+
from opinion_api.api.user_api import UserApi
|
|
9
|
+
|
|
10
|
+
# Expected API calls with required parameters
|
|
11
|
+
EXPECTED_API_CALLS = {
|
|
12
|
+
# Market API calls
|
|
13
|
+
'openapi_quote_token_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
14
|
+
'openapi_market_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
15
|
+
'openapi_market_market_id_get': ['apikey', 'market_id'],
|
|
16
|
+
'openapi_market_categorical_market_id_get': ['apikey', 'market_id'],
|
|
17
|
+
'openapi_token_price_history_get': ['apikey', 'token_id', 'interval', 'start_time', 'bars'],
|
|
18
|
+
'openapi_token_orderbook_get': ['apikey', 'token_id'],
|
|
19
|
+
'openapi_token_latest_price_get': ['apikey', 'token_id'],
|
|
20
|
+
'openapi_token_fee_rates_get': ['apikey', 'token_id'],
|
|
21
|
+
'openapi_order_post': ['apikey', 'v2_add_order_req'],
|
|
22
|
+
'openapi_order_cancel_post': ['apikey', 'openapi_cancel_order_request_open_api'],
|
|
23
|
+
'openapi_order_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
24
|
+
'openapi_order_order_id_get': ['apikey', 'order_id'],
|
|
25
|
+
'openapi_positions_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
26
|
+
'openapi_user_balance_get': ['apikey', 'wallet_address', 'chain_id'], # chain_id should be str
|
|
27
|
+
'openapi_trade_get': ['apikey', 'chain_id'], # chain_id should be str
|
|
28
|
+
|
|
29
|
+
# User API calls
|
|
30
|
+
'openapi_user_auth_get': ['apikey'],
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
def verify_api_signatures():
|
|
34
|
+
"""Verify that all API methods have the expected signatures"""
|
|
35
|
+
errors = []
|
|
36
|
+
|
|
37
|
+
# Check PredictionMarketApi methods
|
|
38
|
+
for method_name, expected_params in EXPECTED_API_CALLS.items():
|
|
39
|
+
if method_name == 'openapi_user_auth_get':
|
|
40
|
+
continue # This is in UserApi
|
|
41
|
+
|
|
42
|
+
if not hasattr(PredictionMarketApi, method_name):
|
|
43
|
+
errors.append(f"❌ Method {method_name} not found in PredictionMarketApi")
|
|
44
|
+
continue
|
|
45
|
+
|
|
46
|
+
method = getattr(PredictionMarketApi, method_name)
|
|
47
|
+
sig = inspect.signature(method)
|
|
48
|
+
params = list(sig.parameters.keys())
|
|
49
|
+
|
|
50
|
+
# Remove 'self' from params
|
|
51
|
+
if 'self' in params:
|
|
52
|
+
params.remove('self')
|
|
53
|
+
|
|
54
|
+
# Check if all expected params are in the signature
|
|
55
|
+
for expected_param in expected_params:
|
|
56
|
+
if expected_param not in params:
|
|
57
|
+
errors.append(f"❌ {method_name}: missing parameter '{expected_param}'")
|
|
58
|
+
|
|
59
|
+
# Check UserApi methods
|
|
60
|
+
if hasattr(UserApi, 'openapi_user_auth_get'):
|
|
61
|
+
method = getattr(UserApi, 'openapi_user_auth_get')
|
|
62
|
+
sig = inspect.signature(method)
|
|
63
|
+
params = list(sig.parameters.keys())
|
|
64
|
+
|
|
65
|
+
if 'self' in params:
|
|
66
|
+
params.remove('self')
|
|
67
|
+
|
|
68
|
+
if 'apikey' not in params:
|
|
69
|
+
errors.append("❌ openapi_user_auth_get: missing parameter 'apikey'")
|
|
70
|
+
else:
|
|
71
|
+
errors.append("❌ Method openapi_user_auth_get not found in UserApi")
|
|
72
|
+
|
|
73
|
+
return errors
|
|
74
|
+
|
|
75
|
+
def check_sdk_calls():
|
|
76
|
+
"""Check that SDK methods call the API with correct parameters"""
|
|
77
|
+
import re
|
|
78
|
+
|
|
79
|
+
# Read sdk.py
|
|
80
|
+
with open('/Users/nikli/Work/openapi/openapi/python_sdk/opinion_clob_sdk/sdk.py', 'r') as f:
|
|
81
|
+
sdk_content = f.read()
|
|
82
|
+
|
|
83
|
+
issues = []
|
|
84
|
+
|
|
85
|
+
# Find all API calls in SDK
|
|
86
|
+
api_call_pattern = r'self\.(market_api|user_api)\.(\w+)\((.*?)\)'
|
|
87
|
+
matches = re.finditer(api_call_pattern, sdk_content, re.MULTILINE | re.DOTALL)
|
|
88
|
+
|
|
89
|
+
for match in matches:
|
|
90
|
+
api_type = match.group(1)
|
|
91
|
+
method_name = match.group(2)
|
|
92
|
+
params_str = match.group(3)
|
|
93
|
+
|
|
94
|
+
# Check for apikey parameter
|
|
95
|
+
if 'apikey=' not in params_str:
|
|
96
|
+
issues.append(f"⚠️ {method_name}: missing apikey parameter")
|
|
97
|
+
elif 'apikey=self.api_key' not in params_str:
|
|
98
|
+
issues.append(f"⚠️ {method_name}: apikey should be self.api_key")
|
|
99
|
+
|
|
100
|
+
# Check for chain_id parameter (should be str)
|
|
101
|
+
if 'chain_id=' in params_str:
|
|
102
|
+
if 'chain_id=str(self.chain_id)' not in params_str:
|
|
103
|
+
issues.append(f"⚠️ {method_name}: chain_id should be str(self.chain_id)")
|
|
104
|
+
|
|
105
|
+
return issues
|
|
106
|
+
|
|
107
|
+
if __name__ == '__main__':
|
|
108
|
+
print("=" * 70)
|
|
109
|
+
print("Verifying API Signatures in opinion_api")
|
|
110
|
+
print("=" * 70)
|
|
111
|
+
|
|
112
|
+
errors = verify_api_signatures()
|
|
113
|
+
if errors:
|
|
114
|
+
for error in errors:
|
|
115
|
+
print(error)
|
|
116
|
+
print(f"\n❌ Found {len(errors)} signature issues")
|
|
117
|
+
else:
|
|
118
|
+
print("✅ All API signatures verified successfully")
|
|
119
|
+
|
|
120
|
+
print("\n" + "=" * 70)
|
|
121
|
+
print("Checking SDK API Calls")
|
|
122
|
+
print("=" * 70)
|
|
123
|
+
|
|
124
|
+
issues = check_sdk_calls()
|
|
125
|
+
if issues:
|
|
126
|
+
for issue in issues:
|
|
127
|
+
print(issue)
|
|
128
|
+
print(f"\n⚠️ Found {len(issues)} potential issues in SDK calls")
|
|
129
|
+
else:
|
|
130
|
+
print("✅ All SDK API calls verified successfully")
|
|
131
|
+
|
|
132
|
+
if not errors and not issues:
|
|
133
|
+
print("\n" + "=" * 70)
|
|
134
|
+
print("🎉 All verifications passed!")
|
|
135
|
+
print("=" * 70)
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
opinion_clob_sdk/__init__.py,sha256=gxP6T5-kqElgabAcSXBmxM4dmJVDuOAyrXar2LQpt90,624
|
|
2
|
+
opinion_clob_sdk/config.py,sha256=JoQvyK5IAnPiwwB8YZsmUtdEr-5hW2YG6iz1pOnLvDk,139
|
|
3
|
+
opinion_clob_sdk/model.py,sha256=UBrdsg3FtSV1xl3pihkXwv_frI2w2z68VI0cpv2LQh0,287
|
|
4
|
+
opinion_clob_sdk/sdk.py,sha256=3jn6RmuM55fTfpoqquu8jBBxAys12ZWHZ0nGUdqaDHc,39186
|
|
5
|
+
opinion_clob_sdk/verify_api_calls.py,sha256=MU4NEyfQ5hDmFJ0lT8g7KXVdlZ0cBtFyBTCbhhfI6a4,5031
|
|
6
|
+
opinion_clob_sdk/chain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
opinion_clob_sdk/chain/contract_caller.py,sha256=AKCD1ZvLTbJX_YWFJecRtZ4Pi7L3_20Q7YOSGfAolEY,17148
|
|
8
|
+
opinion_clob_sdk/chain/exception.py,sha256=6SSx4T_WZL8BxzRbfGSDp6eGD4zJ5ACeBB58DlrpmoA,234
|
|
9
|
+
opinion_clob_sdk/chain/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
opinion_clob_sdk/chain/contracts/conditional_tokens.py,sha256=P_MpetUKMNnT_hchZ0A9q7-g_ZKjkOr-BLldPXB4J7o,13998
|
|
11
|
+
opinion_clob_sdk/chain/contracts/erc20.py,sha256=C56GdZeMxcgdJTmMQKSfA8xHzDdNT71SaNf6xhJIVMY,2843
|
|
12
|
+
opinion_clob_sdk/chain/py_order_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
opinion_clob_sdk/chain/py_order_utils/constants.py,sha256=afsZ0OahGbCzNPE2rXKU1k8gQymkh4ODLKh4KPklvnA,70
|
|
14
|
+
opinion_clob_sdk/chain/py_order_utils/signer.py,sha256=NAMHcMREbRUgrz1-28sqpPoMD8LkRJSyUn7-FLUkYsM,447
|
|
15
|
+
opinion_clob_sdk/chain/py_order_utils/utils.py,sha256=-sf0Vq16bJ8eAc-p63r0TLqtbQkKWEQ6ccSAoQy1r7M,3837
|
|
16
|
+
opinion_clob_sdk/chain/py_order_utils/builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py,sha256=lw925Mz6MerqCyXNgonhNP-495gZPm_me4HtlhyhVHM,1272
|
|
18
|
+
opinion_clob_sdk/chain/py_order_utils/builders/exception.py,sha256=525fSH8Q241VjxdllBkWi3DiW_-6I1AmG-iHwZBTp4E,47
|
|
19
|
+
opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py,sha256=NybKbNhRd1jceSjtp6lL9x1DjDzJ4ClhsAK2zS58P4c,2968
|
|
20
|
+
opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py,sha256=0xPLO9rEDsw_s3UQiooquEarvFe8KneafiaY6PgkLIo,1773
|
|
21
|
+
opinion_clob_sdk/chain/py_order_utils/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
opinion_clob_sdk/chain/py_order_utils/model/order.py,sha256=fI2NhqX_cdUmZivliki4rHXJCxQQY5ykjh8a58FFfPE,5852
|
|
23
|
+
opinion_clob_sdk/chain/py_order_utils/model/order_type.py,sha256=kYXJ0Ikk3Qnr00yCIfrtJibFve8DUjNSJ_xiLw7IphY,185
|
|
24
|
+
opinion_clob_sdk/chain/py_order_utils/model/sides.py,sha256=FZVZnutyLmgiNCVoz-1fjxxFzhH3z24xy5BY6pkIfs8,177
|
|
25
|
+
opinion_clob_sdk/chain/py_order_utils/model/signatures.py,sha256=lKoqi7gVay9NjCv_2QTdelP4EFy61Ez0UeY1ytOmooM,224
|
|
26
|
+
opinion_clob_sdk/chain/safe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
opinion_clob_sdk/chain/safe/constants.py,sha256=H4UKUXJxR9pvwRHU4WM1p6wZ6yGjApOpWfEMYj-W_iE,572
|
|
28
|
+
opinion_clob_sdk/chain/safe/enums.py,sha256=aP9-PfC97ZYtX0dKOYKAyxITVrCDMIAY2_mHMdU8IJM,90
|
|
29
|
+
opinion_clob_sdk/chain/safe/exceptions.py,sha256=kp0jfnP93JyEkEgwPERL6MZ9D8ozbioURcKjMwSLjgE,1498
|
|
30
|
+
opinion_clob_sdk/chain/safe/multisend.py,sha256=l-lWlb7jSzmNCyFbpAr-d8SYEKM4QRm_h0tF53T3CzE,12659
|
|
31
|
+
opinion_clob_sdk/chain/safe/safe.py,sha256=OO-010or-qCCwCSTSh4qKGmoSwEsL2IYECW8IYmSmKQ,5216
|
|
32
|
+
opinion_clob_sdk/chain/safe/safe_signature.py,sha256=W1Xn73DSzE3PZ6ITyikhdWhosY3wdey-scX0Jci037I,12559
|
|
33
|
+
opinion_clob_sdk/chain/safe/safe_test.py,sha256=pbCYOLa_6cQbC0KOA7t41ItunauhHfgN7uneENfMXPk,1384
|
|
34
|
+
opinion_clob_sdk/chain/safe/safe_tx.py,sha256=QxKzv0EA7uwjakFMDVoDLrzYlZANpEhblPBQ7ZcF9zE,17211
|
|
35
|
+
opinion_clob_sdk/chain/safe/signatures.py,sha256=8l6t6R21E9Mj4_USagIp1GiUlJmAp0Cqq9VpB7Zk960,1978
|
|
36
|
+
opinion_clob_sdk/chain/safe/typing.py,sha256=wytgXXRbpyccM_HxpQLeDzfo40Ch_K-Z_ivORb-eNZo,419
|
|
37
|
+
opinion_clob_sdk/chain/safe/utils.py,sha256=1u4yKwMCvfOlg9NsWbsM2WszQoO1wd6D2Z2aGAb1jjo,6469
|
|
38
|
+
opinion_clob_sdk/chain/safe/eip712/__init__.py,sha256=ge0S6t2RtFc_mLFr4D93l6WLS2EONKgkuPGkcP_nDJ4,5915
|
|
39
|
+
opinion_clob_sdk/chain/safe/safe_contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
+
opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py,sha256=_aENMzhiQgKSzXxn-TnVFWE84lIgDv1Iiw-VdIC1IMw,5968
|
|
41
|
+
opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py,sha256=8oGhNkS2k2Cy5pG6YNt_BKytS3AEtPeXv4rkyXv_p0M,380
|
|
42
|
+
opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py,sha256=YCUWTpf_pR44iUUkDl42f3n2YXSVGlTBcvMtReN7rlM,21922
|
|
43
|
+
opinion_clob_sdk/chain/safe/safe_contracts/utils.py,sha256=xnW8JSq8tVMfvZ4lhT-L96P3Usjs2zrZ5jzrNZvFHjc,631
|
|
44
|
+
opinion_clob_sdk/opinion_clob_sdk/__init__.py,sha256=gxP6T5-kqElgabAcSXBmxM4dmJVDuOAyrXar2LQpt90,624
|
|
45
|
+
opinion_clob_sdk/opinion_clob_sdk/config.py,sha256=JoQvyK5IAnPiwwB8YZsmUtdEr-5hW2YG6iz1pOnLvDk,139
|
|
46
|
+
opinion_clob_sdk/opinion_clob_sdk/model.py,sha256=UBrdsg3FtSV1xl3pihkXwv_frI2w2z68VI0cpv2LQh0,287
|
|
47
|
+
opinion_clob_sdk/opinion_clob_sdk/sdk.py,sha256=3jn6RmuM55fTfpoqquu8jBBxAys12ZWHZ0nGUdqaDHc,39186
|
|
48
|
+
opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py,sha256=MU4NEyfQ5hDmFJ0lT8g7KXVdlZ0cBtFyBTCbhhfI6a4,5031
|
|
49
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py,sha256=AKCD1ZvLTbJX_YWFJecRtZ4Pi7L3_20Q7YOSGfAolEY,17148
|
|
51
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/exception.py,sha256=6SSx4T_WZL8BxzRbfGSDp6eGD4zJ5ACeBB58DlrpmoA,234
|
|
52
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/contracts/conditional_tokens.py,sha256=P_MpetUKMNnT_hchZ0A9q7-g_ZKjkOr-BLldPXB4J7o,13998
|
|
54
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py,sha256=C56GdZeMxcgdJTmMQKSfA8xHzDdNT71SaNf6xhJIVMY,2843
|
|
55
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py,sha256=afsZ0OahGbCzNPE2rXKU1k8gQymkh4ODLKh4KPklvnA,70
|
|
57
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py,sha256=NAMHcMREbRUgrz1-28sqpPoMD8LkRJSyUn7-FLUkYsM,447
|
|
58
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py,sha256=-sf0Vq16bJ8eAc-p63r0TLqtbQkKWEQ6ccSAoQy1r7M,3837
|
|
59
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py,sha256=lw925Mz6MerqCyXNgonhNP-495gZPm_me4HtlhyhVHM,1272
|
|
61
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py,sha256=525fSH8Q241VjxdllBkWi3DiW_-6I1AmG-iHwZBTp4E,47
|
|
62
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py,sha256=NybKbNhRd1jceSjtp6lL9x1DjDzJ4ClhsAK2zS58P4c,2968
|
|
63
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py,sha256=0xPLO9rEDsw_s3UQiooquEarvFe8KneafiaY6PgkLIo,1773
|
|
64
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order.py,sha256=fI2NhqX_cdUmZivliki4rHXJCxQQY5ykjh8a58FFfPE,5852
|
|
66
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py,sha256=kYXJ0Ikk3Qnr00yCIfrtJibFve8DUjNSJ_xiLw7IphY,185
|
|
67
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py,sha256=FZVZnutyLmgiNCVoz-1fjxxFzhH3z24xy5BY6pkIfs8,177
|
|
68
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py,sha256=lKoqi7gVay9NjCv_2QTdelP4EFy61Ez0UeY1ytOmooM,224
|
|
69
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py,sha256=H4UKUXJxR9pvwRHU4WM1p6wZ6yGjApOpWfEMYj-W_iE,572
|
|
71
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py,sha256=aP9-PfC97ZYtX0dKOYKAyxITVrCDMIAY2_mHMdU8IJM,90
|
|
72
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py,sha256=kp0jfnP93JyEkEgwPERL6MZ9D8ozbioURcKjMwSLjgE,1498
|
|
73
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py,sha256=l-lWlb7jSzmNCyFbpAr-d8SYEKM4QRm_h0tF53T3CzE,12659
|
|
74
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py,sha256=OO-010or-qCCwCSTSh4qKGmoSwEsL2IYECW8IYmSmKQ,5216
|
|
75
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py,sha256=W1Xn73DSzE3PZ6ITyikhdWhosY3wdey-scX0Jci037I,12559
|
|
76
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py,sha256=pbCYOLa_6cQbC0KOA7t41ItunauhHfgN7uneENfMXPk,1384
|
|
77
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py,sha256=QxKzv0EA7uwjakFMDVoDLrzYlZANpEhblPBQ7ZcF9zE,17211
|
|
78
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py,sha256=8l6t6R21E9Mj4_USagIp1GiUlJmAp0Cqq9VpB7Zk960,1978
|
|
79
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py,sha256=wytgXXRbpyccM_HxpQLeDzfo40Ch_K-Z_ivORb-eNZo,419
|
|
80
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py,sha256=1u4yKwMCvfOlg9NsWbsM2WszQoO1wd6D2Z2aGAb1jjo,6469
|
|
81
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py,sha256=ge0S6t2RtFc_mLFr4D93l6WLS2EONKgkuPGkcP_nDJ4,5915
|
|
82
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py,sha256=_aENMzhiQgKSzXxn-TnVFWE84lIgDv1Iiw-VdIC1IMw,5968
|
|
84
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py,sha256=8oGhNkS2k2Cy5pG6YNt_BKytS3AEtPeXv4rkyXv_p0M,380
|
|
85
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py,sha256=YCUWTpf_pR44iUUkDl42f3n2YXSVGlTBcvMtReN7rlM,21922
|
|
86
|
+
opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py,sha256=xnW8JSq8tVMfvZ4lhT-L96P3Usjs2zrZ5jzrNZvFHjc,631
|
|
87
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py,sha256=gxP6T5-kqElgabAcSXBmxM4dmJVDuOAyrXar2LQpt90,624
|
|
88
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py,sha256=JoQvyK5IAnPiwwB8YZsmUtdEr-5hW2YG6iz1pOnLvDk,139
|
|
89
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py,sha256=UBrdsg3FtSV1xl3pihkXwv_frI2w2z68VI0cpv2LQh0,287
|
|
90
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py,sha256=3jn6RmuM55fTfpoqquu8jBBxAys12ZWHZ0nGUdqaDHc,39186
|
|
91
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py,sha256=AKCD1ZvLTbJX_YWFJecRtZ4Pi7L3_20Q7YOSGfAolEY,17148
|
|
93
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py,sha256=6SSx4T_WZL8BxzRbfGSDp6eGD4zJ5ACeBB58DlrpmoA,234
|
|
94
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/conditional_tokens.py,sha256=P_MpetUKMNnT_hchZ0A9q7-g_ZKjkOr-BLldPXB4J7o,13998
|
|
96
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py,sha256=C56GdZeMxcgdJTmMQKSfA8xHzDdNT71SaNf6xhJIVMY,2843
|
|
97
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py,sha256=afsZ0OahGbCzNPE2rXKU1k8gQymkh4ODLKh4KPklvnA,70
|
|
99
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py,sha256=NAMHcMREbRUgrz1-28sqpPoMD8LkRJSyUn7-FLUkYsM,447
|
|
100
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py,sha256=-sf0Vq16bJ8eAc-p63r0TLqtbQkKWEQ6ccSAoQy1r7M,3837
|
|
101
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py,sha256=lw925Mz6MerqCyXNgonhNP-495gZPm_me4HtlhyhVHM,1272
|
|
103
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py,sha256=525fSH8Q241VjxdllBkWi3DiW_-6I1AmG-iHwZBTp4E,47
|
|
104
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py,sha256=NybKbNhRd1jceSjtp6lL9x1DjDzJ4ClhsAK2zS58P4c,2968
|
|
105
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py,sha256=0xPLO9rEDsw_s3UQiooquEarvFe8KneafiaY6PgkLIo,1773
|
|
106
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order.py,sha256=fI2NhqX_cdUmZivliki4rHXJCxQQY5ykjh8a58FFfPE,5852
|
|
108
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py,sha256=kYXJ0Ikk3Qnr00yCIfrtJibFve8DUjNSJ_xiLw7IphY,185
|
|
109
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py,sha256=FZVZnutyLmgiNCVoz-1fjxxFzhH3z24xy5BY6pkIfs8,177
|
|
110
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py,sha256=lKoqi7gVay9NjCv_2QTdelP4EFy61Ez0UeY1ytOmooM,224
|
|
111
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py,sha256=H4UKUXJxR9pvwRHU4WM1p6wZ6yGjApOpWfEMYj-W_iE,572
|
|
113
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py,sha256=aP9-PfC97ZYtX0dKOYKAyxITVrCDMIAY2_mHMdU8IJM,90
|
|
114
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py,sha256=kp0jfnP93JyEkEgwPERL6MZ9D8ozbioURcKjMwSLjgE,1498
|
|
115
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py,sha256=l-lWlb7jSzmNCyFbpAr-d8SYEKM4QRm_h0tF53T3CzE,12659
|
|
116
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py,sha256=OO-010or-qCCwCSTSh4qKGmoSwEsL2IYECW8IYmSmKQ,5216
|
|
117
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py,sha256=W1Xn73DSzE3PZ6ITyikhdWhosY3wdey-scX0Jci037I,12559
|
|
118
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py,sha256=pbCYOLa_6cQbC0KOA7t41ItunauhHfgN7uneENfMXPk,1384
|
|
119
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py,sha256=QxKzv0EA7uwjakFMDVoDLrzYlZANpEhblPBQ7ZcF9zE,17211
|
|
120
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py,sha256=8l6t6R21E9Mj4_USagIp1GiUlJmAp0Cqq9VpB7Zk960,1978
|
|
121
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py,sha256=wytgXXRbpyccM_HxpQLeDzfo40Ch_K-Z_ivORb-eNZo,419
|
|
122
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py,sha256=1u4yKwMCvfOlg9NsWbsM2WszQoO1wd6D2Z2aGAb1jjo,6469
|
|
123
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py,sha256=ge0S6t2RtFc_mLFr4D93l6WLS2EONKgkuPGkcP_nDJ4,5915
|
|
124
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py,sha256=_aENMzhiQgKSzXxn-TnVFWE84lIgDv1Iiw-VdIC1IMw,5968
|
|
126
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py,sha256=8oGhNkS2k2Cy5pG6YNt_BKytS3AEtPeXv4rkyXv_p0M,380
|
|
127
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py,sha256=YCUWTpf_pR44iUUkDl42f3n2YXSVGlTBcvMtReN7rlM,21922
|
|
128
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py,sha256=xnW8JSq8tVMfvZ4lhT-L96P3Usjs2zrZ5jzrNZvFHjc,631
|
|
129
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py,sha256=gxP6T5-kqElgabAcSXBmxM4dmJVDuOAyrXar2LQpt90,624
|
|
130
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py,sha256=JoQvyK5IAnPiwwB8YZsmUtdEr-5hW2YG6iz1pOnLvDk,139
|
|
131
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py,sha256=UBrdsg3FtSV1xl3pihkXwv_frI2w2z68VI0cpv2LQh0,287
|
|
132
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py,sha256=3jn6RmuM55fTfpoqquu8jBBxAys12ZWHZ0nGUdqaDHc,39186
|
|
133
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
134
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py,sha256=AKCD1ZvLTbJX_YWFJecRtZ4Pi7L3_20Q7YOSGfAolEY,17148
|
|
135
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py,sha256=6SSx4T_WZL8BxzRbfGSDp6eGD4zJ5ACeBB58DlrpmoA,234
|
|
136
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/conditional_tokens.py,sha256=P_MpetUKMNnT_hchZ0A9q7-g_ZKjkOr-BLldPXB4J7o,13998
|
|
138
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py,sha256=C56GdZeMxcgdJTmMQKSfA8xHzDdNT71SaNf6xhJIVMY,2843
|
|
139
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py,sha256=afsZ0OahGbCzNPE2rXKU1k8gQymkh4ODLKh4KPklvnA,70
|
|
141
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py,sha256=NAMHcMREbRUgrz1-28sqpPoMD8LkRJSyUn7-FLUkYsM,447
|
|
142
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py,sha256=-sf0Vq16bJ8eAc-p63r0TLqtbQkKWEQ6ccSAoQy1r7M,3837
|
|
143
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
144
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py,sha256=lw925Mz6MerqCyXNgonhNP-495gZPm_me4HtlhyhVHM,1272
|
|
145
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py,sha256=525fSH8Q241VjxdllBkWi3DiW_-6I1AmG-iHwZBTp4E,47
|
|
146
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py,sha256=NybKbNhRd1jceSjtp6lL9x1DjDzJ4ClhsAK2zS58P4c,2968
|
|
147
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py,sha256=0xPLO9rEDsw_s3UQiooquEarvFe8KneafiaY6PgkLIo,1773
|
|
148
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order.py,sha256=fI2NhqX_cdUmZivliki4rHXJCxQQY5ykjh8a58FFfPE,5852
|
|
150
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py,sha256=kYXJ0Ikk3Qnr00yCIfrtJibFve8DUjNSJ_xiLw7IphY,185
|
|
151
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py,sha256=FZVZnutyLmgiNCVoz-1fjxxFzhH3z24xy5BY6pkIfs8,177
|
|
152
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py,sha256=lKoqi7gVay9NjCv_2QTdelP4EFy61Ez0UeY1ytOmooM,224
|
|
153
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py,sha256=H4UKUXJxR9pvwRHU4WM1p6wZ6yGjApOpWfEMYj-W_iE,572
|
|
155
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py,sha256=aP9-PfC97ZYtX0dKOYKAyxITVrCDMIAY2_mHMdU8IJM,90
|
|
156
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py,sha256=kp0jfnP93JyEkEgwPERL6MZ9D8ozbioURcKjMwSLjgE,1498
|
|
157
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py,sha256=l-lWlb7jSzmNCyFbpAr-d8SYEKM4QRm_h0tF53T3CzE,12659
|
|
158
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py,sha256=OO-010or-qCCwCSTSh4qKGmoSwEsL2IYECW8IYmSmKQ,5216
|
|
159
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py,sha256=W1Xn73DSzE3PZ6ITyikhdWhosY3wdey-scX0Jci037I,12559
|
|
160
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py,sha256=pbCYOLa_6cQbC0KOA7t41ItunauhHfgN7uneENfMXPk,1384
|
|
161
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py,sha256=QxKzv0EA7uwjakFMDVoDLrzYlZANpEhblPBQ7ZcF9zE,17211
|
|
162
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py,sha256=8l6t6R21E9Mj4_USagIp1GiUlJmAp0Cqq9VpB7Zk960,1978
|
|
163
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py,sha256=wytgXXRbpyccM_HxpQLeDzfo40Ch_K-Z_ivORb-eNZo,419
|
|
164
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py,sha256=1u4yKwMCvfOlg9NsWbsM2WszQoO1wd6D2Z2aGAb1jjo,6469
|
|
165
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py,sha256=ge0S6t2RtFc_mLFr4D93l6WLS2EONKgkuPGkcP_nDJ4,5915
|
|
166
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py,sha256=_aENMzhiQgKSzXxn-TnVFWE84lIgDv1Iiw-VdIC1IMw,5968
|
|
168
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py,sha256=8oGhNkS2k2Cy5pG6YNt_BKytS3AEtPeXv4rkyXv_p0M,380
|
|
169
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py,sha256=YCUWTpf_pR44iUUkDl42f3n2YXSVGlTBcvMtReN7rlM,21922
|
|
170
|
+
opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py,sha256=xnW8JSq8tVMfvZ4lhT-L96P3Usjs2zrZ5jzrNZvFHjc,631
|
|
171
|
+
opinion_clob_sdk-0.1.4.dist-info/METADATA,sha256=IL5HW4tWOsi8t5zGYkPUhNlOeh7z0C6iIQIFU9EB3xc,2776
|
|
172
|
+
opinion_clob_sdk-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
173
|
+
opinion_clob_sdk-0.1.4.dist-info/top_level.txt,sha256=4gH76GRX1WZSc3b146FfxE6BAxggJD8y3NMEHUOSPA0,17
|
|
174
|
+
opinion_clob_sdk-0.1.4.dist-info/RECORD,,
|