Uh oh!
There was an error while loading. Please reload this page.
fix(deploy): pin the 0.1.7 soldeer tag's deploy constants - #266
fix(deploy): pin the 0.1.7 soldeer tag's deploy constants#266thedavidmeister wants to merge 1 commit into
Conversation
testAllPublishedSoldeerTagsHaveAFullConstantSuite has been red in `rainix-sol / test` because the registry lists 0.1.7 as published while LibDecimalFloatDeploy only carries a 0.1.1 suite: MISSING: DECIMAL_FLOAT_CONTRACT_HASH_0_1_7 LOG_TABLES_DATA_CONTRACT_HASH_0_1_7 ZOLTU_DEPLOYED_DECIMAL_FLOAT_ADDRESS_0_1_7 ZOLTU_DEPLOYED_LOG_TABLES_ADDRESS_0_1_7 Pin the four constants for that tag. The registry genuinely lists only 0.1.1 and 0.1.7 despite sol-v0.1.2..sol-v0.1.6 tags existing, so 0.1.7 is the only missing suite. The values are a derivation from the tag's own source, not an observation of a chain: a Zoltu address is a function of bytecode + salt. They were verified two independent ways, `git show sol-v0.1.7:src/lib/deploy/ LibDecimalFloatDeploy.sol` and a local rebuild of the tag. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Warning Review limit reached
Next review available in:44 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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 |
What this fixes
One of the two independent failures in
rainix-sol / testonmain:LibDecimalFloatDeploycarries a full suite for0.1.1and nothing for0.1.7. The soldeer registry lists0.1.7as published, so the test thatobliges every published tag to carry its pinned suite fails. This adds the
four missing constants.
Why only 0.1.7
The registry lists exactly two published versions for
rain-math-float,0.1.1and0.1.7— checked directly against the API withlimit=100. Thesol-v0.1.2…sol-v0.1.6git tags exist but were never published, so theyare not in scope for this test and pinning them would assert nothing.
Where the values come from
A pinned suite is a derivation from that tag's own source, not an
observation of a chain: a Zoltu address is a function of bytecode + salt. So
pinning a published tag never waits on a broadcast.
ZOLTU_DEPLOYED_LOG_TABLES_ADDRESS_0_1_70xc51a14251b0dcF0ae24A96b7153991378938f5F5LOG_TABLES_DATA_CONTRACT_HASH_0_1_70x2573004a…420fZOLTU_DEPLOYED_DECIMAL_FLOAT_ADDRESS_0_1_70x799632d282178e770C7465cad54aDA1021A913D6DECIMAL_FLOAT_CONTRACT_HASH_0_1_70xdc468883…f55eThe log-tables address and codehash are identical to
0.1.1's because thetable bytecode did not change between the two releases.
QA
testAllPublishedSoldeerTagsHaveAFullConstantSuite- fails on base (verified onmainatd3fb611, and visible inrainix-sol / teston PR fix(test): drop vm.skip from the tagged deploy constants check #265 which does not carry this fix, with theMISSING: ..._0_1_7list quoted above), passes with this change.DECIMAL_FLOAT_CONTRACT_HASH_0_1_7->0xdeadbeef...deadbeef-> SURVIVED, no killing test;ZOLTU_DEPLOYED_DECIMAL_FLOAT_ADDRESS_0_1_7->address(0x...dEaD)-> SURVIVED, no killing test. Reported as found, not suppressed: the test asserts that the four names exist and never their values. See "Why the survivors are not fixed here" below.sol-v0.1.7tag's own source, read two ways independent of this branch's build -git show sol-v0.1.7:src/lib/deploy/LibDecimalFloatDeploy.sol, and a local rebuild at that tag whosekeccak256(deployedBytecode)forDecimalFloatreproduces0xdc468883...f55e. The two agree. Not read from an RPC, not copied from this repo's head.main. Covers exactly one: the missing0.1.7suite inrainix-sol / test. The other failure in that same job, the five redtestProdDeployment*tests, is a different cause and is deliberately not touched here.Why the survivors are not fixed here
The obvious fix — assert the pinned value against
type(DecimalFloat).runtimeCode— would be wrong. It passes today onlybecause
main's source still happens to equal0.1.7, and the moment thesource legitimately changes it would force a rewrite of a frozen historical
pin to match new code. That is exactly backwards: the point of a per-tag
suite is that it records what that release was, permanently.
The durable fix is to assert that each pinned version is actually deployed at
its pinned address with its pinned codehash. That is blocked. The current
unsuffixed pin
0x799632…13D6returns0xfrometh_getCodeon arbitrum,base and flare — it was never deployed — which is the same root cause as the
five red
testProdDeployment*tests and needs an on-chain deployment, not atest change.
Overlap with #256
values, as one commit inside a larger PR that also renames the codegen script
and rewrites
CLAUDE.md. This PR is the same fix isolated. The two willconflict — close whichever is less useful.
Scope
Constants only. No test is weakened, no assertion is removed, no deployment is
performed.