@@ -50,7 +50,7 @@ def __init__(
50
50
provider :Optional [str ]= None ,
51
51
web3 :Optional [Web3 ]= None ,
52
52
default_slippage :float = 0.01 ,
53
- poolmanager_contract_addr :Optional [AddressLike , str ]= None ,
53
+ poolmanager_contract_addr :Optional [str ]= None ,
54
54
)-> None :
55
55
"""
56
56
:param address: The public address of the ETH wallet to use.
@@ -91,12 +91,14 @@ def __init__(
91
91
self .max_approval_check_int = int (max_approval_check_hex ,16 )
92
92
93
93
if poolmanager_contract_addr is None :
94
- self .poolmanager_contract_addr = _poolmanager_contract_addresses [self .network ]
94
+ self .poolmanager_contract_addr :AddressLike = _poolmanager_contract_addresses [self .network ]
95
+ else :
96
+ self .poolmanager_contract_addr :AddressLike = poolmanager_contract_addr
95
97
96
98
self .router = _load_contract (
97
99
self .w3 ,
98
100
abi_name = "uniswap-v4/poolmanager" ,
99
- address = _str_to_addr (poolmanager_contract_addr ),
101
+ address = _str_to_addr (self . poolmanager_contract_addr ),
100
102
)
101
103
102
104
if hasattr (self ,"poolmanager_contract" ):
@@ -155,7 +157,7 @@ def get_price(
155
157
try :
156
158
price = int (self .w3 .eth .call (signed_txn ))
157
159
except ContractLogicError as revert :
158
- price = int (self .w3 .codec .decode (["int128[]" ,"uint160" ,"uint32" ],bytes (revert ))[1 ])
160
+ price = int (self .w3 .codec .decode (["int128[]" ,"uint160" ,"uint32" ],bytes (revert . data ))[1 ])
159
161
return price
160
162
161
163
def get_slot0 (