deps: bump every Soldeer dependency to its latest published release - #35
Conversation
forge-std 1.16.1 -> 1.17.0 @OpenZeppelin-Contracts 5.6.1 -> 5.7.0 rain-string 0.2.0 -> 0.3.9 rain-math-saturating 0.1.10 (already latest, unchanged) Every versioned import path under src/ and test/ is rewritten in this commit so the tree holds exactly one version of each package; no remapping aliases an old version to a new one and no package has a second Soldeer key. rain-string 0.2.0 -> 0.3.9 is a port rather than a pin bump: the CMASK_* constants widened from uint128 to uint256 and LibParseDecimal.unsafeDecimalStringToInt now rejects non-digit bytes with ParseInvalidDecimalChar. Neither changes this library's behaviour. LibParseChar.skipMask/isMask already took the mask as uint256, so the widened constants bind to the same parameter type, and every region this library hands to unsafeDecimalStringToInt is bounded by skipMask(CMASK_NUMERIC_0_9) first, so it can never contain a non-digit. conformStringToMask's arity change does not reach this repo, which never imports LibConformString. The OZ Math.sol and Strings.sol this library uses are byte-identical between 5.6.1 and 5.7.0. Verified in the pinned rainix sol-shell CI uses: forge soldeer install twice with soldeer.lock and remappings.txt byte-stable between runs, forge test (12 suites, 78 tests, all passing, same count as before the bump), forge fmt --check, forge lint -D warnings, slither (0 results), reuse lint and rainix-sol-single-contract. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The rainix static job runs pre-commit over every file and the yamlfmt hook rewrites this file to remove the blank line between the trigger and the jobs block. This is the hook's own output committed, so the job passes instead of failing on a diff. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (19)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
What
Bumps every Soldeer dependency to the latest revision the registry reports (
https://api.soldeer.xyz/api/v1/revision?project_name=<name>&limit=1), one version per package, with every versioned import path undersrc/andtest/rewritten in the same commit:No remapping aliases an old version to a new one and no package has a second Soldeer key.
rain-stringand@openzeppelin-contractswere pinned by path inLibFixedPointDecimalParse.sol,LibFixedPointDecimalStrings.sol,LibFixedPointDecimalArithmeticOpenZeppelin.solandLibFixedPointDecimalFormat.sol; all four now point at the new versions. This unblocks rain.vats #339.rain-string 0.2.0 -> 0.3.9 is a port, not a pin bump
Read from the
v0.2.0..sol-v0.3.9diff of rain.string:CMASK_*constant widened fromuint128touint256. This library only passesCMASK_NUMERIC_0_9,CMASK_DECIMAL_POINTandCMASK_ZEROintoLibParseChar.skipMask/isMask, whosemaskparameter was alreadyuint256, so call sites bind identically.LibParseDecimal.unsafeDecimalStringToIntnow validates every byte and returns the newParseInvalidDecimalCharselector on a non-digit. Every region this library hands it is first bounded byskipMask(CMASK_NUMERIC_0_9), so the region can never hold a non-digit and the new selector is unreachable from here. Overflow / empty classification for all-digit input is unchanged.LibParseChar.skipMask/isMaskmade the bounds check branchless (zeroed load address instead of a jump); same results.LibConformString.conformStringToMaskwent from three arguments to two. This repo never importsLibConformString, so no call site changes.OZ
utils/math/Math.solandutils/Strings.sol, the only OZ files this library uses, are byte-identical between v5.6.1 and v5.7.0.Second commit
ci: drop the blank line yamlfmt rejects in pr-assessment.yaml: the rainix static job runspre-commit run --all-files, and the yamlfmt hook rewrote this file. The committed change is the hook's own output.Verification
All in the pinned rainix sol-shell the repo's CI uses (
nix develop github:rainlanguage/rainix/8657b83b…#sol-shell -c):forge soldeer installrun twice;soldeer.lockandremappings.txtbyte-identical between runsforge test -vvv: 12 suites, 78 tests passed, 0 failed (same 78 as main before the bump)forge fmt --check: cleanforge lint -D warnings: exit 0slither .: 14 contracts analyzed, 0 resultsreuse lint: compliantpre-commit run --all-files: all hooks passrainix-sol-single-contract: passQA
LibFixedPointDecimalParseTest(examples, corrupt integer, precision loss, overflow) andFixedPointDecimalArithmeticOpenZeppelin.t.soldrive the ported rain-string parser and the OZMath/Stringsentry points through the new paths; all 78 pass unchanged against the new dependency source.v0.2.0..sol-v0.3.9source diff (read before touching call sites) for what changed and whether it reaches this repo;diffof OZMath.sol/Strings.solat v5.6.1 vs v5.7.0 (identical); the Soldeer revision API for "latest"; test expectations are main's, untouched.src/import of forge-std, OZ or any rain package, so nothing to stop on.🤖 Generated with Claude Code