Skip to content

Commit

Permalink
Add v6 warnings to ENS changes from pr ethereum#2411
Browse files Browse the repository at this point in the history
  • Loading branch information
fselmo committed Apr 29, 2022
1 parent d459417 commit 41202ec
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
13 changes: 13 additions & 0 deletions ens/main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import warnings
from copy import (
deepcopy,
)
Expand Down Expand Up @@ -259,6 +260,12 @@ def setup_name(
return self._setup_reverse(name, address, transact=transact)

def resolve(self, name: str, get: str = 'addr') -> Optional[Union[ChecksumAddress, str]]:
warnings.warn(
"In v6, the resolve() method will be made internal and renamed to _resolve(). The "
"'get' param name will also change to 'fn_name'.",
category=DeprecationWarning,
)

normal_name = normalize_name(name)
resolver = self.resolver(normal_name)
if resolver:
Expand All @@ -272,6 +279,12 @@ def resolve(self, name: str, get: str = 'addr') -> Optional[Union[ChecksumAddres
return None

def resolver(self, normal_name: str) -> Optional['Contract']:
warnings.warn(
"The function signature for resolver() will change in v6 to accept 'name' as a param, "
"over 'normalized_name', and the method will normalize the name internally.",
category=FutureWarning,
)

resolver_addr = self.ens.caller.resolver(normal_name_to_hash(normal_name))
if is_none_or_zero_address(resolver_addr):
return None
Expand Down
19 changes: 19 additions & 0 deletions tests/ens/test_v6_warnings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import pytest


def test_resolve_deprecation_warning(ens):
with pytest.warns(
DeprecationWarning,
match="In v6, the resolve\\(\\) method will be made internal and renamed to "
"_resolve\\(\\). The 'get' param name will also change to 'fn_name'.",
):
ens.resolve('tester.eth')


def test_resolver_future_warning(ens):
with pytest.warns(
FutureWarning,
match="The function signature for resolver\\(\\) will change in v6 to accept 'name' as a "
"param, over 'normalized_name', and the method will normalize the name internally.",
):
ens.resolver('tester.eth')

0 comments on commit 41202ec

Please sign in to comment.