prediction-market-agent-tooling 0.65.7__py3-none-any.whl → 0.65.10__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 (23) hide show
  1. prediction_market_agent_tooling/abis/swapr_router.abi.json +634 -0
  2. prediction_market_agent_tooling/benchmark/benchmark.py +1 -1
  3. prediction_market_agent_tooling/deploy/agent.py +3 -10
  4. prediction_market_agent_tooling/markets/agent_market.py +4 -0
  5. prediction_market_agent_tooling/markets/manifold/data_models.py +5 -3
  6. prediction_market_agent_tooling/markets/manifold/manifold.py +17 -1
  7. prediction_market_agent_tooling/markets/manifold/utils.py +8 -2
  8. prediction_market_agent_tooling/markets/markets.py +1 -47
  9. prediction_market_agent_tooling/markets/omen/omen.py +9 -0
  10. prediction_market_agent_tooling/markets/omen/omen_resolving.py +23 -9
  11. prediction_market_agent_tooling/markets/seer/data_models.py +19 -0
  12. prediction_market_agent_tooling/markets/seer/seer.py +96 -17
  13. prediction_market_agent_tooling/markets/seer/seer_contracts.py +40 -1
  14. prediction_market_agent_tooling/markets/seer/swap_pool_handler.py +96 -0
  15. prediction_market_agent_tooling/tools/cow/cow_order.py +151 -25
  16. prediction_market_agent_tooling/tools/cow/models.py +16 -0
  17. prediction_market_agent_tooling/tools/utils.py +10 -0
  18. prediction_market_agent_tooling/tools/web3_utils.py +10 -4
  19. {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/METADATA +1 -1
  20. {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/RECORD +23 -20
  21. {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/LICENSE +0 -0
  22. {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/WHEEL +0 -0
  23. {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import typing as t
2
3
  from datetime import timedelta
3
4
 
4
5
  import httpx
@@ -8,11 +9,17 @@ from cowdao_cowpy.common.api.errors import UnexpectedResponseError
8
9
  from cowdao_cowpy.common.chains import Chain
9
10
  from cowdao_cowpy.common.config import SupportedChainId
10
11
  from cowdao_cowpy.common.constants import CowContractAddress
12
+ from cowdao_cowpy.contracts.domain import domain
13
+ from cowdao_cowpy.contracts.sign import SigningScheme, sign_order_cancellations
11
14
  from cowdao_cowpy.cow.swap import CompletedOrder, get_order_quote, swap_tokens
12
15
  from cowdao_cowpy.order_book.api import OrderBookApi
13
16
  from cowdao_cowpy.order_book.config import Envs, OrderBookAPIConfigFactory
14
17
  from cowdao_cowpy.order_book.generated.model import (
18
+ UID,
15
19
  Address,
20
+ EcdsaSignature,
21
+ EcdsaSigningScheme,
22
+ OrderCancellations,
16
23
  OrderMetaData,
17
24
  OrderQuoteRequest,
18
25
  OrderQuoteResponse,
@@ -23,7 +30,9 @@ from cowdao_cowpy.order_book.generated.model import (
23
30
  OrderStatus,
24
31
  TokenAmount,
25
32
  )
26
- from cowdao_cowpy.subgraph.client import BaseModel
33
+ from eth_account import Account
34
+ from eth_account.signers.local import LocalAccount
35
+ from eth_keys.datatypes import PrivateKey as eth_keys_PrivateKey
27
36
  from tenacity import (
28
37
  retry_if_not_exception_type,
29
38
  stop_after_attempt,
@@ -33,20 +42,22 @@ from tenacity import (
33
42
  from web3 import Web3
34
43
 
35
44
  from prediction_market_agent_tooling.config import APIKeys
36
- from prediction_market_agent_tooling.gtypes import ChecksumAddress, HexBytes, Wei
45
+ from prediction_market_agent_tooling.gtypes import (
46
+ ChecksumAddress,
47
+ HexBytes,
48
+ HexStr,
49
+ PrivateKey,
50
+ Wei,
51
+ )
37
52
  from prediction_market_agent_tooling.loggers import logger
38
53
  from prediction_market_agent_tooling.markets.omen.cow_contracts import (
39
54
  CowGPv2SettlementContract,
40
55
  )
41
56
  from prediction_market_agent_tooling.tools.contract import ContractERC20OnGnosisChain
57
+ from prediction_market_agent_tooling.tools.cow.models import MinimalisticToken, Order
42
58
  from prediction_market_agent_tooling.tools.utils import check_not_none, utcnow
43
59
 
44
60
 
45
- class MinimalisticToken(BaseModel):
46
- sellToken: ChecksumAddress
47
- buyToken: ChecksumAddress
48
-
49
-
50
61
  class OrderStatusError(Exception):
51
62
  pass
52
63
 
@@ -157,21 +168,12 @@ def get_buy_token_amount_else_raise(
157
168
  return Wei(order_quote.quote.buyAmount.root)
158
169
 
159
170
 
160
- @tenacity.retry(
161
- stop=stop_after_attempt(3),
162
- wait=wait_fixed(1),
163
- retry=tenacity.retry_if_not_exception_type((TimeoutError, OrderStatusError)),
164
- after=lambda x: logger.debug(f"swap_tokens_waiting failed, {x.attempt_number=}."),
165
- )
166
- def swap_tokens_waiting(
167
- amount_wei: Wei,
168
- sell_token: ChecksumAddress,
169
- buy_token: ChecksumAddress,
171
+ def handle_allowance(
170
172
  api_keys: APIKeys,
171
- chain: Chain = Chain.GNOSIS,
172
- env: Envs = "prod",
173
+ sell_token: ChecksumAddress,
174
+ amount_wei: Wei,
173
175
  web3: Web3 | None = None,
174
- ) -> OrderMetaData:
176
+ ) -> None:
175
177
  # Approve the CoW Swap Vault Relayer to get the sell token only if allowance not sufficient.
176
178
  for_address = Web3.to_checksum_address(CowContractAddress.VAULT_RELAYER.value)
177
179
  current_allowance = ContractERC20OnGnosisChain(address=sell_token).allowance(
@@ -187,24 +189,47 @@ def swap_tokens_waiting(
187
189
  web3=web3,
188
190
  )
189
191
 
192
+
193
+ @tenacity.retry(
194
+ stop=stop_after_attempt(3),
195
+ wait=wait_fixed(1),
196
+ retry=tenacity.retry_if_not_exception_type((TimeoutError, OrderStatusError)),
197
+ after=lambda x: logger.debug(f"swap_tokens_waiting failed, {x.attempt_number=}."),
198
+ )
199
+ def swap_tokens_waiting(
200
+ amount_wei: Wei,
201
+ sell_token: ChecksumAddress,
202
+ buy_token: ChecksumAddress,
203
+ api_keys: APIKeys,
204
+ chain: Chain = Chain.GNOSIS,
205
+ env: Envs = "prod",
206
+ web3: Web3 | None = None,
207
+ wait_order_complete: bool = True,
208
+ ) -> tuple[OrderMetaData | None, CompletedOrder]:
190
209
  # CoW library uses async, so we need to wrap the call in asyncio.run for us to use it.
191
210
  return asyncio.run(
192
211
  swap_tokens_waiting_async(
193
- amount_wei, sell_token, buy_token, api_keys, chain, env
212
+ amount_wei,
213
+ sell_token,
214
+ buy_token,
215
+ api_keys,
216
+ chain,
217
+ env,
218
+ web3=web3,
219
+ wait_order_complete=wait_order_complete,
194
220
  )
195
221
  )
196
222
 
197
223
 
198
- async def swap_tokens_waiting_async(
224
+ async def place_swap_order(
225
+ api_keys: APIKeys,
199
226
  amount_wei: Wei,
200
227
  sell_token: ChecksumAddress,
201
228
  buy_token: ChecksumAddress,
202
- api_keys: APIKeys,
203
229
  chain: Chain,
204
230
  env: Envs,
205
- timeout: timedelta = timedelta(seconds=120),
206
231
  slippage_tolerance: float = 0.01,
207
- ) -> OrderMetaData:
232
+ ) -> CompletedOrder:
208
233
  account = api_keys.get_account()
209
234
  safe_address = api_keys.safe_address_checksum
210
235
 
@@ -224,6 +249,12 @@ async def swap_tokens_waiting_async(
224
249
  logger.info(f"Safe is used. Signing the order after its creation.")
225
250
  await sign_safe_cow_swap(api_keys, order, chain, env)
226
251
 
252
+ return order
253
+
254
+
255
+ async def wait_for_order_completion(
256
+ order: CompletedOrder, timeout: timedelta = timedelta(seconds=120)
257
+ ) -> OrderMetaData:
227
258
  start_time = utcnow()
228
259
 
229
260
  while True:
@@ -253,6 +284,36 @@ async def swap_tokens_waiting_async(
253
284
  await asyncio.sleep(3.14)
254
285
 
255
286
 
287
+ async def swap_tokens_waiting_async(
288
+ amount_wei: Wei,
289
+ sell_token: ChecksumAddress,
290
+ buy_token: ChecksumAddress,
291
+ api_keys: APIKeys,
292
+ chain: Chain,
293
+ env: Envs,
294
+ timeout: timedelta = timedelta(seconds=120),
295
+ slippage_tolerance: float = 0.01,
296
+ web3: Web3 | None = None,
297
+ wait_order_complete: bool = True,
298
+ ) -> tuple[OrderMetaData | None, CompletedOrder]:
299
+ handle_allowance(
300
+ api_keys=api_keys, sell_token=sell_token, amount_wei=amount_wei, web3=web3
301
+ )
302
+ order = await place_swap_order(
303
+ api_keys=api_keys,
304
+ amount_wei=amount_wei,
305
+ sell_token=sell_token,
306
+ buy_token=buy_token,
307
+ chain=chain,
308
+ env=env,
309
+ slippage_tolerance=slippage_tolerance,
310
+ )
311
+ if wait_order_complete:
312
+ order_metadata = await wait_for_order_completion(order=order, timeout=timeout)
313
+ return order_metadata, order
314
+ return None, order
315
+
316
+
256
317
  @tenacity.retry(
257
318
  stop=tenacity.stop_after_attempt(3),
258
319
  wait=tenacity.wait_fixed(1),
@@ -292,3 +353,68 @@ def get_trades_by_owner(
292
353
  )
293
354
  response.raise_for_status()
294
355
  return [MinimalisticToken.model_validate(i) for i in response.json()]
356
+
357
+
358
+ @tenacity.retry(
359
+ stop=stop_after_attempt(3),
360
+ wait=wait_fixed(1),
361
+ after=lambda x: logger.debug(f"get_orders_by_owner failed, {x.attempt_number=}."),
362
+ )
363
+ def get_orders_by_owner(
364
+ owner: ChecksumAddress,
365
+ ) -> list[Order]:
366
+ """Retrieves all orders with pagination."""
367
+ items = paginate_endpoint(f"https://api.cow.fi/xdai/api/v1/account/{owner}/orders")
368
+ return [Order.model_validate(i) for i in items]
369
+
370
+
371
+ @tenacity.retry(
372
+ stop=stop_after_attempt(3),
373
+ wait=wait_fixed(1),
374
+ after=lambda x: logger.debug(f"paginate_endpoint failed, {x.attempt_number=}."),
375
+ )
376
+ def paginate_endpoint(url: str, limit: int = 1000) -> t.Any:
377
+ offset = 0
378
+ results = []
379
+
380
+ while True:
381
+ response = httpx.get(url, params={"offset": offset, "limit": limit})
382
+ response.raise_for_status()
383
+ items = response.json()
384
+ if not items:
385
+ break
386
+
387
+ results.extend(items)
388
+ offset += limit
389
+
390
+ return results
391
+
392
+
393
+ async def cancel_order(
394
+ order_uids: t.Sequence[str],
395
+ api_keys: APIKeys,
396
+ chain: Chain = Chain.GNOSIS,
397
+ env: Envs = "prod",
398
+ ) -> None:
399
+ """Cancels orders that were created by the user corresponding to the api_keys.."""
400
+ order_domain = domain(
401
+ chain=chain, verifying_contract=CowContractAddress.SETTLEMENT_CONTRACT.value
402
+ )
403
+ owner = build_account(api_keys.bet_from_private_key)
404
+ order_signature = sign_order_cancellations(
405
+ order_domain, list(order_uids), owner, SigningScheme.EIP712
406
+ )
407
+ oc = OrderCancellations(
408
+ signature=EcdsaSignature(root=order_signature.data),
409
+ orderUids=[UID(root=order_uid) for order_uid in order_uids],
410
+ signingScheme=EcdsaSigningScheme.eip712,
411
+ )
412
+ order_book_api = get_order_book_api(env, chain)
413
+ await order_book_api.delete_order(orders_cancelation=oc)
414
+
415
+
416
+ def build_account(private_key: PrivateKey) -> LocalAccount:
417
+ return LocalAccount(
418
+ key=eth_keys_PrivateKey(HexBytes(HexStr(private_key.get_secret_value()))),
419
+ account=Account.from_key(private_key.get_secret_value()),
420
+ )
@@ -0,0 +1,16 @@
1
+ from pydantic import BaseModel
2
+
3
+ from prediction_market_agent_tooling.gtypes import ChecksumAddress
4
+ from prediction_market_agent_tooling.tools.datetime_utc import DatetimeUTC
5
+
6
+
7
+ class MinimalisticToken(BaseModel):
8
+ sellToken: ChecksumAddress
9
+ buyToken: ChecksumAddress
10
+
11
+
12
+ class Order(BaseModel):
13
+ uid: str
14
+ sellToken: str
15
+ buyToken: str
16
+ creationDate: DatetimeUTC
@@ -9,6 +9,7 @@ import requests
9
9
  from pydantic import BaseModel, ValidationError
10
10
  from scipy.optimize import newton
11
11
  from scipy.stats import entropy
12
+ from tenacity import RetryError
12
13
 
13
14
  from prediction_market_agent_tooling.gtypes import (
14
15
  CollateralToken,
@@ -230,3 +231,12 @@ def calculate_sell_amount_in_collateral(
230
231
 
231
232
  amount_to_sell = newton(f, 0)
232
233
  return CollateralToken(float(amount_to_sell) * 0.999999) # Avoid rounding errors
234
+
235
+
236
+ def extract_error_from_retry_error(e: BaseException | RetryError) -> BaseException:
237
+ if (
238
+ isinstance(e, RetryError)
239
+ and (exp_from_retry := e.last_attempt.exception()) is not None
240
+ ):
241
+ e = exp_from_retry
242
+ return e
@@ -67,17 +67,23 @@ def unwrap_generic_value(value: Any) -> Any:
67
67
  return value.value
68
68
  elif isinstance(value, list):
69
69
  return [unwrap_generic_value(v) for v in value]
70
+ elif isinstance(value, tuple):
71
+ return tuple(unwrap_generic_value(v) for v in value)
70
72
  elif isinstance(value, dict):
71
73
  return {k: unwrap_generic_value(v) for k, v in value.items()}
72
74
  return value
73
75
 
74
76
 
75
- def parse_function_params(params: Optional[list[Any] | dict[str, Any]]) -> list[Any]:
77
+ def parse_function_params(
78
+ params: Optional[list[Any] | tuple[Any] | dict[str, Any]]
79
+ ) -> list[Any] | tuple[Any]:
76
80
  params = unwrap_generic_value(params)
77
81
  if params is None:
78
82
  return []
79
83
  if isinstance(params, list):
80
- return params
84
+ return [unwrap_generic_value(i) for i in params]
85
+ if isinstance(params, tuple):
86
+ return tuple(unwrap_generic_value(i) for i in params)
81
87
  if isinstance(params, dict):
82
88
  return list(params.values())
83
89
  raise ValueError(f"Invalid type for function parameters: {type(params)}")
@@ -117,8 +123,8 @@ def prepare_tx(
117
123
 
118
124
  # Build the transaction.
119
125
  function_call = contract.functions[function_name](*parse_function_params(function_params)) # type: ignore # TODO: Fix Mypy, as this works just OK.
120
- tx_params_new = function_call.build_transaction(tx_params_new)
121
- return tx_params_new
126
+ built_tx_params: TxParams = function_call.build_transaction(tx_params_new)
127
+ return built_tx_params
122
128
 
123
129
 
124
130
  def _prepare_tx_params(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.65.7
3
+ Version: 0.65.10
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.13
@@ -18,13 +18,14 @@ prediction_market_agent_tooling/abis/ownable_erc721.abi.json,sha256=9sxm588MAQmq
18
18
  prediction_market_agent_tooling/abis/proxy.abi.json,sha256=h24GXZ6Q0bSZlwh7zOv0EiDvbqUz_PHtWfKHTyPJ1w4,644
19
19
  prediction_market_agent_tooling/abis/seer_gnosis_router.abi.json,sha256=DyADzOXhy9MDS31ReVrG7ibpWbw1jVy19nExZ80xfRY,6839
20
20
  prediction_market_agent_tooling/abis/seer_market_factory.abi.json,sha256=g7RVxZVUWlTXIgTV2W6kO4twQM909Qv58zAr7Dk4XIc,13553
21
+ prediction_market_agent_tooling/abis/swapr_router.abi.json,sha256=Y1wK20D1-zdbdlzkzV0BHY-HXMJrog6dgSHEzKzrQOU,13346
21
22
  prediction_market_agent_tooling/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
23
  prediction_market_agent_tooling/benchmark/agents.py,sha256=zC5tUM6pPTWtqSddOOSYV_fxHYmZb5uGAb4Ru87Tah8,4221
23
- prediction_market_agent_tooling/benchmark/benchmark.py,sha256=KwMZzwise3sgmhdjw7xCgHMmjKHdHqQC-zc9untOLWg,17832
24
+ prediction_market_agent_tooling/benchmark/benchmark.py,sha256=hpIpjjePDFTLhK841sGftFbhu8bDDZr28KO4VTneewM,17837
24
25
  prediction_market_agent_tooling/benchmark/utils.py,sha256=xQd7p9H08-OtN3iC4QT2i9bkUTmrXa6rxGXeg9yMhgU,2986
25
26
  prediction_market_agent_tooling/chains.py,sha256=1qQstoqXMwqwM7k-KH7MjMz8Ei-D83KZByvDbCZpAxs,116
26
27
  prediction_market_agent_tooling/config.py,sha256=-kJfdDr-m0R-tGZ1KRI-hJJk0mXDt142CAlvwaJ2N2I,11778
27
- prediction_market_agent_tooling/deploy/agent.py,sha256=ddFvBUhB_WVWtuUGkiZNKBME4Hd3AdquVv588c1rpu0,25602
28
+ prediction_market_agent_tooling/deploy/agent.py,sha256=ONuXYe9zRO37lzume5z-2hPKTBrCljBg5OD_38gNRc0,25289
28
29
  prediction_market_agent_tooling/deploy/agent_example.py,sha256=yS1fWkHynr9MYGNOM2WsCnRWLPaffY4bOc6bIudrdd4,1377
29
30
  prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=YYayGjTKW02d3BUavJ8M3NmFk41oldEM3FHbwppZGRM,17184
30
31
  prediction_market_agent_tooling/deploy/constants.py,sha256=Qe9cllgsGMkecfmbhXoFkPxuJyG6ATsrT87RF9SmPWM,249
@@ -38,41 +39,42 @@ prediction_market_agent_tooling/jobs/jobs_models.py,sha256=DoZ9dlvVhpNrnINiR1uy6
38
39
  prediction_market_agent_tooling/jobs/omen/omen_jobs.py,sha256=qbTZ9HVvu_iP4dDxuvOZxAp6JsRKejvEW2YDYCnRmd4,5039
39
40
  prediction_market_agent_tooling/loggers.py,sha256=kFZ1BrI8hvWgZO1vzptFnYiOEDx9Ozs86DA9yF3bSgY,5212
40
41
  prediction_market_agent_tooling/logprobs_parser.py,sha256=DBlBQtWX8_URXhzTU3YWIPa76Zx3QDHlx1ARqbgJsVI,5008
41
- prediction_market_agent_tooling/markets/agent_market.py,sha256=smKuMaP1zyTtw31Robbj3ospF03xptWX0EDKPJbHH9I,19070
42
+ prediction_market_agent_tooling/markets/agent_market.py,sha256=pnyxTMUrL8cQsP4lmBBpe07R-Mi7S4vNjrvNLdOzAa8,19258
42
43
  prediction_market_agent_tooling/markets/base_subgraph_handler.py,sha256=7RaYO_4qAmQ6ZGM8oPK2-CkiJfKmV9MxM-rJlduaecU,1971
43
44
  prediction_market_agent_tooling/markets/blockchain_utils.py,sha256=gZMwCTO-1d2ALXeY7-LP6U4kCpotJ6GMPZwN11kFOfE,2604
44
45
  prediction_market_agent_tooling/markets/categorize.py,sha256=orLZlPaHgeREU66m1amxfWikeV77idV4sZDPB8NgSD0,1300
45
46
  prediction_market_agent_tooling/markets/data_models.py,sha256=seifqxjVpzZdVKJQ7a5sKPPUM749EHV80SdI6pVQ3b4,7542
46
47
  prediction_market_agent_tooling/markets/manifold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
48
  prediction_market_agent_tooling/markets/manifold/api.py,sha256=tWnjuqvU8pcCuja2B_ynHeds1iiEFc6QWHjeSO_GSxY,7676
48
- prediction_market_agent_tooling/markets/manifold/data_models.py,sha256=QzRfR2g_3vzCw4azj_lOSKSFAZczjAWlM0lQy2dZry8,6704
49
- prediction_market_agent_tooling/markets/manifold/manifold.py,sha256=dUVBkTqnD7M35H20nvSFG6dalYi9CbYZ8cyAqEMz9AE,4700
50
- prediction_market_agent_tooling/markets/manifold/utils.py,sha256=aprL6vd4xZjzRDRyuhKkw5MnjPNFvwoqjDGLu9XoLXQ,361
49
+ prediction_market_agent_tooling/markets/manifold/data_models.py,sha256=3z1gFbPMEgCDGqeH-IK8wcvqmIHgLdZX8C2M1UQ7iDw,6740
50
+ prediction_market_agent_tooling/markets/manifold/manifold.py,sha256=7s8BC32QkzU80coLTKzms1FrG0E-GEeHfkrl_MgrrLk,5301
51
+ prediction_market_agent_tooling/markets/manifold/utils.py,sha256=DCigEbpGWkXR-RZT_oJrvJhilmxKFAxcWMjUFi0nBBI,530
51
52
  prediction_market_agent_tooling/markets/market_fees.py,sha256=YeK3ynjYIguB0xf6sO5iyg9lOdW_HD4C6nbJfiGyRCU,1351
52
- prediction_market_agent_tooling/markets/markets.py,sha256=cXN37xnNNOFJUcdmfD9osrGiffTxGVzWVNUFAPyPGkc,4119
53
+ prediction_market_agent_tooling/markets/markets.py,sha256=lIEPfPJD1Gz90pTvN2pZi51rpb969STPgQtNFCqHUJg,2667
53
54
  prediction_market_agent_tooling/markets/metaculus/api.py,sha256=4TRPGytQQbSdf42DCg2M_JWYPAuNjqZ3eBqaQBLkNks,2736
54
55
  prediction_market_agent_tooling/markets/metaculus/data_models.py,sha256=FaBCTPPezXbBwZ9p791CiVgQ4vB696xnMbz9XVXmiVI,3267
55
56
  prediction_market_agent_tooling/markets/metaculus/metaculus.py,sha256=6iuUpDXgdbFOh-XuxH0rbeAf_m55r2KbHTaSTePNSWA,5614
56
57
  prediction_market_agent_tooling/markets/omen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
58
  prediction_market_agent_tooling/markets/omen/cow_contracts.py,sha256=sl1L4cK5nAJwZ2wdhLzqh8p7h_IEValNvLwKUlInKxw,957
58
59
  prediction_market_agent_tooling/markets/omen/data_models.py,sha256=0jCxgUEVpaggt_avkNqgXAnZWdA6D-ew9PE2gm0aqDk,29930
59
- prediction_market_agent_tooling/markets/omen/omen.py,sha256=jyoAV-E_Qcbqqs4oi7junE3rHTG3kaYLMtIVzEkNC6M,49981
60
+ prediction_market_agent_tooling/markets/omen/omen.py,sha256=q3SqvQEpZAsbFBbSid_rhRn-hVi-roCRN4piGj2wxU8,50301
60
61
  prediction_market_agent_tooling/markets/omen/omen_constants.py,sha256=D9oflYKafLQiHYtB5sScMHqmXyzM8JP8J0yATmc4SQQ,233
61
62
  prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=f0dKbdVM2OUTSpkCSZdPtKqeckS2c48j3rjnK8oD3wE,29716
62
- prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=h4iK7r57D0EaJqfk_n7ISaJHOB93ALL-fCPI1VztXbQ,10364
63
+ prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=_9FjpH-y_yDwua2-mZ0Iop49cRBs2m7w-Z1s3mOofFk,10848
63
64
  prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py,sha256=149T_tJxK2GFnGCulOlGr2Mwiaa7sa74E4lqYsuCv68,39962
64
65
  prediction_market_agent_tooling/markets/polymarket/api.py,sha256=UZ4_TG8ceb9Y-qgsOKs8Qiv8zDt957QkT8IX2c83yqo,4800
65
66
  prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=U1SXTz93FIG3GO1h5BJWSt1hPKn_YAMBeZ3k8IS-ook,4552
66
67
  prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=wCwpZ8Kppy8JG_1HZDfEK_Gg1g1sL7NCbGoPeTeMSko,12756
67
68
  prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=meAhQ5_gwVDvlSxhGGVAvRB7B47zKLnRvZ-_13tKtwY,3433
68
69
  prediction_market_agent_tooling/markets/polymarket/utils.py,sha256=8kTeVjXPcXC6DkDvWYsZQLY7x8DS6CEp_yznSEazsNU,2037
69
- prediction_market_agent_tooling/markets/seer/data_models.py,sha256=G0i-fnVaK16KWDYVI6w3lvyte6Op7ca_iIC8IfrXmlM,4702
70
+ prediction_market_agent_tooling/markets/seer/data_models.py,sha256=osM9WaLsxQf-pfVGq0O-IkM93ehP9a7fVUf-hi2VlMs,5523
70
71
  prediction_market_agent_tooling/markets/seer/exceptions.py,sha256=cEObdjluivD94tgOLzmimR7wgQEOt6SRakrYdhsRQtk,112
71
72
  prediction_market_agent_tooling/markets/seer/price_manager.py,sha256=MClY2NGwOV70nZYIcmzXFy6Ogd8NBIq7telQcQ3VcU4,6243
72
- prediction_market_agent_tooling/markets/seer/seer.py,sha256=9AsfvsCVxNvieDPqGtyjdESzFyPEzDVpTR-4P9mL9Y8,20966
73
- prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=kH9nPXsx6UM5er42g2f3fLvy36sY5JM2f_beXeuNgUc,3790
73
+ prediction_market_agent_tooling/markets/seer/seer.py,sha256=_2Ld3EepmZuzpgAmW6f7eAS5-geXE25XgUKPUrFCWoI,23864
74
+ prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=uMzpHpI6_tgfhWxPzupLdUJlZ1P2wr0rRiYjAGClKgU,4984
74
75
  prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=pJxch9_u0EdiIatQP1-UFClt8UEfMZAXBlk5wDO_ovk,9940
75
76
  prediction_market_agent_tooling/markets/seer/subgraph_data_models.py,sha256=0izxS8Mtzonfdl9UqvFVXrdj0hVzieroekXhogfZKCw,1817
77
+ prediction_market_agent_tooling/markets/seer/swap_pool_handler.py,sha256=y0pDL2BoxayROy3warEN3r8Fs3rPCPPZ191bgrgZikg,3403
76
78
  prediction_market_agent_tooling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
79
  prediction_market_agent_tooling/tools/_generic_value.py,sha256=pD_PI13lpPp1gFoljHwa_Lzlp-u2pu0m-Z7LcxwDM2U,10618
78
80
  prediction_market_agent_tooling/tools/balances.py,sha256=Osab21btfJDw2Y-jT_TV-KHGrseCRxcsYeW6WcOMB8E,1050
@@ -84,7 +86,8 @@ prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjq
84
86
  prediction_market_agent_tooling/tools/caches/serializers.py,sha256=vFDx4fsPxclXp2q0sv27j4al_M_Tj9aR2JJP-xNHQXA,2151
85
87
  prediction_market_agent_tooling/tools/contract.py,sha256=pdr9ZYmj4QVUfgVKdvOU6ucYdBpJGdha_FMR_LgtcEs,22912
86
88
  prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
87
- prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=-nuV2rrLKWKnMn7mN3knRdRemwGiq46OY6m6jX4sm7c,9219
89
+ prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=yTUG6VPVe292R_5IG8F90kfZfAeun8G1TL6mHsnaXM0,12984
90
+ prediction_market_agent_tooling/tools/cow/models.py,sha256=ZWGW0og5vXjgZVXxkx4uV2m61Q8AmL-L-D_D4f7ApR0,379
88
91
  prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
89
92
  prediction_market_agent_tooling/tools/datetime_utc.py,sha256=8_WackjtjC8zHXrhQFTGQ6e6Fz_6llWoKR4CSFvIv9I,2766
90
93
  prediction_market_agent_tooling/tools/db/db_manager.py,sha256=GtzHH1NLl8HwqC8Z7s6eTlIQXuV0blxfaV2PeQrBnfQ,3013
@@ -118,10 +121,10 @@ prediction_market_agent_tooling/tools/tokens/main_token.py,sha256=1rbwpdCusPgQIV
118
121
  prediction_market_agent_tooling/tools/tokens/token_utils.py,sha256=fhs-FH9m9IbzGa-30R3ZleSKLeKfLEDoJ7F5Om285Vk,1369
119
122
  prediction_market_agent_tooling/tools/tokens/usd.py,sha256=yuW8iPPtcpP4eLH2nORMDAfztcq0Nv2ascSrCquF1f8,3115
120
123
  prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
121
- prediction_market_agent_tooling/tools/utils.py,sha256=Jzpck3_QwShhejhgbAhmNxPSOPQJssBQep0eVemVjZ4,7064
122
- prediction_market_agent_tooling/tools/web3_utils.py,sha256=zRq-eeBGWt8uUGN9G_WfjmJ0eVvO8aWE9S0Pz_Y6AOA,12342
123
- prediction_market_agent_tooling-0.65.7.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
124
- prediction_market_agent_tooling-0.65.7.dist-info/METADATA,sha256=Swm7dO-d5M0d1OqUB21l3QZ8gsrlORPKbG_UDDnZRZo,8734
125
- prediction_market_agent_tooling-0.65.7.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
126
- prediction_market_agent_tooling-0.65.7.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
127
- prediction_market_agent_tooling-0.65.7.dist-info/RECORD,,
124
+ prediction_market_agent_tooling/tools/utils.py,sha256=RlWSlzS2LavMIWrpwn1fevbzgPZruD4VcXTa-XxjWnE,7343
125
+ prediction_market_agent_tooling/tools/web3_utils.py,sha256=0r26snqCXGdLKCWA8jpe7DV8x2NPYWZwOy4oyKyDCYk,12615
126
+ prediction_market_agent_tooling-0.65.10.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
127
+ prediction_market_agent_tooling-0.65.10.dist-info/METADATA,sha256=vlhpH2uSRf9E9HKpHsW3ovlHqMl-rFt_GqyJqxjH5ao,8735
128
+ prediction_market_agent_tooling-0.65.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
129
+ prediction_market_agent_tooling-0.65.10.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
130
+ prediction_market_agent_tooling-0.65.10.dist-info/RECORD,,