1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! `cow-weiroll` — Layer 2 Weiroll script builder for the `CoW` Protocol SDK.
//!
//! [Weiroll](https://github.com/weiroll/weiroll) is a minimal VM for
//! chaining arbitrary EVM calls into a single transaction. This crate
//! provides the Rust types for building Weiroll scripts and encoding them
//! as `execute(bytes32[],bytes[])` calldata targeting the canonical Weiroll
//! executor contract.
//!
//! # Submodules
//!
//! | Module | Purpose |
//! |---|---|
//! | `planner` (private) | [`WeirollPlanner`] builder for accumulating commands/state |
//! | [`types`] | [`WeirollCommand`], [`WeirollScript`], [`WeirollContractRef`], factory functions |
//!
//! # Key items
//!
//! | Item | Purpose |
//! |---|---|
//! | [`WeirollPlanner`] | Builder: `add_command` → `add_state_slot` → `plan()` |
//! | [`WeirollCommand`] | A single 32-byte packed instruction |
//! | [`WeirollScript`] | Finalised script (commands + state) |
//! | [`WeirollContractRef`] | Contract address + ABI + default call flags |
//! | [`create_weiroll_contract`] | Factory for `CALL`-mode contracts |
//! | [`create_weiroll_library`] | Factory for `DELEGATECALL`-mode libraries |
//! | [`create_weiroll_delegate_call`] | Build a complete `execute(...)` [`EvmCall`](cow_chains::chains::EvmCall) |
pub use WeirollPlanner;
pub use ;