What
Let a spec targeting network B declare an arg that resolves to a contract deployed on network A (e.g. a bridge adapter on an L2 taking the L1 counterpart's address). Multi-network deploys and per-network journals already exist; this adds the cross-network edge to the spec graph.
Scope sketch
- Spec: a
crossRef arg kind {kind:"crossRef", network, id} (or extend RefArg with an optional network), validated against the declared network set.
- Resolution: read the referenced address from the other network's journal/snapshot at compile/deploy time (via
@redeploy/reader); hard error with a clear message if the source deployment hasn't landed yet — ordering across networks is the operator's responsibility in v1 (no cross-chain orchestrator).
- Simulate/plan-diff: show cross-refs distinctly; studio graph rendering of cross-network edges is a follow-up issue.
Why
Near-universal need for L1/L2 systems; almost no deployment tool models it declaratively.
What
Let a spec targeting network B declare an arg that resolves to a contract deployed on network A (e.g. a bridge adapter on an L2 taking the L1 counterpart's address). Multi-network deploys and per-network journals already exist; this adds the cross-network edge to the spec graph.
Scope sketch
crossRefarg kind{kind:"crossRef", network, id}(or extendRefArgwith an optionalnetwork), validated against the declared network set.@redeploy/reader); hard error with a clear message if the source deployment hasn't landed yet — ordering across networks is the operator's responsibility in v1 (no cross-chain orchestrator).Why
Near-universal need for L1/L2 systems; almost no deployment tool models it declaratively.