ENS
Examples
Note
These examples are crafted as a Jupyter notebook. You can download the original notebook file here.
Also note that inside Jupyter notebooks, await
can be used freely outside of asyncio.run()
.
In [1]:
from ctc.protocols import ens_utils
In [2]:
address = '0xd8da6bf26964af9d7eed9e03e53415d37aa96045'
name = 'vitalik.eth'
Get owner of ENS name¶
In [3]:
await ens_utils.async_get_owner(name)
Out[3]:
'0xd8da6bf26964af9d7eed9e03e53415d37aa96045'
Reverse lookup of ENS address¶
In [4]:
await ens_utils.async_reverse_lookup(address)
Out[4]:
'vitalik.eth'
Get whether name record exists¶
In [5]:
await ens_utils.async_record_exists(name)
Out[5]:
True
Get hash of ENS name¶
In [6]:
ens_utils.hash_name(name)
Out[6]:
'0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835'
Get text records of ENS name¶
In [7]:
await ens_utils.async_get_text_records(name='foda.eth')
Out[7]:
{'email': 'foda@hey.com', 'url': 'https://just.is/foda', 'com.twitter': '0xFoda', 'avatar': 'eip155:1/erc721:0xe9edc636c70d2104df2a9d7444c94676fcbfe07f/0', 'description': 'ⓕ™', 'com.github': '', 'com.instagram': 'https://instagram.com/foda.farm', 'color': '#f0da91', 'eth.ens.delegate': 'https://discuss.ens.domains/t/ens-dao-delegate-applications/815/765?u=foda', 'snapshot': 'ipns://storage.snapshot.page/registry/0xF75Ed978170dFa5ee3d71d95979a34C91CD7042e/foda.eth'}
Get ENS name expiration¶
In [8]:
timestamp = await ens_utils.async_get_expiration(name)
timestamp
Out[8]:
2030347728
Get all registrations¶
In [9]:
registrations = await ens_utils.async_get_registrations()
registrations
Out[9]:
address | block_hash | transaction_hash | contract_address | event_name | event_hash | arg__label | arg__owner | arg__parent_node | |||
---|---|---|---|---|---|---|---|---|---|---|---|
block_number | transaction_index | log_index | |||||||||
9380415 | 22 | 33 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0xa1cae6357f471b005baa1065cd5631cfae9e0587c4aa... | 0x36a8544bc597d7d74ca66c118345e500cfc1dca0dbac... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca726... | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x00000000000000000000000000000000000000000000... |
9380428 | 34 | 21 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x1191aa09f8d699c4cdc64efc64e9601034c9ace73217... | 0x1842da220ed4eaf0ed21d5366ee800251feffbd1d281... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x7926fb9208a20417f0b848065c6fe289da455821d6fc... | 0x0904dac3347ea47d208f3fd67402d039a3b99859 | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
9380515 | 7 | 7 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x11493f7456a83455b3fbf09ba6c4eb5d01455c2d8741... | 0x6f410b83a468197dd0de7eb31e3f18fcfe6bf961080f... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xdec08c9dbbdd0890e300eb5062089b2d4b1c40e3673b... | 0x4fe4e666be5752f1fdd210f4ab5de2cc26e3e0e8 | 0x00000000000000000000000000000000000000000000... |
9380516 | 58 | 44 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0xb7106125148bd4b2e04af5c3fea3cec8cabf52f83e2d... | 0x7311cdefc63aaf6226110ec9d682714f878ebdc115d0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xe5e14487b78f85faa6e1808e89246cf57dd34831548f... | 0x084b1c3c81545d370f3634392de611caabff8148 | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb185... |
9380533 | 12 | 8 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x425b28e5b1d989e3f6f7392d6556d00aa08aed6a8c1f... | 0xf296f9b8d5143c6fca65b010cb9d621d0574dca1950b... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x9dd2c369a187b4e6b9c402f030e50743e619301ea62a... | 0xa2f428617a523837d4adc81c67a296d42fd95e86 | 0x00000000000000000000000000000000000000000000... |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
15613497 | 119 | 434 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x3c6be87de804a10a95226e765a3af66b65d153229d22... | 0xe15819ba8c67ac670bb58a6f9f62cf0a8c97dd58ead0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x8dc3f00834cd7dddee71f38756fba634206001225cad... | 0xdc8feb4a071011ff903e87b55da4ac898cce607a | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
438 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x3c6be87de804a10a95226e765a3af66b65d153229d22... | 0xe15819ba8c67ac670bb58a6f9f62cf0a8c97dd58ead0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xdd8cc1a54081e49db8115d5a2b804a45731328419b55... | 0xdc8feb4a071011ff903e87b55da4ac898cce607a | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... | ||
442 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x3c6be87de804a10a95226e765a3af66b65d153229d22... | 0xe15819ba8c67ac670bb58a6f9f62cf0a8c97dd58ead0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x264b517bb73fd766faff58728ce986c72d24259038af... | 0xdc8feb4a071011ff903e87b55da4ac898cce607a | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... | ||
446 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x3c6be87de804a10a95226e765a3af66b65d153229d22... | 0xe15819ba8c67ac670bb58a6f9f62cf0a8c97dd58ead0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x00d8aa131570d0b5c1dc83a87348b1ade3eb91c68d9f... | 0xdc8feb4a071011ff903e87b55da4ac898cce607a | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... | ||
450 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x3c6be87de804a10a95226e765a3af66b65d153229d22... | 0xe15819ba8c67ac670bb58a6f9f62cf0a8c97dd58ead0... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x2ee451b1258b2f89e0acf766e78ba9115866718cd8df... | 0xdc8feb4a071011ff903e87b55da4ac898cce607a | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
5190069 rows × 9 columns
Get block number of when ENS name was registered¶
In [10]:
await ens_utils.async_get_registration_block(name)
Out[10]:
9430706
Reference
- async ctc.protocols.ens_utils.async_get_expiration(name)
- Return type
int
- async ctc.protocols.ens_utils.async_get_owner(name, *, provider=None, block=None)
- async ctc.protocols.ens_utils.async_get_registration_block(name)
- Return type
int
- async ctc.protocols.ens_utils.async_get_registrations()
- async ctc.protocols.ens_utils.async_get_text_records(*, name=None, node=None, keys=None)
https://docs.ens.domains/ens-improvement-proposals/ensip-5-text-records
- Return type
dict[str, str]
- async ctc.protocols.ens_utils.async_record_exists(name, *, provider=None, block=None)
- async ctc.protocols.ens_utils.async_reverse_lookup(address, *, provider=None, block=None)
- ctc.protocols.ens_utils.hash_name(name)