sequenceDiagram
actor A as Aruun
box White Mainnet
participant E as ENS Registry
participant V as L1 Reverse Registrar
end
A->>+V: setName("aruun.eth"))
V->>-V: node = node(lower(msg.sender[2:]) + "addr.reverse")<br>versionable_names[recordVersions[node]][node] = "aruun.eth"
sequenceDiagram
actor A as Aruun
box White Mainnet
participant E as ENS Registry
participant V as L1 Reverse Registrar
participant R as Chain Reverse Resolver
end
box White Optimism
participant L as L2 Reverse Registrar
end
A->>+E: resolver(node("8000000a.reverse"))
E->>-A: Chain Reverse Resolver address
A->>+R: l2Registrar()
R->>-A: L2 Reverse Registrar address
A->>+L: setName("aruun.eth")
L->>-L: _names[msg.sender] = "aruun.eth"
sequenceDiagram
actor A as Alice
box White Mainnet
participant E as ENS Registry
participant R as Resolver
end
A->>+E: resolver(node("262...ef6.addr.reverse"))
E->>-A: Resolver address
A->>+R: supportsInterface(hash("resolve(bytes,bytes)"))
R->>-A: false
A->>+R: name(node("262...ef6.addr.reverse"))
R->>-A: "aruun.eth"
sequenceDiagram
actor A as Alice
box White Mainnet
participant E as ENS Registry
participant R as Chain Reverse Resolver
end
participant G as Gateway
box White Optimism
participant L as L2 Reverse Registrar
end
A->>+E: resolver(node("262...ef6.8000000a.reverse"))
E->>-A: null
A->>+E: resolver(node("8000000a.reverse"))
E->>-A: Chain Reverse Resolver address
alt Usually
A->>+R: supportsInterface(hash("resolve(bytes,bytes)"))
R->>-A: true
A->>+R: resolve(dns("262...ef6.8000000a.reverse"), `name(node("262...ef6.8000000a.reverse"))`)
R->>-A: OffchainLookup() revert + gateway URL + callback function ID
A->>+G: HTTP request {data, sender}
G->>-A: HTTP response (encoded result)
A->>+R: callback(result)
R->>-A: Optimism primary name "aruun.eth"
else ERC-7828 situation
A->>+R: l2Registrar()
R->>-A: L2 Reverse Registrar address
A->>+L: nameForAddr("0x262...Ef6")
L->>-A: "aruun.eth"
end