feat: cross-chain org name and username registry#117
Open
Conversation
Implement global name uniqueness across chains using hub-satellite architecture: NameRegistryHub (home): Coordinates cross-chain username and org name claims via Hyperlane RegistryRelay (satellite): Dispatches name claims from satellite chains to hub OrgRegistry: Integrates org name uniqueness check with hub (home-chain path only) UniversalAccountRegistry: Integrates username uniqueness check with hub Includes 75 cross-chain tests covering username/org name registration, renaming, burning, race conditions, and cross-chain vs home-chain blocking scenarios. Updated e2e testnet script to dispatch and verify cross-chain name registry flows via Hyperlane relay on Sepolia <-> Base Sepolia. Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Contributor
Coverage Report
Coverage by file
|
Convert all 4 cross-chain contracts (PoaManagerHub, PoaManagerSatellite, NameRegistryHub, RegistryRelay) from bare contracts to the upgradeable BeaconProxy pattern with ERC-7201 namespaced storage, matching the existing core infrastructure conventions. Update all deploy scripts, e2e scripts, and tests to use the new initialize() + BeaconProxy flow. Add double-initialization prevention and zero-address validation tests. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Add infrastructure for deploying orgs on satellite chains with globally unique names enforced by NameRegistryHub on the home chain. - NameClaimAdapter: bridges OrgRegistry's sync INameRegistryHubOrgNames interface to RegistryRelay's async confirmed-names cache on satellites - SatelliteOnboardingHelper: per-org contract coordinating two-step register+join flow (async Hyperlane username confirmation) - QuickJoin.quickJoinForUser(address): new onlyMasterDeploy function allowing helper contracts to onboard users on their behalf - DeploySatellite: full satellite org infrastructure (OrgRegistry, OrgDeployer, PaymasterHub, factories, PasskeyFactory, solidarity fund) - DeployHelper: adds NameClaimAdapter + SatelliteOnboardingHelper to deterministic contract type registry (13 → 15 types) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…t expansion Extend cross-chain name registry with SatelliteOnboardingHelper improvements, NameClaimAdapter enhancements, expanded RegistryRelay functionality, and comprehensive E2E testnet scripts for satellite org deployment and name verification. Co-Authored-By: Claude Opus 4.6 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implement global name uniqueness across chains using a hub-satellite architecture. Users and orgs can now register globally unique usernames and org names across all connected chains via Hyperlane cross-chain messaging.
Key Changes
New Contracts:
NameRegistryHub: Coordinates cross-chain username and org name claims on home chainRegistryRelay: Satellite-chain relay for dispatching name claims to hubStoringMailbox: Test mock for bidirectional Hyperlane message verificationModified Contracts:
OrgRegistry: Validates org names via hub (home-chain path only, synchronous)UniversalAccountRegistry: Validates usernames via hub (home-chain and cross-chain paths)Deployment & Scripts:
DeployNameRegistryHub.s.sol,DeployRegistryRelay.s.sol: Standalone deployment scriptsTestnetE2EHomeChain.s.sol,TestnetE2ESatellite.s.sol: E2E infrastructure with name registryDispatchNameRegistryTest.s.sol,VerifyNameRegistry.s.sol: Cross-chain test dispatcherstestnet-e2e.sh: Updated with name registry dispatch and verification stepsDesign Details
OrgRegistry.registerOrg()→hub.claimOrgNameLocal()(instant, reverts if taken)RegistryRelay.registerAccountDirect()→ Hyperlane dispatch →hub.claimUsername()→ confirm/reject replyreserved(usernames) vsreservedOrgNamesmaps for independent registrationTesting
🤖 Generated with Claude Code