Repository navigation
fix(testnet): use public DOS Name NFT links - #273
Conversation
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.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 8 minutes. View limit details
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Configure and validate the explorer origin docker-compose/bens/config.template.json, scripts/validate-testnet-bens.py, .github/scripts/tests/test_validate_testnet_bens.py |
The BENS template sets the Blockscout URL for network 3939 to https://test.doscan.io. The validator reports an error if the URL differs. Tests cover rejection of the internal URL and resolution of a token path against the rendered URL. |
Check the NFT detail link .github/scripts/testnet-bens-ui.spec.mjs, docs/superpowers/plans/2026-08-12-ensv2-bens-testnet.md |
The browser test checks the token-instance link’s origin and HTTPS protocol, then checks the popup’s URL, NFT details heading, and error message. The plan records Testnet acceptance criteria, scope, and follow-up steps. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Merge Risk: 
Minimal · up to 1a1e0
-
The reviewed change is mergeable after normal checks; live Testnet readback remains a deployment follow-up.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 3 files. (2 skipped: 2 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches: 💡 1
-
📝 Generate docstrings: 💡
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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 @coderabbitai help to get the list of available commands.
There was a problem hiding this comment.
Code Review
This pull request updates the BENS configuration to use the public Testnet explorer URL (https://test.doscan.io) instead of an internal backend URL, adds corresponding validation rules, updates documentation, and introduces integration and unit tests to verify these changes. Feedback is provided regarding a test in test_validate_testnet_bens.py that modifies a module-level variable without restoring it, which could lead to test flakiness; a try...finally block is suggested to ensure proper cleanup.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Final implementation and scope
http://backend:4000for transaction history. BENS 1.7.3 derives wrapped IDs from ENS namehash, which is not the ENSv2 ERC-1155 token ID.2d47fb77bb09dcbdc9d7bfeee77d12ddbebc2e4d(PR feat(testnet): adapt BENS metadata to canonical ENSv2 NFTs DOS-Names-Contracts#11). The adapter is an immutable Node image, no published ports/secrets, read-only mounts, non-root/capability-dropped runtime. Deploy forces recreation; rollback removes it before restoring prior configuration.Final-head verification
f8ef09f45b1315e41e82c74a02731d22d30837fb..907cf02d87d2224b8bddc5d92545af97c1cc8808: CLEAN_PASS, no P0-P3 findings. Verified DOS Names merge tree matches final independently reviewed adapter source exactly.Contract acceptance and remaining deployment gate
policy-smoke.dosand deployed smart-wallet fixturee2epolicy01.dos.0xce800d5b23a7eb1a0cf7318585af76b02e0e93e0b7ce468038ff941732c1094c(block 299): same token/owner, expiry extended exactly 365 days, WDOS payment observed. Wrong-wallet, invalid/expired voucher, price bound, consumed nonce and direct-registrar bypass checks return the expected custom errors.The generated sections below describe the earlier commit and are retained as review history, not the final architecture.
📌 TL;DR
This PR updates the Testnet BENS configuration to use the public
https://test.doscan.ioexplorer URL instead of an internal backend address, ensuring NFT links are accessible externally. It adds validation logic and comprehensive tests (unit and E2E) to enforce this public origin and verify that the UI correctly resolves and displays NFT details.🎯 Type of Change
🔍 Changes Walkthrough
.github/scripts/testnet-bens-ui.spec.mjshttps://test.doscan.io), open in a new tab, and successfully load the "NFT details" page without errors..github/scripts/tests/test_validate_testnet_bens.pydocker-compose/bens/config.template.jsonblockscout.urlfor network3939from the internalhttp://backend:4000to the publichttps://test.doscan.io.docs/superpowers/plans/2026-08-12-ensv2-bens-testnet.mdscripts/validate-testnet-bens.pyblockscout.urlfor network3939is exactlyhttps://test.doscan.io, raising an error if it deviates.📊 Architectural Flow
sequenceDiagram participant User participant UI as Testnet UI participant Validator as validate-testnet-bens.py participant Config as config.template.json participant DOScan as test.doscan.io Note over Validator, Config: CI / Validation Phase Validator->>Config: Read BENS Template Validator->>Validator: Check blockscout.url == "https://test.doscan.io" alt URL is internal/invalid Validator-->>CI: Fail Validation else URL is public Validator-->>CI: Pass Validation end Note over User, DOScan: E2E / User Interaction Phase User->>UI: Search DOS Name UI->>UI: Render Token Link (href: https://test.doscan.io/token/...) User->>UI: Click Token Link UI->>DOScan: Open New Tab (https://test.doscan.io/token/...) DOScan-->>UI: Load NFT Details Page UI-->>User: Display NFT DetailsSummary by CodeRabbit