opinion-clob-sdk 0.1.9__py3-none-any.whl → 0.4.2__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 +3 -3
- opinion_clob_sdk/chain/contract_caller.py +56 -2
- opinion_clob_sdk/chain/contracts/erc20.py +21 -0
- opinion_clob_sdk/chain/py_order_utils/abi/Exchange.json +1851 -0
- opinion_clob_sdk/chain/py_order_utils/abi/FeeManager.json +4416 -0
- opinion_clob_sdk/chain/py_order_utils/abi/FeeManager.py +9 -0
- opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py +1 -1
- opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +1 -1
- opinion_clob_sdk/chain/py_order_utils/utils.py +100 -35
- opinion_clob_sdk/chain/safe/safe_test.py +1 -1
- opinion_clob_sdk/config.py +16 -1
- opinion_clob_sdk/model.py +26 -2
- opinion_clob_sdk/sdk.py +240 -102
- opinion_clob_sdk/verify_checksum_addresses.py +63 -0
- {opinion_clob_sdk-0.1.9.dist-info → opinion_clob_sdk-0.4.2.dist-info}/METADATA +12 -10
- opinion_clob_sdk-0.4.2.dist-info/RECORD +51 -0
- opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/chain/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/contract_caller.py +0 -390
- opinion_clob_sdk/opinion_clob_sdk/chain/contracts/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/contracts/conditional_tokens.py +0 -707
- opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +0 -111
- opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py +0 -41
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py +0 -2
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py +0 -90
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +0 -40
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +0 -2
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order.py +0 -254
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py +0 -9
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +0 -20
- opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +0 -115
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/constants.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +0 -176
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +0 -6
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +0 -94
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +0 -347
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +0 -141
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +0 -327
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py +0 -22
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py +0 -1035
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +0 -364
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +0 -37
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +0 -437
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +0 -63
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +0 -17
- opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +0 -218
- opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- 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 +0 -390
- 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 +0 -707
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +0 -111
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- 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 +0 -41
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py +0 -2
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py +0 -90
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +0 -40
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +0 -2
- 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 +0 -254
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py +0 -9
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +0 -20
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +0 -115
- 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 +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +0 -176
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +0 -6
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +0 -94
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +0 -347
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +0 -141
- 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 +0 -327
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py +0 -22
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py +0 -1035
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +0 -364
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +0 -37
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +0 -437
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +0 -63
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +0 -17
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +0 -218
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- 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 +0 -390
- 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 +0 -707
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +0 -111
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- 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 +0 -41
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py +0 -2
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py +0 -90
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +0 -40
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +0 -2
- 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 +0 -254
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py +0 -9
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +0 -20
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +0 -115
- 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 +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +0 -176
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +0 -6
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +0 -94
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +0 -347
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +0 -141
- 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 +0 -327
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py +0 -22
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py +0 -1035
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +0 -364
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +0 -37
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +0 -437
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +0 -63
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +0 -17
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +0 -218
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- 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/chain/contract_caller.py +0 -390
- 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/chain/contracts/conditional_tokens.py +0 -707
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +0 -111
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- 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/chain/py_order_utils/builders/__init__.py +0 -0
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/base_builder.py +0 -41
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/exception.py +0 -2
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder.py +0 -90
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/builders/order_builder_test.py +0 -40
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +0 -2
- 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/chain/py_order_utils/model/order.py +0 -254
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/order_type.py +0 -9
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/sides.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/model/signatures.py +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +0 -20
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +0 -115
- 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/chain/safe/constants.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +0 -176
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +0 -6
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +0 -94
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +0 -347
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +0 -141
- 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/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +0 -327
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py +0 -22
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py +0 -1035
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +0 -364
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +0 -37
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +0 -437
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +0 -63
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +0 -17
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +0 -218
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- 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/chain/contract_caller.py +0 -390
- 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/chain/contracts/conditional_tokens.py +0 -707
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/contracts/erc20.py +0 -111
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- 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/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/chain/py_order_utils/builders/base_builder.py +0 -41
- 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 +0 -2
- 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 +0 -90
- 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 +0 -40
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/constants.py +0 -2
- 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/chain/py_order_utils/model/order.py +0 -254
- 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 +0 -9
- 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 +0 -8
- 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 +0 -8
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/signer.py +0 -20
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/py_order_utils/utils.py +0 -115
- 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/chain/safe/constants.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/eip712/__init__.py +0 -176
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/enums.py +0 -6
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/exceptions.py +0 -94
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/multisend.py +0 -347
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe.py +0 -141
- 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/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +0 -327
- 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 +0 -22
- 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 +0 -1035
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_contracts/utils.py +0 -26
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_signature.py +0 -364
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_test.py +0 -37
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/safe_tx.py +0 -437
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/signatures.py +0 -63
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/typing.py +0 -17
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/safe/utils.py +0 -218
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/__init__.py +0 -26
- 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/chain/contract_caller.py +0 -390
- 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/chain/contracts/conditional_tokens.py +0 -707
- 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 +0 -111
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/chain/exception.py +0 -11
- 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/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/chain/py_order_utils/builders/base_builder.py +0 -41
- 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 +0 -2
- 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 +0 -90
- 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 +0 -40
- 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 +0 -2
- 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/chain/py_order_utils/model/order.py +0 -254
- 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 +0 -9
- 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 +0 -8
- 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 +0 -8
- 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 +0 -20
- 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 +0 -115
- 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/chain/safe/constants.py +0 -19
- 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 +0 -176
- 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 +0 -6
- 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 +0 -94
- 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 +0 -347
- 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 +0 -141
- 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/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0.py +0 -327
- 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 +0 -22
- 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 +0 -1035
- 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 +0 -26
- 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 +0 -364
- 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 +0 -37
- 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 +0 -437
- 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 +0 -63
- 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 +0 -17
- 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 +0 -218
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/config.py +0 -4
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/model.py +0 -19
- 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 +0 -26
- 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 +0 -390
- 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 +0 -707
- 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 +0 -111
- 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 +0 -11
- 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 +0 -41
- 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 +0 -2
- 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 +0 -90
- 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 +0 -40
- 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 +0 -2
- 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 +0 -254
- 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 +0 -9
- 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 +0 -8
- 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 +0 -8
- 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 +0 -20
- 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 +0 -115
- 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 +0 -19
- 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 +0 -176
- 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 +0 -6
- 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 +0 -94
- 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 +0 -347
- 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 +0 -141
- 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 +0 -327
- 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 +0 -22
- 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 +0 -1035
- 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 +0 -26
- 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 +0 -364
- 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 +0 -37
- 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 +0 -437
- 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 +0 -63
- 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 +0 -17
- 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 +0 -218
- 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 +0 -4
- 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 +0 -19
- opinion_clob_sdk/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 +0 -26
- opinion_clob_sdk/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 +0 -390
- opinion_clob_sdk/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 +0 -707
- opinion_clob_sdk/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 +0 -111
- opinion_clob_sdk/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 +0 -11
- opinion_clob_sdk/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 +0 -41
- opinion_clob_sdk/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 +0 -2
- opinion_clob_sdk/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 +0 -90
- opinion_clob_sdk/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 +0 -40
- opinion_clob_sdk/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 +0 -2
- opinion_clob_sdk/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 +0 -254
- opinion_clob_sdk/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 +0 -9
- opinion_clob_sdk/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 +0 -8
- opinion_clob_sdk/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 +0 -8
- opinion_clob_sdk/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 +0 -20
- opinion_clob_sdk/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 +0 -115
- opinion_clob_sdk/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 +0 -19
- opinion_clob_sdk/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 +0 -176
- opinion_clob_sdk/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 +0 -6
- opinion_clob_sdk/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 +0 -94
- opinion_clob_sdk/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 +0 -347
- opinion_clob_sdk/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 +0 -141
- opinion_clob_sdk/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 +0 -327
- opinion_clob_sdk/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 +0 -22
- opinion_clob_sdk/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 +0 -1035
- opinion_clob_sdk/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 +0 -26
- opinion_clob_sdk/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 +0 -364
- opinion_clob_sdk/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 +0 -37
- opinion_clob_sdk/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 +0 -437
- opinion_clob_sdk/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 +0 -63
- opinion_clob_sdk/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 +0 -17
- opinion_clob_sdk/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 +0 -218
- opinion_clob_sdk/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 +0 -4
- opinion_clob_sdk/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 +0 -19
- opinion_clob_sdk/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 +0 -957
- 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 +0 -957
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- 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 +0 -135
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +0 -135
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +0 -135
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +0 -135
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- opinion_clob_sdk/opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +0 -135
- opinion_clob_sdk/opinion_clob_sdk/sdk.py +0 -957
- opinion_clob_sdk/opinion_clob_sdk/verify_api_calls.py +0 -135
- opinion_clob_sdk-0.1.9.dist-info/RECORD +0 -389
- {opinion_clob_sdk-0.1.9.dist-info → opinion_clob_sdk-0.4.2.dist-info}/WHEEL +0 -0
- {opinion_clob_sdk-0.1.9.dist-info → opinion_clob_sdk-0.4.2.dist-info}/top_level.txt +0 -0
opinion_clob_sdk/sdk.py
CHANGED
|
@@ -17,8 +17,9 @@ from .chain.py_order_utils.constants import ZERO_ADDRESS, ZX
|
|
|
17
17
|
from .chain.py_order_utils.model.signatures import POLY_GNOSIS_SAFE
|
|
18
18
|
from .chain.py_order_utils.model.sides import BUY, SELL, OrderSide
|
|
19
19
|
from .chain.py_order_utils.model.order_type import LIMIT_ORDER, MARKET_ORDER
|
|
20
|
-
from .model import TopicStatus, TopicStatusFilter, TopicType
|
|
20
|
+
from .model import TopicStatus, TopicStatusFilter, TopicType, TopicSortType
|
|
21
21
|
from .chain.py_order_utils.utils import calculate_order_amounts
|
|
22
|
+
from .config import DEFAULT_CONTRACT_ADDRESSES
|
|
22
23
|
|
|
23
24
|
API_INTERNAL_ERROR_MSG = "Unable to process your request. Please contact technical support."
|
|
24
25
|
MISSING_MARKET_ID_MSG = "market_id is required."
|
|
@@ -26,8 +27,8 @@ MISSING_TOKEN_ID_MSG = "token_id is required."
|
|
|
26
27
|
MAX_DECIMALS = 18 # Standard maximum for ERC20 tokens (ETH, DAI, etc.)
|
|
27
28
|
|
|
28
29
|
# Supported blockchain chain IDs
|
|
29
|
-
|
|
30
|
-
SUPPORTED_CHAIN_IDS = [
|
|
30
|
+
CHAIN_ID_BNB_MAINNET = 56 # BNB Chain (BSC) mainnet
|
|
31
|
+
SUPPORTED_CHAIN_IDS = [CHAIN_ID_BNB_MAINNET]
|
|
31
32
|
|
|
32
33
|
class InvalidParamError(Exception):
|
|
33
34
|
pass
|
|
@@ -82,8 +83,9 @@ class Client:
|
|
|
82
83
|
rpc_url: str = '',
|
|
83
84
|
private_key: HexStr = HexStr(''),
|
|
84
85
|
multi_sig_addr: str = '',
|
|
85
|
-
conditional_tokens_addr: ChecksumAddress =
|
|
86
|
-
multisend_addr: ChecksumAddress =
|
|
86
|
+
conditional_tokens_addr: Optional[ChecksumAddress] = None,
|
|
87
|
+
multisend_addr: Optional[ChecksumAddress] = None,
|
|
88
|
+
fee_manager_addr: Optional[ChecksumAddress] = None,
|
|
87
89
|
enable_trading_check_interval: int = 3600,
|
|
88
90
|
quote_tokens_cache_ttl: int = 3600,
|
|
89
91
|
market_cache_ttl: int = 300
|
|
@@ -94,12 +96,13 @@ class Client:
|
|
|
94
96
|
Args:
|
|
95
97
|
host: API host URL
|
|
96
98
|
apikey: API authentication key
|
|
97
|
-
chain_id: Blockchain chain ID (
|
|
99
|
+
chain_id: Blockchain chain ID (56 for BNB Chain mainnet)
|
|
98
100
|
rpc_url: RPC endpoint URL
|
|
99
101
|
private_key: Private key for signing transactions
|
|
100
102
|
multi_sig_addr: Multi-signature wallet address
|
|
101
|
-
conditional_tokens_addr: Conditional tokens contract address
|
|
102
|
-
multisend_addr: Multisend contract address
|
|
103
|
+
conditional_tokens_addr: Conditional tokens contract address (optional, uses default if not provided)
|
|
104
|
+
multisend_addr: Multisend contract address (optional, uses default if not provided)
|
|
105
|
+
fee_manager_addr: Fee manager contract address (optional, uses default if not provided)
|
|
103
106
|
enable_trading_check_interval: Time interval (in seconds) to cache enable_trading checks.
|
|
104
107
|
Default is 3600 (1 hour). Set to 0 to check every time.
|
|
105
108
|
This significantly improves performance for frequent operations.
|
|
@@ -108,6 +111,25 @@ class Client:
|
|
|
108
111
|
market_cache_ttl: Time interval (in seconds) to cache market data.
|
|
109
112
|
Default is 300 (5 minutes). Set to 0 to disable caching.
|
|
110
113
|
"""
|
|
114
|
+
# Validate and set chain_id first
|
|
115
|
+
if chain_id not in SUPPORTED_CHAIN_IDS:
|
|
116
|
+
raise InvalidParamError(f'chain_id must be one of {SUPPORTED_CHAIN_IDS}')
|
|
117
|
+
self.chain_id = chain_id
|
|
118
|
+
|
|
119
|
+
# Use default contract addresses if not provided
|
|
120
|
+
if conditional_tokens_addr is None:
|
|
121
|
+
conditional_tokens_addr = ChecksumAddress(
|
|
122
|
+
DEFAULT_CONTRACT_ADDRESSES[chain_id]["conditional_tokens"]
|
|
123
|
+
)
|
|
124
|
+
if multisend_addr is None:
|
|
125
|
+
multisend_addr = ChecksumAddress(
|
|
126
|
+
DEFAULT_CONTRACT_ADDRESSES[chain_id]["multisend"]
|
|
127
|
+
)
|
|
128
|
+
if fee_manager_addr is None:
|
|
129
|
+
fee_manager_addr = ChecksumAddress(
|
|
130
|
+
DEFAULT_CONTRACT_ADDRESSES[chain_id]["fee_manager"]
|
|
131
|
+
)
|
|
132
|
+
|
|
111
133
|
self.conf = Configuration(host=host)
|
|
112
134
|
self.conf.api_key['ApiKeyAuth'] = apikey
|
|
113
135
|
self.api_key = apikey
|
|
@@ -115,14 +137,11 @@ class Client:
|
|
|
115
137
|
self.contract_caller = ContractCaller(rpc_url=rpc_url, private_key=private_key, multi_sig_addr=multi_sig_addr,
|
|
116
138
|
conditional_tokens_addr=conditional_tokens_addr,
|
|
117
139
|
multisend_addr=multisend_addr,
|
|
140
|
+
fee_manager_addr=fee_manager_addr,
|
|
118
141
|
enable_trading_check_interval=enable_trading_check_interval)
|
|
119
142
|
self.api_client = ApiClient(self.conf)
|
|
120
143
|
self.market_api = PredictionMarketApi(self.api_client)
|
|
121
144
|
self.user_api = UserApi(self.api_client)
|
|
122
|
-
# Validate and set chain_id
|
|
123
|
-
if chain_id not in SUPPORTED_CHAIN_IDS:
|
|
124
|
-
raise InvalidParamError(f'chain_id must be one of {SUPPORTED_CHAIN_IDS}')
|
|
125
|
-
self.chain_id = chain_id
|
|
126
145
|
|
|
127
146
|
# Cache configuration
|
|
128
147
|
self.quote_tokens_cache_ttl = quote_tokens_cache_ttl
|
|
@@ -151,7 +170,40 @@ class Client:
|
|
|
151
170
|
|
|
152
171
|
return response.result.list
|
|
153
172
|
|
|
154
|
-
def
|
|
173
|
+
def _format_transaction_result(self, tx_hash: Any, safe_tx_hash: Any, return_value: Any) -> Tuple[str, str, Optional[str]]:
|
|
174
|
+
"""Convert transaction result to JSON-serializable format
|
|
175
|
+
|
|
176
|
+
Args:
|
|
177
|
+
tx_hash: Transaction hash (HexBytes or similar)
|
|
178
|
+
safe_tx_hash: Safe transaction hash (HexBytes or similar)
|
|
179
|
+
return_value: Contract call return value (bytes or similar)
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
Tuple of (tx_hash_hex, safe_tx_hash_hex, return_value_hex)
|
|
183
|
+
where all values are hex strings or None
|
|
184
|
+
"""
|
|
185
|
+
# Convert tx_hash to hex string
|
|
186
|
+
tx_hash_hex = tx_hash.hex() if hasattr(tx_hash, 'hex') and tx_hash else None
|
|
187
|
+
|
|
188
|
+
# Convert safe_tx_hash to hex string
|
|
189
|
+
safe_tx_hash_hex = safe_tx_hash.hex() if hasattr(safe_tx_hash, 'hex') and safe_tx_hash else None
|
|
190
|
+
|
|
191
|
+
# Convert return_value (bytes) to hex string
|
|
192
|
+
return_value_hex = None
|
|
193
|
+
if return_value is not None:
|
|
194
|
+
if hasattr(return_value, 'hex'):
|
|
195
|
+
return_value_hex = return_value.hex()
|
|
196
|
+
elif isinstance(return_value, bytes):
|
|
197
|
+
return_value_hex = '0x' + return_value.hex()
|
|
198
|
+
|
|
199
|
+
return tx_hash_hex, safe_tx_hash_hex, return_value_hex
|
|
200
|
+
|
|
201
|
+
def enable_trading(self) -> Tuple[Optional[str], Optional[str], Optional[str]]:
|
|
202
|
+
"""Enable trading by approving necessary tokens.
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
Tuple of (tx_hash, safe_tx_hash, return_value) as hex strings
|
|
206
|
+
"""
|
|
155
207
|
quote_token_list_response = self.get_quote_tokens()
|
|
156
208
|
quote_token_list = self._parse_list_response(quote_token_list_response, "get quote tokens")
|
|
157
209
|
|
|
@@ -166,98 +218,141 @@ class Client:
|
|
|
166
218
|
logging.info(f'Supported quote tokens: {supported_quote_tokens}')
|
|
167
219
|
if len(supported_quote_tokens) == 0:
|
|
168
220
|
raise OpenApiError('No supported quote tokens found')
|
|
169
|
-
|
|
221
|
+
tx_hash, safe_tx_hash, return_value = self.contract_caller.enable_trading(supported_quote_tokens)
|
|
222
|
+
return self._format_transaction_result(tx_hash, safe_tx_hash, return_value)
|
|
170
223
|
|
|
171
|
-
def split(self, market_id: int, amount: int, check_approval: bool = True) -> Tuple[
|
|
224
|
+
def split(self, market_id: int, amount: int, check_approval: bool = True) -> Tuple[Optional[str], Optional[str], Optional[str]]:
|
|
172
225
|
"""Split collateral into outcome tokens for a market.
|
|
173
226
|
|
|
174
227
|
Args:
|
|
175
228
|
market_id: The market ID to split tokens for (required)
|
|
176
229
|
amount: Amount of collateral to split in wei (required)
|
|
177
230
|
check_approval: Whether to check and enable trading approvals first
|
|
231
|
+
|
|
232
|
+
Returns:
|
|
233
|
+
Tuple of (tx_hash, safe_tx_hash, return_value) as hex strings
|
|
178
234
|
"""
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
235
|
+
try:
|
|
236
|
+
if not market_id or market_id <= 0:
|
|
237
|
+
raise InvalidParamError("market_id must be a positive integer")
|
|
238
|
+
if not amount or amount <= 0:
|
|
239
|
+
raise InvalidParamError("amount must be a positive integer")
|
|
183
240
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
241
|
+
# Enable trading first for all trade operations.
|
|
242
|
+
if check_approval:
|
|
243
|
+
self.enable_trading()
|
|
187
244
|
|
|
188
|
-
|
|
189
|
-
|
|
245
|
+
topic_detail = self.get_market(market_id)
|
|
246
|
+
market_data = self._validate_market_response(topic_detail, "get market for split")
|
|
190
247
|
|
|
191
|
-
|
|
192
|
-
|
|
248
|
+
if int(market_data.chain_id) != self.chain_id:
|
|
249
|
+
raise OpenApiError('Cannot split on different chain')
|
|
193
250
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
251
|
+
status = market_data.status
|
|
252
|
+
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
253
|
+
raise OpenApiError('Cannot split on non-activated/resolving/resolved market')
|
|
254
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
255
|
+
condition_id = market_data.condition_id
|
|
199
256
|
|
|
200
|
-
|
|
257
|
+
tx_hash, safe_tx_hash, return_value = self.contract_caller.split(collateral_token=collateral, condition_id=bytes.fromhex(condition_id), amount=amount)
|
|
258
|
+
return self._format_transaction_result(tx_hash, safe_tx_hash, return_value)
|
|
259
|
+
except InvalidParamError as e:
|
|
260
|
+
logging.error(f"Validation error in split: {e}")
|
|
261
|
+
raise
|
|
262
|
+
except OpenApiError as e:
|
|
263
|
+
logging.error(f"API error in split: {e}")
|
|
264
|
+
raise
|
|
265
|
+
except Exception as e:
|
|
266
|
+
logging.error(f"Unexpected error in split: {e}")
|
|
267
|
+
raise OpenApiError(f"Failed to split collateral: {e}")
|
|
201
268
|
|
|
202
|
-
def merge(self, market_id: int, amount: int, check_approval: bool = True) -> Tuple[
|
|
269
|
+
def merge(self, market_id: int, amount: int, check_approval: bool = True) -> Tuple[Optional[str], Optional[str], Optional[str]]:
|
|
203
270
|
"""Merge outcome tokens back into collateral for a market.
|
|
204
271
|
|
|
205
272
|
Args:
|
|
206
273
|
market_id: The market ID to merge tokens for (required)
|
|
207
274
|
amount: Amount of outcome tokens to merge in wei (required)
|
|
208
275
|
check_approval: Whether to check and enable trading approvals first
|
|
209
|
-
"""
|
|
210
|
-
if not market_id or market_id <= 0:
|
|
211
|
-
raise InvalidParamError("market_id must be a positive integer")
|
|
212
|
-
if not amount or amount <= 0:
|
|
213
|
-
raise InvalidParamError("amount must be a positive integer")
|
|
214
|
-
|
|
215
|
-
# Enable trading first for all trade operations.
|
|
216
|
-
if check_approval:
|
|
217
|
-
self.enable_trading()
|
|
218
|
-
|
|
219
|
-
topic_detail = self.get_market(market_id)
|
|
220
|
-
market_data = self._validate_market_response(topic_detail, "get market for merge")
|
|
221
|
-
|
|
222
|
-
if int(market_data.chain_id) != self.chain_id:
|
|
223
|
-
raise OpenApiError('Cannot merge on different chain')
|
|
224
|
-
|
|
225
|
-
status = market_data.status
|
|
226
|
-
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
227
|
-
raise OpenApiError('Cannot merge on non-activated/resolving/resolved market')
|
|
228
|
-
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
229
|
-
condition_id = market_data.condition_id
|
|
230
276
|
|
|
231
|
-
|
|
232
|
-
|
|
277
|
+
Returns:
|
|
278
|
+
Tuple of (tx_hash, safe_tx_hash, return_value) as hex strings
|
|
279
|
+
"""
|
|
280
|
+
try:
|
|
281
|
+
if not market_id or market_id <= 0:
|
|
282
|
+
raise InvalidParamError("market_id must be a positive integer")
|
|
283
|
+
if not amount or amount <= 0:
|
|
284
|
+
raise InvalidParamError("amount must be a positive integer")
|
|
285
|
+
|
|
286
|
+
# Enable trading first for all trade operations.
|
|
287
|
+
if check_approval:
|
|
288
|
+
self.enable_trading()
|
|
289
|
+
|
|
290
|
+
topic_detail = self.get_market(market_id)
|
|
291
|
+
market_data = self._validate_market_response(topic_detail, "get market for merge")
|
|
292
|
+
|
|
293
|
+
if int(market_data.chain_id) != self.chain_id:
|
|
294
|
+
raise OpenApiError('Cannot merge on different chain')
|
|
295
|
+
|
|
296
|
+
status = market_data.status
|
|
297
|
+
if not (status == TopicStatus.ACTIVATED.value or status == TopicStatus.RESOLVED.value or status == TopicStatus.RESOLVING.value):
|
|
298
|
+
raise OpenApiError('Cannot merge on non-activated/resolving/resolved market')
|
|
299
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
300
|
+
condition_id = market_data.condition_id
|
|
301
|
+
|
|
302
|
+
tx_hash, safe_tx_hash, return_value = self.contract_caller.merge(collateral_token=collateral, condition_id=bytes.fromhex(condition_id),
|
|
303
|
+
amount=amount)
|
|
304
|
+
return self._format_transaction_result(tx_hash, safe_tx_hash, return_value)
|
|
305
|
+
except InvalidParamError as e:
|
|
306
|
+
logging.error(f"Validation error in merge: {e}")
|
|
307
|
+
raise
|
|
308
|
+
except OpenApiError as e:
|
|
309
|
+
logging.error(f"API error in merge: {e}")
|
|
310
|
+
raise
|
|
311
|
+
except Exception as e:
|
|
312
|
+
logging.error(f"Unexpected error in merge: {e}")
|
|
313
|
+
raise OpenApiError(f"Failed to merge tokens: {e}")
|
|
233
314
|
|
|
234
|
-
def redeem(self, market_id: int, check_approval: bool = True) -> Tuple[
|
|
315
|
+
def redeem(self, market_id: int, check_approval: bool = True) -> Tuple[Optional[str], Optional[str], Optional[str]]:
|
|
235
316
|
"""Redeem winning outcome tokens for collateral after market resolution.
|
|
236
317
|
|
|
237
318
|
Args:
|
|
238
319
|
market_id: The market ID to redeem tokens for (required)
|
|
239
320
|
check_approval: Whether to check and enable trading approvals first
|
|
240
|
-
"""
|
|
241
|
-
if not market_id or market_id <= 0:
|
|
242
|
-
raise InvalidParamError("market_id must be a positive integer")
|
|
243
321
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
322
|
+
Returns:
|
|
323
|
+
Tuple of (tx_hash, safe_tx_hash, return_value) as hex strings
|
|
324
|
+
"""
|
|
325
|
+
try:
|
|
326
|
+
if not market_id or market_id <= 0:
|
|
327
|
+
raise InvalidParamError("market_id must be a positive integer")
|
|
328
|
+
|
|
329
|
+
# Enable trading first for all trade operations.
|
|
330
|
+
if check_approval:
|
|
331
|
+
self.enable_trading()
|
|
332
|
+
|
|
333
|
+
topic_detail = self.get_market(market_id)
|
|
334
|
+
market_data = self._validate_market_response(topic_detail, "get market for redeem")
|
|
335
|
+
|
|
336
|
+
if int(market_data.chain_id) != self.chain_id:
|
|
337
|
+
raise OpenApiError('Cannot redeem on different chain')
|
|
338
|
+
|
|
339
|
+
status = market_data.status
|
|
340
|
+
if not status == TopicStatus.RESOLVED.value:
|
|
341
|
+
raise OpenApiError('Cannot redeem on non-resolved market')
|
|
342
|
+
collateral = fast_to_checksum_address(market_data.quote_token)
|
|
343
|
+
condition_id = market_data.condition_id
|
|
344
|
+
logging.info(f'Redeem: collateral={collateral}, condition_id={condition_id}')
|
|
345
|
+
tx_hash, safe_tx_hash, return_value = self.contract_caller.redeem(collateral_token=collateral, condition_id=bytes.fromhex(condition_id))
|
|
346
|
+
return self._format_transaction_result(tx_hash, safe_tx_hash, return_value)
|
|
347
|
+
except InvalidParamError as e:
|
|
348
|
+
logging.error(f"Validation error in redeem: {e}")
|
|
349
|
+
raise
|
|
350
|
+
except OpenApiError as e:
|
|
351
|
+
logging.error(f"API error in redeem: {e}")
|
|
352
|
+
raise
|
|
353
|
+
except Exception as e:
|
|
354
|
+
logging.error(f"Unexpected error in redeem: {e}")
|
|
355
|
+
raise OpenApiError(f"Failed to redeem tokens: {e}")
|
|
261
356
|
|
|
262
357
|
def get_quote_tokens(self, use_cache: bool = True) -> Any:
|
|
263
358
|
"""Get list of supported quote tokens
|
|
@@ -294,31 +389,40 @@ class Client:
|
|
|
294
389
|
|
|
295
390
|
def get_markets(
|
|
296
391
|
self,
|
|
297
|
-
topic_type:
|
|
392
|
+
topic_type: TopicType = TopicType.ALL,
|
|
298
393
|
page: int = 1,
|
|
299
394
|
limit: int = 20,
|
|
300
|
-
status: Optional[TopicStatusFilter] = None
|
|
395
|
+
status: Optional[TopicStatusFilter] = None,
|
|
396
|
+
sort_by: Optional['TopicSortType'] = None
|
|
301
397
|
) -> Any:
|
|
302
398
|
"""Get markets with pagination support.
|
|
303
399
|
|
|
304
400
|
Args:
|
|
305
|
-
topic_type:
|
|
401
|
+
topic_type: Filter by topic type. Defaults to TopicType.ALL (2).
|
|
402
|
+
- TopicType.ALL (2): All Markets (default)
|
|
403
|
+
- TopicType.CATEGORICAL (1): Categorical Market
|
|
404
|
+
- TopicType.BINARY (0): Binary Market
|
|
306
405
|
page: Page number (>= 1)
|
|
307
406
|
limit: Number of items per page (1-20)
|
|
308
407
|
status: Optional filter by status
|
|
408
|
+
sort_by: Optional sort type (TopicSortType enum). Defaults to BY_TIME_DESC if not specified.
|
|
309
409
|
"""
|
|
310
410
|
if page < 1:
|
|
311
411
|
raise InvalidParamError("page must be >= 1")
|
|
312
412
|
if not 1 <= limit <= 20:
|
|
313
413
|
raise InvalidParamError("limit must be between 1 and 20")
|
|
314
414
|
|
|
415
|
+
# Default to BY_TIME_DESC (1) if sort_by is not specified
|
|
416
|
+
sort_value = sort_by.value if sort_by else TopicSortType.BY_TIME_DESC.value
|
|
417
|
+
|
|
315
418
|
result = self.market_api.openapi_market_get(
|
|
316
419
|
apikey=self.api_key,
|
|
317
420
|
market_type=topic_type.value if topic_type else None,
|
|
318
421
|
page=page,
|
|
319
422
|
limit=limit,
|
|
320
423
|
chain_id=str(self.chain_id),
|
|
321
|
-
status=status.value if status else None
|
|
424
|
+
status=status.value if status else None,
|
|
425
|
+
sort_by=sort_value
|
|
322
426
|
)
|
|
323
427
|
return result
|
|
324
428
|
|
|
@@ -438,19 +542,28 @@ class Client:
|
|
|
438
542
|
raise OpenApiError(f"Failed to get latest price: {e}")
|
|
439
543
|
|
|
440
544
|
def get_fee_rates(self, token_id):
|
|
441
|
-
"""Get fee rates for a token
|
|
545
|
+
"""Get fee rates for a token from FeeManager contract on-chain
|
|
546
|
+
|
|
547
|
+
Args:
|
|
548
|
+
token_id: Token ID to query fee rates for
|
|
549
|
+
|
|
550
|
+
Returns:
|
|
551
|
+
Dictionary containing:
|
|
552
|
+
- maker_max_fee_rate: Maker maximum fee rate as decimal (e.g., 0.02 = 2%)
|
|
553
|
+
- taker_max_fee_rate: Taker maximum fee rate as decimal (e.g., 0.02 = 2%)
|
|
554
|
+
- enabled: Whether fee is enabled
|
|
555
|
+
"""
|
|
442
556
|
try:
|
|
443
557
|
if not token_id:
|
|
444
558
|
raise InvalidParamError(MISSING_TOKEN_ID_MSG)
|
|
445
559
|
|
|
446
|
-
|
|
447
|
-
return result
|
|
560
|
+
return self.contract_caller.get_fee_rate_settings(token_id)
|
|
448
561
|
except InvalidParamError as e:
|
|
449
562
|
logging.error(f"Validation error: {e}")
|
|
450
563
|
raise
|
|
451
564
|
except Exception as e:
|
|
452
|
-
logging.error(f"
|
|
453
|
-
raise OpenApiError(f"Failed to get fee rates: {e}")
|
|
565
|
+
logging.error(f"Chain query error: {e}")
|
|
566
|
+
raise OpenApiError(f"Failed to get fee rates from chain: {e}")
|
|
454
567
|
|
|
455
568
|
def _place_order(self, data: OrderDataInput, exchange_addr='', chain_id=0, currency_addr='', currency_decimal=0, check_approval=False):
|
|
456
569
|
if check_approval:
|
|
@@ -652,8 +765,8 @@ class Client:
|
|
|
652
765
|
|
|
653
766
|
from opinion_api.models.openapi_cancel_order_request_open_api import OpenapiCancelOrderRequestOpenAPI
|
|
654
767
|
|
|
655
|
-
#
|
|
656
|
-
request_body = OpenapiCancelOrderRequestOpenAPI(
|
|
768
|
+
# Use order_id for API request
|
|
769
|
+
request_body = OpenapiCancelOrderRequestOpenAPI(order_id=order_id)
|
|
657
770
|
result = self.market_api.openapi_order_cancel_post(apikey=self.api_key, cancel_order_req=request_body)
|
|
658
771
|
return result
|
|
659
772
|
|
|
@@ -768,6 +881,7 @@ class Client:
|
|
|
768
881
|
def cancel_all_orders(self, market_id: Optional[int] = None, side: Optional[OrderSide] = None) -> dict:
|
|
769
882
|
"""
|
|
770
883
|
Cancel all open orders, optionally filtered by market and/or side.
|
|
884
|
+
Uses pagination to fetch all orders (max 20 per page).
|
|
771
885
|
|
|
772
886
|
Args:
|
|
773
887
|
market_id: Optional filter - only cancel orders for this market
|
|
@@ -781,18 +895,40 @@ class Client:
|
|
|
781
895
|
'results': List[dict]
|
|
782
896
|
}
|
|
783
897
|
"""
|
|
784
|
-
#
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
898
|
+
# Collect all open orders using pagination
|
|
899
|
+
all_orders_list = []
|
|
900
|
+
page = 1
|
|
901
|
+
limit = 20 # Backend max page size
|
|
902
|
+
max_pages = 100 # Safety limit to prevent infinite loops
|
|
903
|
+
|
|
904
|
+
while page <= max_pages:
|
|
905
|
+
# Get orders for current page
|
|
906
|
+
page_orders = self.get_my_orders(
|
|
907
|
+
market_id=market_id if market_id else 0,
|
|
908
|
+
status='1', # 1 = pending/open orders
|
|
909
|
+
limit=limit,
|
|
910
|
+
page=page
|
|
911
|
+
)
|
|
912
|
+
|
|
913
|
+
# Parse response to get order list
|
|
914
|
+
orders_list = self._parse_list_response(page_orders, f"get open orders page {page}")
|
|
915
|
+
|
|
916
|
+
if not orders_list or len(orders_list) == 0:
|
|
917
|
+
# No more orders on this page
|
|
918
|
+
break
|
|
919
|
+
|
|
920
|
+
all_orders_list.extend(orders_list)
|
|
791
921
|
|
|
792
|
-
|
|
793
|
-
|
|
922
|
+
# If we got fewer orders than the limit, we've reached the last page
|
|
923
|
+
if len(orders_list) < limit:
|
|
924
|
+
break
|
|
794
925
|
|
|
795
|
-
|
|
926
|
+
page += 1
|
|
927
|
+
|
|
928
|
+
if page > max_pages:
|
|
929
|
+
logging.warning(f"Reached maximum page limit ({max_pages}), there may be more orders")
|
|
930
|
+
|
|
931
|
+
if not all_orders_list or len(all_orders_list) == 0:
|
|
796
932
|
logging.info("No open orders to cancel")
|
|
797
933
|
return {
|
|
798
934
|
'total_orders': 0,
|
|
@@ -803,10 +939,10 @@ class Client:
|
|
|
803
939
|
|
|
804
940
|
# Filter by side if specified
|
|
805
941
|
if side:
|
|
806
|
-
|
|
942
|
+
all_orders_list = [order for order in all_orders_list if int(order.side) == int(side.value)]
|
|
807
943
|
|
|
808
|
-
# Extract order IDs
|
|
809
|
-
order_ids = [order.
|
|
944
|
+
# Extract order IDs from the response
|
|
945
|
+
order_ids = [order.order_id for order in all_orders_list if hasattr(order, 'order_id')]
|
|
810
946
|
|
|
811
947
|
if not order_ids:
|
|
812
948
|
logging.info("No orders match the filter criteria")
|
|
@@ -817,6 +953,8 @@ class Client:
|
|
|
817
953
|
'results': []
|
|
818
954
|
}
|
|
819
955
|
|
|
956
|
+
logging.info(f"Found {len(order_ids)} orders to cancel")
|
|
957
|
+
|
|
820
958
|
# Cancel all orders in batch
|
|
821
959
|
results = self.cancel_orders_batch(order_ids)
|
|
822
960
|
|
|
@@ -841,7 +979,7 @@ class Client:
|
|
|
841
979
|
|
|
842
980
|
result = self.market_api.openapi_order_get(
|
|
843
981
|
apikey=self.api_key,
|
|
844
|
-
|
|
982
|
+
market_id=market_id if market_id > 0 else None,
|
|
845
983
|
status=status if status else None,
|
|
846
984
|
limit=limit,
|
|
847
985
|
page=page,
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Verify that the FeeManager contract address is properly formatted
|
|
4
|
+
and can be used with web3.py without checksum errors.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import sys
|
|
8
|
+
from web3 import Web3
|
|
9
|
+
|
|
10
|
+
# Import the addresses
|
|
11
|
+
from opinion_clob_sdk.config import (
|
|
12
|
+
BNB_CHAIN_FEE_MANAGER_ADDR,
|
|
13
|
+
BNB_CHAIN_CONDITIONAL_TOKENS_ADDR,
|
|
14
|
+
BNB_CHAIN_MULTISEND_ADDR,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
def verify_address(name: str, address: str):
|
|
18
|
+
"""Verify an address is in valid checksum format"""
|
|
19
|
+
try:
|
|
20
|
+
is_valid = Web3.is_checksum_address(address)
|
|
21
|
+
if is_valid:
|
|
22
|
+
print(f"✅ {name}: {address}")
|
|
23
|
+
print(f" Valid checksum format")
|
|
24
|
+
else:
|
|
25
|
+
print(f"❌ {name}: {address}")
|
|
26
|
+
print(f" Invalid checksum format")
|
|
27
|
+
return False
|
|
28
|
+
except Exception as e:
|
|
29
|
+
print(f"❌ {name}: {address}")
|
|
30
|
+
print(f" Error: {e}")
|
|
31
|
+
return False
|
|
32
|
+
return True
|
|
33
|
+
|
|
34
|
+
def main():
|
|
35
|
+
print("=" * 80)
|
|
36
|
+
print("Contract Address Checksum Verification")
|
|
37
|
+
print("=" * 80)
|
|
38
|
+
print()
|
|
39
|
+
|
|
40
|
+
addresses = {
|
|
41
|
+
"ConditionalTokens": BNB_CHAIN_CONDITIONAL_TOKENS_ADDR,
|
|
42
|
+
"Multisend": BNB_CHAIN_MULTISEND_ADDR,
|
|
43
|
+
"FeeManager": BNB_CHAIN_FEE_MANAGER_ADDR,
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
all_valid = True
|
|
47
|
+
for name, address in addresses.items():
|
|
48
|
+
if not verify_address(name, address):
|
|
49
|
+
all_valid = False
|
|
50
|
+
print()
|
|
51
|
+
|
|
52
|
+
print("=" * 80)
|
|
53
|
+
if all_valid:
|
|
54
|
+
print("✅ All contract addresses are in valid checksum format!")
|
|
55
|
+
print("\nYou can now use these addresses with web3.py without errors.")
|
|
56
|
+
return 0
|
|
57
|
+
else:
|
|
58
|
+
print("❌ Some addresses are not in valid checksum format!")
|
|
59
|
+
print("\nPlease update config.py with proper checksum addresses.")
|
|
60
|
+
return 1
|
|
61
|
+
|
|
62
|
+
if __name__ == "__main__":
|
|
63
|
+
sys.exit(main())
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opinion_clob_sdk
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Opinion CLOB SDK - Python SDK for Opinion Prediction Market Central Limit Order Book API
|
|
3
|
+
Version: 0.4.2
|
|
4
|
+
Summary: Opinion CLOB SDK (Tech Preview) - Python SDK for Opinion Prediction Market Central Limit Order Book API
|
|
5
5
|
Home-page: https://opinion.trade
|
|
6
6
|
Author: Opinion Labs
|
|
7
7
|
Author-email: support@opinion.trade
|
|
8
|
-
Keywords: PredictionMarket,CLOB,Trading,Blockchain,
|
|
9
|
-
Classifier: Development Status ::
|
|
8
|
+
Keywords: PredictionMarket,CLOB,Trading,Blockchain,BNBChain,BSC,Opinion
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
11
11
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
12
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -26,7 +26,7 @@ Requires-Dist: hexbytes>=1.2.1
|
|
|
26
26
|
Requires-Dist: web3>=7.6.1
|
|
27
27
|
Requires-Dist: eth_account>=0.13.0
|
|
28
28
|
Requires-Dist: poly_eip712_structs>=0.0.1
|
|
29
|
-
Requires-Dist: opinion_api>=0.
|
|
29
|
+
Requires-Dist: opinion_api>=0.2.0
|
|
30
30
|
Requires-Dist: pytest>=7.0.0
|
|
31
31
|
Dynamic: author
|
|
32
32
|
Dynamic: author-email
|
|
@@ -40,7 +40,9 @@ Dynamic: requires-python
|
|
|
40
40
|
Dynamic: summary
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
# Opinion CLOB SDK
|
|
43
|
+
# Opinion CLOB SDK (Tech Preview)
|
|
44
|
+
|
|
45
|
+
**Technology Preview Release - BNB Chain Support**
|
|
44
46
|
|
|
45
47
|
Python SDK for interacting with Opinion prediction markets via the CLOB (Central Limit Order Book) API.
|
|
46
48
|
|
|
@@ -50,7 +52,7 @@ Python SDK for interacting with Opinion prediction markets via the CLOB (Central
|
|
|
50
52
|
- Order management (place, cancel, query orders)
|
|
51
53
|
- Position and balance tracking
|
|
52
54
|
- Smart contract interactions (split, merge, redeem)
|
|
53
|
-
- Support for
|
|
55
|
+
- Support for BNB Chain mainnet (chain ID 56)
|
|
54
56
|
|
|
55
57
|
## Installation
|
|
56
58
|
|
|
@@ -64,10 +66,10 @@ pip install opinion_clob_sdk
|
|
|
64
66
|
from opinion_clob_sdk import Client
|
|
65
67
|
|
|
66
68
|
client = Client(
|
|
67
|
-
host='https://
|
|
69
|
+
host='https://proxy.opinion.trade:8443',
|
|
68
70
|
apikey='your_api_key',
|
|
69
|
-
chain_id=
|
|
70
|
-
rpc_url='
|
|
71
|
+
chain_id=56, # BNB Chain mainnet
|
|
72
|
+
rpc_url='https://bsc-dataseed.binance.org',
|
|
71
73
|
private_key='your_private_key',
|
|
72
74
|
multi_sig_addr='your_multi_sig_address'
|
|
73
75
|
)
|