prediction-market-agent-tooling 0.57.16.dev311__py3-none-any.whl → 0.57.18__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/seer_market_factory.abi.json +609 -0
  2. prediction_market_agent_tooling/config.py +8 -0
  3. prediction_market_agent_tooling/loggers.py +9 -1
  4. prediction_market_agent_tooling/markets/omen/omen.py +12 -16
  5. prediction_market_agent_tooling/markets/omen/omen_constants.py +8 -0
  6. prediction_market_agent_tooling/markets/omen/omen_contracts.py +16 -4
  7. prediction_market_agent_tooling/markets/omen/omen_resolving.py +3 -3
  8. prediction_market_agent_tooling/markets/seer/data_models.py +41 -2
  9. prediction_market_agent_tooling/markets/seer/seer.py +94 -0
  10. prediction_market_agent_tooling/markets/seer/seer_contracts.py +76 -0
  11. prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +2 -1
  12. prediction_market_agent_tooling/monitor/monitor.py +1 -1
  13. prediction_market_agent_tooling/monitor/monitor_app.py +4 -8
  14. prediction_market_agent_tooling/tools/contract.py +1 -98
  15. prediction_market_agent_tooling/tools/cow/cow_order.py +133 -0
  16. prediction_market_agent_tooling/tools/tokens/auto_deposit.py +156 -0
  17. prediction_market_agent_tooling/tools/tokens/auto_withdraw.py +62 -0
  18. prediction_market_agent_tooling/tools/tokens/main_token.py +13 -0
  19. {prediction_market_agent_tooling-0.57.16.dev311.dist-info → prediction_market_agent_tooling-0.57.18.dist-info}/METADATA +3 -1
  20. {prediction_market_agent_tooling-0.57.16.dev311.dist-info → prediction_market_agent_tooling-0.57.18.dist-info}/RECORD +23 -15
  21. {prediction_market_agent_tooling-0.57.16.dev311.dist-info → prediction_market_agent_tooling-0.57.18.dist-info}/LICENSE +0 -0
  22. {prediction_market_agent_tooling-0.57.16.dev311.dist-info → prediction_market_agent_tooling-0.57.18.dist-info}/WHEEL +0 -0
  23. {prediction_market_agent_tooling-0.57.16.dev311.dist-info → prediction_market_agent_tooling-0.57.18.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,156 @@
1
+ from web3 import Web3
2
+
3
+ from prediction_market_agent_tooling.config import APIKeys
4
+ from prediction_market_agent_tooling.gtypes import Wei, wei_type
5
+ from prediction_market_agent_tooling.loggers import logger
6
+ from prediction_market_agent_tooling.tools.contract import (
7
+ ContractDepositableWrapperERC20BaseClass,
8
+ ContractERC20BaseClass,
9
+ ContractERC20OnGnosisChain,
10
+ ContractERC4626BaseClass,
11
+ )
12
+ from prediction_market_agent_tooling.tools.cow.cow_order import (
13
+ get_buy_token_amount,
14
+ swap_tokens_waiting,
15
+ )
16
+ from prediction_market_agent_tooling.tools.tokens.main_token import KEEPING_ERC20_TOKEN
17
+ from prediction_market_agent_tooling.tools.utils import should_not_happen
18
+ from prediction_market_agent_tooling.tools.web3_utils import wei_to_xdai
19
+
20
+
21
+ def auto_deposit_collateral_token(
22
+ collateral_token_contract: ContractERC20BaseClass,
23
+ amount_wei: Wei,
24
+ api_keys: APIKeys,
25
+ web3: Web3 | None = None,
26
+ ) -> None:
27
+ if isinstance(collateral_token_contract, ContractDepositableWrapperERC20BaseClass):
28
+ # In this case, we can use deposit function directly, no need to go through DEX.
29
+ auto_deposit_depositable_wrapper_erc20(
30
+ collateral_token_contract, amount_wei, api_keys, web3
31
+ )
32
+
33
+ elif isinstance(collateral_token_contract, ContractERC4626BaseClass):
34
+ auto_deposit_erc4626(collateral_token_contract, amount_wei, api_keys, web3)
35
+
36
+ elif isinstance(collateral_token_contract, ContractERC20BaseClass):
37
+ auto_deposit_erc20(collateral_token_contract, amount_wei, api_keys, web3)
38
+
39
+ else:
40
+ should_not_happen("Unsupported ERC20 contract type.")
41
+
42
+
43
+ def auto_deposit_depositable_wrapper_erc20(
44
+ collateral_token_contract: ContractDepositableWrapperERC20BaseClass,
45
+ amount_wei: Wei,
46
+ api_keys: APIKeys,
47
+ web3: Web3 | None,
48
+ ) -> None:
49
+ collateral_token_balance = collateral_token_contract.balanceOf(
50
+ for_address=api_keys.bet_from_address, web3=web3
51
+ )
52
+
53
+ # If we have enough of the collateral token, we don't need to deposit.
54
+ if collateral_token_balance >= amount_wei:
55
+ return
56
+
57
+ # If we don't have enough, we need to deposit the difference.
58
+ left_to_deposit = Wei(amount_wei - collateral_token_balance)
59
+ logger.info(
60
+ f"Depositing {wei_to_xdai(left_to_deposit)} {collateral_token_contract.symbol()}."
61
+ )
62
+ collateral_token_contract.deposit(api_keys, left_to_deposit, web3=web3)
63
+
64
+
65
+ def auto_deposit_erc4626(
66
+ collateral_token_contract: ContractERC4626BaseClass,
67
+ asset_amount_wei: Wei,
68
+ api_keys: APIKeys,
69
+ web3: Web3 | None,
70
+ ) -> None:
71
+ for_address = api_keys.bet_from_address
72
+ collateral_token_balance_in_shares = collateral_token_contract.balanceOf(
73
+ for_address=for_address, web3=web3
74
+ )
75
+ asset_amount_wei_in_shares = collateral_token_contract.convertToShares(
76
+ asset_amount_wei, web3
77
+ )
78
+
79
+ # If we have enough shares, we don't need to deposit.
80
+ if collateral_token_balance_in_shares >= asset_amount_wei_in_shares:
81
+ return
82
+
83
+ # If we need to deposit into erc4626, we first need to have enough of the asset token.
84
+ asset_token_contract = collateral_token_contract.get_asset_token_contract(web3=web3)
85
+
86
+ if isinstance(asset_token_contract, ContractDepositableWrapperERC20BaseClass):
87
+ # If the asset token is Depositable Wrapper ERC-20, we don't need to go through DEX.
88
+ # First, calculate how much of asset token we need to deposit into the vault.
89
+ collateral_token_balance_in_assets = collateral_token_contract.convertToAssets(
90
+ collateral_token_balance_in_shares, web3
91
+ )
92
+ left_to_deposit = Wei(asset_amount_wei - collateral_token_balance_in_assets)
93
+ if (
94
+ collateral_token_contract.get_asset_token_balance(for_address, web3)
95
+ < left_to_deposit
96
+ ):
97
+ # If we don't have enough of asset token to deposit into the vault, deposit that one first.
98
+ auto_deposit_depositable_wrapper_erc20(
99
+ asset_token_contract, left_to_deposit, api_keys, web3
100
+ )
101
+ # And finally, we can deposit the asset token into the erc4626 vault directly as well, without DEX.
102
+ collateral_token_contract.deposit_asset_token(left_to_deposit, api_keys, web3)
103
+
104
+ else:
105
+ # Otherwise, we need to go through DEX.
106
+ auto_deposit_erc20(collateral_token_contract, asset_amount_wei, api_keys, web3)
107
+
108
+
109
+ def auto_deposit_erc20(
110
+ collateral_token_contract: ContractERC20BaseClass,
111
+ amount_xdai_wei: Wei,
112
+ api_keys: APIKeys,
113
+ web3: Web3 | None,
114
+ ) -> None:
115
+ # How much it is in the other token (collateral token).
116
+ collateral_amount_wei = get_buy_token_amount(
117
+ amount_xdai_wei,
118
+ KEEPING_ERC20_TOKEN.address,
119
+ collateral_token_contract.address,
120
+ )
121
+ # How much do we have already in the other token (collateral token).
122
+ collateral_balance_wei = collateral_token_contract.balanceOf(
123
+ api_keys.bet_from_address
124
+ )
125
+ # Amount of collateral token remaining to get.
126
+ remaining_to_get_in_collateral_wei = max(
127
+ 0, collateral_amount_wei - collateral_balance_wei
128
+ )
129
+ if not remaining_to_get_in_collateral_wei:
130
+ return
131
+ # Estimate of how much of the source token we need to sell in order to fill the remaining collateral amount, with 1% slippage to be sure.
132
+ amount_to_sell_wei = wei_type(
133
+ (remaining_to_get_in_collateral_wei * amount_xdai_wei)
134
+ / collateral_amount_wei
135
+ * 1.01
136
+ )
137
+ # If we don't have enough of the source token.
138
+ if amount_to_sell_wei > ContractERC20OnGnosisChain(
139
+ address=KEEPING_ERC20_TOKEN.address
140
+ ).balanceOf(api_keys.bet_from_address):
141
+ # Try to deposit it, if it's depositable token (like Wrapped xDai, agent could have xDai).
142
+ if isinstance(KEEPING_ERC20_TOKEN, ContractDepositableWrapperERC20BaseClass):
143
+ auto_deposit_depositable_wrapper_erc20(
144
+ KEEPING_ERC20_TOKEN, amount_to_sell_wei, api_keys, web3
145
+ )
146
+ else:
147
+ raise ValueError(
148
+ "Not enough of the source token to sell to get the desired amount of the collateral token."
149
+ )
150
+ swap_tokens_waiting(
151
+ amount_wei=amount_to_sell_wei,
152
+ sell_token=KEEPING_ERC20_TOKEN.address,
153
+ buy_token=collateral_token_contract.address,
154
+ api_keys=api_keys,
155
+ web3=web3,
156
+ )
@@ -0,0 +1,62 @@
1
+ from web3 import Web3
2
+
3
+ from prediction_market_agent_tooling.config import APIKeys
4
+ from prediction_market_agent_tooling.gtypes import Wei
5
+ from prediction_market_agent_tooling.tools.contract import (
6
+ ContractERC20BaseClass,
7
+ ContractERC4626BaseClass,
8
+ )
9
+ from prediction_market_agent_tooling.tools.cow.cow_order import (
10
+ get_buy_token_amount,
11
+ swap_tokens_waiting,
12
+ )
13
+ from prediction_market_agent_tooling.tools.tokens.main_token import KEEPING_ERC20_TOKEN
14
+ from prediction_market_agent_tooling.tools.utils import should_not_happen
15
+ from prediction_market_agent_tooling.tools.web3_utils import remove_fraction
16
+
17
+
18
+ def auto_withdraw_collateral_token(
19
+ collateral_token_contract: ContractERC20BaseClass,
20
+ amount_wei: Wei,
21
+ api_keys: APIKeys,
22
+ web3: Web3 | None = None,
23
+ slippage: float = 0.001,
24
+ ) -> None:
25
+ # Small slippage as exact exchange rate constantly changes and we don't care about small differences.
26
+ amount_wei = remove_fraction(
27
+ amount_wei,
28
+ slippage,
29
+ )
30
+
31
+ if collateral_token_contract.address == KEEPING_ERC20_TOKEN.address:
32
+ # Do nothing, as this is the token we want to keep.
33
+ return
34
+ elif (
35
+ isinstance(collateral_token_contract, ContractERC4626BaseClass)
36
+ and collateral_token_contract.get_asset_token_contract().address
37
+ == KEEPING_ERC20_TOKEN.address
38
+ ):
39
+ # If the ERC4626 is backed by KEEPING_ERC20_TOKEN, we can withdraw it directly, no need to go through DEX.
40
+ collateral_token_contract.withdraw(
41
+ api_keys,
42
+ amount_wei,
43
+ web3=web3,
44
+ )
45
+ elif isinstance(collateral_token_contract, ContractERC20BaseClass):
46
+ # Otherwise, DEX will handle the rest of token swaps.
47
+ # First, convert `amount_wei` from xDai-based value into the collateral token-based value.
48
+ collateral_amount_wei = get_buy_token_amount(
49
+ amount_wei,
50
+ KEEPING_ERC20_TOKEN.address,
51
+ collateral_token_contract.address,
52
+ )
53
+ # And then sell it.
54
+ swap_tokens_waiting(
55
+ amount_wei=collateral_amount_wei,
56
+ sell_token=collateral_token_contract.address,
57
+ buy_token=KEEPING_ERC20_TOKEN.address,
58
+ api_keys=api_keys,
59
+ web3=web3,
60
+ )
61
+ else:
62
+ should_not_happen("Unsupported ERC20 contract type.")
@@ -0,0 +1,13 @@
1
+ from prediction_market_agent_tooling.markets.omen.omen_constants import (
2
+ WRAPPED_XDAI_CONTRACT_ADDRESS,
3
+ )
4
+ from prediction_market_agent_tooling.tools.contract import (
5
+ ContractDepositableWrapperERC20OnGnosisChain,
6
+ )
7
+
8
+ # This is the token where agents will hold their funds,
9
+ # except for a small portion that will be kept in the native token of the network to pay for the fees.
10
+ # If changed, then keep in mind that we assume this token is equal to 1 USD.
11
+ KEEPING_ERC20_TOKEN = ContractDepositableWrapperERC20OnGnosisChain(
12
+ address=WRAPPED_XDAI_CONTRACT_ADDRESS
13
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.57.16.dev311
3
+ Version: 0.57.18
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.13
@@ -14,6 +14,7 @@ Provides-Extra: openai
14
14
  Provides-Extra: optuna
15
15
  Requires-Dist: autoflake (>=2.2.1,<3.0.0)
16
16
  Requires-Dist: base58 (>=1.0.2,<2.0)
17
+ Requires-Dist: cowdao-cowpy (>=1.0.0rc1,<2.0.0)
17
18
  Requires-Dist: cron-validator (>=1.0.8,<2.0.0)
18
19
  Requires-Dist: eth-account (>=0.8.0,<0.12.0)
19
20
  Requires-Dist: eth-keys (>=0.6.1,<0.7.0)
@@ -24,6 +25,7 @@ Requires-Dist: google-cloud-functions (>=1.16.0,<2.0.0)
24
25
  Requires-Dist: google-cloud-resource-manager (>=1.12.0,<2.0.0)
25
26
  Requires-Dist: google-cloud-secret-manager (>=2.18.2,<3.0.0)
26
27
  Requires-Dist: hishel (>=0.0.31,<0.0.32)
28
+ Requires-Dist: httpx (>=0.25.2,<0.26.0)
27
29
  Requires-Dist: isort (>=5.13.2,<6.0.0)
28
30
  Requires-Dist: langchain (>=0.2.6,<0.3.0) ; extra == "langchain"
29
31
  Requires-Dist: langchain-community (>=0.0.19)
@@ -16,12 +16,13 @@ prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json,sha256=u1-3B
16
16
  prediction_market_agent_tooling/abis/ownable.abi.json,sha256=DeTy_7VmsMhFl7jwI8MIlmjy2jORauYxrGm7wC_Alxw,1528
17
17
  prediction_market_agent_tooling/abis/ownable_erc721.abi.json,sha256=9sxm588MAQmqCV_S0D3eYC7l9grbeALsd0Da_AHxdEI,8506
18
18
  prediction_market_agent_tooling/abis/proxy.abi.json,sha256=h24GXZ6Q0bSZlwh7zOv0EiDvbqUz_PHtWfKHTyPJ1w4,644
19
+ prediction_market_agent_tooling/abis/seer_market_factory.abi.json,sha256=g7RVxZVUWlTXIgTV2W6kO4twQM909Qv58zAr7Dk4XIc,13553
19
20
  prediction_market_agent_tooling/abis/simpletreasury.abi.json,sha256=7-l7rntLkcFKkoN8hXywO0-h-mUZxOZlyQg1Jk7yTB0,2877
20
21
  prediction_market_agent_tooling/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
22
  prediction_market_agent_tooling/benchmark/agents.py,sha256=B1-uWdyeN4GGKMWGK_-CcAFJg1m9Y_XuaeIHPB29QR8,3971
22
23
  prediction_market_agent_tooling/benchmark/benchmark.py,sha256=MqTiaaJ3cYiOLUVR7OyImLWxcEya3Rl5JyFYW-K0lwM,17097
23
24
  prediction_market_agent_tooling/benchmark/utils.py,sha256=D0MfUkVZllmvcU0VOurk9tcKT7JTtwwOp-63zuCBVuc,2880
24
- prediction_market_agent_tooling/config.py,sha256=Ffb1ftRiguAxa5cS0nXvKK01HomdqzFDCsp8rFd5taM,7553
25
+ prediction_market_agent_tooling/config.py,sha256=QBrbqG9wN1JFBUt_kCl2ybPamobKP6UhfiaRZK_VjMo,7805
25
26
  prediction_market_agent_tooling/deploy/agent.py,sha256=58Ms6wFcRM3yhpdDVT-ohryZhHJNinn1Z4MdrmCMXvM,23627
26
27
  prediction_market_agent_tooling/deploy/agent_example.py,sha256=dIIdZashExWk9tOdyDjw87AuUcGyM7jYxNChYrVK2dM,1001
27
28
  prediction_market_agent_tooling/deploy/betting_strategy.py,sha256=kMrIE3wMv_IB6nJd_1DmDXDkEZhsXFOgyTd7JZ0gqHI,13068
@@ -34,7 +35,7 @@ prediction_market_agent_tooling/gtypes.py,sha256=G9KOKqYcxoKLv5Tfto4g5zq46FeIKxG
34
35
  prediction_market_agent_tooling/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
36
  prediction_market_agent_tooling/jobs/jobs_models.py,sha256=GOtsNm7URhzZM5fPY64r8m8Gz-sSsUhG1qmDoC7wGL8,2231
36
37
  prediction_market_agent_tooling/jobs/omen/omen_jobs.py,sha256=N0_jGDyXQeVXXlYg4oA_pOfqIjscHsLQbr0pBwFGoRo,5178
37
- prediction_market_agent_tooling/loggers.py,sha256=Am6HHXRNO545BO3l7Ue9Wb2TkYE1OK8KKhGbI3XypVU,3751
38
+ prediction_market_agent_tooling/loggers.py,sha256=MvCkQSJL2_0yErNatqr81sJlc4aOgPzDp9VNrIhKUcc,4140
38
39
  prediction_market_agent_tooling/markets/agent_market.py,sha256=W2ME57-CSAhrt8qm8-b5r7yLq-Sk7R_BZMaApvjhrUE,12901
39
40
  prediction_market_agent_tooling/markets/base_subgraph_handler.py,sha256=7RaYO_4qAmQ6ZGM8oPK2-CkiJfKmV9MxM-rJlduaecU,1971
40
41
  prediction_market_agent_tooling/markets/categorize.py,sha256=jsoHWvZk9pU6n17oWSCcCxNNYVwlb_NXsZxKRI7vmsk,1301
@@ -51,24 +52,27 @@ prediction_market_agent_tooling/markets/metaculus/data_models.py,sha256=Suxa7xEL
51
52
  prediction_market_agent_tooling/markets/metaculus/metaculus.py,sha256=86TIx6cavEWc8Cv4KpZxSvwiSw9oFybXE3YB49pg-CA,4377
52
53
  prediction_market_agent_tooling/markets/omen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
54
  prediction_market_agent_tooling/markets/omen/data_models.py,sha256=uT8ILKrg2g4jGodPxtolPErk25buNzMYndb01ZL2dYE,28421
54
- prediction_market_agent_tooling/markets/omen/omen.py,sha256=w6uf_hDpVS2_9LnfmC3ZX9KZSMtXeuUvyOr1fs9nGZU,51880
55
- prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=baXJwk-jSI3-FV-k239oCNOA4oKz6LT47juX8AKpW3A,28297
56
- prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=TTi-HP_fUHKH5YTlWSBdszQFb5q3pfzXnXr1FsFu3bM,9703
55
+ prediction_market_agent_tooling/markets/omen/omen.py,sha256=xNHYn5diKjKlkeKoYNr8DrE0gSMsU8poGhxBjw2PZow,51783
56
+ prediction_market_agent_tooling/markets/omen/omen_constants.py,sha256=D9oflYKafLQiHYtB5sScMHqmXyzM8JP8J0yATmc4SQQ,233
57
+ prediction_market_agent_tooling/markets/omen/omen_contracts.py,sha256=EXqBlVivbmW8aBQ65O09X2xkyesHAop49GUl1tUffWA,28648
58
+ prediction_market_agent_tooling/markets/omen/omen_resolving.py,sha256=E1BVDvQd1qYtCxmfC94kJtGkmQqpGPHL3zTkcs5wW6M,9697
57
59
  prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py,sha256=mZ0CgKfHj0gLFq9plNpBhNqMuclb8V3qNagWfLYcpUc,38806
58
60
  prediction_market_agent_tooling/markets/polymarket/api.py,sha256=UZ4_TG8ceb9Y-qgsOKs8Qiv8zDt957QkT8IX2c83yqo,4800
59
61
  prediction_market_agent_tooling/markets/polymarket/data_models.py,sha256=Fd5PI5y3mJM8VHExBhWFWEnuuIKxQmIAXgBuoPDvNjw,4341
60
62
  prediction_market_agent_tooling/markets/polymarket/data_models_web.py,sha256=VZhVccTApygSKMmy6Au2G02JCJOKJnR_oVeKlaesuSg,12548
61
63
  prediction_market_agent_tooling/markets/polymarket/polymarket.py,sha256=NRoZK71PtH8kkangMqme7twcAXhRJSSabbmOir-UnAI,3418
62
64
  prediction_market_agent_tooling/markets/polymarket/utils.py,sha256=DImFxeMg8lTfsEDZ8FavndW38TfUsCkawcVGnucsuGo,2029
63
- prediction_market_agent_tooling/markets/seer/data_models.py,sha256=afbwmwGJXUw-F7SE3OgL4ClpXp5yHs5v1Ae7xlFgJdQ,712
64
- prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=gVzmLhN9YQdmeYVNAwdZ4_t_bND09ioIJOmXnb8UOvo,5481
65
+ prediction_market_agent_tooling/markets/seer/data_models.py,sha256=DmxkAfusRbupqBDjohSFhsYyW7WjKZ1sQKpm8xeAMi4,2017
66
+ prediction_market_agent_tooling/markets/seer/seer.py,sha256=l87L82M-RHMBJjfdtNXWgGLc979n2Fub9Z702zE8I9c,3351
67
+ prediction_market_agent_tooling/markets/seer/seer_contracts.py,sha256=E7CYAKZiK6cg3dyj1kJuIPKSYYUft98F64shF5S0g4s,2730
68
+ prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py,sha256=KraQe4GgbdMcYnvpEJqcSHXQqgyDiC7IjkIOHAfma9s,5528
65
69
  prediction_market_agent_tooling/monitor/financial_metrics/financial_metrics.py,sha256=fjIgjDIx5MhH5mwf7S0cspLOOSU3elYLhGYoIiM26mU,2746
66
70
  prediction_market_agent_tooling/monitor/markets/manifold.py,sha256=TS4ERwTfQnot8dhekNyVNhJYf5ysYsjF-9v5_kM3aVI,3334
67
71
  prediction_market_agent_tooling/monitor/markets/metaculus.py,sha256=LOnyWWBFdg10-cTWdb76nOsNjDloO8OfMT85GBzRCFI,1455
68
72
  prediction_market_agent_tooling/monitor/markets/omen.py,sha256=EqiJYTvDbSu7fBpbrBmCuf3fc6GHr4MxWrBGa69MIyc,3305
69
73
  prediction_market_agent_tooling/monitor/markets/polymarket.py,sha256=wak8o4BYaGbLpshQD12OrsqNABdanyID6ql95lEG2io,1870
70
- prediction_market_agent_tooling/monitor/monitor.py,sha256=4kMev1iGHQiEFslEqt5bWiXAyM_Qxb4rdMVKx2H9e1U,14235
71
- prediction_market_agent_tooling/monitor/monitor_app.py,sha256=zNHSwH_KEiv8aOwvfo1JrNuSFMefpzXPWtellhnJpTI,4775
74
+ prediction_market_agent_tooling/monitor/monitor.py,sha256=4jw_1aDUoWi9kTET8usy_k5hwhANR8m522aAjHWmvMI,14161
75
+ prediction_market_agent_tooling/monitor/monitor_app.py,sha256=-_6w_ZvQ-Ad5qaeuo7NKTXUOOZ_6OrR8jMe25BGOY4k,4615
72
76
  prediction_market_agent_tooling/monitor/monitor_settings.py,sha256=Xiozs3AsufuJ04JOe1vjUri-IAMWHjjmc2ugGGiHNH4,947
73
77
  prediction_market_agent_tooling/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
78
  prediction_market_agent_tooling/tools/balances.py,sha256=PhLUKHKJR5Fx9j2EcaUzuQRnnZJM10cw70SxVdsELlI,962
@@ -80,8 +84,9 @@ prediction_market_agent_tooling/tools/betting_strategies/utils.py,sha256=kpIb-ci
80
84
  prediction_market_agent_tooling/tools/caches/db_cache.py,sha256=aafau_n_AUbLIwkyIRiTPgKB0dmM0767mSqyPDLF2A4,10576
81
85
  prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjqeAebu5T7ftRnlkxiL02IC-MxCfDB80x7w,1506
82
86
  prediction_market_agent_tooling/tools/caches/serializers.py,sha256=vFDx4fsPxclXp2q0sv27j4al_M_Tj9aR2JJP-xNHQXA,2151
83
- prediction_market_agent_tooling/tools/contract.py,sha256=VKSH-31Cf3DwtHpH9KZnQr08IxmfyvYvuqkcOK7dUN8,29608
87
+ prediction_market_agent_tooling/tools/contract.py,sha256=JkkrXm75_XUZ33jVlXF7v-Ge9RLSfXQeY523H_kuThQ,26069
84
88
  prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
89
+ prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=ohriN_65BZ69f_BV6bNg_AwZjidip4yi4d2G6Ddy5Qg,4238
85
90
  prediction_market_agent_tooling/tools/custom_exceptions.py,sha256=Fh8z1fbwONvP4-j7AmV_PuEcoqb6-QXa9PJ9m7guMcM,93
86
91
  prediction_market_agent_tooling/tools/data_models.py,sha256=jDQ7FU0QQhXlcgJh5VZZGwDTYP2OPAqKPHZFewCPAUY,732
87
92
  prediction_market_agent_tooling/tools/datetime_utc.py,sha256=8_WackjtjC8zHXrhQFTGQ6e6Fz_6llWoKR4CSFvIv9I,2766
@@ -106,11 +111,14 @@ prediction_market_agent_tooling/tools/singleton.py,sha256=CiIELUiI-OeS7U7eeHEt0r
106
111
  prediction_market_agent_tooling/tools/streamlit_user_login.py,sha256=NXEqfjT9Lc9QtliwSGRASIz1opjQ7Btme43H4qJbzgE,3010
107
112
  prediction_market_agent_tooling/tools/tavily/tavily_models.py,sha256=5ldQs1pZe6uJ5eDAuP4OLpzmcqYShlIV67kttNFvGS0,342
108
113
  prediction_market_agent_tooling/tools/tavily/tavily_search.py,sha256=Kw2mXNkMTYTEe1MBSTqhQmLoeXtgb6CkmHlcAJvhtqE,3809
114
+ prediction_market_agent_tooling/tools/tokens/auto_deposit.py,sha256=o8_ERfPL-ps9FLvH5vgdiSRJQ4dZONJw9KK9sHgeP2I,6390
115
+ prediction_market_agent_tooling/tools/tokens/auto_withdraw.py,sha256=B02maQkl3wNptWFtZdnDosICJE5BfnLUVqxp5uJIaPA,2353
116
+ prediction_market_agent_tooling/tools/tokens/main_token.py,sha256=5iHO7-iehSlXuue6ocVrr4IsklVjm7QHIwln4BsebJA,573
109
117
  prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
110
118
  prediction_market_agent_tooling/tools/utils.py,sha256=jLG4nbEoIzzJiZ4RgMx4Q969Zdl0p0s63p8uET_0Fuw,6440
111
119
  prediction_market_agent_tooling/tools/web3_utils.py,sha256=wqUDCed3iNrn1Wao1iwGN6tzIrhpzrTRj319wlveJEo,12275
112
- prediction_market_agent_tooling-0.57.16.dev311.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
113
- prediction_market_agent_tooling-0.57.16.dev311.dist-info/METADATA,sha256=T67P5-zqlNFVIA4QDcQbnKhFcVi1CM6L5YHZJMu_jvY,8459
114
- prediction_market_agent_tooling-0.57.16.dev311.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
115
- prediction_market_agent_tooling-0.57.16.dev311.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
116
- prediction_market_agent_tooling-0.57.16.dev311.dist-info/RECORD,,
120
+ prediction_market_agent_tooling-0.57.18.dist-info/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
121
+ prediction_market_agent_tooling-0.57.18.dist-info/METADATA,sha256=KXSS97cfCzPxg-0Q8DQr7zV8UW6lUkYTkgss3vAc1uI,8540
122
+ prediction_market_agent_tooling-0.57.18.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
123
+ prediction_market_agent_tooling-0.57.18.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
124
+ prediction_market_agent_tooling-0.57.18.dist-info/RECORD,,