Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughA submodule reference in Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
…ubmodule-update-audit-base # Conflicts: # foundry.lock
…erBuilder (#2479) ## Dependent PRs - rainlanguage/specs#46 - rainlanguage/rain.strategies#89 - rainlanguage/rainlang#483 ## Motivation The order builder logic (formerly "GUI") lived entirely in `crates/js_api/src/gui/`, tightly coupled to WASM and `JsValue`. This made it impossible to reuse from the CLI, REST API, or other Rust consumers. Additionally, the "GUI" naming was misleading since the logic is not UI-specific — it handles field values, deposits, token selection, state serialization, and order calldata generation. ## Solution - **Ported core logic to `crates/common/src/raindex_order_builder/`** — field values, deposits, select tokens, order operations, state management, and validation now live in a platform-agnostic common crate with no WASM dependencies. - **Reduced `crates/js_api/src/raindex_order_builder/`** to thin WASM wrappers that delegate to the common crate, keeping only `JsValue` conversion and callback handling. - **Renamed all GUI terminology to OrderBuilder** across the entire codebase: - Rust types: `DotrainOrderGui` → `RaindexOrderBuilder`, `DotrainGuiStateV1` → `OrderBuilderStateV1`, `GuiCfg` → `OrderBuilderCfg`, etc. - YAML keyword: `gui:` → `builder:` - Settings crate: `gui.rs` → `order_builder.rs` - Svelte/TS: components, providers, hooks, tests, and documentation updated - Test file renamed: `gui.test.ts` → `builder.test.ts` - WASM getter: `dotrainGuiState` → `orderBuilderState` - **Bumped `lib/rain.interpreter` submodule** to pull in `OrderBuilderStateV1` rename from `rain.metadata`. - Updated all ARCHITECTURE.md files and README documentation. ## Checks By submitting this for review, I'm confirming I've done the following: - [ ] made this PR as small as possible - [ ] unit-tested any new functionality - [x] linked any relevant issues or PRs - [ ] included screenshots (if this involves a front-end change) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** - Replaces the GUI surface with a unified "Order Builder": deposits, field values, select-tokens, token info & balances, validation, state serialization/restoration, calldata/deployment-args generation, and related UI provider/hook + WASM/JS bindings. * **Documentation** - README and architecture docs updated to show builder-centric examples and workflow. * **Chores** - Added encoding/hash utility dependencies (base64, bincode, sha2). <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Motivation
Update the rain.metadata submodule from the audit base commit so downstream metadata changes are available without including unrelated updates.
Solution
Checks
Summary by CodeRabbit