6767if TYPE_CHECKING :
6868 from web3 import Web3 # noqa: F401
6969 from web3 .contract import ( # noqa: F401
70+ AsyncContract ,
7071 Contract ,
7172 )
7273 from web3 .providers import ( # noqa: F401
@@ -232,7 +233,7 @@ def setup_address(
232233 if address is None :
233234 address = EMPTY_ADDR_HEX
234235 transact ['from' ] = owner
235- resolver : 'Contract' = self ._set_resolver (name , transact = transact )
236+ resolver : Union [ 'Contract' , 'AsyncContract' ] = self ._set_resolver (name , transact = transact )
236237 return resolver .functions .setAddr (raw_name_to_hash (name ), address ).transact (transact )
237238
238239 def setup_name (
@@ -285,7 +286,7 @@ def setup_name(
285286 self .setup_address (name , address , transact = transact )
286287 return self ._setup_reverse (name , address , transact = transact )
287288
288- def resolver (self , name : str ) -> Optional ['Contract' ]:
289+ def resolver (self , name : str ) -> Optional [Union [ 'Contract' , 'AsyncContract' ] ]:
289290 """
290291 Get the resolver for an ENS name.
291292
@@ -294,7 +295,8 @@ def resolver(self, name: str) -> Optional['Contract']:
294295 normal_name = normalize_name (name )
295296 return self ._get_resolver (normal_name )[0 ]
296297
297- def reverser (self , target_address : ChecksumAddress ) -> Optional ['Contract' ]:
298+ def reverser (self ,
299+ target_address : ChecksumAddress ) -> Optional [Union ['Contract' , 'AsyncContract' ]]:
298300 reversed_domain = address_to_reverse_domain (target_address )
299301 return self .resolver (reversed_domain )
300302
@@ -511,7 +513,7 @@ def _set_resolver(
511513 name : str ,
512514 resolver_addr : Optional [ChecksumAddress ] = None ,
513515 transact : Optional ["TxParams" ] = None
514- ) -> 'Contract' :
516+ ) -> Union [ 'Contract' , 'AsyncContract' ] :
515517 if not transact :
516518 transact = {}
517519 transact = deepcopy (transact )
@@ -529,7 +531,7 @@ def _get_resolver(
529531 self ,
530532 normal_name : str ,
531533 fn_name : str = 'addr'
532- ) -> Tuple [Optional ['Contract' ], str ]:
534+ ) -> Tuple [Optional [Union [ 'Contract' , 'AsyncContract' ] ], str ]:
533535 current_name = normal_name
534536
535537 # look for a resolver, starting at the full name and taking the parent each time that no
@@ -549,7 +551,8 @@ def _get_resolver(
549551 current_name = self .parent (current_name )
550552
551553 def _decode_ensip10_resolve_data (
552- self , contract_call_result : bytes , extended_resolver : 'Contract' , fn_name : str ,
554+ self , contract_call_result : bytes ,
555+ extended_resolver : Union ['Contract' , 'AsyncContract' ], fn_name : str ,
553556 ) -> Any :
554557 func = extended_resolver .get_function_by_name (fn_name )
555558 output_types = get_abi_output_types (func .abi )
@@ -568,18 +571,21 @@ def _setup_reverse(
568571 transact ['from' ] = address
569572 return self ._reverse_registrar ().functions .setName (name ).transact (transact )
570573
571- def _type_aware_resolver (self , address : ChecksumAddress , func : str ) -> 'Contract' :
574+ def _type_aware_resolver (self ,
575+ address : ChecksumAddress ,
576+ func : str ) -> Union ['Contract' , 'AsyncContract' ]:
572577 return (
573578 self ._reverse_resolver_contract (address = address ) if func == 'name' else
574579 self ._resolver_contract (address = address )
575580 )
576581
577- def _reverse_registrar (self ) -> 'Contract' :
582+ def _reverse_registrar (self ) -> Union [ 'Contract' , 'AsyncContract' ] :
578583 addr = self .ens .caller .owner (normal_name_to_hash (REVERSE_REGISTRAR_DOMAIN ))
579584 return self .w3 .eth .contract (address = addr , abi = abis .REVERSE_REGISTRAR )
580585
581586
582- def _resolver_supports_interface (resolver : 'Contract' , interface_id : HexStr ) -> bool :
587+ def _resolver_supports_interface (resolver : Union ['Contract' , 'AsyncContract' ],
588+ interface_id : HexStr ) -> bool :
583589 if not any ('supportsInterface' in repr (func ) for func in resolver .all_functions ()):
584590 return False
585591 return resolver .caller .supportsInterface (interface_id )
0 commit comments