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.