prediction-market-agent-tooling 0.69.13.dev1130__py3-none-any.whl → 0.69.14__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.
Potentially problematic release.
This version of prediction-market-agent-tooling might be problematic. Click here for more details.
- prediction_market_agent_tooling/tools/contract.py +16 -2
- {prediction_market_agent_tooling-0.69.13.dev1130.dist-info → prediction_market_agent_tooling-0.69.14.dist-info}/METADATA +1 -1
- {prediction_market_agent_tooling-0.69.13.dev1130.dist-info → prediction_market_agent_tooling-0.69.14.dist-info}/RECORD +6 -6
- {prediction_market_agent_tooling-0.69.13.dev1130.dist-info → prediction_market_agent_tooling-0.69.14.dist-info}/WHEEL +0 -0
- {prediction_market_agent_tooling-0.69.13.dev1130.dist-info → prediction_market_agent_tooling-0.69.14.dist-info}/entry_points.txt +0 -0
- {prediction_market_agent_tooling-0.69.13.dev1130.dist-info → prediction_market_agent_tooling-0.69.14.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,12 +5,13 @@ import typing as t
|
|
|
5
5
|
from contextlib import contextmanager
|
|
6
6
|
|
|
7
7
|
import eth_abi
|
|
8
|
+
import tenacity
|
|
8
9
|
from eth_abi.exceptions import DecodingError
|
|
9
10
|
from pydantic import BaseModel, field_validator
|
|
10
11
|
from web3 import Web3
|
|
11
12
|
from web3.constants import CHECKSUM_ADDRESSS_ZERO, HASH_ZERO
|
|
12
13
|
from web3.contract.contract import Contract as Web3Contract
|
|
13
|
-
from web3.exceptions import ContractCustomError
|
|
14
|
+
from web3.exceptions import ContractCustomError, ContractLogicError
|
|
14
15
|
|
|
15
16
|
from prediction_market_agent_tooling.chains import POLYGON_CHAIN_ID
|
|
16
17
|
from prediction_market_agent_tooling.config import APIKeys, RPCConfig
|
|
@@ -206,10 +207,18 @@ class ContractERC20BaseClass(ContractBaseClass):
|
|
|
206
207
|
)
|
|
207
208
|
)
|
|
208
209
|
|
|
210
|
+
def name(self, web3: Web3 | None = None) -> str:
|
|
211
|
+
name: str = self.call("name", web3=web3)
|
|
212
|
+
return name
|
|
213
|
+
|
|
209
214
|
def symbol(self, web3: Web3 | None = None) -> str:
|
|
210
215
|
symbol: str = self.call("symbol", web3=web3)
|
|
211
216
|
return symbol
|
|
212
217
|
|
|
218
|
+
def decimals(self, web3: Web3 | None = None) -> int:
|
|
219
|
+
decimals = int(self.call("decimals", web3=web3))
|
|
220
|
+
return decimals
|
|
221
|
+
|
|
213
222
|
def symbol_cached(self, web3: Web3 | None = None) -> str:
|
|
214
223
|
web3 = web3 or self.get_web3()
|
|
215
224
|
cache_key = create_contract_method_cache_key(self.symbol, web3)
|
|
@@ -956,7 +965,12 @@ def implementation_proxy_address(
|
|
|
956
965
|
return None
|
|
957
966
|
try:
|
|
958
967
|
return ContractProxyOnGnosisChain(address=contract_address).implementation(web3)
|
|
959
|
-
except ContractCustomError as e:
|
|
968
|
+
except (ContractCustomError, ContractLogicError, tenacity.RetryError) as e:
|
|
969
|
+
if isinstance(e, tenacity.RetryError) and not isinstance(
|
|
970
|
+
e.last_attempt.exception(), (ContractCustomError, ContractLogicError)
|
|
971
|
+
):
|
|
972
|
+
raise
|
|
973
|
+
|
|
960
974
|
# For example https://gnosisscan.io/address/0x3221a28ed2b2e955da64d1d299956f277562c95c#code,
|
|
961
975
|
# it has the implementation method, but it's only for admins.
|
|
962
976
|
logger.warning(
|
|
@@ -92,7 +92,7 @@ prediction_market_agent_tooling/tools/betting_strategies/utils.py,sha256=MpS3FOM
|
|
|
92
92
|
prediction_market_agent_tooling/tools/caches/db_cache.py,sha256=V6o6UdesjkKzSJMhqkUtD76cJGPaNhuwA4OL2chIYSI,13801
|
|
93
93
|
prediction_market_agent_tooling/tools/caches/inmemory_cache.py,sha256=ZW5iI5rmjqeAebu5T7ftRnlkxiL02IC-MxCfDB80x7w,1506
|
|
94
94
|
prediction_market_agent_tooling/tools/caches/serializers.py,sha256=fwyIHUsL7u9NY7ZihTcUdqsvl2psatcbTfgWHTSez3U,2427
|
|
95
|
-
prediction_market_agent_tooling/tools/contract.py,sha256=
|
|
95
|
+
prediction_market_agent_tooling/tools/contract.py,sha256=ZPQT3Kk9-q-ns7DO3MjQ_OLPUgeDjUTFwKP7L0vKKqc,36035
|
|
96
96
|
prediction_market_agent_tooling/tools/contract_utils.py,sha256=9X9raICUZkPDShilt02aYzS_ILZ62u0vG5081uWLdqk,2152
|
|
97
97
|
prediction_market_agent_tooling/tools/costs.py,sha256=EaAJ7v9laD4VEV3d8B44M4u3_oEO_H16jRVCdoZ93Uw,954
|
|
98
98
|
prediction_market_agent_tooling/tools/cow/cow_order.py,sha256=DN_8cPrr4jWVpXdS4D0j1QB19nB8fxDoSheo2BFMc8M,14523
|
|
@@ -137,8 +137,8 @@ prediction_market_agent_tooling/tools/tokens/usd.py,sha256=DPO-4HBTy1-TZHKL_9CnH
|
|
|
137
137
|
prediction_market_agent_tooling/tools/transaction_cache.py,sha256=K5YKNL2_tR10Iw2TD9fuP-CTGpBbZtNdgbd0B_R7pjg,1814
|
|
138
138
|
prediction_market_agent_tooling/tools/utils.py,sha256=ruq6P5TFs8CBHxeBLj1Plpx7kuNFPpDgMsJGQgDiRNs,8785
|
|
139
139
|
prediction_market_agent_tooling/tools/web3_utils.py,sha256=CDbaidlLeQ4VHzSg150L7QNfHfGveljSePGuDVFEYqc,13963
|
|
140
|
-
prediction_market_agent_tooling-0.69.
|
|
141
|
-
prediction_market_agent_tooling-0.69.
|
|
142
|
-
prediction_market_agent_tooling-0.69.
|
|
143
|
-
prediction_market_agent_tooling-0.69.
|
|
144
|
-
prediction_market_agent_tooling-0.69.
|
|
140
|
+
prediction_market_agent_tooling-0.69.14.dist-info/METADATA,sha256=tnCGEkf1CSqxhCeqjPJDiJguGhfCXCicfocy_GChMEM,8891
|
|
141
|
+
prediction_market_agent_tooling-0.69.14.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
142
|
+
prediction_market_agent_tooling-0.69.14.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
|
|
143
|
+
prediction_market_agent_tooling-0.69.14.dist-info/licenses/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
|
144
|
+
prediction_market_agent_tooling-0.69.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|