prediction-market-agent-tooling 0.58.0__tar.gz → 0.58.2__tar.gz

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.
Files changed (124) hide show
  1. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/PKG-INFO +1 -1
  2. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/gcp/utils.py +2 -0
  3. prediction_market_agent_tooling-0.58.2/prediction_market_agent_tooling/tools/omen/sell_positions.py +59 -0
  4. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/web3_utils.py +7 -0
  5. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/pyproject.toml +1 -1
  6. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/LICENSE +0 -0
  7. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/README.md +0 -0
  8. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/agentcommunication.abi.json +0 -0
  9. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/debuggingcontract.abi.json +0 -0
  10. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/depositablewrapper_erc20.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/erc4626.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/erc721.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_agentresultmapping.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  16. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  17. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  18. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  19. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  20. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  21. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  22. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json +0 -0
  23. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/ownable.abi.json +0 -0
  24. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/ownable_erc721.abi.json +0 -0
  25. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/proxy.abi.json +0 -0
  26. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/seer_market_factory.abi.json +0 -0
  27. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/abis/simpletreasury.abi.json +0 -0
  28. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  29. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  30. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  31. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  32. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/config.py +0 -0
  33. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/agent.py +0 -0
  34. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
  35. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/betting_strategy.py +0 -0
  36. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  37. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  38. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  39. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/deploy/trade_interval.py +0 -0
  40. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/gtypes.py +0 -0
  41. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/jobs/__init__.py +0 -0
  42. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/jobs/jobs_models.py +0 -0
  43. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/jobs/omen/omen_jobs.py +0 -0
  44. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/loggers.py +0 -0
  45. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  46. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/base_subgraph_handler.py +0 -0
  47. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  48. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  49. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  50. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  51. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  52. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  53. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  54. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/market_fees.py +0 -0
  55. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/markets.py +0 -0
  56. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/metaculus/api.py +0 -0
  57. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/metaculus/data_models.py +0 -0
  58. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/metaculus/metaculus.py +0 -0
  59. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  60. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  61. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  62. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/omen_constants.py +0 -0
  63. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  64. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
  65. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  66. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  67. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  68. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
  69. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  70. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  71. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/seer/data_models.py +0 -0
  72. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/seer/seer.py +0 -0
  73. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/seer/seer_contracts.py +0 -0
  74. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +0 -0
  75. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/financial_metrics/financial_metrics.py +0 -0
  76. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
  77. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/markets/metaculus.py +0 -0
  78. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
  79. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
  80. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
  81. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
  82. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
  83. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/py.typed +0 -0
  84. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/balances.py +0 -0
  85. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  86. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
  87. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
  88. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  89. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/betting_strategies/utils.py +0 -0
  90. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/caches/db_cache.py +0 -0
  91. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/caches/inmemory_cache.py +0 -0
  92. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/caches/serializers.py +0 -0
  93. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/contract.py +0 -0
  94. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/costs.py +0 -0
  95. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/cow/cow_order.py +0 -0
  96. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/custom_exceptions.py +0 -0
  97. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/data_models.py +0 -0
  98. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/datetime_utc.py +0 -0
  99. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/db/db_manager.py +0 -0
  100. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/google_utils.py +0 -0
  101. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  102. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/httpx_cached_client.py +0 -0
  103. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/image_gen/image_gen.py +0 -0
  104. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/image_gen/market_thumbnail_gen.py +0 -0
  105. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/ipfs/ipfs_handler.py +0 -0
  106. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/is_invalid.py +0 -0
  107. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
  108. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/langfuse_.py +0 -0
  109. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/langfuse_client_utils.py +0 -0
  110. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/omen/reality_accuracy.py +0 -0
  111. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  112. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/data_models.py +0 -0
  113. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_analysis.py +0 -0
  114. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_cache.py +0 -0
  115. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/safe.py +0 -0
  116. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  117. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/streamlit_user_login.py +0 -0
  118. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/tavily/tavily_models.py +0 -0
  119. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/tavily/tavily_search.py +0 -0
  120. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/tokens/auto_deposit.py +0 -0
  121. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/tokens/auto_withdraw.py +0 -0
  122. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/tokens/main_token.py +0 -0
  123. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/transaction_cache.py +0 -0
  124. {prediction_market_agent_tooling-0.58.0 → prediction_market_agent_tooling-0.58.2}/prediction_market_agent_tooling/tools/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.58.0
3
+ Version: 0.58.2
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.13
@@ -1,6 +1,7 @@
1
1
  import json
2
2
  import subprocess
3
3
  import sys
4
+ from functools import cache
4
5
 
5
6
  from google.cloud.functions_v2.services.function_service.client import (
6
7
  FunctionServiceClient,
@@ -197,6 +198,7 @@ def gcp_function_is_active(fname: str) -> bool:
197
198
  return get_gcp_function(fname).state == Function.State.ACTIVE
198
199
 
199
200
 
201
+ @cache
200
202
  def gcp_get_secret_value(name: str, version: str = "latest") -> str:
201
203
  client = SecretManagerServiceClient()
202
204
  return client.access_secret_version(
@@ -0,0 +1,59 @@
1
+ from datetime import timedelta
2
+
3
+ from prediction_market_agent_tooling.config import APIKeys
4
+ from prediction_market_agent_tooling.loggers import logger
5
+ from prediction_market_agent_tooling.markets.omen.omen import OmenAgentMarket
6
+ from prediction_market_agent_tooling.markets.omen.omen_subgraph_handler import (
7
+ OmenSubgraphHandler,
8
+ )
9
+ from prediction_market_agent_tooling.tools.balances import get_balances
10
+ from prediction_market_agent_tooling.tools.utils import utcnow
11
+
12
+
13
+ def sell_all(
14
+ api_keys: APIKeys,
15
+ closing_later_than_days: int,
16
+ auto_withdraw: bool = False,
17
+ ) -> None:
18
+ """
19
+ Helper function to sell all existing outcomes on Omen that would resolve later than in X days.
20
+ """
21
+ better_address = api_keys.bet_from_address
22
+ bets = OmenSubgraphHandler().get_bets(
23
+ better_address=better_address,
24
+ market_opening_after=utcnow() + timedelta(days=closing_later_than_days),
25
+ )
26
+ bets_total_usd = sum(b.collateral_amount_usd for b in bets)
27
+ unique_market_urls = set(b.fpmm.url for b in bets)
28
+ starting_balance = get_balances(better_address)
29
+ new_balance = starting_balance
30
+
31
+ logger.info(
32
+ f"For {better_address}, found the following {len(bets)} bets on {len(unique_market_urls)} unique markets worth of {bets_total_usd} USD: {unique_market_urls}"
33
+ )
34
+
35
+ for bet in bets:
36
+ agent_market = OmenAgentMarket.from_data_model(bet.fpmm)
37
+ outcome = agent_market.outcomes[bet.outcomeIndex]
38
+ current_token_balance = agent_market.get_token_balance(better_address, outcome)
39
+
40
+ if current_token_balance.amount <= OmenAgentMarket.get_tiny_bet_amount().amount:
41
+ logger.info(
42
+ f"Skipping bet on {bet.fpmm.url} because the actual balance is unreasonably low {current_token_balance.amount}."
43
+ )
44
+ continue
45
+
46
+ old_balance = new_balance
47
+ agent_market.sell_tokens(
48
+ bet.boolean_outcome,
49
+ current_token_balance,
50
+ auto_withdraw=auto_withdraw,
51
+ api_keys=api_keys,
52
+ )
53
+ new_balance = get_balances(better_address)
54
+
55
+ logger.info(
56
+ f"Sold bet on {bet.fpmm.url} for {new_balance.wxdai - old_balance.wxdai} xDai."
57
+ )
58
+
59
+ logger.info(f"Obtained back {new_balance.wxdai - starting_balance.wxdai} wxDai.")
@@ -351,6 +351,13 @@ def byte32_to_ipfscidv0(hex: HexBytes) -> IPFSCIDVersion0:
351
351
  return IPFSCIDVersion0(base58.b58encode(completed_binary_str).decode("utf-8"))
352
352
 
353
353
 
354
+ @tenacity.retry(
355
+ wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 10)]),
356
+ stop=tenacity.stop_after_attempt(5),
357
+ after=lambda x: logger.debug(
358
+ f"get_receipt_block_timestamp failed, {x.attempt_number=}."
359
+ ),
360
+ )
354
361
  def get_receipt_block_timestamp(receipt_tx: TxReceipt, web3: Web3) -> int:
355
362
  block_number = receipt_tx["blockNumber"]
356
363
  block = web3.eth.get_block(block_number)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.58.0"
3
+ version = "0.58.2"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"