Skip to content

[Feat]: Clean up the PoP gateway: direct Root authority and permanent, queryable names #214

Description

@sphamjoli

Component

Proof of Personhood

Priority

P0

Summary

The PoP gateway carries two things a new runtime capability and the soulbound name model now let us drop. A separate dispatcher contract exists only to prove a Root-origin dispatch to the controller, because a UUPS implementation could not ask the revive System precompile from inside its proxy frame. And the controller deletes an account's entry from its per-account name queue when the claim window lapses, which throws away the only readable copy of a name minted through the gateway. The System precompile now answers callerIsRoot from the caller of the contract that calls it, so the controller can check Root from its own proxy frame, and gateway names are soulbound, so the account that minted a name always holds it. Together these let the controller verify Root itself and keep every issued name readable for good. The base-name reservation queue is separate and keeps its expiry, which frees a slot for the next entrant.

Proposal

Deliver as three issues. Land the first on its own; it does not depend on the others.

Acceptance criteria

  • The controller verifies Root itself and the dispatcher contract is gone.
  • A name minted through the gateway is queryable by address for good, whether or not it was ever claimed.
  • No name and no pending claim is deleted: the lite and full names are owned NFTs, so their labels are kept, cold in the queue or settled into the owner's store, and never dropped. After the window, anyone can settle an owner's store and pays for it. The base-name reservation queue keeps its expiry.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions