prediction-market-agent-tooling 0.61.1__py3-none-any.whl → 0.61.1.dev462__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.
Files changed (48) hide show
  1. prediction_market_agent_tooling/deploy/agent.py +4 -5
  2. prediction_market_agent_tooling/deploy/betting_strategy.py +53 -69
  3. prediction_market_agent_tooling/gtypes.py +105 -27
  4. prediction_market_agent_tooling/jobs/jobs_models.py +5 -7
  5. prediction_market_agent_tooling/jobs/omen/omen_jobs.py +13 -17
  6. prediction_market_agent_tooling/markets/agent_market.py +96 -52
  7. prediction_market_agent_tooling/markets/blockchain_utils.py +1 -27
  8. prediction_market_agent_tooling/markets/data_models.py +40 -44
  9. prediction_market_agent_tooling/markets/manifold/api.py +2 -6
  10. prediction_market_agent_tooling/markets/manifold/data_models.py +33 -25
  11. prediction_market_agent_tooling/markets/manifold/manifold.py +8 -11
  12. prediction_market_agent_tooling/markets/market_fees.py +4 -2
  13. prediction_market_agent_tooling/markets/omen/data_models.py +66 -57
  14. prediction_market_agent_tooling/markets/omen/omen.py +214 -249
  15. prediction_market_agent_tooling/markets/omen/omen_contracts.py +31 -29
  16. prediction_market_agent_tooling/markets/omen/omen_resolving.py +7 -14
  17. prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +20 -14
  18. prediction_market_agent_tooling/markets/polymarket/data_models.py +3 -3
  19. prediction_market_agent_tooling/markets/polymarket/data_models_web.py +4 -4
  20. prediction_market_agent_tooling/markets/polymarket/polymarket.py +3 -5
  21. prediction_market_agent_tooling/markets/seer/data_models.py +8 -8
  22. prediction_market_agent_tooling/markets/seer/seer.py +85 -71
  23. prediction_market_agent_tooling/markets/seer/seer_contracts.py +10 -5
  24. prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +5 -2
  25. prediction_market_agent_tooling/monitor/monitor.py +2 -2
  26. prediction_market_agent_tooling/tools/_generic_value.py +248 -0
  27. prediction_market_agent_tooling/tools/balances.py +9 -11
  28. prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +12 -10
  29. prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +27 -24
  30. prediction_market_agent_tooling/tools/betting_strategies/utils.py +3 -1
  31. prediction_market_agent_tooling/tools/contract.py +14 -10
  32. prediction_market_agent_tooling/tools/cow/cow_manager.py +3 -4
  33. prediction_market_agent_tooling/tools/cow/cow_order.py +3 -4
  34. prediction_market_agent_tooling/tools/langfuse_client_utils.py +13 -1
  35. prediction_market_agent_tooling/tools/omen/sell_positions.py +6 -3
  36. prediction_market_agent_tooling/tools/safe.py +5 -6
  37. prediction_market_agent_tooling/tools/tokens/auto_deposit.py +32 -30
  38. prediction_market_agent_tooling/tools/tokens/auto_withdraw.py +5 -22
  39. prediction_market_agent_tooling/tools/tokens/main_token.py +2 -2
  40. prediction_market_agent_tooling/tools/tokens/token_utils.py +46 -0
  41. prediction_market_agent_tooling/tools/tokens/usd.py +63 -0
  42. prediction_market_agent_tooling/tools/utils.py +14 -8
  43. prediction_market_agent_tooling/tools/web3_utils.py +24 -41
  44. {prediction_market_agent_tooling-0.61.1.dist-info → prediction_market_agent_tooling-0.61.1.dev462.dist-info}/METADATA +2 -1
  45. {prediction_market_agent_tooling-0.61.1.dist-info → prediction_market_agent_tooling-0.61.1.dev462.dist-info}/RECORD +48 -45
  46. {prediction_market_agent_tooling-0.61.1.dist-info → prediction_market_agent_tooling-0.61.1.dev462.dist-info}/LICENSE +0 -0
  47. {prediction_market_agent_tooling-0.61.1.dist-info → prediction_market_agent_tooling-0.61.1.dev462.dist-info}/WHEEL +0 -0
  48. {prediction_market_agent_tooling-0.61.1.dist-info → prediction_market_agent_tooling-0.61.1.dev462.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
1
- from prediction_market_agent_tooling.gtypes import xdai_type
1
+ from prediction_market_agent_tooling.gtypes import xDai
2
2
  from prediction_market_agent_tooling.markets.omen.omen_constants import (
3
3
  WRAPPED_XDAI_CONTRACT_ADDRESS,
4
4
  )
@@ -15,4 +15,4 @@ KEEPING_ERC20_TOKEN = ContractDepositableWrapperERC20OnGnosisChain(
15
15
  address=WRAPPED_XDAI_CONTRACT_ADDRESS
16
16
  )
17
17
 
18
- MINIMUM_NATIVE_TOKEN_IN_EOA_FOR_FEES = xdai_type(0.1)
18
+ MINIMUM_NATIVE_TOKEN_IN_EOA_FOR_FEES = xDai(0.1)
@@ -0,0 +1,46 @@
1
+ from eth_typing.evm import ChecksumAddress
2
+ from web3 import Web3
3
+
4
+ from prediction_market_agent_tooling.gtypes import ChecksumAddress, Wei
5
+ from prediction_market_agent_tooling.tools.contract import (
6
+ ContractERC4626BaseClass,
7
+ init_collateral_token_contract,
8
+ to_gnosis_chain_contract,
9
+ )
10
+ from prediction_market_agent_tooling.tools.cow.cow_order import get_buy_token_amount
11
+
12
+
13
+ def convert_to_another_token(
14
+ amount: Wei,
15
+ from_token: ChecksumAddress,
16
+ to_token: ChecksumAddress,
17
+ web3: Web3 | None = None,
18
+ ) -> Wei:
19
+ from_token_contract = to_gnosis_chain_contract(
20
+ init_collateral_token_contract(from_token, web3)
21
+ )
22
+ to_token_contract = to_gnosis_chain_contract(
23
+ init_collateral_token_contract(to_token, web3)
24
+ )
25
+
26
+ if from_token == to_token:
27
+ return amount
28
+
29
+ elif (
30
+ isinstance(to_token_contract, ContractERC4626BaseClass)
31
+ and to_token_contract.get_asset_token_contract().address == from_token
32
+ ):
33
+ return to_token_contract.convertToShares(amount)
34
+
35
+ elif (
36
+ isinstance(from_token_contract, ContractERC4626BaseClass)
37
+ and from_token_contract.get_asset_token_contract().address == to_token
38
+ ):
39
+ return from_token_contract.convertToAssets(amount)
40
+
41
+ else:
42
+ return get_buy_token_amount(
43
+ amount,
44
+ from_token,
45
+ to_token,
46
+ )
@@ -0,0 +1,63 @@
1
+ from cachetools import TTLCache, cached
2
+ from eth_typing.evm import ChecksumAddress
3
+
4
+ from prediction_market_agent_tooling.gtypes import (
5
+ USD,
6
+ ChecksumAddress,
7
+ OutcomeToken,
8
+ Token,
9
+ xDai,
10
+ )
11
+ from prediction_market_agent_tooling.markets.omen.omen_constants import (
12
+ SDAI_CONTRACT_ADDRESS,
13
+ WRAPPED_XDAI_CONTRACT_ADDRESS,
14
+ )
15
+ from prediction_market_agent_tooling.tools.contract import ContractERC4626OnGnosisChain
16
+ from prediction_market_agent_tooling.tools.cow.cow_order import get_buy_token_amount
17
+
18
+
19
+ def get_usd_in_xdai(amount: USD) -> xDai:
20
+ # xDai is stable coin against USD, so for simplicity we just cast it.
21
+ return xDai(amount.value)
22
+
23
+
24
+ def get_xdai_in_usd(amount: xDai) -> USD:
25
+ # xDai is stable coin against USD, so for simplicity we just cast it.
26
+ return USD(amount.value)
27
+
28
+
29
+ def get_usd_in_token(amount: USD, token_address: ChecksumAddress) -> Token:
30
+ rate = get_single_token_unit_to_usd_rate(token_address)
31
+ return Token(amount.value / rate.value)
32
+
33
+
34
+ def get_token_in_usd(
35
+ amount: Token | OutcomeToken, token_address: ChecksumAddress
36
+ ) -> USD:
37
+ rate = get_single_token_unit_to_usd_rate(token_address)
38
+ return USD(amount.value * rate.value)
39
+
40
+
41
+ # A short cache to not spam CoW and prevent timeouts, but still have relatively fresh data.
42
+ RATE_CACHE: TTLCache[ChecksumAddress, USD] = TTLCache(maxsize=100, ttl=5 * 60)
43
+
44
+
45
+ @cached(RATE_CACHE)
46
+ def get_single_token_unit_to_usd_rate(token_address: ChecksumAddress) -> USD:
47
+ # (w)xDai is a stable coin against USD, so use it to estimate USD worth.
48
+ if WRAPPED_XDAI_CONTRACT_ADDRESS == token_address:
49
+ return USD(1.0)
50
+ # sDai is ERC4626 with wxDai as asset, we can take the rate directly from there instead of calling CoW.
51
+ if SDAI_CONTRACT_ADDRESS == token_address:
52
+ return USD(
53
+ ContractERC4626OnGnosisChain(address=SDAI_CONTRACT_ADDRESS)
54
+ .convertToAssets(Token(1).as_wei)
55
+ .as_token.value
56
+ )
57
+ in_wei = get_buy_token_amount(
58
+ amount_wei=Token(1).as_wei,
59
+ sell_token=token_address,
60
+ buy_token=WRAPPED_XDAI_CONTRACT_ADDRESS,
61
+ )
62
+ in_token = in_wei.as_token
63
+ return USD(in_token.value)
@@ -9,7 +9,13 @@ from pydantic import BaseModel, ValidationError
9
9
  from scipy.optimize import newton
10
10
  from scipy.stats import entropy
11
11
 
12
- from prediction_market_agent_tooling.gtypes import DatetimeUTC, Probability, SecretStr
12
+ from prediction_market_agent_tooling.gtypes import (
13
+ DatetimeUTC,
14
+ OutcomeToken,
15
+ Probability,
16
+ SecretStr,
17
+ Token,
18
+ )
13
19
  from prediction_market_agent_tooling.loggers import logger
14
20
  from prediction_market_agent_tooling.markets.market_fees import MarketFees
15
21
 
@@ -182,11 +188,11 @@ def prob_uncertainty(prob: Probability) -> float:
182
188
 
183
189
 
184
190
  def calculate_sell_amount_in_collateral(
185
- shares_to_sell: float,
186
- holdings: float,
187
- other_holdings: float,
191
+ shares_to_sell: OutcomeToken,
192
+ holdings: OutcomeToken,
193
+ other_holdings: OutcomeToken,
188
194
  fees: MarketFees,
189
- ) -> float:
195
+ ) -> Token:
190
196
  """
191
197
  Computes the amount of collateral that needs to be sold to get `shares`
192
198
  amount of shares. Returns None if the amount can't be computed.
@@ -199,11 +205,11 @@ def calculate_sell_amount_in_collateral(
199
205
  raise ValueError("All share args must be greater than 0")
200
206
 
201
207
  def f(r: float) -> float:
202
- R = (r + fees.absolute) / (1 - fees.bet_proportion)
208
+ R = OutcomeToken((r + fees.absolute) / (1 - fees.bet_proportion))
203
209
  first_term = other_holdings - R
204
210
  second_term = holdings + shares_to_sell - R
205
211
  third_term = holdings * other_holdings
206
- return (first_term * second_term) - third_term
212
+ return ((first_term * second_term) - third_term).value
207
213
 
208
214
  amount_to_sell = newton(f, 0)
209
- return float(amount_to_sell) * 0.999999 # Avoid rounding errors
215
+ return Token(float(amount_to_sell) * 0.999999) # Avoid rounding errors
@@ -1,6 +1,6 @@
1
1
  import binascii
2
2
  import secrets
3
- from typing import Any, Optional, TypeVar
3
+ from typing import Any, Optional
4
4
 
5
5
  import base58
6
6
  import tenacity
@@ -11,7 +11,7 @@ from safe_eth.eth import EthereumClient
11
11
  from safe_eth.safe.safe import SafeV141
12
12
  from web3 import Web3
13
13
  from web3.constants import HASH_ZERO
14
- from web3.types import AccessList, AccessListEntry, Nonce, TxParams, TxReceipt, Wei
14
+ from web3.types import AccessList, AccessListEntry, Nonce, TxParams, TxReceipt
15
15
 
16
16
  from prediction_market_agent_tooling.gtypes import (
17
17
  ABI,
@@ -23,12 +23,13 @@ from prediction_market_agent_tooling.gtypes import (
23
23
  PrivateKey,
24
24
  private_key_type,
25
25
  xDai,
26
- xdai_type,
26
+ xDaiWei,
27
27
  )
28
28
  from prediction_market_agent_tooling.loggers import logger
29
+ from prediction_market_agent_tooling.tools._generic_value import _GenericValue
29
30
 
30
31
  ONE_NONCE = Nonce(1)
31
- ONE_XDAI = xdai_type(1)
32
+ ONE_XDAI = xDai(1)
32
33
  ZERO_BYTES = HexBytes(HASH_ZERO)
33
34
  NOT_REVERTED_ICASE_REGEX_PATTERN = "(?i)(?!.*reverted.*)"
34
35
 
@@ -42,17 +43,6 @@ def private_key_to_public_key(private_key: SecretStr) -> ChecksumAddress:
42
43
  return verify_address(account.address)
43
44
 
44
45
 
45
- def wei_to_xdai(wei: Wei) -> xDai:
46
- return xDai(float(Web3.from_wei(wei, "ether")))
47
-
48
-
49
- def xdai_to_wei(native: xDai) -> Wei:
50
- return Web3.to_wei(native, "ether")
51
-
52
-
53
- RemoveOrAddFractionAmountType = TypeVar("RemoveOrAddFractionAmountType", bound=int)
54
-
55
-
56
46
  def verify_address(address: str) -> ChecksumAddress:
57
47
  if not Web3.is_checksum_address(address):
58
48
  raise ValueError(
@@ -61,26 +51,6 @@ def verify_address(address: str) -> ChecksumAddress:
61
51
  return ChecksumAddress(HexAddress(HexStr(address)))
62
52
 
63
53
 
64
- def remove_fraction(
65
- amount: RemoveOrAddFractionAmountType, fraction: float
66
- ) -> RemoveOrAddFractionAmountType:
67
- """Removes the given fraction from the given integer-bounded amount and returns the value as an original type."""
68
- if 0 <= fraction <= 1:
69
- keep_percentage = 1 - fraction
70
- return type(amount)(int(amount * keep_percentage))
71
- raise ValueError(f"The given fraction {fraction!r} is not in the range [0, 1].")
72
-
73
-
74
- def add_fraction(
75
- amount: RemoveOrAddFractionAmountType, fraction: float
76
- ) -> RemoveOrAddFractionAmountType:
77
- """Adds the given fraction to the given integer-bounded amount and returns the value as an original type."""
78
- if 0 <= fraction <= 1:
79
- keep_percentage = 1 + fraction
80
- return type(amount)(int(amount * keep_percentage))
81
- raise ValueError(f"The given fraction {fraction!r} is not in the range [0, 1].")
82
-
83
-
84
54
  def check_tx_receipt(receipt: TxReceipt) -> None:
85
55
  if receipt["status"] != 1:
86
56
  raise ValueError(
@@ -88,7 +58,20 @@ def check_tx_receipt(receipt: TxReceipt) -> None:
88
58
  )
89
59
 
90
60
 
61
+ def unwrap_generic_value(value: Any) -> Any:
62
+ if value is None:
63
+ return None
64
+ if isinstance(value, _GenericValue):
65
+ return value.value
66
+ elif isinstance(value, list):
67
+ return [unwrap_generic_value(v) for v in value]
68
+ elif isinstance(value, dict):
69
+ return {k: unwrap_generic_value(v) for k, v in value.items()}
70
+ return value
71
+
72
+
91
73
  def parse_function_params(params: Optional[list[Any] | dict[str, Any]]) -> list[Any]:
74
+ params = unwrap_generic_value(params)
92
75
  if params is None:
93
76
  return []
94
77
  if isinstance(params, list):
@@ -172,8 +155,8 @@ def _prepare_tx_params(
172
155
  # Don't retry on `reverted` messages, as they would always fail again.
173
156
  # TODO: Check this, see https://github.com/gnosis/prediction-market-agent-tooling/issues/625.
174
157
  # retry=tenacity.retry_if_exception_message(match=NOT_REVERTED_ICASE_REGEX_PATTERN),
175
- wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 10)]),
176
- stop=tenacity.stop_after_attempt(9),
158
+ wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 6)]),
159
+ stop=tenacity.stop_after_attempt(5),
177
160
  after=lambda x: logger.debug(
178
161
  f"send_function_on_contract_tx failed, {x.attempt_number=}."
179
162
  ),
@@ -210,7 +193,7 @@ def send_function_on_contract_tx(
210
193
  # Don't retry on `reverted` messages, as they would always fail again.
211
194
  # TODO: Check this, see https://github.com/gnosis/prediction-market-agent-tooling/issues/625.
212
195
  # retry=tenacity.retry_if_exception_message(match=NOT_REVERTED_ICASE_REGEX_PATTERN),
213
- wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 10)]),
196
+ wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 6)]),
214
197
  stop=tenacity.stop_after_attempt(5),
215
198
  after=lambda x: logger.debug(
216
199
  f"send_function_on_contract_tx_using_safe failed, {x.attempt_number=}."
@@ -307,14 +290,14 @@ def send_xdai_to(
307
290
  web3: Web3,
308
291
  from_private_key: PrivateKey,
309
292
  to_address: ChecksumAddress,
310
- value: Wei,
293
+ value: xDaiWei,
311
294
  data_text: Optional[str | bytes] = None,
312
295
  tx_params: Optional[TxParams] = None,
313
296
  timeout: int = 180,
314
297
  ) -> TxReceipt:
315
298
  from_address = private_key_to_public_key(from_private_key)
316
299
 
317
- tx_params_new: TxParams = {"value": value, "to": to_address}
300
+ tx_params_new: TxParams = {"value": value.value, "to": to_address}
318
301
  if data_text is not None:
319
302
  tx_params_new["data"] = (
320
303
  Web3.to_bytes(text=data_text)
@@ -360,7 +343,7 @@ def byte32_to_ipfscidv0(hex: HexBytes) -> IPFSCIDVersion0:
360
343
 
361
344
 
362
345
  @tenacity.retry(
363
- wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 10)]),
346
+ wait=tenacity.wait_chain(*[tenacity.wait_fixed(n) for n in range(1, 6)]),
364
347
  stop=tenacity.stop_after_attempt(5),
365
348
  after=lambda x: logger.debug(
366
349
  f"get_receipt_block_timestamp failed, {x.attempt_number=}."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.61.1
3
+ Version: 0.61.1.dev462
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.13
@@ -56,6 +56,7 @@ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
56
56
  Requires-Dist: tavily-python (>=0.5.0,<0.6.0)
57
57
  Requires-Dist: tqdm (>=4.66.2,<5.0.0)
58
58
  Requires-Dist: typer (>=0.9.0,<1.0.0)
59
+ Requires-Dist: types-cachetools (>=5.5.0.20240820,<6.0.0.0)
59
60
  Requires-Dist: types-python-dateutil (>=2.9.0.20240906,<3.0.0.0)
60
61
  Requires-Dist: types-pytz (>=2024.1.0.20240203,<2025.0.0.0)
61
62
  Requires-Dist: types-requests (>=2.31.0.0,<3.0.0.0)
@@ -21,72 +21,73 @@ prediction_market_agent_tooling/benchmark/agents.py,sha256=B1-uWdyeN4GGKMWGK_-Cc
21
21
  prediction_market_agent_tooling/benchmark/benchmark.py,sha256=MqTiaaJ3cYiOLUVR7OyImLWxcEya3Rl5JyFYW-K0lwM,17097
22
22
  prediction_market_agent_tooling/benchmark/utils.py,sha256=D0MfUkVZllmvcU0VOurk9tcKT7JTtwwOp-63zuCBVuc,2880
23
23
  prediction_market_agent_tooling/config.py,sha256=So5l8KbgmzcCpxzzf13TNrEJPu_4iQnUDhzus6XRvSc,10151
24
- prediction_market_agent_tooling/deploy/agent.py,sha256=tMREXM2LwFsatbysCaNRvtCAyCNMAPMGgkkIEpCRj7g,25022
24
+ prediction_market_agent_tooling/deploy/agent.py,sha256=DW9edzHDX7QVURMGyOoIHTIvl3Itpbi8i0l5XPrEkbk,24974
25
25
  prediction_market_agent_tooling/deploy/agent_example.py,sha256=dIIdZashExWk9tOdyDjw87AuUcGyM7jYxNChYrVK2dM,1001
26
- prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=Y6Pb8OfSb6galRbfdNBvvNTgO-4dR2ybJ4o5GKJcMoM,12894
26
+ prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=v0t5Z2NWnDQ4xI28tg3STxWXg1xaDvToRWOiuky0qlw,12454
27
27
  prediction_market_agent_tooling/deploy/constants.py,sha256=M5ty8URipYMGe_G-RzxRydK3AFL6CyvmqCraJUrLBnE,82
28
28
  prediction_market_agent_tooling/deploy/gcp/deploy.py,sha256=CYUgnfy-9XVk04kkxA_5yp0GE9Mw5caYqlFUZQ2j3ks,3739
29
29
  prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py,sha256=OsPboCFGiZKsvGyntGZHwdqPlLTthITkNF5rJFvGgU8,2582
30
30
  prediction_market_agent_tooling/deploy/gcp/utils.py,sha256=WI2ycX1X-IlTRoNoG4ggFlRwPL28kwM9VGDFD2fePLo,5699
31
31
  prediction_market_agent_tooling/deploy/trade_interval.py,sha256=Xk9j45alQ_vrasGvsNyuW70XHIQ7wfvjoxNR3F6HYCw,1155
32
- prediction_market_agent_tooling/gtypes.py,sha256=G9KOKqYcxoKLv5Tfto4g5zq46FeIKxGl4RTArLIJn3I,2563
32
+ prediction_market_agent_tooling/gtypes.py,sha256=FKIv4Ca0BGp9_FXTGt_ipbrQvwvQoWf2TG59LG3rYuw,5469
33
33
  prediction_market_agent_tooling/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- prediction_market_agent_tooling/jobs/jobs_models.py,sha256=GOtsNm7URhzZM5fPY64r8m8Gz-sSsUhG1qmDoC7wGL8,2231
35
- prediction_market_agent_tooling/jobs/omen/omen_jobs.py,sha256=N0_jGDyXQeVXXlYg4oA_pOfqIjscHsLQbr0pBwFGoRo,5178
34
+ prediction_market_agent_tooling/jobs/jobs_models.py,sha256=8vYafsK1cqMWQtjBoq9rruroF84xAVD00vBTMWH6QMg,2166
35
+ prediction_market_agent_tooling/jobs/omen/omen_jobs.py,sha256=Pf6QxPXGyie-2l_wZUjaGPTjZTlpv50_JhP40mULBaU,5048
36
36
  prediction_market_agent_tooling/loggers.py,sha256=MvCkQSJL2_0yErNatqr81sJlc4aOgPzDp9VNrIhKUcc,4140
37
- prediction_market_agent_tooling/markets/agent_market.py,sha256=IoJ7EVj2kHtL4ht8Dq02ghj8OC0mEj5jKOI0jpcU1n0,12889
37
+ prediction_market_agent_tooling/markets/agent_market.py,sha256=jbKkXDFy13f9-Gx4KoF2JsfDudqQtrVMIxCh7tY_2L0,14662
38
38
  prediction_market_agent_tooling/markets/base_subgraph_handler.py,sha256=7RaYO_4qAmQ6ZGM8oPK2-CkiJfKmV9MxM-rJlduaecU,1971
39
- prediction_market_agent_tooling/markets/blockchain_utils.py,sha256=gZtQwF5UrOd_yOkNPLRbpMzUd55-Nsluy0858YYdPn8,2873
39
+ prediction_market_agent_tooling/markets/blockchain_utils.py,sha256=1iTU_D-Uof0E442qVUhSBCfc1rJNQpDcd3UjSnilYZg,2129
40
40
  prediction_market_agent_tooling/markets/categorize.py,sha256=jsoHWvZk9pU6n17oWSCcCxNNYVwlb_NXsZxKRI7vmsk,1301
41
- prediction_market_agent_tooling/markets/data_models.py,sha256=uUuCMoo-Q4ws-03e6iOJJbQtZmQ1JZLapXOeb97t95o,4386
41
+ prediction_market_agent_tooling/markets/data_models.py,sha256=cFjSPeT3W2YBWrVE6fvGHkwpdR6y4w91WftZsYrRKv0,4431
42
42
  prediction_market_agent_tooling/markets/manifold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- prediction_market_agent_tooling/markets/manifold/api.py,sha256=Fd0HYnstvvHO6AZkp1xiRlvCwQUc8kLR8DAj6PAZu0s,7297
44
- prediction_market_agent_tooling/markets/manifold/data_models.py,sha256=eiGS4rEkxseZNpEb2BICKnjF0qqgkQTMuUPbSe7_04I,6059
45
- prediction_market_agent_tooling/markets/manifold/manifold.py,sha256=qemQIwuFg4yf6egGWFp9lWpz1lXr02QiBeZ2akcT6II,5026
43
+ prediction_market_agent_tooling/markets/manifold/api.py,sha256=ih92UTZdSbmy6tTUgSCps_HqYQXpMSsfne5Np5znVEM,7217
44
+ prediction_market_agent_tooling/markets/manifold/data_models.py,sha256=bUI4b0N-gBid7wkzRECCgQ-Oco0-l9n1YI8xjLXvuhw,6274
45
+ prediction_market_agent_tooling/markets/manifold/manifold.py,sha256=P4m1lJ_RRzE4iozwdkrGbAJawDRAx2dCjgnEAyRJnUI,4749
46
46
  prediction_market_agent_tooling/markets/manifold/utils.py,sha256=_gGlWid0sPF127Omx5qQ1fq17frLInv0wdyXJBMGVzM,670
47
- prediction_market_agent_tooling/markets/market_fees.py,sha256=Q64T9uaJx0Vllt0BkrPmpMEz53ra-hMVY8Czi7CEP7s,1227
47
+ prediction_market_agent_tooling/markets/market_fees.py,sha256=NFLvpMIyfNzeGnN3ziXacrBAA7yeI_Psw-_BRwPTLAw,1289
48
48
  prediction_market_agent_tooling/markets/markets.py,sha256=OMADWd1C5wD7sVdcY_GVdxAFDndkU9kn6Ble4GXCw0c,4045
49
49
  prediction_market_agent_tooling/markets/metaculus/api.py,sha256=4TRPGytQQbSdf42DCg2M_JWYPAuNjqZ3eBqaQBLkNks,2736
50
50
  prediction_market_agent_tooling/markets/metaculus/data_models.py,sha256=FaBCTPPezXbBwZ9p791CiVgQ4vB696xnMbz9XVXmiVI,3267
51
51
  prediction_market_agent_tooling/markets/metaculus/metaculus.py,sha256=86TIx6cavEWc8Cv4KpZxSvwiSw9oFybXE3YB49pg-CA,4377
52
52
  prediction_market_agent_tooling/markets/omen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- prediction_market_agent_tooling/markets/omen/data_models.py,sha256=sfaOpNk6oFIzxYQzs9EehqAT_19IxYJy9pns-UTepOc,28934
54
- prediction_market_agent_tooling/markets/omen/omen.py,sha256=FUPGOKmhiKjLHLmfgHBM_MzoiKVWiPOu8SzRk-AKrNk,53339
53
+ prediction_market_agent_tooling/markets/omen/data_models.py,sha256=zJIp3i1ujRq0YpEtaotAiyNuz0N0AVwQgWZvgO8rDGU,29109
54
+ prediction_market_agent_tooling/markets/omen/omen.py,sha256=X6Uqr8s0tseDu2fPKDdFzR7U1zxmoxtiJz5zB2Nr--Q,51428
55
55
  prediction_market_agent_tooling/markets/omen/omen_constants.py,sha256=D9oflYKafLQiHYtB5sScMHqmXyzM8JP8J0yATmc4SQQ,233
56
- prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=EXqBlVivbmW8aBQ65O09X2xkyesHAop49GUl1tUffWA,28648
57
- prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=B4z9dPqtEfows8-1hkstBLLS_7X0L9z3CG41adyCYgg,10336
58
- prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py,sha256=dQyz1RR1MlQncb1Slq7tk1Maql-sbb5YYE_sDe26MYA,38711
56
+ prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=bCC9A7ZTJxMDJcPbl3jof6HcAGGHv1BrFq3RRWbkQ_c,28739
57
+ prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=Cyi9Ci-Z-K8WCZWVLs9oSuJC6qRobi_CpqDCno_5F-0,10238
58
+ prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py,sha256=6N6RJ-noC7gkoDBeYdBSXp1QI3u4iftBLu8Dtew9yU4,39017
59
59
  prediction_market_agent_tooling/markets/polymarket/api.py,sha256=UZ4_TG8ceb9Y-qgsOKs8Qiv8zDt957QkT8IX2c83yqo,4800
60
- prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=Fd5PI5y3mJM8VHExBhWFWEnuuIKxQmIAXgBuoPDvNjw,4341
61
- prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=VZhVccTApygSKMmy6Au2G02JCJOKJnR_oVeKlaesuSg,12548
62
- prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=NRoZK71PtH8kkangMqme7twcAXhRJSSabbmOir-UnAI,3418
60
+ prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=utGN-Lhjsa-RHX5WW_jcqgWXtRkEZn0JemwYZkt3Lng,4344
61
+ prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=LVEsNw2nUx5poiU1m803NNqG5-fs8-MODQRyGLqy4mE,12585
62
+ prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=A4TnNVLOdlOGBoxHV_KxIDfkziUiw4vqCTOFfDXFpAY,3319
63
63
  prediction_market_agent_tooling/markets/polymarket/utils.py,sha256=8kTeVjXPcXC6DkDvWYsZQLY7x8DS6CEp_yznSEazsNU,2037
64
- prediction_market_agent_tooling/markets/seer/data_models.py,sha256=HGJv4XSvCxXLLC5VwxZTZ5E4w_bWGKv50fM_6ssloxI,8203
65
- prediction_market_agent_tooling/markets/seer/seer.py,sha256=r21sXj_4_oIG2L1N5l56vEYGI_q2RGem_6G-Sixkbck,12954
66
- prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=E7CYAKZiK6cg3dyj1kJuIPKSYYUft98F64shF5S0g4s,2730
67
- prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=aycOvJ1_f5m7xzd_Hlx98_-VeM869IY9mTzJ2zn_VEM,8577
64
+ prediction_market_agent_tooling/markets/seer/data_models.py,sha256=jk7sIA7dwPbwK2y7xx9PbCp2i8OQ1hCyv8Qse42jzss,8172
65
+ prediction_market_agent_tooling/markets/seer/seer.py,sha256=WBMKNICykhzwpEgExbnig8MlCGogE2p4E0DagK8yDbg,13119
66
+ prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=XOEhaL5wrKEg7P-xg1mW5mJXVfeALuflJOvqAeuwrWM,2717
67
+ prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=o5Sh_6bpiJQb1KnW3rf4cBqN2PM8IdggQARdBeDMvIE,8725
68
68
  prediction_market_agent_tooling/monitor/financial_metrics/financial_metrics.py,sha256=fjIgjDIx5MhH5mwf7S0cspLOOSU3elYLhGYoIiM26mU,2746
69
69
  prediction_market_agent_tooling/monitor/markets/manifold.py,sha256=TS4ERwTfQnot8dhekNyVNhJYf5ysYsjF-9v5_kM3aVI,3334
70
70
  prediction_market_agent_tooling/monitor/markets/metaculus.py,sha256=LOnyWWBFdg10-cTWdb76nOsNjDloO8OfMT85GBzRCFI,1455
71
71
  prediction_market_agent_tooling/monitor/markets/omen.py,sha256=EqiJYTvDbSu7fBpbrBmCuf3fc6GHr4MxWrBGa69MIyc,3305
72
72
  prediction_market_agent_tooling/monitor/markets/polymarket.py,sha256=wak8o4BYaGbLpshQD12OrsqNABdanyID6ql95lEG2io,1870
73
- prediction_market_agent_tooling/monitor/monitor.py,sha256=4jw_1aDUoWi9kTET8usy_k5hwhANR8m522aAjHWmvMI,14161
73
+ prediction_market_agent_tooling/monitor/monitor.py,sha256=yvSXwV-3DSAm3vsFZnFC9jEQzlaB9KUOxI6pOyNKGQk,14147
74
74
  prediction_market_agent_tooling/monitor/monitor_app.py,sha256=-_6w_ZvQ-Ad5qaeuo7NKTXUOOZ_6OrR8jMe25BGOY4k,4615
75
75
  prediction_market_agent_tooling/monitor/monitor_settings.py,sha256=Xiozs3AsufuJ04JOe1vjUri-IAMWHjjmc2ugGGiHNH4,947
76
76
  prediction_market_agent_tooling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- prediction_market_agent_tooling/tools/balances.py,sha256=7lenJ0XEdZQHRJA89vdeLNhzCPJJA4x_Id2CS3IjIv0,1076
78
- prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py,sha256=TKVF8qZhxgz-4TTEHr7iVLfpurIhuji38qLc8CYaiXA,4662
79
- prediction_market_agent_tooling/tools/betting_strategies/market_moving.py,sha256=Ej2s9fiG_iLWvgj1o5rtxN7NR4jmq8Y9syP5PCGIx6U,5270
77
+ prediction_market_agent_tooling/tools/_generic_value.py,sha256=7mRbslShqtQYKlYtFHTWB68cXmDAgy8TW8vTBlbvQXg,9969
78
+ prediction_market_agent_tooling/tools/balances.py,sha256=9MpTTnquwjflTYYo1e0w48iOTceBuQV_6PfvywrTlFk,989
79
+ prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py,sha256=cui0wc7InSG-GdFvrJ3ypxAvHBTnv7UAFR6QOm6pI8A,4813
80
+ prediction_market_agent_tooling/tools/betting_strategies/market_moving.py,sha256=uG11UAzM6C0ZKTS7SyT1iVsTs6O13y8_o8RAtm29HFg,5432
80
81
  prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py,sha256=-FUSuQQgjcWSSnoFxnlAyTeilY6raJABJVM2QKkFqAY,438
81
82
  prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py,sha256=THMXwFlskvzbjnX_OiYtDSzI8XVFyULWfP2525_9UGc,429
82
- prediction_market_agent_tooling/tools/betting_strategies/utils.py,sha256=kpIb-ci67Vc1Yqqaa-_S4OUkbhWSIYog4_Iwp69HU_k,97
83
+ prediction_market_agent_tooling/tools/betting_strategies/utils.py,sha256=7CwImollCwQlA7hVsRdaorU9iW-1Ez7HKThNC4Zy2vs,155
83
84
  prediction_market_agent_tooling/tools/caches/db_cache.py,sha256=dB8LNs2JvVRaFCeAKRmIQRwiirsMgtL31he8051wM-g,11431
84
85
  prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjqeAebu5T7ftRnlkxiL02IC-MxCfDB80x7w,1506
85
86
  prediction_market_agent_tooling/tools/caches/serializers.py,sha256=vFDx4fsPxclXp2q0sv27j4al_M_Tj9aR2JJP-xNHQXA,2151
86
- prediction_market_agent_tooling/tools/contract.py,sha256=XM7v6Wmi5OXPtn0SS__27MhlaBHGJG3VEeQFSIBJo6U,20963
87
+ prediction_market_agent_tooling/tools/contract.py,sha256=K9i7J4F7gt6saoKT3tx5S-fPYVh-eCliJpg2T1eNBWo,20998
87
88
  prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
88
- prediction_market_agent_tooling/tools/cow/cow_manager.py,sha256=WK6Uk722VotjLHtxDPHxvwBrWVb3rvTegg_3w58ehwU,3869
89
- prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=M3zQohgAzy_LETnf9rKtS1L9rr7FP92CH6v0G2laZkM,4435
89
+ prediction_market_agent_tooling/tools/cow/cow_manager.py,sha256=F6T4SlKDQ06nwz3W2wVBr0VqgVvdb4Wphf-kI31W4ms,3792
90
+ prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=qhtsEd7a9qAV3zKgSdAyOFZOLAiNOL632JgYAPqazUY,4399
90
91
  prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
91
92
  prediction_market_agent_tooling/tools/datetime_utc.py,sha256=8_WackjtjC8zHXrhQFTGQ6e6Fz_6llWoKR4CSFvIv9I,2766
92
93
  prediction_market_agent_tooling/tools/db/db_manager.py,sha256=GtzHH1NLl8HwqC8Z7s6eTlIQXuV0blxfaV2PeQrBnfQ,3013
@@ -99,26 +100,28 @@ prediction_market_agent_tooling/tools/ipfs/ipfs_handler.py,sha256=CTTMfTvs_8PH4k
99
100
  prediction_market_agent_tooling/tools/is_invalid.py,sha256=TAHQXiiusAU45xJ11ZyEP7PnEfcjfzVG7qHRbsHiAd0,5335
100
101
  prediction_market_agent_tooling/tools/is_predictable.py,sha256=qVd6zqay2Dg2fyeAuZvAFqSHMg71TcPfCZULsVk2XvA,6797
101
102
  prediction_market_agent_tooling/tools/langfuse_.py,sha256=jI_4ROxqo41CCnWGS1vN_AeDVhRzLMaQLxH3kxDu3L8,1153
102
- prediction_market_agent_tooling/tools/langfuse_client_utils.py,sha256=IQboU9EPl4QEIo0poNylomevuVntpPpmkuNCzZl1Qdg,6058
103
+ prediction_market_agent_tooling/tools/langfuse_client_utils.py,sha256=636bHCxwfWSbQYQQ0ipeyJUDXCbAC1zP6ZqzeLL2GJk,6582
103
104
  prediction_market_agent_tooling/tools/omen/reality_accuracy.py,sha256=M1SF7iSW1gVlQSTskdVFTn09uPLST23YeipVIWj54io,2236
104
- prediction_market_agent_tooling/tools/omen/sell_positions.py,sha256=hZCxXpcACO95DyiZ5oLFp982N0erZg4wccdSUKTgRlA,2307
105
+ prediction_market_agent_tooling/tools/omen/sell_positions.py,sha256=7b2qHGQ_2V3ke_UTR9wQeJW88z5ub1GTre9Y_zd4e9E,2387
105
106
  prediction_market_agent_tooling/tools/parallelism.py,sha256=6Gou0hbjtMZrYvxjTDFUDZuxmE2nqZVbb6hkg1hF82A,1022
106
107
  prediction_market_agent_tooling/tools/relevant_news_analysis/data_models.py,sha256=95l84aztFaxcRLLcRQ46yKJbIlOEuDAbIGLouyliDzA,1316
107
108
  prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_analysis.py,sha256=CddJem7tk15NAudJDwmuL8znTycbR-YI8kTNtd3LzG8,5474
108
109
  prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_cache.py,sha256=kNWq92T11Knb9mYBZlMiZUzOpKgCd-5adanylQUMRJA,3085
109
- prediction_market_agent_tooling/tools/safe.py,sha256=9vxGGLvSPnfy-sxUFDpBTe8omqpGXP7MzvGPp6bRxrU,5197
110
+ prediction_market_agent_tooling/tools/safe.py,sha256=o477HGPQv7X_eDoOeYoELCHryiq1_102y_JVhGEPDXw,5165
110
111
  prediction_market_agent_tooling/tools/singleton.py,sha256=CiIELUiI-OeS7U7eeHEt0rnVhtQGzwoUdAgn_7u_GBM,729
111
112
  prediction_market_agent_tooling/tools/streamlit_user_login.py,sha256=NXEqfjT9Lc9QtliwSGRASIz1opjQ7Btme43H4qJbzgE,3010
112
113
  prediction_market_agent_tooling/tools/tavily/tavily_models.py,sha256=5ldQs1pZe6uJ5eDAuP4OLpzmcqYShlIV67kttNFvGS0,342
113
114
  prediction_market_agent_tooling/tools/tavily/tavily_search.py,sha256=pPs0qZNfJ7G-1ajfz0iaWOBQyiC0TbcShfrW8T39jtg,3859
114
- prediction_market_agent_tooling/tools/tokens/auto_deposit.py,sha256=o8_ERfPL-ps9FLvH5vgdiSRJQ4dZONJw9KK9sHgeP2I,6390
115
- prediction_market_agent_tooling/tools/tokens/auto_withdraw.py,sha256=25Y0H1p0hSD3gWShKPcJ5BckQc3nr_hOAvImOFODC0w,3160
116
- prediction_market_agent_tooling/tools/tokens/main_token.py,sha256=7JPgVF4RbiFzLDQVBkBuC--eUoM1AYOcJ4VygbmK5yo,822
115
+ prediction_market_agent_tooling/tools/tokens/auto_deposit.py,sha256=M2ozvdLZyX0R3WftrSYT2SNjz-Af-p9huEihgsUUkYA,6567
116
+ prediction_market_agent_tooling/tools/tokens/auto_withdraw.py,sha256=nV9jSUt1ydceDj03cTwdyrJs8kFGqz9z6YcvTVUaNg4,2682
117
+ prediction_market_agent_tooling/tools/tokens/main_token.py,sha256=1rbwpdCusPgQIVFuo3m00nBZ_b2lCAoFVm67i-YDcEw,812
118
+ prediction_market_agent_tooling/tools/tokens/token_utils.py,sha256=zwV-jGFkPJu4-IslXOUqnsNQjzh_9CrfkruDQL0dq0c,1381
119
+ prediction_market_agent_tooling/tools/tokens/usd.py,sha256=0GU7RiWGlu7yDctGeWJeLsy8uYLcpI1JyLWWqFt0QWE,2179
117
120
  prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
118
- prediction_market_agent_tooling/tools/utils.py,sha256=jLG4nbEoIzzJiZ4RgMx4Q969Zdl0p0s63p8uET_0Fuw,6440
119
- prediction_market_agent_tooling/tools/web3_utils.py,sha256=3wfqNxvMn44ivweFRoeKNVb9QRtFd7kFtp7VUY5juEE,12862
120
- prediction_market_agent_tooling-0.61.1.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
121
- prediction_market_agent_tooling-0.61.1.dist-info/METADATA,sha256=D-0HAHmdDruqGK77Sspw6a8Y9WFnqeqncwenPgUwhf8,8629
122
- prediction_market_agent_tooling-0.61.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
123
- prediction_market_agent_tooling-0.61.1.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
124
- prediction_market_agent_tooling-0.61.1.dist-info/RECORD,,
121
+ prediction_market_agent_tooling/tools/utils.py,sha256=7P1veh76ni-0EfT7MlRlLE9hHUU498UOx70Lwxe7UaM,6536
122
+ prediction_market_agent_tooling/tools/web3_utils.py,sha256=eYCc1iWAVtqDKUPTwnMUHuYolPdwh_OTiM3-AdRgDp4,12198
123
+ prediction_market_agent_tooling-0.61.1.dev462.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
124
+ prediction_market_agent_tooling-0.61.1.dev462.dist-info/METADATA,sha256=HMaLAX2VekKozaAuhfEwhxF4Ieh_UDfRgJ4LDu_lisM,8696
125
+ prediction_market_agent_tooling-0.61.1.dev462.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
126
+ prediction_market_agent_tooling-0.61.1.dev462.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
127
+ prediction_market_agent_tooling-0.61.1.dev462.dist-info/RECORD,,