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.
- prediction_market_agent_tooling/abis/swapr_router.abi.json +634 -0
- prediction_market_agent_tooling/benchmark/benchmark.py +1 -1
- prediction_market_agent_tooling/deploy/agent.py +3 -10
- prediction_market_agent_tooling/markets/agent_market.py +4 -0
- prediction_market_agent_tooling/markets/manifold/data_models.py +5 -3
- prediction_market_agent_tooling/markets/manifold/manifold.py +17 -1
- prediction_market_agent_tooling/markets/manifold/utils.py +8 -2
- prediction_market_agent_tooling/markets/markets.py +1 -47
- prediction_market_agent_tooling/markets/omen/omen.py +9 -0
- prediction_market_agent_tooling/markets/omen/omen_resolving.py +23 -9
- prediction_market_agent_tooling/markets/seer/data_models.py +19 -0
- prediction_market_agent_tooling/markets/seer/seer.py +96 -17
- prediction_market_agent_tooling/markets/seer/seer_contracts.py +40 -1
- prediction_market_agent_tooling/markets/seer/swap_pool_handler.py +96 -0
- prediction_market_agent_tooling/tools/cow/cow_order.py +151 -25
- prediction_market_agent_tooling/tools/cow/models.py +16 -0
- prediction_market_agent_tooling/tools/utils.py +10 -0
- prediction_market_agent_tooling/tools/web3_utils.py +10 -4
- {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/METADATA +1 -1
- {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/RECORD +23 -20
- {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/LICENSE +0 -0
- {prediction_market_agent_tooling-0.65.7.dist-info → prediction_market_agent_tooling-0.65.10.dist-info}/WHEEL +0 -0
- {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
|
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
|
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
|
-
|
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
|
-
|
172
|
-
|
173
|
+
sell_token: ChecksumAddress,
|
174
|
+
amount_wei: Wei,
|
173
175
|
web3: Web3 | None = None,
|
174
|
-
) ->
|
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,
|
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
|
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
|
-
) ->
|
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(
|
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
|
-
|
121
|
-
return
|
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(
|
@@ -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=
|
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=
|
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=
|
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=
|
49
|
-
prediction_market_agent_tooling/markets/manifold/manifold.py,sha256=
|
50
|
-
prediction_market_agent_tooling/markets/manifold/utils.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
73
|
-
prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=
|
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
|
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=
|
122
|
-
prediction_market_agent_tooling/tools/web3_utils.py,sha256=
|
123
|
-
prediction_market_agent_tooling-0.65.
|
124
|
-
prediction_market_agent_tooling-0.65.
|
125
|
-
prediction_market_agent_tooling-0.65.
|
126
|
-
prediction_market_agent_tooling-0.65.
|
127
|
-
prediction_market_agent_tooling-0.65.
|
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,,
|
File without changes
|
File without changes
|