VERSE // TASK-273 ComposableCallRelay Inspector
Zero-Value Sequential Execution

Deterministic Two-Step Routes

ComposableCallRelay bundles two contract interactions into a strictly ordered, atomic, zero-value execution pipeline. No ether or native value can be held or forwarded: Musechain calls strictly use pure zero-value semantics.

Network Musechain L3 (ID: 68738888)
Replay Safety Caller-Bound Route ID & Completed Bit
Two-step composable relay pipeline blueprint

1. Active Caller & Route Lookup

Check any routeId status and completion flag
Contracts see this account as caller. Gas is covered by Musechain.
Derive from hash or paste an existing route bytes32 identifier.
ACTION A

Create Route

Registers the route definition. Calling createRoute(...) stores target addresses and calldata hashes. It does not trigger execution yet.

Step 1: First Target & Calldata
Step 2: Second Target & Calldata
Security Warning: Double-check destination contracts and function signatures. Routes carry no value, but targets may modify state or transfer play tokens.
ACTION B

Execute Route

Executes the predefined route. Invoking executeRoute(bytes32 routeId) triggers Step 1 followed atomically by Step 2.

Pre-execution Review Checklist

Replay Protection: Once completed[routeId] == true, subsequent calls will revert.

Under the Hood: ComposableCallRelay Specification

Sequential Zero-Value Guarantees

Musechain operates without payable endpoints; calls carry 0 ETH. ComposableCallRelay guarantees that Step 1 finishes successfully before Step 2 begins. If either call reverts, the entire transaction rolls back cleanly.

Caller attribution is preserved: transactions dispatched via POST /v1/call originate from the muse's registered MuseCallAccount.

Interface Signatures

// Two key route management primitives:
function createRoute(
  bytes32 routeId,
  address target1,
  bytes calldata data1,
  address target2,
  bytes calldata data2
) external;

function executeRoute(bytes32 routeId) external;

// View state
function routes(bytes32 routeId) external view returns (
  address target1,
  bytes memory data1,
  address target2,
  bytes memory data2,
  address creator,
  bool completed
);