ENS
Examples
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('foda.eth')
Out[7]:
{'email': 'foda@just.is', 'url': 'https://asf.is', 'com.twitter': '0xFoda', 'avatar': 'https://slate.textile.io/ipfs/bafybeigrld6uniropykguappfuuuoaqrwieri4noiveme53pz2ayik4jha', 'description': 'ⓕ™', 'com.github': 'a-s-f', '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]:
1967233824
Get all registrations¶
In [9]:
registrations = await ens_utils.async_get_registrations()
registrations
Out[9]:
address | transaction_hash | block_hash | contract_address | event_name | event_hash | arg__label | arg__owner | arg__parent_node | |||
---|---|---|---|---|---|---|---|---|---|---|---|
block_number | transaction_index | log_index | |||||||||
9380415 | 22 | 33 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x36a8544bc597d7d74ca66c118345e500cfc1dca0dbac... | 0xa1cae6357f471b005baa1065cd5631cfae9e0587c4aa... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca726... | 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85 | 0x00000000000000000000000000000000000000000000... |
9380428 | 34 | 21 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x1842da220ed4eaf0ed21d5366ee800251feffbd1d281... | 0x1191aa09f8d699c4cdc64efc64e9601034c9ace73217... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x7926fb9208a20417f0b848065c6fe289da455821d6fc... | 0x0904dac3347ea47d208f3fd67402d039a3b99859 | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
9380515 | 7 | 7 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x6f410b83a468197dd0de7eb31e3f18fcfe6bf961080f... | 0x11493f7456a83455b3fbf09ba6c4eb5d01455c2d8741... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xdec08c9dbbdd0890e300eb5062089b2d4b1c40e3673b... | 0x4fe4e666be5752f1fdd210f4ab5de2cc26e3e0e8 | 0x00000000000000000000000000000000000000000000... |
9380516 | 58 | 44 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x7311cdefc63aaf6226110ec9d682714f878ebdc115d0... | 0xb7106125148bd4b2e04af5c3fea3cec8cabf52f83e2d... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xe5e14487b78f85faa6e1808e89246cf57dd34831548f... | 0x084b1c3c81545d370f3634392de611caabff8148 | 0xa097f6721ce401e757d1223a763fef49b8b5f90bb185... |
9380533 | 12 | 8 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0xf296f9b8d5143c6fca65b010cb9d621d0574dca1950b... | 0x425b28e5b1d989e3f6f7392d6556d00aa08aed6a8c1f... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x9dd2c369a187b4e6b9c402f030e50743e619301ea62a... | 0xa2f428617a523837d4adc81c67a296d42fd95e86 | 0x00000000000000000000000000000000000000000000... |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
14661555 | 82 | 173 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x984c0d69807560bc16b04534acce1d470eb25f753887... | 0xce9297e8c8f48e7d545b46f324e15a8209dd8bc74170... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x46535caba61b96b9bbaced247f0433b8117f4099d037... | 0x23ac96ea054c5bd337712205d0997c286e057caa | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
14661556 | 51 | 65 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0xae8997784e2b56a47512590bcb9c733b31146a441b0e... | 0x3135cff1aaa6635ab724c9cce431d7bb58fbac43ed7f... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x9ed4897baffc1b336f53013a8679a526eccd7208258c... | 0x283af0b28c62c092c9727f1ee09c02ca627eb7f5 | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
70 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0xae8997784e2b56a47512590bcb9c733b31146a441b0e... | 0x3135cff1aaa6635ab724c9cce431d7bb58fbac43ed7f... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0x9ed4897baffc1b336f53013a8679a526eccd7208258c... | 0x732739de18df630b354ec365a927a4f4f2bf28e5 | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... | ||
14661557 | 71 | 63 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x9ab9bcb51c1f62bea53b4e37e08b58d5b71c172f618b... | 0x4e4b4559cac128943b281a15199b07d6467379ce76e6... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xed4415e3a94126bc1a255c0fc522249b38676045632d... | 0x283af0b28c62c092c9727f1ee09c02ca627eb7f5 | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
68 | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | 0x9ab9bcb51c1f62bea53b4e37e08b58d5b71c172f618b... | 0x4e4b4559cac128943b281a15199b07d6467379ce76e6... | 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e | NewOwner | 0xce0457fe73731f824cc272376169235128c118b49d34... | 0xed4415e3a94126bc1a255c0fc522249b38676045632d... | 0x1dc09501ae209f8cc15b3b7090084c72855d95bd | 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f... |
2242394 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)
- Parameters
name (<class 'str'>) –
- Return type
<class ‘int’>
- async ctc.protocols.ens_utils.async_get_owner(name, provider=None, block=None)
- Parameters
name (str) –
provider (ProviderSpec) –
block (BlockNumberReference | None) –
- Return type
str
- async ctc.protocols.ens_utils.async_get_registration_block(name)
- Parameters
name (<class 'str'>) –
- Return type
<class ‘int’>
- async ctc.protocols.ens_utils.async_get_registrations()
- Return type
Any
- 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
- Parameters
name (str | None) –
node (str | None) –
keys (Sequence[str] | None) –
- Return type
dict[str, str]
- async ctc.protocols.ens_utils.async_record_exists(name, provider=None, block=None)
- Parameters
name (str) –
provider (ProviderSpec) –
block (BlockNumberReference | None) –
- Return type
bool
- async ctc.protocols.ens_utils.async_reverse_lookup(address, provider=None, block=None)
- Parameters
address (Address) –
provider (ProviderSpec) –
block (BlockNumberReference | None) –
- Return type
str
- ctc.protocols.ens_utils.hash_name(name)
- Parameters
name (<class 'str'>) –
- Return type
<class ‘str’>