WIP: migrate flow to V4 interpreter + soldeer + reusable workflows#475
Draft
thedavidmeister wants to merge 4 commits into
Draft
WIP: migrate flow to V4 interpreter + soldeer + reusable workflows#475thedavidmeister wants to merge 4 commits into
thedavidmeister wants to merge 4 commits into
Conversation
First step of the flow V2->V4 + soldeer + reusables migration tracked in #474. Replaces lib/ submodules with soldeer [dependencies] (OZ 4.9.6, forge-std, rain-factory/interpreter-interface/math-fixedpoint/solmem) + remappings-only mapping of the existing import roots. The eval-path V4 rewrite (Flow.sol/LibFlow/ IFlowV6) + tests follow per #474; CI on the draft PR is the build-verify loop. Refs #474
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
Flow.sol: EvaluableV2->EvaluableV4, eval2->eval4(EvalV4), drop deployer + LibEncodedDispatch + io integrity check (eval-time validation per RaindexV6), StackItem stack via assembly cast. New IFlowV6. LibFlow: store V2->V3, kvs bytes32[]. Deprecated V2 interface imports across other flow interfaces rewritten to their relocated deprecated/v1|v2 soldeer paths. Build advancing past imports; remaining = transitive soldeer deps (rain-lib-hash + OZ 4.9.6/5.6.1 split where rain deps pull OZ5) + then test rewrite. Refs #474
OZ 4->5 for flow: holders/ECDSA/ReentrancyGuard moved to the non-upgradeable package (stateless, no __init); MulticallUpgradeable kept; @openzeppelin/contracts bridge remap added. Clean soldeer reinstall (OZ 5.6.1 + rain-lib-hash/math-float). Old flow interface EvaluableV2 imports repointed to deprecated/v1. src/ now builds; remaining errors are all in test/ (the V4+OZ5 test rewrite). Refs #474
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft / WIP — tracks #474. Do not merge.
Starts flow's migration onto the current rain stack. Committed so far: the soldeer de-submodule groundwork (foundry.toml
[dependencies]+ remappings replacinglib/submodules).Remaining (fully specified in #474, file-level):
eval4):Flow.sol,LibFlow.sol, newIFlowV6— storeEvaluableV4{interpreter,store,bytecode}, drop the deployer/LibEncodedDispatch, stackuint256→StackItem. Security semantics per upstreamRaindexV6(eval-time, no deploy-time integrity check).script/Deploy.sol+ pointers; reusablerainix-sol/rainix-manual-sol-artifacts/rainix-copy-artifacts.CI here is the build-verify loop. Expect red until the V4 eval-path rewrite lands — the unchanged
Flow.solstill references the now-removedLibEncodedDispatch.Closes #474 when complete.