Skip to content

Stop claiming an unhydrated pin means an undeployed clone - #120

Merged
thedavidmeister merged 1 commit into
masterfrom
honest-unhydrated-note
Jul 22, 2026
Merged

Stop claiming an unhydrated pin means an undeployed clone#120
thedavidmeister merged 1 commit into
masterfrom
honest-unhydrated-note

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

A string I shipped in #119 asserts something the scanner never checked.

The Ethereum authoriser row renders pin declared, clone not yet deployed when STOX_PROD_AUTHORISER_V4_CLONE_ETHEREUM is address(0). But the scan reads the pin, not the chain — with no address there is nothing to look up, so it cannot know whether the clone exists.

It was already false when written. Reviewing S01-Issuer/st0x.deploy#258 I verified the clone live on Ethereum mainnet:

  • deployed at 0x66566cc91dEAf818859bD4b09B7903ac48998157, a 92-byte EIP-1167 proxy
  • embedding impl 0x2ea0d35d…, the same one Base's clone uses
  • codehash 0x2089950d…, matching the shared pin
  • CERTIFY / CONFISCATE_RECEIPT / DEPOSIT / WITHDRAW / SCHEDULE_CORPORATE_ACTION admin all held by the Ethereum Safe, none by the deploy EOA

Now that ..._V4_CLONE_ETHEREUM has landed on main at address(0) (via #229), the next scan would have rendered "not yet deployed" about a contract that has been live and correctly configured for some time.

The note now reads pin not yet hydrated — this says nothing about whether the clone exists, and is_unhydrated's doc says explicitly that it is a fact about the source, not the chain.

The test asserts both halves: that an unhydrated pin says so, and that the note does not claim anything about deployment. The second assertion is the one that would have caught this.

Verified: clippy -D clippy::all, 183 rust tests, cargo fmt --check clean.

The scan reads the pin, not the chain. With no address there is nothing to
look up, so "clone not yet deployed" asserted something the scan had not
checked -- and it was already false when written: the Ethereum authoriser
clone had been live at 0x66566cc9 for some time, with a codehash matching
the shared pin and its admin roles held by the Ethereum Safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@thedavidmeister thedavidmeister self-assigned this Jul 22, 2026
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 31 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f6129947-4e5f-4096-b3f6-2475b4012f38

📥 Commits

Reviewing files that changed from the base of the PR and between 39f3723 and c0ac984.

📒 Files selected for processing (1)
  • plugins/rain-org-health-check/roh-scan/src/owners.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch honest-unhydrated-note

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Reviewed c0ac984: approve

Removes a claim the scanner was never in a position to make. pin declared, clone not yet deployed reported on the chain, but the only thing read was the pin — and with address(0) there is no address to look anything up with.

It was false when written, not merely imprecise: the Ethereum authoriser clone has been live at 0x66566cc91dEAf818859bD4b09B7903ac48998157 with a codehash matching the shared pin and every admin role held by the Ethereum Safe. Now that ..._V4_CLONE_ETHEREUM has landed on main at address(0), the next scan would have published "not yet deployed" about a correctly configured production contract.

The test is the part worth keeping: it asserts both that an unhydrated pin says so and that the note makes no deployment claim. My original test only checked the string was present, which a sentence that overreaches passes just as happily.

All checks green (rs-test ubuntu + macos, rs-static); merging over a pending CodeRabbit. Verified locally: clippy -D clippy::all, 183 rust tests, cargo fmt --check.

@thedavidmeister
thedavidmeister merged commit 73ff53d into master Jul 22, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant