blockful-io / external-resolver

This project aims to scale the Ethereum Name Service (ENS) by consolidating existing patterns and proofs of concept into a unified and production-ready codebase.
MIT License
15 stars 3 forks source link

L2: isPublicAvailable #240

Open pikonha opened 5 days ago

pikonha commented 5 days ago

Feature Request

We need to have a way to know whether the domain enables anyone to register a subdomain (e.g. base.eth, arb.eth)

Describe Preferred Solution

Fetch it from the ENS Registry operators mapping.

Architecture Diagram

sequenceDiagram
    Client -->> UniversalResolver: resolve(node, registerParams())
    UniversalResolver -->> L1Resolver: registerParams()
    L1Resolver -->> UniversalResolver: revert OffchainLookup
    UniversalResolver-->>Client: revert OffchainLookup
    Client -->> Gateway: {registerParams()}.json
    Gateway -->> SubdomainController: `getStorageAt`
    Gateway -->> Client: return storage proof
    Client -->> L1Resolver: registerParamsCallback(results, extraData)
    L1Resolver -->> ArbitrumVerifier: `getStorageValues`
    ArbitrumVerifier -->>L1Resolver: return data
    L1Resolver -->> Client: return data

QA Replication steps

  1. call registerParams
  2. receive an isPublicAvailable boolean property