prediction-market-agent-tooling 0.65.9__py3-none-any.whl → 0.65.11__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/data_download/langfuse_data_downloader.py +268 -0
- prediction_market_agent_tooling/loggers.py +9 -1
- prediction_market_agent_tooling/markets/omen/omen_resolving.py +3 -0
- prediction_market_agent_tooling/markets/seer/data_models.py +19 -0
- prediction_market_agent_tooling/markets/seer/seer.py +79 -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 +114 -19
- prediction_market_agent_tooling/tools/web3_utils.py +10 -4
- {prediction_market_agent_tooling-0.65.9.dist-info → prediction_market_agent_tooling-0.65.11.dist-info}/METADATA +1 -1
- {prediction_market_agent_tooling-0.65.9.dist-info → prediction_market_agent_tooling-0.65.11.dist-info}/RECORD +16 -13
- {prediction_market_agent_tooling-0.65.9.dist-info → prediction_market_agent_tooling-0.65.11.dist-info}/LICENSE +0 -0
- {prediction_market_agent_tooling-0.65.9.dist-info → prediction_market_agent_tooling-0.65.11.dist-info}/WHEEL +0 -0
- {prediction_market_agent_tooling-0.65.9.dist-info → prediction_market_agent_tooling-0.65.11.dist-info}/entry_points.txt +0 -0
@@ -9,11 +9,17 @@ from cowdao_cowpy.common.api.errors import UnexpectedResponseError
|
|
9
9
|
from cowdao_cowpy.common.chains import Chain
|
10
10
|
from cowdao_cowpy.common.config import SupportedChainId
|
11
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
|
12
14
|
from cowdao_cowpy.cow.swap import CompletedOrder, get_order_quote, swap_tokens
|
13
15
|
from cowdao_cowpy.order_book.api import OrderBookApi
|
14
16
|
from cowdao_cowpy.order_book.config import Envs, OrderBookAPIConfigFactory
|
15
17
|
from cowdao_cowpy.order_book.generated.model import (
|
18
|
+
UID,
|
16
19
|
Address,
|
20
|
+
EcdsaSignature,
|
21
|
+
EcdsaSigningScheme,
|
22
|
+
OrderCancellations,
|
17
23
|
OrderMetaData,
|
18
24
|
OrderQuoteRequest,
|
19
25
|
OrderQuoteResponse,
|
@@ -24,6 +30,9 @@ from cowdao_cowpy.order_book.generated.model import (
|
|
24
30
|
OrderStatus,
|
25
31
|
TokenAmount,
|
26
32
|
)
|
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,7 +42,13 @@ 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,
|
@@ -153,21 +168,12 @@ def get_buy_token_amount_else_raise(
|
|
153
168
|
return Wei(order_quote.quote.buyAmount.root)
|
154
169
|
|
155
170
|
|
156
|
-
|
157
|
-
stop=stop_after_attempt(3),
|
158
|
-
wait=wait_fixed(1),
|
159
|
-
retry=tenacity.retry_if_not_exception_type((TimeoutError, OrderStatusError)),
|
160
|
-
after=lambda x: logger.debug(f"swap_tokens_waiting failed, {x.attempt_number=}."),
|
161
|
-
)
|
162
|
-
def swap_tokens_waiting(
|
163
|
-
amount_wei: Wei,
|
164
|
-
sell_token: ChecksumAddress,
|
165
|
-
buy_token: ChecksumAddress,
|
171
|
+
def handle_allowance(
|
166
172
|
api_keys: APIKeys,
|
167
|
-
|
168
|
-
|
173
|
+
sell_token: ChecksumAddress,
|
174
|
+
amount_wei: Wei,
|
169
175
|
web3: Web3 | None = None,
|
170
|
-
) ->
|
176
|
+
) -> None:
|
171
177
|
# Approve the CoW Swap Vault Relayer to get the sell token only if allowance not sufficient.
|
172
178
|
for_address = Web3.to_checksum_address(CowContractAddress.VAULT_RELAYER.value)
|
173
179
|
current_allowance = ContractERC20OnGnosisChain(address=sell_token).allowance(
|
@@ -183,24 +189,47 @@ def swap_tokens_waiting(
|
|
183
189
|
web3=web3,
|
184
190
|
)
|
185
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]:
|
186
209
|
# CoW library uses async, so we need to wrap the call in asyncio.run for us to use it.
|
187
210
|
return asyncio.run(
|
188
211
|
swap_tokens_waiting_async(
|
189
|
-
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,
|
190
220
|
)
|
191
221
|
)
|
192
222
|
|
193
223
|
|
194
|
-
async def
|
224
|
+
async def place_swap_order(
|
225
|
+
api_keys: APIKeys,
|
195
226
|
amount_wei: Wei,
|
196
227
|
sell_token: ChecksumAddress,
|
197
228
|
buy_token: ChecksumAddress,
|
198
|
-
api_keys: APIKeys,
|
199
229
|
chain: Chain,
|
200
230
|
env: Envs,
|
201
|
-
timeout: timedelta = timedelta(seconds=120),
|
202
231
|
slippage_tolerance: float = 0.01,
|
203
|
-
) ->
|
232
|
+
) -> CompletedOrder:
|
204
233
|
account = api_keys.get_account()
|
205
234
|
safe_address = api_keys.safe_address_checksum
|
206
235
|
|
@@ -220,6 +249,12 @@ async def swap_tokens_waiting_async(
|
|
220
249
|
logger.info(f"Safe is used. Signing the order after its creation.")
|
221
250
|
await sign_safe_cow_swap(api_keys, order, chain, env)
|
222
251
|
|
252
|
+
return order
|
253
|
+
|
254
|
+
|
255
|
+
async def wait_for_order_completion(
|
256
|
+
order: CompletedOrder, timeout: timedelta = timedelta(seconds=120)
|
257
|
+
) -> OrderMetaData:
|
223
258
|
start_time = utcnow()
|
224
259
|
|
225
260
|
while True:
|
@@ -249,6 +284,36 @@ async def swap_tokens_waiting_async(
|
|
249
284
|
await asyncio.sleep(3.14)
|
250
285
|
|
251
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
|
+
|
252
317
|
@tenacity.retry(
|
253
318
|
stop=tenacity.stop_after_attempt(3),
|
254
319
|
wait=tenacity.wait_fixed(1),
|
@@ -323,3 +388,33 @@ def paginate_endpoint(url: str, limit: int = 1000) -> t.Any:
|
|
323
388
|
offset += limit
|
324
389
|
|
325
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
|
+
)
|
@@ -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,12 +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
|
28
|
+
prediction_market_agent_tooling/data_download/langfuse_data_downloader.py,sha256=EOtFKEtljwts1ftkcSN_i9Wk8jbfnhMehPRC63BU7l0,8842
|
27
29
|
prediction_market_agent_tooling/deploy/agent.py,sha256=ONuXYe9zRO37lzume5z-2hPKTBrCljBg5OD_38gNRc0,25289
|
28
30
|
prediction_market_agent_tooling/deploy/agent_example.py,sha256=yS1fWkHynr9MYGNOM2WsCnRWLPaffY4bOc6bIudrdd4,1377
|
29
31
|
prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=YYayGjTKW02d3BUavJ8M3NmFk41oldEM3FHbwppZGRM,17184
|
@@ -36,7 +38,7 @@ prediction_market_agent_tooling/gtypes.py,sha256=bUIZfZIGvIi3aiZNu5rVE9kRevw8sfM
|
|
36
38
|
prediction_market_agent_tooling/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
39
|
prediction_market_agent_tooling/jobs/jobs_models.py,sha256=DoZ9dlvVhpNrnINiR1uy6YUOsuzI_L-avBt362y5xXM,2467
|
38
40
|
prediction_market_agent_tooling/jobs/omen/omen_jobs.py,sha256=qbTZ9HVvu_iP4dDxuvOZxAp6JsRKejvEW2YDYCnRmd4,5039
|
39
|
-
prediction_market_agent_tooling/loggers.py,sha256=
|
41
|
+
prediction_market_agent_tooling/loggers.py,sha256=7hNsTbH0K9wjOaUZu4xtuIBCVlrfbP8b8eiea8uNUgs,5762
|
40
42
|
prediction_market_agent_tooling/logprobs_parser.py,sha256=DBlBQtWX8_URXhzTU3YWIPa76Zx3QDHlx1ARqbgJsVI,5008
|
41
43
|
prediction_market_agent_tooling/markets/agent_market.py,sha256=pnyxTMUrL8cQsP4lmBBpe07R-Mi7S4vNjrvNLdOzAa8,19258
|
42
44
|
prediction_market_agent_tooling/markets/base_subgraph_handler.py,sha256=7RaYO_4qAmQ6ZGM8oPK2-CkiJfKmV9MxM-rJlduaecU,1971
|
@@ -59,20 +61,21 @@ prediction_market_agent_tooling/markets/omen/data_models.py,sha256=0jCxgUEVpaggt
|
|
59
61
|
prediction_market_agent_tooling/markets/omen/omen.py,sha256=q3SqvQEpZAsbFBbSid_rhRn-hVi-roCRN4piGj2wxU8,50301
|
60
62
|
prediction_market_agent_tooling/markets/omen/omen_constants.py,sha256=D9oflYKafLQiHYtB5sScMHqmXyzM8JP8J0yATmc4SQQ,233
|
61
63
|
prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=f0dKbdVM2OUTSpkCSZdPtKqeckS2c48j3rjnK8oD3wE,29716
|
62
|
-
prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=
|
64
|
+
prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=D-ubf_LumHs_c5rBAAntQ8wGKprtO2V1JZeedmChNIE,11035
|
63
65
|
prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py,sha256=149T_tJxK2GFnGCulOlGr2Mwiaa7sa74E4lqYsuCv68,39962
|
64
66
|
prediction_market_agent_tooling/markets/polymarket/api.py,sha256=UZ4_TG8ceb9Y-qgsOKs8Qiv8zDt957QkT8IX2c83yqo,4800
|
65
67
|
prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=U1SXTz93FIG3GO1h5BJWSt1hPKn_YAMBeZ3k8IS-ook,4552
|
66
68
|
prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=wCwpZ8Kppy8JG_1HZDfEK_Gg1g1sL7NCbGoPeTeMSko,12756
|
67
69
|
prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=meAhQ5_gwVDvlSxhGGVAvRB7B47zKLnRvZ-_13tKtwY,3433
|
68
70
|
prediction_market_agent_tooling/markets/polymarket/utils.py,sha256=8kTeVjXPcXC6DkDvWYsZQLY7x8DS6CEp_yznSEazsNU,2037
|
69
|
-
prediction_market_agent_tooling/markets/seer/data_models.py,sha256=
|
71
|
+
prediction_market_agent_tooling/markets/seer/data_models.py,sha256=osM9WaLsxQf-pfVGq0O-IkM93ehP9a7fVUf-hi2VlMs,5523
|
70
72
|
prediction_market_agent_tooling/markets/seer/exceptions.py,sha256=cEObdjluivD94tgOLzmimR7wgQEOt6SRakrYdhsRQtk,112
|
71
73
|
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=
|
74
|
+
prediction_market_agent_tooling/markets/seer/seer.py,sha256=_2Ld3EepmZuzpgAmW6f7eAS5-geXE25XgUKPUrFCWoI,23864
|
75
|
+
prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=uMzpHpI6_tgfhWxPzupLdUJlZ1P2wr0rRiYjAGClKgU,4984
|
74
76
|
prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=pJxch9_u0EdiIatQP1-UFClt8UEfMZAXBlk5wDO_ovk,9940
|
75
77
|
prediction_market_agent_tooling/markets/seer/subgraph_data_models.py,sha256=0izxS8Mtzonfdl9UqvFVXrdj0hVzieroekXhogfZKCw,1817
|
78
|
+
prediction_market_agent_tooling/markets/seer/swap_pool_handler.py,sha256=y0pDL2BoxayROy3warEN3r8Fs3rPCPPZ191bgrgZikg,3403
|
76
79
|
prediction_market_agent_tooling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
80
|
prediction_market_agent_tooling/tools/_generic_value.py,sha256=pD_PI13lpPp1gFoljHwa_Lzlp-u2pu0m-Z7LcxwDM2U,10618
|
78
81
|
prediction_market_agent_tooling/tools/balances.py,sha256=Osab21btfJDw2Y-jT_TV-KHGrseCRxcsYeW6WcOMB8E,1050
|
@@ -84,7 +87,7 @@ prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjq
|
|
84
87
|
prediction_market_agent_tooling/tools/caches/serializers.py,sha256=vFDx4fsPxclXp2q0sv27j4al_M_Tj9aR2JJP-xNHQXA,2151
|
85
88
|
prediction_market_agent_tooling/tools/contract.py,sha256=pdr9ZYmj4QVUfgVKdvOU6ucYdBpJGdha_FMR_LgtcEs,22912
|
86
89
|
prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
|
87
|
-
prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=
|
90
|
+
prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=yTUG6VPVe292R_5IG8F90kfZfAeun8G1TL6mHsnaXM0,12984
|
88
91
|
prediction_market_agent_tooling/tools/cow/models.py,sha256=ZWGW0og5vXjgZVXxkx4uV2m61Q8AmL-L-D_D4f7ApR0,379
|
89
92
|
prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
|
90
93
|
prediction_market_agent_tooling/tools/datetime_utc.py,sha256=8_WackjtjC8zHXrhQFTGQ6e6Fz_6llWoKR4CSFvIv9I,2766
|
@@ -120,9 +123,9 @@ prediction_market_agent_tooling/tools/tokens/token_utils.py,sha256=fhs-FH9m9IbzG
|
|
120
123
|
prediction_market_agent_tooling/tools/tokens/usd.py,sha256=yuW8iPPtcpP4eLH2nORMDAfztcq0Nv2ascSrCquF1f8,3115
|
121
124
|
prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
|
122
125
|
prediction_market_agent_tooling/tools/utils.py,sha256=RlWSlzS2LavMIWrpwn1fevbzgPZruD4VcXTa-XxjWnE,7343
|
123
|
-
prediction_market_agent_tooling/tools/web3_utils.py,sha256=
|
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.
|
128
|
-
prediction_market_agent_tooling-0.65.
|
126
|
+
prediction_market_agent_tooling/tools/web3_utils.py,sha256=0r26snqCXGdLKCWA8jpe7DV8x2NPYWZwOy4oyKyDCYk,12615
|
127
|
+
prediction_market_agent_tooling-0.65.11.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
128
|
+
prediction_market_agent_tooling-0.65.11.dist-info/METADATA,sha256=Sae7uwTRaQX3tZx71Sp-ecNMBF81BgIj5i2TZOGXAmU,8735
|
129
|
+
prediction_market_agent_tooling-0.65.11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
130
|
+
prediction_market_agent_tooling-0.65.11.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
|
131
|
+
prediction_market_agent_tooling-0.65.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|