prediction-market-agent-tooling 0.63.0.dev498__py3-none-any.whl → 0.63.0.dev499__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/deploy/betting_strategy.py +4 -3
- prediction_market_agent_tooling/markets/seer/data_models.py +1 -4
- prediction_market_agent_tooling/markets/seer/price_manager.py +12 -9
- prediction_market_agent_tooling/markets/seer/seer.py +15 -14
- prediction_market_agent_tooling/markets/seer/seer_contracts.py +3 -3
- prediction_market_agent_tooling/markets/seer/subgraph_data_models.py +2 -2
- prediction_market_agent_tooling/tools/cow/cow_order.py +43 -4
- prediction_market_agent_tooling/tools/tokens/token_utils.py +4 -3
- prediction_market_agent_tooling/tools/tokens/usd.py +7 -6
- {prediction_market_agent_tooling-0.63.0.dev498.dist-info → prediction_market_agent_tooling-0.63.0.dev499.dist-info}/METADATA +1 -1
- {prediction_market_agent_tooling-0.63.0.dev498.dist-info → prediction_market_agent_tooling-0.63.0.dev499.dist-info}/RECORD +14 -14
- {prediction_market_agent_tooling-0.63.0.dev498.dist-info → prediction_market_agent_tooling-0.63.0.dev499.dist-info}/LICENSE +0 -0
- {prediction_market_agent_tooling-0.63.0.dev498.dist-info → prediction_market_agent_tooling-0.63.0.dev499.dist-info}/WHEEL +0 -0
- {prediction_market_agent_tooling-0.63.0.dev498.dist-info → prediction_market_agent_tooling-0.63.0.dev499.dist-info}/entry_points.txt +0 -0
@@ -54,9 +54,6 @@ class BettingStrategy(ABC):
|
|
54
54
|
outcome_tokens_to_get = market.get_buy_token_amount(
|
55
55
|
trade.amount, trade.outcome
|
56
56
|
)
|
57
|
-
outcome_tokens_to_get_in_usd = market.get_token_in_usd(
|
58
|
-
outcome_tokens_to_get.as_token
|
59
|
-
)
|
60
57
|
|
61
58
|
if not outcome_tokens_to_get:
|
62
59
|
logger.info(
|
@@ -64,6 +61,10 @@ class BettingStrategy(ABC):
|
|
64
61
|
)
|
65
62
|
continue
|
66
63
|
|
64
|
+
outcome_tokens_to_get_in_usd = market.get_token_in_usd(
|
65
|
+
outcome_tokens_to_get.as_token
|
66
|
+
)
|
67
|
+
|
67
68
|
if outcome_tokens_to_get_in_usd <= trade.amount:
|
68
69
|
raise GuaranteedLossError(
|
69
70
|
f"Trade {trade=} would result in guaranteed loss by getting only {outcome_tokens_to_get=}. Halting execution."
|
@@ -5,19 +5,16 @@ from urllib.parse import urljoin
|
|
5
5
|
|
6
6
|
from pydantic import BaseModel, ConfigDict, Field
|
7
7
|
from web3 import Web3
|
8
|
+
from web3.constants import ADDRESS_ZERO
|
8
9
|
|
9
10
|
from prediction_market_agent_tooling.config import RPCConfig
|
10
|
-
from prediction_market_agent_tooling.gtypes import ChecksumAddress, HexAddress, HexBytes
|
11
11
|
from prediction_market_agent_tooling.gtypes import (
|
12
12
|
ChecksumAddress,
|
13
|
-
CollateralToken,
|
14
13
|
HexAddress,
|
15
14
|
HexBytes,
|
16
15
|
OutcomeStr,
|
17
|
-
Probability,
|
18
16
|
Web3Wei,
|
19
17
|
)
|
20
|
-
from prediction_market_agent_tooling.loggers import logger
|
21
18
|
from prediction_market_agent_tooling.markets.data_models import Resolution
|
22
19
|
from prediction_market_agent_tooling.markets.seer.subgraph_data_models import (
|
23
20
|
SeerParentMarket,
|
@@ -1,12 +1,10 @@
|
|
1
|
-
from functools import lru_cache
|
2
|
-
|
3
1
|
from web3 import Web3
|
4
2
|
|
5
3
|
from prediction_market_agent_tooling.gtypes import (
|
6
4
|
ChecksumAddress,
|
7
5
|
Probability,
|
8
|
-
xdai_type,
|
9
6
|
Wei,
|
7
|
+
CollateralToken,
|
10
8
|
)
|
11
9
|
from prediction_market_agent_tooling.loggers import logger
|
12
10
|
from prediction_market_agent_tooling.markets.seer.data_models import (
|
@@ -19,7 +17,7 @@ from prediction_market_agent_tooling.markets.seer.seer_subgraph_handler import (
|
|
19
17
|
from prediction_market_agent_tooling.markets.seer.subgraph_data_models import SeerPool
|
20
18
|
from prediction_market_agent_tooling.tools.cow.cow_order import get_quote
|
21
19
|
from prediction_market_agent_tooling.tools.hexbytes_custom import HexBytes
|
22
|
-
from prediction_market_agent_tooling.tools.
|
20
|
+
from prediction_market_agent_tooling.tools.utils import check_not_none
|
23
21
|
|
24
22
|
|
25
23
|
class PriceManager:
|
@@ -70,12 +68,15 @@ class PriceManager:
|
|
70
68
|
else:
|
71
69
|
return None
|
72
70
|
|
73
|
-
@lru_cache(typed=True)
|
74
71
|
def get_price_for_token(
|
75
|
-
self,
|
76
|
-
token: ChecksumAddress,
|
77
|
-
collateral_exchange_amount: Wei = xdai_to_wei(xdai_type(1)),
|
72
|
+
self, token: ChecksumAddress, collateral_exchange_amount: Wei | None = None
|
78
73
|
) -> float | None:
|
74
|
+
collateral_exchange_amount = (
|
75
|
+
collateral_exchange_amount
|
76
|
+
if collateral_exchange_amount is not None
|
77
|
+
else CollateralToken(1).as_wei
|
78
|
+
)
|
79
|
+
|
79
80
|
try:
|
80
81
|
quote = get_quote(
|
81
82
|
amount_wei=collateral_exchange_amount,
|
@@ -89,7 +90,9 @@ class PriceManager:
|
|
89
90
|
)
|
90
91
|
return self.get_token_price_from_pools(token=token)
|
91
92
|
|
92
|
-
|
93
|
+
collateral_exchange_amount = check_not_none(collateral_exchange_amount)
|
94
|
+
price = collateral_exchange_amount / float(quote.quote.buyAmount.root)
|
95
|
+
return Wei(str(price)).value
|
93
96
|
|
94
97
|
@staticmethod
|
95
98
|
def _pool_token0_matches_token(token: ChecksumAddress, pool: SeerPool) -> bool:
|
@@ -13,7 +13,6 @@ from prediction_market_agent_tooling.gtypes import (
|
|
13
13
|
HexAddress,
|
14
14
|
HexBytes,
|
15
15
|
OutcomeStr,
|
16
|
-
Wei,
|
17
16
|
OutcomeToken,
|
18
17
|
OutcomeWei,
|
19
18
|
xDai,
|
@@ -43,7 +42,6 @@ from prediction_market_agent_tooling.markets.seer.seer_subgraph_handler import (
|
|
43
42
|
from prediction_market_agent_tooling.markets.seer.subgraph_data_models import (
|
44
43
|
NewMarketEvent,
|
45
44
|
)
|
46
|
-
from prediction_market_agent_tooling.tools.balances import get_balances
|
47
45
|
from prediction_market_agent_tooling.tools.contract import (
|
48
46
|
ContractERC20OnGnosisChain,
|
49
47
|
init_collateral_token_contract,
|
@@ -108,25 +106,23 @@ class SeerAgentMarket(AgentMarket):
|
|
108
106
|
return get_usd_in_token(x, self.collateral_token_contract_address_checksummed)
|
109
107
|
|
110
108
|
def get_buy_token_amount(
|
111
|
-
self, bet_amount:
|
109
|
+
self, bet_amount: USD | CollateralToken, direction: bool
|
112
110
|
) -> OutcomeToken | None:
|
113
111
|
"""Returns number of outcome tokens returned for a given bet expressed in collateral units."""
|
114
112
|
|
115
113
|
outcome_token = self.get_wrapped_token_for_outcome(direction)
|
116
114
|
bet_amount_in_tokens = self.get_in_token(bet_amount)
|
117
|
-
bet_amount_in_wei = bet_amount_in_tokens.as_wei
|
118
115
|
|
119
116
|
p = PriceManager.build(market_id=HexBytes(HexStr(self.id)))
|
120
117
|
price_in_collateral_units = p.get_price_for_token(
|
121
|
-
token=outcome_token, collateral_exchange_amount=
|
118
|
+
token=outcome_token, collateral_exchange_amount=bet_amount_in_tokens.as_wei
|
122
119
|
)
|
123
120
|
if not price_in_collateral_units:
|
124
121
|
logger.info(f"Could not get price for token {outcome_token}")
|
125
122
|
return None
|
126
123
|
|
127
|
-
|
128
|
-
|
129
|
-
return sell_amount
|
124
|
+
amount_outcome_tokens = bet_amount_in_tokens.value / price_in_collateral_units
|
125
|
+
return OutcomeToken(amount_outcome_tokens)
|
130
126
|
|
131
127
|
def get_outcome_str_from_bool(self, outcome: bool) -> OutcomeStr:
|
132
128
|
outcome_translated = SeerOutcomeEnum.from_bool(outcome)
|
@@ -191,7 +187,7 @@ class SeerAgentMarket(AgentMarket):
|
|
191
187
|
@staticmethod
|
192
188
|
def from_data_model_with_subgraph(
|
193
189
|
model: SeerMarket, seer_subgraph: SeerSubgraphHandler
|
194
|
-
) -> "SeerAgentMarket"
|
190
|
+
) -> t.Optional["SeerAgentMarket"]:
|
195
191
|
p = PriceManager(seer_market=model, seer_subgraph=seer_subgraph)
|
196
192
|
current_p_yes = p.current_p_yes()
|
197
193
|
if not current_p_yes:
|
@@ -295,11 +291,10 @@ class SeerAgentMarket(AgentMarket):
|
|
295
291
|
)
|
296
292
|
|
297
293
|
outcome_token = self.get_wrapped_token_for_outcome(outcome)
|
298
|
-
amount_to_trade = xdai_type(amount.amount)
|
299
294
|
|
300
295
|
# Sell sDAI using token address
|
301
296
|
order_metadata = swap_tokens_waiting(
|
302
|
-
amount_wei=
|
297
|
+
amount_wei=amount_wei,
|
303
298
|
sell_token=collateral_contract.address,
|
304
299
|
buy_token=outcome_token,
|
305
300
|
api_keys=api_keys,
|
@@ -321,7 +316,7 @@ class SeerAgentMarket(AgentMarket):
|
|
321
316
|
def sell_tokens(
|
322
317
|
self,
|
323
318
|
outcome: bool,
|
324
|
-
amount:
|
319
|
+
amount: USD | OutcomeToken,
|
325
320
|
auto_withdraw: bool = True,
|
326
321
|
api_keys: APIKeys | None = None,
|
327
322
|
web3: Web3 | None = None,
|
@@ -331,10 +326,16 @@ class SeerAgentMarket(AgentMarket):
|
|
331
326
|
"""
|
332
327
|
outcome_token = self.get_wrapped_token_for_outcome(outcome)
|
333
328
|
api_keys = api_keys if api_keys is not None else APIKeys()
|
334
|
-
|
329
|
+
|
330
|
+
########
|
331
|
+
token_amount = (
|
332
|
+
amount.as_outcome_wei.as_wei
|
333
|
+
if isinstance(amount, OutcomeToken)
|
334
|
+
else self.get_in_token(amount).as_wei
|
335
|
+
)
|
335
336
|
|
336
337
|
order_metadata = swap_tokens_waiting(
|
337
|
-
amount_wei=
|
338
|
+
amount_wei=token_amount,
|
338
339
|
sell_token=outcome_token,
|
339
340
|
buy_token=Web3.to_checksum_address(
|
340
341
|
self.collateral_token_contract_address_checksummed
|
@@ -2,7 +2,6 @@ import os
|
|
2
2
|
import typing as t
|
3
3
|
|
4
4
|
from web3 import Web3
|
5
|
-
from web3.types import TxReceipt
|
6
5
|
|
7
6
|
from prediction_market_agent_tooling.config import APIKeys
|
8
7
|
from prediction_market_agent_tooling.gtypes import (
|
@@ -10,6 +9,7 @@ from prediction_market_agent_tooling.gtypes import (
|
|
10
9
|
ChecksumAddress,
|
11
10
|
OutcomeStr,
|
12
11
|
xDai,
|
12
|
+
TxReceipt,
|
13
13
|
)
|
14
14
|
from prediction_market_agent_tooling.markets.seer.subgraph_data_models import (
|
15
15
|
CreateCategoricalMarketsParams,
|
@@ -47,9 +47,9 @@ class SeerMarketFactory(ContractOnGnosisChain):
|
|
47
47
|
token_names=[
|
48
48
|
o.upper() for o in outcomes
|
49
49
|
], # Following usual token names on Seer (YES,NO).
|
50
|
-
min_bond=min_bond.as_xdai_wei.
|
50
|
+
min_bond=min_bond.as_xdai_wei.as_wei,
|
51
51
|
opening_time=int(opening_time.timestamp()),
|
52
|
-
outcomes=outcomes,
|
52
|
+
outcomes=list(outcomes),
|
53
53
|
lang=language,
|
54
54
|
category=category,
|
55
55
|
)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
from pydantic import BaseModel, ConfigDict, Field
|
2
2
|
from web3.constants import ADDRESS_ZERO
|
3
3
|
|
4
|
-
from prediction_market_agent_tooling.gtypes import HexAddress, HexBytes, Wei
|
4
|
+
from prediction_market_agent_tooling.gtypes import HexAddress, HexBytes, Wei, OutcomeStr
|
5
5
|
|
6
6
|
|
7
7
|
class SeerToken(BaseModel):
|
@@ -34,7 +34,7 @@ class CreateCategoricalMarketsParams(BaseModel):
|
|
34
34
|
model_config = ConfigDict(populate_by_name=True)
|
35
35
|
|
36
36
|
market_name: str = Field(..., alias="marketName")
|
37
|
-
outcomes: list[
|
37
|
+
outcomes: list[OutcomeStr]
|
38
38
|
# Only relevant for scalar markets
|
39
39
|
question_start: str = Field(alias="questionStart", default="")
|
40
40
|
question_end: str = Field(alias="questionEnd", default="")
|
@@ -20,18 +20,24 @@ from cowdao_cowpy.order_book.generated.model import (
|
|
20
20
|
OrderStatus,
|
21
21
|
TokenAmount,
|
22
22
|
OrderQuoteResponse,
|
23
|
+
OrderQuoteSide3,
|
24
|
+
OrderQuoteSideKindBuy,
|
23
25
|
)
|
24
26
|
from eth_account.signers.local import LocalAccount
|
25
27
|
from tenacity import stop_after_attempt, wait_fixed, retry_if_not_exception_type
|
26
28
|
from web3 import Web3
|
27
29
|
|
28
30
|
from prediction_market_agent_tooling.config import APIKeys
|
29
|
-
from prediction_market_agent_tooling.gtypes import ChecksumAddress, Wei
|
31
|
+
from prediction_market_agent_tooling.gtypes import ChecksumAddress, Wei
|
30
32
|
from prediction_market_agent_tooling.loggers import logger
|
31
33
|
from prediction_market_agent_tooling.tools.contract import ContractERC20OnGnosisChain
|
32
34
|
from prediction_market_agent_tooling.tools.utils import utcnow
|
33
35
|
|
34
36
|
|
37
|
+
class OrderStatusError(Exception):
|
38
|
+
pass
|
39
|
+
|
40
|
+
|
35
41
|
class NoLiquidityAvailableOnCowException(Exception):
|
36
42
|
"""Custom exception for handling case where no liquidity available."""
|
37
43
|
|
@@ -41,9 +47,42 @@ def get_order_book_api(env: Envs, chain: Chain) -> OrderBookApi:
|
|
41
47
|
return OrderBookApi(OrderBookAPIConfigFactory.get_config(env, chain_id))
|
42
48
|
|
43
49
|
|
50
|
+
@tenacity.retry(
|
51
|
+
stop=tenacity.stop_after_attempt(3),
|
52
|
+
wait=tenacity.wait_fixed(1),
|
53
|
+
after=lambda x: logger.debug(f"get_sell_token_amount failed, {x.attempt_number=}."),
|
54
|
+
)
|
55
|
+
def get_sell_token_amount(
|
56
|
+
buy_amount: Wei,
|
57
|
+
sell_token: ChecksumAddress,
|
58
|
+
buy_token: ChecksumAddress,
|
59
|
+
chain: Chain = Chain.GNOSIS,
|
60
|
+
env: Envs = "prod",
|
61
|
+
) -> Wei:
|
62
|
+
"""
|
63
|
+
Calculate how much of the sell_token is needed to obtain a specified amount of buy_token.
|
64
|
+
"""
|
65
|
+
order_book_api = get_order_book_api(env, chain)
|
66
|
+
order_quote_request = OrderQuoteRequest(
|
67
|
+
sellToken=Address(sell_token),
|
68
|
+
buyToken=Address(buy_token),
|
69
|
+
from_=Address(
|
70
|
+
"0x1234567890abcdef1234567890abcdef12345678"
|
71
|
+
), # Just random address, doesn't matter.
|
72
|
+
)
|
73
|
+
order_side = OrderQuoteSide3(
|
74
|
+
kind=OrderQuoteSideKindBuy.buy,
|
75
|
+
buyAmountAfterFee=TokenAmount(str(buy_amount)),
|
76
|
+
)
|
77
|
+
order_quote = asyncio.run(
|
78
|
+
order_book_api.post_quote(order_quote_request, order_side)
|
79
|
+
)
|
80
|
+
return Wei(order_quote.quote.sellAmount.root)
|
81
|
+
|
82
|
+
|
44
83
|
@tenacity.retry(
|
45
84
|
stop=stop_after_attempt(3),
|
46
|
-
wait=wait_fixed(
|
85
|
+
wait=wait_fixed(1),
|
47
86
|
retry=retry_if_not_exception_type(NoLiquidityAvailableOnCowException),
|
48
87
|
)
|
49
88
|
def get_quote(
|
@@ -101,7 +140,7 @@ def get_buy_token_amount_else_raise(
|
|
101
140
|
chain=chain,
|
102
141
|
env=env,
|
103
142
|
)
|
104
|
-
return
|
143
|
+
return Wei(order_quote.quote.buyAmount.root)
|
105
144
|
|
106
145
|
|
107
146
|
def swap_tokens_waiting(
|
@@ -141,7 +180,7 @@ async def swap_tokens_waiting_async(
|
|
141
180
|
timeout: timedelta = timedelta(seconds=60),
|
142
181
|
) -> OrderMetaData:
|
143
182
|
order = await swap_tokens(
|
144
|
-
amount=amount_wei,
|
183
|
+
amount=amount_wei.value,
|
145
184
|
sell_token=sell_token,
|
146
185
|
buy_token=buy_token,
|
147
186
|
account=account,
|
@@ -1,4 +1,3 @@
|
|
1
|
-
from eth_typing.evm import ChecksumAddress
|
2
1
|
from web3 import Web3
|
3
2
|
|
4
3
|
from prediction_market_agent_tooling.gtypes import ChecksumAddress, Wei
|
@@ -7,7 +6,9 @@ from prediction_market_agent_tooling.tools.contract import (
|
|
7
6
|
init_collateral_token_contract,
|
8
7
|
to_gnosis_chain_contract,
|
9
8
|
)
|
10
|
-
from prediction_market_agent_tooling.tools.cow.cow_order import
|
9
|
+
from prediction_market_agent_tooling.tools.cow.cow_order import (
|
10
|
+
get_buy_token_amount_else_raise,
|
11
|
+
)
|
11
12
|
|
12
13
|
|
13
14
|
def convert_to_another_token(
|
@@ -39,7 +40,7 @@ def convert_to_another_token(
|
|
39
40
|
return from_token_contract.convertToAssets(amount)
|
40
41
|
|
41
42
|
else:
|
42
|
-
return
|
43
|
+
return get_buy_token_amount_else_raise(
|
43
44
|
amount,
|
44
45
|
from_token,
|
45
46
|
to_token,
|
@@ -1,5 +1,4 @@
|
|
1
1
|
from cachetools import TTLCache, cached
|
2
|
-
from eth_typing.evm import ChecksumAddress
|
3
2
|
|
4
3
|
from prediction_market_agent_tooling.gtypes import (
|
5
4
|
USD,
|
@@ -12,7 +11,9 @@ from prediction_market_agent_tooling.markets.omen.omen_constants import (
|
|
12
11
|
WRAPPED_XDAI_CONTRACT_ADDRESS,
|
13
12
|
)
|
14
13
|
from prediction_market_agent_tooling.tools.contract import ContractERC4626OnGnosisChain
|
15
|
-
from prediction_market_agent_tooling.tools.cow.cow_order import
|
14
|
+
from prediction_market_agent_tooling.tools.cow.cow_order import (
|
15
|
+
get_buy_token_amount_else_raise,
|
16
|
+
)
|
16
17
|
|
17
18
|
|
18
19
|
def get_usd_in_xdai(amount: USD) -> xDai:
|
@@ -48,8 +49,8 @@ def get_single_token_to_usd_rate(token_address: ChecksumAddress) -> USD:
|
|
48
49
|
.convertToAssets(CollateralToken(1).as_wei)
|
49
50
|
.as_token.value
|
50
51
|
)
|
51
|
-
in_wei =
|
52
|
-
|
52
|
+
in_wei = get_buy_token_amount_else_raise(
|
53
|
+
amount_wei=CollateralToken(1).as_wei,
|
53
54
|
sell_token=token_address,
|
54
55
|
buy_token=WRAPPED_XDAI_CONTRACT_ADDRESS,
|
55
56
|
)
|
@@ -70,8 +71,8 @@ def get_single_usd_to_token_rate(token_address: ChecksumAddress) -> CollateralTo
|
|
70
71
|
.convertToShares(CollateralToken(1).as_wei)
|
71
72
|
.as_token.value
|
72
73
|
)
|
73
|
-
in_wei =
|
74
|
-
|
74
|
+
in_wei = get_buy_token_amount_else_raise(
|
75
|
+
amount_wei=CollateralToken(1).as_wei,
|
75
76
|
sell_token=WRAPPED_XDAI_CONTRACT_ADDRESS,
|
76
77
|
buy_token=token_address,
|
77
78
|
)
|
@@ -23,7 +23,7 @@ prediction_market_agent_tooling/benchmark/utils.py,sha256=D0MfUkVZllmvcU0VOurk9t
|
|
23
23
|
prediction_market_agent_tooling/config.py,sha256=So5l8KbgmzcCpxzzf13TNrEJPu_4iQnUDhzus6XRvSc,10151
|
24
24
|
prediction_market_agent_tooling/deploy/agent.py,sha256=OyrhPOjByQOAi1_VWhef7ieKqREjVhvjGHgnUIQc3gI,25877
|
25
25
|
prediction_market_agent_tooling/deploy/agent_example.py,sha256=dIIdZashExWk9tOdyDjw87AuUcGyM7jYxNChYrVK2dM,1001
|
26
|
-
prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=
|
26
|
+
prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=p25t7VU7I4hSkSl6SpzI_W55kLbYEySQdBqeschmARY,12918
|
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
|
@@ -61,12 +61,12 @@ prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=utGN-Lh
|
|
61
61
|
prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=LVEsNw2nUx5poiU1m803NNqG5-fs8-MODQRyGLqy4mE,12585
|
62
62
|
prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=6rc9qulPl90MxXKB55XiiWKLhjfAyG_eUzAlqpq1UIE,3339
|
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=
|
65
|
-
prediction_market_agent_tooling/markets/seer/price_manager.py,sha256=
|
66
|
-
prediction_market_agent_tooling/markets/seer/seer.py,sha256=
|
67
|
-
prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=
|
64
|
+
prediction_market_agent_tooling/markets/seer/data_models.py,sha256=FwTOq9X2iJ7r3ijtE0evl8pMSbFPm4lUwuc9m7YsMVA,6373
|
65
|
+
prediction_market_agent_tooling/markets/seer/price_manager.py,sha256=_rQDowNVA3DAzOM2L3d3lb9jf6sBL1d1Z8cP-t5bpjw,4976
|
66
|
+
prediction_market_agent_tooling/markets/seer/seer.py,sha256=WFpXIFUdWDj30ey9XFXSkcj53E7JmfEuxfFyrKTLCU0,15249
|
67
|
+
prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=NCZbeiZgPIwEZS2qM6F1_i72FTOHg7Zq1ZvzuU6atH8,2715
|
68
68
|
prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=bAuMRBmPNax20RvB448U7_OfBtfRf6P6TouoYDu_OfM,9867
|
69
|
-
prediction_market_agent_tooling/markets/seer/subgraph_data_models.py,sha256=
|
69
|
+
prediction_market_agent_tooling/markets/seer/subgraph_data_models.py,sha256=_i4x9o2ZvC2K2fgaYvjxSiRtzwx8_N-lWyAUCdA4pGU,1663
|
70
70
|
prediction_market_agent_tooling/monitor/financial_metrics/financial_metrics.py,sha256=fjIgjDIx5MhH5mwf7S0cspLOOSU3elYLhGYoIiM26mU,2746
|
71
71
|
prediction_market_agent_tooling/monitor/markets/manifold.py,sha256=TS4ERwTfQnot8dhekNyVNhJYf5ysYsjF-9v5_kM3aVI,3334
|
72
72
|
prediction_market_agent_tooling/monitor/markets/metaculus.py,sha256=LOnyWWBFdg10-cTWdb76nOsNjDloO8OfMT85GBzRCFI,1455
|
@@ -88,7 +88,7 @@ prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjq
|
|
88
88
|
prediction_market_agent_tooling/tools/caches/serializers.py,sha256=vFDx4fsPxclXp2q0sv27j4al_M_Tj9aR2JJP-xNHQXA,2151
|
89
89
|
prediction_market_agent_tooling/tools/contract.py,sha256=1ZFp_VoqTjM8cqOfAhco2Ht0DTqakjhZpuZUrAXr28Q,21332
|
90
90
|
prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
|
91
|
-
prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=
|
91
|
+
prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=6qwT6gF1ZsBuargTVKNNjPgmMqm__b1u4kXBk8pzwe0,6709
|
92
92
|
prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
|
93
93
|
prediction_market_agent_tooling/tools/datetime_utc.py,sha256=8_WackjtjC8zHXrhQFTGQ6e6Fz_6llWoKR4CSFvIv9I,2766
|
94
94
|
prediction_market_agent_tooling/tools/db/db_manager.py,sha256=GtzHH1NLl8HwqC8Z7s6eTlIQXuV0blxfaV2PeQrBnfQ,3013
|
@@ -116,13 +116,13 @@ prediction_market_agent_tooling/tools/tavily/tavily_search.py,sha256=pPs0qZNfJ7G
|
|
116
116
|
prediction_market_agent_tooling/tools/tokens/auto_deposit.py,sha256=dO-2XUcsCVvuRpvSN4dr1ZEoVS3Ee9soisLQI3bX8CU,6737
|
117
117
|
prediction_market_agent_tooling/tools/tokens/auto_withdraw.py,sha256=22g0SIVmLlgITpdt3kPhJOw0sU4OPeBuYk_7xCrQr9U,2491
|
118
118
|
prediction_market_agent_tooling/tools/tokens/main_token.py,sha256=1rbwpdCusPgQIVFuo3m00nBZ_b2lCAoFVm67i-YDcEw,812
|
119
|
-
prediction_market_agent_tooling/tools/tokens/token_utils.py,sha256=
|
120
|
-
prediction_market_agent_tooling/tools/tokens/usd.py,sha256=
|
119
|
+
prediction_market_agent_tooling/tools/tokens/token_utils.py,sha256=fhs-FH9m9IbzGa-30R3ZleSKLeKfLEDoJ7F5Om285Vk,1369
|
120
|
+
prediction_market_agent_tooling/tools/tokens/usd.py,sha256=Qq8ofVCCMX-eo8mDlHv4gL9DV_bqHFpd63Wv5yE7cjY,3113
|
121
121
|
prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
|
122
122
|
prediction_market_agent_tooling/tools/utils.py,sha256=1xsyBBJfiEdSoMlceB2F8o2sCb6Z8-qNz11pEJFrdyE,6566
|
123
123
|
prediction_market_agent_tooling/tools/web3_utils.py,sha256=eYCc1iWAVtqDKUPTwnMUHuYolPdwh_OTiM3-AdRgDp4,12198
|
124
|
-
prediction_market_agent_tooling-0.63.0.
|
125
|
-
prediction_market_agent_tooling-0.63.0.
|
126
|
-
prediction_market_agent_tooling-0.63.0.
|
127
|
-
prediction_market_agent_tooling-0.63.0.
|
128
|
-
prediction_market_agent_tooling-0.63.0.
|
124
|
+
prediction_market_agent_tooling-0.63.0.dev499.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
125
|
+
prediction_market_agent_tooling-0.63.0.dev499.dist-info/METADATA,sha256=c7gvHoM7e67d4LhV---3JRwzYiuGkSBgpOX3vXcZvYg,8696
|
126
|
+
prediction_market_agent_tooling-0.63.0.dev499.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
127
|
+
prediction_market_agent_tooling-0.63.0.dev499.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
|
128
|
+
prediction_market_agent_tooling-0.63.0.dev499.dist-info/RECORD,,
|
File without changes
|
File without changes
|