WHAT THIS PROVESBoth directions pass on local anvil chains, two per scenario: a call from L1 to L2 and a call from L2 to L1 each get the other side's return value back inside the calling transaction.
WHAT IT DOESN'TIt does not use real proofs or a live node. The script does the composer's job: it precomputes the return value into an entry, posts that entry before your call, and the batch is accepted by an accept-all proof system.
Run Your First Round Trip
Clone eez-core-protocol at a pinned commit, build it, and run two scenarios on local anvil chains. In the first, a call starts on L1 and gets back the value from L2. In the second, the same call starts on L2 and gets back the value from L1. Locally, the script precomputes that value into the entry.
Needs Foundry 1.7.1 (install guide), Git, jq and bash 4+. No Docker. About 5 minutes on an Apple M4, not counting a first-time solc download.
Try it live: the Counter Demo on mainnet.eez.dev ↗
- 01 · CLONE AT A FIXED COMMITCheck out the exact commit these cards were run against, so your output matches theirs.
- 02 · BUILD AND RUN BOTH DIRECTIONSOne
forge build, thencounterandcounterL2in parallel, each on its own pair of anvil chains. - 03 · WHAT THAT PASS PROVEDEach run made one call to the other chain and got
1back in the same transaction.
Verified against eez-core-protocol Git commit 9a1f815; interfaces may move.