Repository navigation
fix: point DOS Testnet at the canonical JASJ chain - #10
Conversation
On 2026-08-22 test.doschain.com was mis-routed to the replaced interim chain 2EhC (same chain ID 3939). The ENSv2 redeploy that day landed on 2EhC, and this record and the deploy scripts were "aligned" to it. The canonical testnet is JASJ (genesis 0x36f98b2e...), where the 2026-08-12 deployment (blocks 120-166) is live: all 16 contracts have bytecode. - Restore contracts/deployments/dos-testnet-3939.json to that JASJ deployment (a89847e), which the subgraph manifest renders from. - Expect the JASJ genesis in both testnet deploy wrappers. - Sign the domain-policy deployment with the owner's Ledger (forge --ledger --sender) instead of reading PRIVATE_KEY: the owner 0x310Bc is a hardware wallet. preflight still rejects any other sender. The score-gated policy was never deployed on any chain (the owner made no deploy transactions on 2EhC). A dry run against JASJ succeeds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
1 similar comment
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner decision (2026-10-21): DOS Names testnet operations should not need the hardware wallet. The Ledger owner 0x310Bc grants the registrar admin roles on the testnet DOS registry to the deployer 0x99999e45 once; the domain-policy deployment then runs with that deployer key (Secret Manager dos-deployer-99999e45-private-key) and makes it the policy and registrar owner. Testnet only: mainnet and the chain's validator management keep the Ledger owner. This replaces the Ledger-signing variant of the policy wrapper from the previous commits; the JASJ genesis check stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The score-gated domain policy is live on the canonical DOS Testnet (JASJ, genesis 0x36f98b2e...): the Ledger owner granted the registrar admin roles to the deployer (block 176), and the deployer deployed the policy and policy registrar, moved the registrar roles off the public registrar, and linked them (blocks 177-181). Minimum score 20. `contracts.dosRegistrar` keeps the retired public registrar because consumers still require that key; the active registrar is under `domainPolicy.registrar`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Why
On 2026-08-22,
test.doschain.comwas mis-routed by hand to the replaced interim testnet chain2EhC, which has the same chain ID 3939. The ENSv2 redeploy that day (#7) landed on2EhC, and #7/#9 aligned this repo's testnet record and scripts to it. The canonical testnet is JASJ (genesis0x36f98b2e..., explorertest.doscan.io). The public RPC was fixed in DOS/DOS-Chain#76.Evidence
2EhCrecord's resolver0xee4b...has no code on JASJ, which is why DOScan's testnet BENS gate fails.2EhCaddresses match mainnet only because deployer 9999 started at nonce 0 on that fresh chain. Its nonce on JASJ is 88, so they cannot be reproduced there.0x310Bcmade only 2 funding transfers on2EhC.Change
contracts/deployments/dos-testnet-3939.jsonto the JASJ deployment. The subgraph renders from it.Invoke-DeployDOSTestnet.ps1andInvoke-DeployDOSDomainPolicyTestnet.ps1.--ledger --sender, optional-LedgerHdPath) instead of readingPRIVATE_KEY.preflightstill rejects any other sender.Verification
forge test --match-path test/unit/testnet/*: 41 pass.forge script DeployDOSDomainPolicyTestnetdry run against JASJ with--sender 0x310Bc...succeeds: preflight passes and 5 transactions use about 6.1M gas.Next (owner)
Broadcast the policy deploy with the Ledger, with voucher signer
0x257958FF376B6C340ea2BDFCCc8e7d6420Fbb5f4(key in Secret Managerdos-domain-voucher-signer-testnet-private-key) and minimum score 20.🤖 Generated with Claude Code
📌 TL;DR
This PR updates the DOS testnet deployment artifacts to reflect a new chain genesis and replaces the use of environment-based private keys with Ledger-based signing for the domain policy deployment script, enhancing security and operational safety.
🎯 Type of Change
🔍 Changes Walkthrough
contracts/deployments/dos-testnet-3939.jsoncontracts/script/foundry/DeployDOSDomainPolicyTestnet.s.solmsg.sender(Ledger) instead of readingPRIVATE_KEYfrom the environment, removing the need for a private key in the script logic.contracts/script/foundry/Invoke-DeployDOSDomainPolicyTestnet.ps1PRIVATE_KEYvalidation, added Ledger HD path support, updated the expected genesis hash, and modifiedforge scriptinvocations to use--ledgerand--senderflags.contracts/script/foundry/Invoke-DeployDOSTestnet.ps1📊 Architectural Flow
sequenceDiagram participant User participant PS1 as PowerShell Script participant Forge as Foundry CLI participant Ledger as Hardware Wallet participant Chain as DOS Testnet User->>PS1: Invoke-DeployDOSDomainPolicyTestnet.ps1 PS1->>PS1: Validate Env Vars (No Private Key) PS1->>PS1: Check Genesis Hash & Balance PS1->>Forge: forge script (Simulation) Forge->>Chain: Simulate Transactions Chain-->>Forge: Simulation Result Forge-->>PS1: Success PS1->>Forge: forge script --ledger --broadcast Forge->>Ledger: Request Signature Ledger-->>Forge: Signed Transaction Forge->>Chain: Broadcast Transaction Chain-->>Forge: Transaction Receipt Forge-->>PS1: Deployment Complete PS1-->>User: Success