Skip to content

Commit e15dac3

Browse files
committed
Remove auto-infer of ENS TLDs
1 parent 11d06e2 commit e15dac3

File tree

7 files changed

+7
-79
lines changed

7 files changed

+7
-79
lines changed

docs/ens_overview.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ Look up the address for an ENS name
6060

6161
assert eth_address == '0x5B2063246F2191f18F2675ceDB8b28102e957458'
6262

63-
# ens.py only support names using one of these recognized TLDs
64-
# ['eth', 'reverse', 'test', 'luxe', 'xyz']
63+
64+
The ``ENS`` module does not care what TLD you use, but will not infer
65+
a TLD if no TLD is provided with the name.
6566

6667

6768
Get name from address

ens/constants.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,4 @@
99

1010
MIN_ETH_LABEL_LENGTH = 7
1111

12-
DEFAULT_RECOGNIZED_TLDS = ['eth', 'reverse', 'test', 'luxe', 'xyz']
13-
1412
REVERSE_REGISTRAR_DOMAIN = 'addr.reverse'

ens/exceptions.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,3 @@ class UnderfundedBid(ValueError):
7777
as your intent to bid.
7878
'''
7979
pass
80-
81-
82-
class InvalidTLD(ValueError):
83-
'''
84-
Raised if name does not contain a recognized TLD.
85-
'''
86-
pass

ens/main.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
address_to_reverse_domain,
2121
default,
2222
dict_copy,
23-
dot_eth_name,
2423
dot_eth_namehash,
2524
init_web3,
2625
is_valid_name,
@@ -265,7 +264,7 @@ def _first_owner(self, name):
265264
'''
266265
owner = None
267266
unowned = []
268-
pieces = dot_eth_name(name).split('.')
267+
pieces = normalize_name(name).split('.')
269268
while pieces and not owner:
270269
name = '.'.join(pieces)
271270
owner = self.owner(name)
@@ -301,7 +300,7 @@ def _set_resolver(self, name, resolver_addr=None, transact={}):
301300
@dict_copy
302301
def _setup_reverse(self, name, address, transact={}):
303302
if name:
304-
name = dot_eth_name(name)
303+
name = normalize_name(name)
305304
else:
306305
name = ''
307306
transact['from'] = address

ens/utils.py

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@
1414
ACCEPTABLE_STALE_HOURS,
1515
AUCTION_START_GAS_CONSTANT,
1616
AUCTION_START_GAS_MARGINAL,
17-
DEFAULT_RECOGNIZED_TLDS,
1817
EMPTY_SHA3_BYTES,
1918
MIN_ETH_LABEL_LENGTH,
2019
REVERSE_REGISTRAR_DOMAIN,
2120
)
2221
from ens.exceptions import (
2322
InvalidLabel,
2423
InvalidName,
25-
InvalidTLD,
2624
)
2725

2826
default = object()
@@ -109,32 +107,6 @@ def is_valid_name(name):
109107
return False
110108

111109

112-
def label_to_name(label, recognized_tlds):
113-
label = normalize_name(label)
114-
pieces = label.split('.')
115-
if pieces[-1] not in recognized_tlds:
116-
raise InvalidTLD(
117-
f"The label: {label} has an unsupported TLD of {pieces[-1]}. "
118-
f"ENS.py by default supports the following TLDs: {recognized_tlds}. "
119-
"If you'd like to use an unsupported TLD, please set the environment variable: "
120-
"'ENS_RECOGNIZED_TLDS' to a string of desired TLDs separated by a colon (:)."
121-
)
122-
return '.'.join(pieces)
123-
124-
125-
def dot_eth_name(label):
126-
recognized_tlds = get_recognized_tlds()
127-
return label_to_name(label, recognized_tlds)
128-
129-
130-
def get_recognized_tlds():
131-
if 'ENS_RECOGNIZED_TLDS' in os.environ:
132-
override_tlds = os.environ['ENS_RECOGNIZED_TLDS'].split(':')
133-
return set(DEFAULT_RECOGNIZED_TLDS + override_tlds)
134-
else:
135-
return DEFAULT_RECOGNIZED_TLDS
136-
137-
138110
def name_to_label(name, registrar):
139111
name = normalize_name(name)
140112
if '.' not in name:
@@ -214,7 +186,7 @@ def dot_eth_namehash(name):
214186
:rtype: bytes
215187
:raises InvalidName: if ``name`` has invalid syntax
216188
'''
217-
expanded_name = dot_eth_name(name)
189+
expanded_name = normalize_name(name)
218190
return name_to_hash(expanded_name)
219191

220192

tests/ens/test_setup_address.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
from ens.constants import (
1212
EMPTY_ADDR_HEX,
1313
)
14-
from ens.exceptions import (
15-
InvalidTLD,
16-
)
1714
from ens.main import (
1815
UnauthorizedError,
1916
)
@@ -82,20 +79,6 @@ def test_set_address(ens, name, full_name, namehash_hex, TEST_ADDRESS):
8279
assert ens.address(name) is None
8380

8481

85-
@pytest.mark.parametrize(
86-
'name',
87-
(
88-
'tester',
89-
'tester.com',
90-
'TESTER',
91-
'lots.of.subdomains.tester',
92-
),
93-
)
94-
def test_set_address_raises_exception_with_invalid_or_missing_tld(ens, name, TEST_ADDRESS):
95-
with pytest.raises(InvalidTLD, match="ENS.py by default supports the following TLDs"):
96-
ens.setup_address(name, TEST_ADDRESS)
97-
98-
9982
@pytest.mark.parametrize(
10083
'name, equivalent',
10184
[

tests/ens/test_setup_name.py

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import pytest
22

3-
from ens.exceptions import (
4-
InvalidTLD,
5-
)
63
from ens.main import (
74
AddressMismatch,
85
UnauthorizedError,
@@ -78,21 +75,6 @@ def test_setup_name(ens, name, normalized_name, namehash_hex):
7875
assert not ens.address(name)
7976

8077

81-
@pytest.mark.parametrize(
82-
'name',
83-
(
84-
'tester',
85-
'tester.com',
86-
'lots.of.subdomains.tester',
87-
),
88-
)
89-
def test_cannot_setup_name_with_missing_or_invalid_tld(ens, name):
90-
address = ens.web3.eth.accounts[3]
91-
assert not ens.name(address)
92-
with pytest.raises(InvalidTLD, match="ENS.py by default supports the following TLDs"):
93-
ens.setup_name(name, address)
94-
95-
9678
def test_cannot_set_name_on_mismatch_address(ens, TEST_ADDRESS):
9779
ens.setup_address('mismatch-reverse.tester.eth', TEST_ADDRESS)
9880
with pytest.raises(AddressMismatch):
@@ -130,7 +112,7 @@ def test_setup_name_unowned_exception(ens):
130112

131113
def test_setup_name_unauthorized(ens, TEST_ADDRESS):
132114
with pytest.raises(UnauthorizedError):
133-
ens.setup_name('root-owned-tld.eth', TEST_ADDRESS)
115+
ens.setup_name('root-owned-tld', TEST_ADDRESS)
134116

135117

136118
def test_setup_reverse_dict_unmodified(ens):

0 commit comments

Comments
 (0)