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.

@@ -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
- return ContractProxyOnGnosisChain(address=contract_address).implementation(web3)
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:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.69.11.dev1122
3
+ Version: 0.69.13.dev1128
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  License-File: LICENSE
6
6
  Author: Gnosis
@@ -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=BzpAFcbKl_KqwgAlaXx63Fg8jzr0EO3qEeOs1K11CPA,33905
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.11.dev1122.dist-info/METADATA,sha256=--DwjAkzPXoeCKFir_GnmfydDWkx3NObybMpINRJrKE,8899
141
- prediction_market_agent_tooling-0.69.11.dev1122.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
142
- prediction_market_agent_tooling-0.69.11.dev1122.dist-info/entry_points.txt,sha256=m8PukHbeH5g0IAAmOf_1Ahm-sGAMdhSSRQmwtpmi2s8,81
143
- prediction_market_agent_tooling-0.69.11.dev1122.dist-info/licenses/LICENSE,sha256=6or154nLLU6bELzjh0mCreFjt0m2v72zLi3yHE0QbeE,7650
144
- prediction_market_agent_tooling-0.69.11.dev1122.dist-info/RECORD,,
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,,