You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feat]: Enforce reservations in registration and migrate off the address whitelist #204
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.
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
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.
Activity
re-gius commentedon Aug 12, 2026
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
re-gius commentedon Aug 13, 2026
dotns-sdk impact
The CLI calls
registerReserveddirectly and reads whitelist state throughgetWhitelistStatus, both of which this issue removes. That is the entire governance-registration command path, includingvalidateGovernanceLabeland 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.
feat(registration): gate reserved registration and name grants on Roo…
re-gius commentedon Sep 4, 2026
Solved contract-side, but the SDK is broken and
useDomainStore.ts:194still callscontroller.isWhiteListed!.query(user, …)re-gius commentedon Sep 8, 2026
paritytech/dotns-sdk#287 was the last step - completed