Skip to content

fix(deploy): pin the 0.1.7 soldeer tag's deploy constants#256

Open
thedavidmeister wants to merge 2 commits into
mainfrom
2026-07-18-pin-0-1-7-deploy-constants
Open

fix(deploy): pin the 0.1.7 soldeer tag's deploy constants#256
thedavidmeister wants to merge 2 commits into
mainfrom
2026-07-18-pin-0-1-7-deploy-constants

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Fixes the rainix-sol red on main: testAllPublishedSoldeerTagsHaveAFullConstantSuite fails since the 0.1.7 registry publish because the published tag has no frozen deploy-constant suite.

No src/ change landed between the 0.1.7 release commit and main HEAD, so 0.1.7's deployment is exactly the current unversioned pins — frozen here as *_0_1_7 literals per the snapshot convention:

  • ZOLTU_DEPLOYED_DECIMAL_FLOAT_ADDRESS_0_1_7 = 0x799632d282178e770C7465cad54aDA1021A913D6
  • DECIMAL_FLOAT_CONTRACT_HASH_0_1_7 = 0xdc468883…f55e
  • ZOLTU_DEPLOYED_LOG_TABLES_ADDRESS_0_1_7 = 0xc51a14251b0dcF0ae24A96b7153991378938f5F5
  • LOG_TABLES_DATA_CONTRACT_HASH_0_1_7 = 0x2573004a…420f

Constants only — DecimalFloat bytecode and its current pins are untouched (testDeployAddress / testExpectedCodeHashDecimalFloat pass unchanged, verified locally). No deploy needed.

#252 remains the follow-on migration of this flat *_x_y_z constants model to the per-release src/generated/<tag>/ snapshot canon; this PR is only the minimal green-main fix under the current model.

QA

  • Discriminating tests: testAllPublishedSoldeerTagsHaveAFullConstantSuite — fails on base (red on main CI right now, reproduced locally: MISSING: ZOLTU_DEPLOYED_LOG_TABLES_ADDRESS_0_1_7 …), passes with this change (verified locally).
  • Mutations applied: the existing gate test is the mutation oracle — changing any _0_1_7 constant name breaks it (it string-matches the required suite per published version); the pinned VALUES are cross-checked against main's live unversioned pins, which prod fork tests verify on-chain in CI.
  • Oracle: the soldeer registry's published-version list (queried live by script/check-published-deploy-constants.sh) + main's unversioned pins at the 0.1.7 release commit (no src/ change since, per git log 774ed07..main -- src/).
  • Category check: fixes the missing-0.1.7-suite red in full; no other published tag is missing a suite (gate passes clean).

Co-Authored-By: Claude noreply@anthropic.com

The 0.1.7 registry publish made testAllPublishedSoldeerTagsHaveAFullConstantSuite
red on main: the tagged-constants gate requires every published version to
carry its frozen deploy-constant suite, and 0.1.7 had none. No src/ change
landed between the 0.1.7 release commit and main HEAD, so 0.1.7's deployment
is exactly the current unversioned pins: DecimalFloat
0x799632d282178e770C7465cad54aDA1021A913D6
(0xdc468883c345d41c0abd98ef2fd933c370bd1682522d37e6f6b729793301f55e) and the
log tables 0xc51a14251b0dcF0ae24A96b7153991378938f5F5, frozen here as
literals per the snapshot convention.

Constants only; DecimalFloat bytecode and its pins are unchanged
(testDeployAddress / testExpectedCodeHashDecimalFloat pass untouched).

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

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

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

Next review available in: 47 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: e393c973-18f4-48b6-8a0a-854ffd4c4c21

📥 Commits

Reviewing files that changed from the base of the PR and between d3fb611 and 8bc1cf7.

📒 Files selected for processing (4)
  • CLAUDE.md
  • script/Build.sol
  • src/lib/deploy/LibDecimalFloatDeploy.sol
  • test/src/lib/deploy/LibDecimalFloatDeployTaggedConstants.t.sol
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-07-18-pin-0-1-7-deploy-constants

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

🤖 ai:producer
Producer note: relationship to #253 — that open, ready-vetted PR migrates all deploy pins to the per-release snapshot canon (closes #252) and retires the flat-constants model + gate test this PR patches. #253 is deploy-blocked on the sustained estimateGas RPC outage; this PR is the minimal constants-only fix that greens main NOW without needing any deploy. When #253 lands it supersedes these flat _0_1_7 pins (its merge resolves to deleting the flat model).

The rainix copy-artifacts reusable requires the codegen script at
script/Build.sol (the org convention siblings already follow); rename
BuildPointers.sol accordingly and update the docs. The rs-static no-skip
gate forbids vm.skip in any form, so the tagged-constants test's
unreachable-registry branch becomes a vacuous pass (nothing to verify)
instead of a skip.

Co-Authored-By: Claude <noreply@anthropic.com>
@thedavidmeister

Copy link
Copy Markdown
Contributor Author

🤖 ai:producer
Producer note: correction to the body's 'No deploy needed' — the constants test greens without a deploy, but CI's testProdDeployment* forks fail with 'DecimalFloat not deployed' at MAIN's own pin 0x799632d282178e770C7465cad54aDA1021A913D6 on all five networks: every Zoltu deploy since 2026-05-10 has died on the sustained eth_estimateGas 'execution reverted, data: 0x' RPC outage, so main's current pin was never deployed. That red is pre-existing on main, not introduced here, and needs a human RPC swap + a suite=decimal-float dispatch (any branch with main's bytecode). Also pushed 8bc1cf7: the new rainix copy-artifacts gate requires script/Build.sol (renamed from BuildPointers.sol) and the rs-static no-skip gate forbids the tagged test's vm.skip (now a vacuous pass on unreachable registry).

@thedavidmeister thedavidmeister added the ai:blocked-deploy AI producer: blocked on a deploy it can't complete (human) label Jul 18, 2026
@thedavidmeister

Copy link
Copy Markdown
Contributor Author

🤖 ai:producer
Blocked-deploy: green requires main's pinned DecimalFloat 0x799632d282178e770C7465cad54aDA1021A913D6 deployed (testProdDeployment* red on all networks); every deploy since 2026-05-10 failed on the sustained eth_estimateGas 'reverted data 0x' RPC outage — human RPC swap needed, then a suite=decimal-float dispatch of main's bytecode greens this and main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai:blocked-deploy AI producer: blocked on a deploy it can't complete (human)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant