Skip to content

Commit 41202ec

Browse files
committed
Add v6 warnings to ENS changes from pr ethereum#2411
1 parent d459417 commit 41202ec

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

ens/main.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import warnings
12
from copy import (
23
deepcopy,
34
)
@@ -259,6 +260,12 @@ def setup_name(
259260
return self._setup_reverse(name, address, transact=transact)
260261

261262
def resolve(self, name: str, get: str = 'addr') -> Optional[Union[ChecksumAddress, str]]:
263+
warnings.warn(
264+
"In v6, the resolve() method will be made internal and renamed to _resolve(). The "
265+
"'get' param name will also change to 'fn_name'.",
266+
category=DeprecationWarning,
267+
)
268+
262269
normal_name = normalize_name(name)
263270
resolver = self.resolver(normal_name)
264271
if resolver:
@@ -272,6 +279,12 @@ def resolve(self, name: str, get: str = 'addr') -> Optional[Union[ChecksumAddres
272279
return None
273280

274281
def resolver(self, normal_name: str) -> Optional['Contract']:
282+
warnings.warn(
283+
"The function signature for resolver() will change in v6 to accept 'name' as a param, "
284+
"over 'normalized_name', and the method will normalize the name internally.",
285+
category=FutureWarning,
286+
)
287+
275288
resolver_addr = self.ens.caller.resolver(normal_name_to_hash(normal_name))
276289
if is_none_or_zero_address(resolver_addr):
277290
return None

tests/ens/test_v6_warnings.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import pytest
2+
3+
4+
def test_resolve_deprecation_warning(ens):
5+
with pytest.warns(
6+
DeprecationWarning,
7+
match="In v6, the resolve\\(\\) method will be made internal and renamed to "
8+
"_resolve\\(\\). The 'get' param name will also change to 'fn_name'.",
9+
):
10+
ens.resolve('tester.eth')
11+
12+
13+
def test_resolver_future_warning(ens):
14+
with pytest.warns(
15+
FutureWarning,
16+
match="The function signature for resolver\\(\\) will change in v6 to accept 'name' as a "
17+
"param, over 'normalized_name', and the method will normalize the name internally.",
18+
):
19+
ens.resolver('tester.eth')

0 commit comments

Comments
 (0)