Name RegistryΒΆ
Warning
This is example code for learning purposes. Do not use in production without thorough review and testing.
A minimal name registry that maps names to addresses. Once a name is registered, it cannot be changed.
1#pragma version >0.3.10
2
3registry: HashMap[Bytes[100], address]
4
5@external
6def register(name: Bytes[100], owner: address):
7 assert self.registry[name] == empty(address) # check name has not been set yet.
8 self.registry[name] = owner
9
10
11@view
12@external
13def lookup(name: Bytes[100]) -> address:
14 return self.registry[name]
This pattern is useful for:
ENS-like name services
Service discovery
Any first-come-first-served registration system
The assert self.registry[name] == empty(address) check ensures names cannot be overwritten.