opinion-clob-sdk 0.1.18__py3-none-any.whl → 0.1.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of opinion-clob-sdk might be problematic. Click here for more details.

opinion_clob_sdk/sdk.py CHANGED
@@ -652,8 +652,8 @@ class Client:
652
652
 
653
653
  from opinion_api.models.openapi_cancel_order_request_open_api import OpenapiCancelOrderRequestOpenAPI
654
654
 
655
- # Internally use trans_no for API compatibility
656
- request_body = OpenapiCancelOrderRequestOpenAPI(trans_no=order_id)
655
+ # Use order_id for API request
656
+ request_body = OpenapiCancelOrderRequestOpenAPI(order_id=order_id)
657
657
  result = self.market_api.openapi_order_cancel_post(apikey=self.api_key, cancel_order_req=request_body)
658
658
  return result
659
659
 
@@ -768,6 +768,7 @@ class Client:
768
768
  def cancel_all_orders(self, market_id: Optional[int] = None, side: Optional[OrderSide] = None) -> dict:
769
769
  """
770
770
  Cancel all open orders, optionally filtered by market and/or side.
771
+ Uses pagination to fetch all orders (max 20 per page).
771
772
 
772
773
  Args:
773
774
  market_id: Optional filter - only cancel orders for this market
@@ -781,18 +782,40 @@ class Client:
781
782
  'results': List[dict]
782
783
  }
783
784
  """
784
- # Get all open orders
785
- all_orders = self.get_my_orders(
786
- market_id=market_id if market_id else 0,
787
- status='1', # 1 = pending/open orders
788
- limit=100, # Get up to 100 orders per page
789
- page=1
790
- )
785
+ # Collect all open orders using pagination
786
+ all_orders_list = []
787
+ page = 1
788
+ limit = 20 # Backend max page size
789
+ max_pages = 100 # Safety limit to prevent infinite loops
790
+
791
+ while page <= max_pages:
792
+ # Get orders for current page
793
+ page_orders = self.get_my_orders(
794
+ market_id=market_id if market_id else 0,
795
+ status='1', # 1 = pending/open orders
796
+ limit=limit,
797
+ page=page
798
+ )
799
+
800
+ # Parse response to get order list
801
+ orders_list = self._parse_list_response(page_orders, f"get open orders page {page}")
802
+
803
+ if not orders_list or len(orders_list) == 0:
804
+ # No more orders on this page
805
+ break
791
806
 
792
- # Parse response to get order list
793
- orders_list = self._parse_list_response(all_orders, "get open orders for cancellation")
807
+ all_orders_list.extend(orders_list)
794
808
 
795
- if not orders_list or len(orders_list) == 0:
809
+ # If we got fewer orders than the limit, we've reached the last page
810
+ if len(orders_list) < limit:
811
+ break
812
+
813
+ page += 1
814
+
815
+ if page > max_pages:
816
+ logging.warning(f"Reached maximum page limit ({max_pages}), there may be more orders")
817
+
818
+ if not all_orders_list or len(all_orders_list) == 0:
796
819
  logging.info("No open orders to cancel")
797
820
  return {
798
821
  'total_orders': 0,
@@ -803,10 +826,10 @@ class Client:
803
826
 
804
827
  # Filter by side if specified
805
828
  if side:
806
- orders_list = [order for order in orders_list if int(order.side) == int(side.value)]
829
+ all_orders_list = [order for order in all_orders_list if int(order.side) == int(side.value)]
807
830
 
808
- # Extract order IDs (internally stored as trans_no)
809
- order_ids = [order.trans_no for order in orders_list if hasattr(order, 'trans_no')]
831
+ # Extract order IDs from the response
832
+ order_ids = [order.order_id for order in all_orders_list if hasattr(order, 'order_id')]
810
833
 
811
834
  if not order_ids:
812
835
  logging.info("No orders match the filter criteria")
@@ -817,6 +840,8 @@ class Client:
817
840
  'results': []
818
841
  }
819
842
 
843
+ logging.info(f"Found {len(order_ids)} orders to cancel")
844
+
820
845
  # Cancel all orders in batch
821
846
  results = self.cancel_orders_batch(order_ids)
822
847
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opinion_clob_sdk
3
- Version: 0.1.18
3
+ Version: 0.1.19
4
4
  Summary: Opinion CLOB SDK - Python SDK for Opinion Prediction Market Central Limit Order Book API
5
5
  Home-page: https://opinion.trade
6
6
  Author: Opinion Labs
@@ -1,7 +1,7 @@
1
1
  opinion_clob_sdk/__init__.py,sha256=FjX_mnP3oH255KiB_tyxRi_WvoxRecgIr4MI-2c2eYo,625
2
2
  opinion_clob_sdk/config.py,sha256=JoQvyK5IAnPiwwB8YZsmUtdEr-5hW2YG6iz1pOnLvDk,139
3
3
  opinion_clob_sdk/model.py,sha256=eqNkEdyJPmcL_wax8ieybeyhR40JwGDB_KPplXLmNxE,309
4
- opinion_clob_sdk/sdk.py,sha256=9f45XSBvmXxftaRh1zRqCSS0os1AKl_en__I98MI3NA,39524
4
+ opinion_clob_sdk/sdk.py,sha256=CluNSycMvNQCvwQeN08RXmegIcQfIjl02gzNX0QKric,40369
5
5
  opinion_clob_sdk/verify_api_calls.py,sha256=MU4NEyfQ5hDmFJ0lT8g7KXVdlZ0cBtFyBTCbhhfI6a4,5031
6
6
  opinion_clob_sdk/chain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  opinion_clob_sdk/chain/contract_caller.py,sha256=AKCD1ZvLTbJX_YWFJecRtZ4Pi7L3_20Q7YOSGfAolEY,17148
@@ -41,7 +41,7 @@ opinion_clob_sdk/chain/safe/safe_contracts/compatibility_fallback_handler_v1_3_0
41
41
  opinion_clob_sdk/chain/safe/safe_contracts/multisend_v1_3_0.py,sha256=8oGhNkS2k2Cy5pG6YNt_BKytS3AEtPeXv4rkyXv_p0M,380
42
42
  opinion_clob_sdk/chain/safe/safe_contracts/safe_v1_3_0.py,sha256=YCUWTpf_pR44iUUkDl42f3n2YXSVGlTBcvMtReN7rlM,21922
43
43
  opinion_clob_sdk/chain/safe/safe_contracts/utils.py,sha256=xnW8JSq8tVMfvZ4lhT-L96P3Usjs2zrZ5jzrNZvFHjc,631
44
- opinion_clob_sdk-0.1.18.dist-info/METADATA,sha256=rPEfP2dnx8JiiXzd-P5n0xzvPP8K2BM4lUeOcFwzeW8,2777
45
- opinion_clob_sdk-0.1.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
- opinion_clob_sdk-0.1.18.dist-info/top_level.txt,sha256=4gH76GRX1WZSc3b146FfxE6BAxggJD8y3NMEHUOSPA0,17
47
- opinion_clob_sdk-0.1.18.dist-info/RECORD,,
44
+ opinion_clob_sdk-0.1.19.dist-info/METADATA,sha256=ZvaXeCBWHM0KZHdIhYp5bRaoxLv5mipwk5_d-die49o,2777
45
+ opinion_clob_sdk-0.1.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
46
+ opinion_clob_sdk-0.1.19.dist-info/top_level.txt,sha256=4gH76GRX1WZSc3b146FfxE6BAxggJD8y3NMEHUOSPA0,17
47
+ opinion_clob_sdk-0.1.19.dist-info/RECORD,,