Skip to content

[Feat]: Enforce reservations in registration and migrate off the address whitelist #204

Closed

Description

@sphamjoli

Component

Registration

Priority

P2

Summary

Make the normal registration path honour reservations, and remove the operator mint path. A reserved name must be registrable only by its claimant; every other caller is refused that name. Part of #202.

Proposal

  • In register on the registrar controller, read the reservation contract. If the label is reserved, allow only the reserved claimant to proceed, and refuse every other caller for that label.
  • Remove registerReserved, or reduce it to a claimant-only path that issues only a name reserved for msg.sender. Remove onlyWhiteListedOrOwner, whiteListAddress, isWhiteListed, the WhiteListed event and the NotWhiteListedOrOwner error as the mint gate.
  • Migration: define what happens to addresses currently whitelisted and to any names already issued through registerReserved. At minimum, clear the whitelist so no address keeps the unbounded mint power.
  • Pricing follows the parent's open decision: normal price for the name's length, or waived for the claimant.

Acceptance criteria

  • A reserved name is registrable only by its claimant; any other caller is refused that specific name.
  • The address whitelist no longer grants zero-cost minting of arbitrary names.
  • The migration path is defined and applied.
  • Tests and the paired fork test cover a claimant registering a reserved name, a non-claimant refused, and an unreserved name registering normally.
  • dotns-sdk is migrated off registerReserved and isWhiteListed, and resolves the reservation contract through the protocol registry.

Activity

  1. re-gius commented on Aug 12, 2026

    @re-gius
    Collaborator

    EDIT: changed to P2 - see discussion in #202

    Also, this is a breaking changes for whitelisting so it can be done only as a last step for #202 once we are sure we want to go with that implementation

  2. re-gius commented on Aug 13, 2026

    @re-gius
    Collaborator

    dotns-sdk impact
    The CLI calls registerReserved directly and reads whitelist state through getWhitelistStatus, both of which this issue removes. That is the entire governance-registration command path, including validateGovernanceLabel and the "caller is not whitelisted" warning it prints before submitting.

    Required change: repoint that path at the new reservation contract and drop the whitelist check rather than leaving it reading a deleted function. The new contract also needs a protocol-registry key so the CLI resolves its address rather than hardcoding it, which matters because hand-transcribed addresses are what #221 is.

  3. added
    P2Tetiary Priority
    and removed
    P0Highest Priority
    on Aug 14, 2026
  4. re-gius commented on Sep 4, 2026

    @re-gius
    Collaborator

    Solved contract-side, but the SDK is broken and useDomainStore.ts:194 still calls controller.isWhiteListed!.query(user, …)

  5. re-gius commented on Sep 8, 2026

    @re-gius
    Collaborator

    paritytech/dotns-sdk#287 was the last step - completed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions