opinion-clob-sdk 0.1.7__py3-none-any.whl → 0.1.9__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.
- opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/chain/py_order_utils/utils.py +13 -7
- opinion_clob_sdk/model.py +3 -3
- opinion_clob_sdk/opinion_clob_sdk/__init__.py +1 -1
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +13 -7
- opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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 +13 -7
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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 +13 -7
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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 +13 -7
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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 +13 -7
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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 +13 -7
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +3 -3
- 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/chain/py_order_utils/utils.py +115 -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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/__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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/chain/py_order_utils/utils.py +115 -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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/sdk.py +2 -2
- 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/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +2 -2
- 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/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +2 -2
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +2 -2
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +2 -2
- opinion_clob_sdk/opinion_clob_sdk/sdk.py +2 -2
- opinion_clob_sdk/sdk.py +2 -2
- {opinion_clob_sdk-0.1.7.dist-info → opinion_clob_sdk-0.1.9.dist-info}/METADATA +1 -1
- {opinion_clob_sdk-0.1.7.dist-info → opinion_clob_sdk-0.1.9.dist-info}/RECORD +118 -32
- {opinion_clob_sdk-0.1.7.dist-info → opinion_clob_sdk-0.1.9.dist-info}/WHEEL +0 -0
- {opinion_clob_sdk-0.1.7.dist-info → opinion_clob_sdk-0.1.9.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from functools import lru_cache
|
|
3
|
+
from typing import Any, Union
|
|
4
|
+
|
|
5
|
+
import eth_abi
|
|
6
|
+
from eth_account import Account
|
|
7
|
+
from eth_typing import Address, AnyAddress, ChecksumAddress, Hash32, HexAddress, HexStr
|
|
8
|
+
from eth_utils import to_normalized_address
|
|
9
|
+
from hexbytes import HexBytes
|
|
10
|
+
# from sha3 import keccak_256
|
|
11
|
+
from web3.types import TxParams, Wei
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def get_empty_tx_params() -> TxParams:
|
|
15
|
+
"""
|
|
16
|
+
:return: Empty tx params, so calls like `build_transaction` don't call the RPC trying to get information
|
|
17
|
+
"""
|
|
18
|
+
return {
|
|
19
|
+
"gas": Wei(1),
|
|
20
|
+
"gasPrice": Wei(1),
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@lru_cache(maxsize=int(os.getenv("CACHE_KECCAK", 512)))
|
|
25
|
+
def _keccak_256(value: bytes) -> bytes:
|
|
26
|
+
import web3
|
|
27
|
+
return web3.Web3.keccak(value)
|
|
28
|
+
# return keccak_256(value)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def fast_keccak(value: bytes) -> Hash32:
|
|
32
|
+
"""
|
|
33
|
+
Calculates ethereum keccak256 using fast library `pysha3`
|
|
34
|
+
|
|
35
|
+
:param value:
|
|
36
|
+
:return: Keccak256 used by ethereum as `HexBytes`
|
|
37
|
+
"""
|
|
38
|
+
return Hash32(HexBytes(_keccak_256(value)))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def fast_keccak_text(value: str) -> Hash32:
|
|
42
|
+
"""
|
|
43
|
+
Calculates ethereum keccak256 using fast library `pysha3`
|
|
44
|
+
|
|
45
|
+
:param value:
|
|
46
|
+
:return: Keccak256 used by ethereum as `HexBytes`
|
|
47
|
+
"""
|
|
48
|
+
return fast_keccak(value.encode())
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def fast_keccak_hex(value: bytes) -> HexStr:
|
|
52
|
+
"""
|
|
53
|
+
Same as `fast_keccak`, but it's a little more optimal calling `hexdigest()`
|
|
54
|
+
than calling `digest()` and then `hex()`
|
|
55
|
+
|
|
56
|
+
:param value:
|
|
57
|
+
:return: Keccak256 used by ethereum as a hex string (not 0x prefixed)
|
|
58
|
+
"""
|
|
59
|
+
return HexStr(_keccak_256(value).hex())
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _build_checksum_address(
|
|
63
|
+
norm_address: HexStr, address_hash: HexStr
|
|
64
|
+
) -> ChecksumAddress:
|
|
65
|
+
"""
|
|
66
|
+
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-55.md
|
|
67
|
+
|
|
68
|
+
:param norm_address: address in lowercase (not 0x prefixed)
|
|
69
|
+
:param address_hash: keccak256 of `norm_address` (not 0x prefixed)
|
|
70
|
+
:return:
|
|
71
|
+
"""
|
|
72
|
+
return ChecksumAddress(
|
|
73
|
+
HexAddress(
|
|
74
|
+
HexStr(
|
|
75
|
+
"0x"
|
|
76
|
+
+ (
|
|
77
|
+
"".join(
|
|
78
|
+
(
|
|
79
|
+
norm_address[i].upper()
|
|
80
|
+
if int(str(address_hash[i]), 16) > 7
|
|
81
|
+
else norm_address[i]
|
|
82
|
+
)
|
|
83
|
+
for i in range(0, 40)
|
|
84
|
+
)
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
)
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@lru_cache(maxsize=int(os.getenv("CACHE_CHECKSUM_ADDRESS", 1_000_000_000)))
|
|
92
|
+
def _fast_to_checksum_address(address: HexAddress):
|
|
93
|
+
# print("_fast_to_checksum_address: {}".format(address))
|
|
94
|
+
address_hash = fast_keccak_hex(address.encode())
|
|
95
|
+
return _build_checksum_address(address, address_hash)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def fast_to_checksum_address(value: Union[AnyAddress, str, bytes]) -> ChecksumAddress:
|
|
99
|
+
"""
|
|
100
|
+
Converts to checksum_address. Uses more optimal `pysha3` instead of `eth_utils` for keccak256 calculation
|
|
101
|
+
|
|
102
|
+
:param value:
|
|
103
|
+
:return:
|
|
104
|
+
"""
|
|
105
|
+
# print("fast_to_checksum_address: {}".format(value))
|
|
106
|
+
if isinstance(value, bytes):
|
|
107
|
+
if len(value) != 20:
|
|
108
|
+
raise ValueError(
|
|
109
|
+
"Cannot convert %s to a checksum address, 20 bytes were expected"
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
norm_address = HexAddress(HexStr(to_normalized_address(value)[2:]))
|
|
113
|
+
return _fast_to_checksum_address(norm_address)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def fast_bytes_to_checksum_address(value: bytes) -> ChecksumAddress:
|
|
117
|
+
"""
|
|
118
|
+
Converts to checksum_address. Uses more optimal `pysha3` instead of `eth_utils` for keccak256 calculation.
|
|
119
|
+
As input is already in bytes, some checks and conversions can be skipped, providing a speedup of ~50%
|
|
120
|
+
|
|
121
|
+
:param value:
|
|
122
|
+
:return:
|
|
123
|
+
"""
|
|
124
|
+
if len(value) != 20:
|
|
125
|
+
raise ValueError(
|
|
126
|
+
"Cannot convert %s to a checksum address, 20 bytes were expected"
|
|
127
|
+
)
|
|
128
|
+
norm_address = HexAddress(HexStr(bytes(value).hex()))
|
|
129
|
+
return _fast_to_checksum_address(norm_address)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def fast_is_checksum_address(value: Union[AnyAddress, str, bytes]) -> bool:
|
|
133
|
+
"""
|
|
134
|
+
Fast version to check if an address is a checksum_address
|
|
135
|
+
|
|
136
|
+
:param value:
|
|
137
|
+
:return: `True` if checksummed, `False` otherwise
|
|
138
|
+
"""
|
|
139
|
+
if not isinstance(value, str) or len(value) != 42 or not value.startswith("0x"):
|
|
140
|
+
return False
|
|
141
|
+
try:
|
|
142
|
+
return fast_to_checksum_address(value) == value
|
|
143
|
+
except ValueError:
|
|
144
|
+
return False
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def get_eth_address_with_invalid_checksum() -> str:
|
|
148
|
+
address = Account.create().address
|
|
149
|
+
return "0x" + "".join(
|
|
150
|
+
[c.lower() if c.isupper() else c.upper() for c in address[2:]]
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def decode_string_or_bytes32(data: bytes) -> str:
|
|
155
|
+
try:
|
|
156
|
+
return eth_abi.decode(["string"], data)[0]
|
|
157
|
+
except (OverflowError, eth_abi.exceptions.DecodingError):
|
|
158
|
+
name = eth_abi.decode(["bytes32"], data)[0]
|
|
159
|
+
end_position = name.find(b"\x00")
|
|
160
|
+
if end_position == -1:
|
|
161
|
+
return name.decode()
|
|
162
|
+
else:
|
|
163
|
+
return name[:end_position].decode()
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def remove_swarm_metadata(code: bytes) -> bytes:
|
|
167
|
+
"""
|
|
168
|
+
Remove swarm metadata from Solidity bytecode
|
|
169
|
+
|
|
170
|
+
:param code:
|
|
171
|
+
:return: Code without metadata
|
|
172
|
+
"""
|
|
173
|
+
swarm = b"\xa1\x65bzzr0"
|
|
174
|
+
position = code.rfind(swarm)
|
|
175
|
+
if position == -1:
|
|
176
|
+
raise ValueError("Swarm metadata not found in code %s" % code.hex())
|
|
177
|
+
return code[:position]
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def compare_byte_code(code_1: bytes, code_2: bytes) -> bool:
|
|
181
|
+
"""
|
|
182
|
+
Compare code, removing swarm metadata if necessary
|
|
183
|
+
|
|
184
|
+
:param code_1:
|
|
185
|
+
:param code_2:
|
|
186
|
+
:return: True if same code, False otherwise
|
|
187
|
+
"""
|
|
188
|
+
if code_1 == code_2:
|
|
189
|
+
return True
|
|
190
|
+
else:
|
|
191
|
+
codes = []
|
|
192
|
+
for code in (code_1, code_2):
|
|
193
|
+
try:
|
|
194
|
+
codes.append(remove_swarm_metadata(code))
|
|
195
|
+
except ValueError:
|
|
196
|
+
codes.append(code)
|
|
197
|
+
|
|
198
|
+
return codes[0] == codes[1]
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def bytes_to_float(value: Any) -> float:
|
|
202
|
+
"""
|
|
203
|
+
Convert a value of type Any to float.
|
|
204
|
+
|
|
205
|
+
:param value: The value to convert.
|
|
206
|
+
:return: The converted float value.
|
|
207
|
+
:raises ValueError: If the value cannot be converted to float.
|
|
208
|
+
"""
|
|
209
|
+
assert value is not None, "Cannot convert None to float"
|
|
210
|
+
if isinstance(value, (int, float)):
|
|
211
|
+
return float(value)
|
|
212
|
+
elif isinstance(value, bytes):
|
|
213
|
+
try:
|
|
214
|
+
return float(int.from_bytes(value, "big"))
|
|
215
|
+
except (ValueError, OverflowError) as e:
|
|
216
|
+
raise ValueError(f"Cannot convert bytes to float: {e}")
|
|
217
|
+
else:
|
|
218
|
+
raise ValueError(f"Unsupported type for conversion to float: {type(value)}")
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class TopicStatus(Enum):
|
|
5
|
+
CREATED = 1
|
|
6
|
+
ACTIVATED = 2
|
|
7
|
+
RESOLVING = 3
|
|
8
|
+
RESOLVED = 4
|
|
9
|
+
FAILED = 5
|
|
10
|
+
DELETED = 6
|
|
11
|
+
|
|
12
|
+
class TopicType(Enum):
|
|
13
|
+
CATEGORICAL = 1
|
|
14
|
+
BINARY = 0
|
|
15
|
+
|
|
16
|
+
class TopicStatusFilter(Enum):
|
|
17
|
+
ALL = None
|
|
18
|
+
ACTIVATED = "activated"
|
|
19
|
+
RESOLVED = "resolved"
|