prediction-market-agent-tooling 0.65.0__tar.gz → 0.65.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 (122) hide show
  1. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/PKG-INFO +1 -1
  2. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/config.py +28 -7
  3. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/loggers.py +1 -0
  4. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/price_manager.py +9 -5
  5. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +5 -1
  6. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/pyproject.toml +1 -1
  7. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/LICENSE +0 -0
  8. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/README.md +0 -0
  9. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/debuggingcontract.abi.json +0 -0
  10. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/depositablewrapper_erc20.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/erc4626.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/erc721.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/gvp2_settlement.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_agentresultmapping.abi.json +0 -0
  16. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  17. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  18. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  19. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  20. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  21. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  22. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  23. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json +0 -0
  24. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/ownable.abi.json +0 -0
  25. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/ownable_erc721.abi.json +0 -0
  26. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/proxy.abi.json +0 -0
  27. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/seer_gnosis_router.abi.json +0 -0
  28. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/abis/seer_market_factory.abi.json +0 -0
  29. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  30. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  31. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  32. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  33. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/chains.py +0 -0
  34. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/agent.py +0 -0
  35. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
  36. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/betting_strategy.py +0 -0
  37. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  38. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  39. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  40. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
  41. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/deploy/trade_interval.py +0 -0
  42. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/gtypes.py +0 -0
  43. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/jobs/__init__.py +0 -0
  44. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/jobs/jobs_models.py +0 -0
  45. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/jobs/omen/omen_jobs.py +0 -0
  46. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/logprobs_parser.py +0 -0
  47. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  48. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/base_subgraph_handler.py +0 -0
  49. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/blockchain_utils.py +0 -0
  50. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  51. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  52. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  53. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  54. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  55. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  56. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  57. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/market_fees.py +0 -0
  58. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/markets.py +0 -0
  59. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/metaculus/api.py +0 -0
  60. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/metaculus/data_models.py +0 -0
  61. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/metaculus/metaculus.py +0 -0
  62. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  63. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/cow_contracts.py +0 -0
  64. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  65. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  66. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/omen_constants.py +0 -0
  67. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  68. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
  69. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  70. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  71. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  72. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
  73. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  74. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  75. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/data_models.py +0 -0
  76. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/seer.py +0 -0
  77. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/seer_contracts.py +0 -0
  78. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/markets/seer/subgraph_data_models.py +0 -0
  79. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/py.typed +0 -0
  80. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/_generic_value.py +0 -0
  81. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/balances.py +0 -0
  82. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  83. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  84. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/betting_strategies/utils.py +0 -0
  85. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/caches/db_cache.py +0 -0
  86. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/caches/inmemory_cache.py +0 -0
  87. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/caches/serializers.py +0 -0
  88. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/contract.py +0 -0
  89. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/costs.py +0 -0
  90. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/cow/cow_order.py +0 -0
  91. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/custom_exceptions.py +0 -0
  92. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/datetime_utc.py +0 -0
  93. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/db/db_manager.py +0 -0
  94. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/google_utils.py +0 -0
  95. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  96. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/httpx_cached_client.py +0 -0
  97. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/image_gen/image_gen.py +0 -0
  98. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/image_gen/market_thumbnail_gen.py +0 -0
  99. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/ipfs/ipfs_handler.py +0 -0
  100. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/is_invalid.py +0 -0
  101. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
  102. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/langfuse_.py +0 -0
  103. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/langfuse_client_utils.py +0 -0
  104. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/omen/reality_accuracy.py +0 -0
  105. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/omen/sell_positions.py +0 -0
  106. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  107. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/data_models.py +0 -0
  108. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_analysis.py +0 -0
  109. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_cache.py +0 -0
  110. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/safe.py +0 -0
  111. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  112. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/streamlit_user_login.py +0 -0
  113. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tavily/tavily_models.py +0 -0
  114. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tavily/tavily_search.py +0 -0
  115. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tokens/auto_deposit.py +0 -0
  116. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tokens/auto_withdraw.py +0 -0
  117. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tokens/main_token.py +0 -0
  118. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tokens/token_utils.py +0 -0
  119. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/tokens/usd.py +0 -0
  120. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/transaction_cache.py +0 -0
  121. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/utils.py +0 -0
  122. {prediction_market_agent_tooling-0.65.0 → prediction_market_agent_tooling-0.65.2}/prediction_market_agent_tooling/tools/web3_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.65.0
3
+ Version: 0.65.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
@@ -11,6 +11,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
11
11
  from safe_eth.eth import EthereumClient
12
12
  from safe_eth.safe.safe import SafeV141
13
13
  from web3 import Account, Web3
14
+ from web3._utils.http import construct_user_agent
14
15
 
15
16
  from prediction_market_agent_tooling.chains import ETHEREUM_ID, GNOSIS_CHAIN_ID
16
17
  from prediction_market_agent_tooling.deploy.gcp.utils import gcp_get_secret_value
@@ -280,7 +281,9 @@ class RPCConfig(BaseSettings):
280
281
  )
281
282
 
282
283
  ETHEREUM_RPC_URL: URI = Field(default=URI("https://rpc.eth.gateway.fm"))
284
+ ETHEREUM_RPC_BEARER: SecretStr | None = None
283
285
  GNOSIS_RPC_URL: URI = Field(default=URI("https://rpc.gnosis.gateway.fm"))
286
+ GNOSIS_RPC_BEARER: SecretStr | None = None
284
287
  CHAIN_ID: ChainID = Field(default=GNOSIS_CHAIN_ID)
285
288
 
286
289
  @property
@@ -300,15 +303,33 @@ class RPCConfig(BaseSettings):
300
303
  return check_not_none(self.CHAIN_ID, "CHAIN_ID missing in the environment.")
301
304
 
302
305
  def chain_id_to_rpc_url(self, chain_id: ChainID) -> URI:
303
- if chain_id == ETHEREUM_ID:
304
- return self.ethereum_rpc_url
305
- elif chain_id == GNOSIS_CHAIN_ID:
306
- return self.gnosis_rpc_url
307
- else:
308
- raise ValueError(f"Unsupported chain ID: {chain_id}")
306
+ return {
307
+ ETHEREUM_ID: self.ethereum_rpc_url,
308
+ GNOSIS_CHAIN_ID: self.gnosis_rpc_url,
309
+ }[chain_id]
310
+
311
+ def chain_id_to_rpc_bearer(self, chain_id: ChainID) -> SecretStr | None:
312
+ return {
313
+ ETHEREUM_ID: self.ETHEREUM_RPC_BEARER,
314
+ GNOSIS_CHAIN_ID: self.GNOSIS_RPC_BEARER,
315
+ }[chain_id]
309
316
 
310
317
  def get_web3(self) -> Web3:
311
- return Web3(Web3.HTTPProvider(self.gnosis_rpc_url))
318
+ headers = {
319
+ "Content-Type": "application/json",
320
+ "User-Agent": construct_user_agent(str(type(self))),
321
+ }
322
+ if bearer := self.chain_id_to_rpc_bearer(self.chain_id):
323
+ headers["Authorization"] = f"Bearer {bearer.get_secret_value()}"
324
+
325
+ return Web3(
326
+ Web3.HTTPProvider(
327
+ self.chain_id_to_rpc_url(self.chain_id),
328
+ request_kwargs={
329
+ "headers": headers,
330
+ },
331
+ )
332
+ )
312
333
 
313
334
 
314
335
  class CloudCredentials(BaseSettings):
@@ -134,6 +134,7 @@ def patch_logger(force_patch: bool = False) -> None:
134
134
  handler,
135
135
  level=config.LOG_LEVEL.value,
136
136
  colorize=False,
137
+ catch=False,
137
138
  )
138
139
 
139
140
  # Use logging module for warnings.
@@ -122,10 +122,15 @@ class PriceManager:
122
122
  # Inspired by https://github.com/seer-pm/demo/blob/ca682153a6b4d4dd3dcc4ad8bdcbe32202fc8fe7/web/src/hooks/useMarketOdds.ts#L15
123
123
  price_data: dict[HexAddress, CollateralToken] = {}
124
124
 
125
- for wrapped_token in self.seer_market.wrapped_tokens:
125
+ for idx, wrapped_token in enumerate(self.seer_market.wrapped_tokens):
126
126
  price = self.get_price_for_token(
127
127
  token=Web3.to_checksum_address(wrapped_token),
128
128
  )
129
+ # It's okay if invalid (last) outcome has price 0, but not the other outcomes.
130
+ if price is None and idx != len(self.seer_market.wrapped_tokens) - 1:
131
+ raise ValueError(
132
+ f"Couldn't get price for {wrapped_token} for market {self.seer_market.url}."
133
+ )
129
134
  price_data[wrapped_token] = (
130
135
  price if price is not None else CollateralToken.zero()
131
136
  )
@@ -137,10 +142,9 @@ class PriceManager:
137
142
  sum(price_data.values(), start=CollateralToken.zero())
138
143
  == CollateralToken.zero()
139
144
  ):
140
- return {
141
- OutcomeStr(outcome): Probability(0)
142
- for outcome in self.seer_market.outcomes
143
- }
145
+ raise ValueError(
146
+ f"All prices for market {self.seer_market.url} are zero. This shouldn't happen."
147
+ )
144
148
 
145
149
  for outcome_token, price in price_data.items():
146
150
  old_price = price
@@ -9,7 +9,7 @@ from prediction_market_agent_tooling.deploy.constants import (
9
9
  NO_OUTCOME_LOWERCASE_IDENTIFIER,
10
10
  YES_OUTCOME_LOWERCASE_IDENTIFIER,
11
11
  )
12
- from prediction_market_agent_tooling.gtypes import ChecksumAddress
12
+ from prediction_market_agent_tooling.gtypes import ChecksumAddress, Wei
13
13
  from prediction_market_agent_tooling.loggers import logger
14
14
  from prediction_market_agent_tooling.markets.agent_market import FilterBy, SortBy
15
15
  from prediction_market_agent_tooling.markets.base_subgraph_handler import (
@@ -77,6 +77,7 @@ class SeerSubgraphHandler(BaseSubgraphHandler):
77
77
  @staticmethod
78
78
  def _build_where_statements(
79
79
  filter_by: FilterBy,
80
+ outcome_supply_gt_if_open: Wei,
80
81
  include_conditional_markets: bool = False,
81
82
  include_categorical_markets: bool = True,
82
83
  ) -> dict[Any, Any]:
@@ -88,6 +89,7 @@ class SeerSubgraphHandler(BaseSubgraphHandler):
88
89
  case FilterBy.OPEN:
89
90
  and_stms["openingTs_gt"] = now
90
91
  and_stms["hasAnswers"] = False
92
+ and_stms["outcomesSupply_gt"] = outcome_supply_gt_if_open.value
91
93
  case FilterBy.RESOLVED:
92
94
  # We consider RESOLVED == CLOSED (on Seer UI)
93
95
  and_stms["payoutReported"] = True
@@ -154,6 +156,7 @@ class SeerSubgraphHandler(BaseSubgraphHandler):
154
156
  filter_by: FilterBy,
155
157
  sort_by: SortBy = SortBy.NONE,
156
158
  limit: int | None = None,
159
+ outcome_supply_gt_if_open: Wei = Wei(0),
157
160
  include_conditional_markets: bool = True,
158
161
  include_categorical_markets: bool = True,
159
162
  ) -> list[SeerMarket]:
@@ -163,6 +166,7 @@ class SeerSubgraphHandler(BaseSubgraphHandler):
163
166
  # Binary markets on Seer contain 3 outcomes: OutcomeA, outcomeB and an Invalid option.
164
167
  where_stms = self._build_where_statements(
165
168
  filter_by=filter_by,
169
+ outcome_supply_gt_if_open=outcome_supply_gt_if_open,
166
170
  include_conditional_markets=include_conditional_markets,
167
171
  include_categorical_markets=include_categorical_markets,
168
172
  )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.65.0"
3
+ version = "0.65.2"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"