prediction-market-agent-tooling 0.69.11.dev1122__py3-none-any.whl → 0.69.13.dev1128__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 +40 -1
- {prediction_market_agent_tooling-0.69.11.dev1122.dist-info → prediction_market_agent_tooling-0.69.13.dev1128.dist-info}/METADATA +1 -1
- {prediction_market_agent_tooling-0.69.11.dev1122.dist-info → prediction_market_agent_tooling-0.69.13.dev1128.dist-info}/RECORD +6 -6
- {prediction_market_agent_tooling-0.69.11.dev1122.dist-info → prediction_market_agent_tooling-0.69.13.dev1128.dist-info}/WHEEL +0 -0
- {prediction_market_agent_tooling-0.69.11.dev1122.dist-info → prediction_market_agent_tooling-0.69.13.dev1128.dist-info}/entry_points.txt +0 -0
- {prediction_market_agent_tooling-0.69.11.dev1122.dist-info → prediction_market_agent_tooling-0.69.13.dev1128.dist-info}/licenses/LICENSE +0 -0
|
@@ -10,6 +10,7 @@ from pydantic import BaseModel, field_validator
|
|
|
10
10
|
from web3 import Web3
|
|
11
11
|
from web3.constants import CHECKSUM_ADDRESSS_ZERO, HASH_ZERO
|
|
12
12
|
from web3.contract.contract import Contract as Web3Contract
|
|
13
|
+
from web3.exceptions import ContractCustomError
|
|
13
14
|
|
|
14
15
|
from prediction_market_agent_tooling.chains import POLYGON_CHAIN_ID
|
|
15
16
|
from prediction_market_agent_tooling.config import APIKeys, RPCConfig
|
|
@@ -940,6 +941,8 @@ def uni_implementation_address(
|
|
|
940
941
|
implementation_proxy_address(contract_address, web3),
|
|
941
942
|
minimal_proxy_address(contract_address, web3),
|
|
942
943
|
seer_minimal_proxy_address(contract_address, web3),
|
|
944
|
+
eip_1967_proxy_address(contract_address, web3),
|
|
945
|
+
zeppelinos_proxy_address(contract_address, web3),
|
|
943
946
|
]
|
|
944
947
|
return [addr for addr in addresses if addr is not None]
|
|
945
948
|
|
|
@@ -951,7 +954,15 @@ def implementation_proxy_address(
|
|
|
951
954
|
contract_address, "implementation", web3, look_for_proxy_contract=False
|
|
952
955
|
):
|
|
953
956
|
return None
|
|
954
|
-
|
|
957
|
+
try:
|
|
958
|
+
return ContractProxyOnGnosisChain(address=contract_address).implementation(web3)
|
|
959
|
+
except ContractCustomError as e:
|
|
960
|
+
# For example https://gnosisscan.io/address/0x3221a28ed2b2e955da64d1d299956f277562c95c#code,
|
|
961
|
+
# it has the implementation method, but it's only for admins.
|
|
962
|
+
logger.warning(
|
|
963
|
+
f"Failed to get implementation for {contract_address=} even though it has the method: {e}"
|
|
964
|
+
)
|
|
965
|
+
return None
|
|
955
966
|
|
|
956
967
|
|
|
957
968
|
def minimal_proxy_address(
|
|
@@ -982,6 +993,34 @@ def seer_minimal_proxy_address(
|
|
|
982
993
|
return None
|
|
983
994
|
|
|
984
995
|
|
|
996
|
+
def eip_1967_proxy_address(
|
|
997
|
+
contract_address: ChecksumAddress, web3: Web3
|
|
998
|
+
) -> ChecksumAddress | None:
|
|
999
|
+
try:
|
|
1000
|
+
slot = HexBytes(Web3.keccak(text="eip1967.proxy.implementation")).as_int() - 1
|
|
1001
|
+
raw_slot = web3.eth.get_storage_at(contract_address, slot)
|
|
1002
|
+
address = eth_abi.decode(["address"], raw_slot)[0]
|
|
1003
|
+
return Web3.to_checksum_address(address)
|
|
1004
|
+
except DecodingError:
|
|
1005
|
+
logger.info("Error decoding contract address for eip 1967 proxy")
|
|
1006
|
+
return None
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
def zeppelinos_proxy_address(
|
|
1010
|
+
contract_address: ChecksumAddress, web3: Web3
|
|
1011
|
+
) -> ChecksumAddress | None:
|
|
1012
|
+
try:
|
|
1013
|
+
slot = HexBytes(
|
|
1014
|
+
Web3.keccak(text="org.zeppelinos.proxy.implementation")
|
|
1015
|
+
).as_int()
|
|
1016
|
+
raw_slot = web3.eth.get_storage_at(contract_address, slot)
|
|
1017
|
+
address = eth_abi.decode(["address"], raw_slot)[0]
|
|
1018
|
+
return Web3.to_checksum_address(address)
|
|
1019
|
+
except DecodingError:
|
|
1020
|
+
logger.info("Error decoding contract address for zeppelinos proxy")
|
|
1021
|
+
return None
|
|
1022
|
+
|
|
1023
|
+
|
|
985
1024
|
def init_collateral_token_contract(
|
|
986
1025
|
address: ChecksumAddress, web3: Web3 | None
|
|
987
1026
|
) -> ContractERC20BaseClass:
|
|
@@ -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=9fyyu4HoYyKkuLnIYtxTkruJVXMlVBxUm9BzeHwyKV8,35474
|
|
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.13.dev1128.dist-info/METADATA,sha256=tL05XGaBxpeMZSTLUoioFC1ZThkla2Kv82x1Wc3qCuA,8899
|
|
141
|
+
prediction_market_agent_tooling-0.69.13.dev1128.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
142
|
+
prediction_market_agent_tooling-0.69.13.dev1128.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
|
|
143
|
+
prediction_market_agent_tooling-0.69.13.dev1128.dist-info/licenses/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
|
|
144
|
+
prediction_market_agent_tooling-0.69.13.dev1128.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|