@@ -152,7 +152,7 @@ def address(self, name: str) -> Optional[ChecksumAddress]:
152
152
:param str name: an ENS name to look up
153
153
:raises InvalidName: if `name` has invalid syntax
154
154
"""
155
- return cast (ChecksumAddress , self .resolve (name , 'addr' ))
155
+ return cast (ChecksumAddress , self ._resolve (name , 'addr' ))
156
156
157
157
def name (self , address : ChecksumAddress ) -> Optional [str ]:
158
158
"""
@@ -163,7 +163,7 @@ def name(self, address: ChecksumAddress) -> Optional[str]:
163
163
:type address: hex-string
164
164
"""
165
165
reversed_domain = address_to_reverse_domain (address )
166
- name = self .resolve (reversed_domain , fn_name = 'name' )
166
+ name = self ._resolve (reversed_domain , fn_name = 'name' )
167
167
168
168
# To be absolutely certain of the name, via reverse resolution, the address must match in
169
169
# the forward resolution
@@ -285,38 +285,14 @@ def setup_name(
285
285
self .setup_address (name , address , transact = transact )
286
286
return self ._setup_reverse (name , address , transact = transact )
287
287
288
- def resolver (self , normal_name : str ) -> Optional ['Contract' ]:
289
- return self ._get_resolver (normal_name )[0 ]
288
+ def resolver (self , name : str ) -> Optional ['Contract' ]:
289
+ """
290
+ Get the resolver for an ENS name.
290
291
291
- def resolve (self , name : str , fn_name : str = 'addr' ) -> Optional [Union [ChecksumAddress , str ]]:
292
+ :param str name: The ENS name
293
+ """
292
294
normal_name = normalize_name (name )
293
-
294
- resolver , current_name = self ._get_resolver (normal_name , fn_name )
295
- if not resolver :
296
- return None
297
-
298
- node = self .namehash (normal_name )
299
-
300
- if _resolver_supports_interface (resolver , EXTENDED_RESOLVER_INTERFACE_ID ):
301
- # update the resolver abi to the extended resolver abi
302
- extended_resolver = self .w3 .eth .contract (abi = abis .EXTENDED_RESOLVER )(resolver .address )
303
- contract_func_with_args = (fn_name , [node ])
304
-
305
- calldata = extended_resolver .encodeABI (* contract_func_with_args )
306
- contract_call_result = extended_resolver .caller .resolve (
307
- ens_encode_name (normal_name ), calldata
308
- )
309
- result = self ._decode_ensip10_resolve_data (
310
- contract_call_result , extended_resolver , fn_name
311
- )
312
- return to_checksum_address (result ) if is_address (result ) else result
313
- elif normal_name == current_name :
314
- lookup_function = getattr (resolver .functions , fn_name )
315
- result = lookup_function (node ).call ()
316
- if is_none_or_zero_address (result ):
317
- return None
318
- return to_checksum_address (result ) if is_address (result ) else result
319
- return None
295
+ return self ._get_resolver (normal_name )[0 ]
320
296
321
297
def reverser (self , target_address : ChecksumAddress ) -> Optional ['Contract' ]:
322
298
reversed_domain = address_to_reverse_domain (target_address )
@@ -456,6 +432,36 @@ def setup_owner(
456
432
self ._claim_ownership (new_owner , unowned , owned , super_owner , transact = transact )
457
433
return new_owner
458
434
435
+ def _resolve (self , name : str , fn_name : str = 'addr' ) -> Optional [Union [ChecksumAddress , str ]]:
436
+ normal_name = normalize_name (name )
437
+
438
+ resolver , current_name = self ._get_resolver (normal_name , fn_name )
439
+ if not resolver :
440
+ return None
441
+
442
+ node = self .namehash (normal_name )
443
+
444
+ if _resolver_supports_interface (resolver , EXTENDED_RESOLVER_INTERFACE_ID ):
445
+ # update the resolver abi to the extended resolver abi
446
+ extended_resolver = self .w3 .eth .contract (abi = abis .EXTENDED_RESOLVER )(resolver .address )
447
+ contract_func_with_args = (fn_name , [node ])
448
+
449
+ calldata = extended_resolver .encodeABI (* contract_func_with_args )
450
+ contract_call_result = extended_resolver .caller .resolve (
451
+ ens_encode_name (normal_name ), calldata
452
+ )
453
+ result = self ._decode_ensip10_resolve_data (
454
+ contract_call_result , extended_resolver , fn_name
455
+ )
456
+ return to_checksum_address (result ) if is_address (result ) else result
457
+ elif normal_name == current_name :
458
+ lookup_function = getattr (resolver .functions , fn_name )
459
+ result = lookup_function (node ).call ()
460
+ if is_none_or_zero_address (result ):
461
+ return None
462
+ return to_checksum_address (result ) if is_address (result ) else result
463
+ return None
464
+
459
465
def _assert_control (self , account : ChecksumAddress , name : str ,
460
466
parent_owned : Optional [str ] = None ) -> None :
461
467
if not address_in (account , self .w3 .eth .accounts ):
0 commit comments