$LX (source) to $LY (destination) network combination.
Step 1: Bridge-and-Call
Execute atomic bridge-and-call from source network (LY):| Network | Flag |
|---|---|
| L1 (Ethereum) | --network-id 0 |
| L2-1 (zkEVM) | --network-id 1 |
| L2-2 (Additional) | --network-id 2 (multi-L2 mode only) |
$LX= Source network ID (0, 1, or 2)$LY= Destination network ID (0, 1, or 2)
Step 2: Monitor Bridge Transaction
- Asset bridge:
deposit_count: N,leaf_type: 0 - Message bridge:
deposit_count: N+1,leaf_type: 1
Step 3: Prepare Call Data
--call-data is the actual function call that the JumpPoint contract will execute on your target contract. This should be a complete function call with signature and parameters.
Step 4: Check if Claimable
First, manually check the destination network claims API:- Both bridges share the same
bridge_tx_hash - Asset bridge:
type: "asset", amount > 0 - Message bridge:
type: "message", amount = 0 - Both have status
"pending"(ready to claim)
Step 5: Claim Asset Bridge (First)
Step 6: Verify Asset Claim Completion
First, manually check the destination network claims API:- Your asset claim transaction hash appears as
claim_tx_hash - Status changed from
"pending"to"completed" - Type is
"asset"with amount > 0
Step 7: Claim Message Bridge (Second)
Step 8: Verify Message Claim Completion
First, manually check the destination network claims API:- Your message claim transaction hash appears as
claim_tx_hash - Status changed from
"pending"to"completed" - Type is
"message"with amount = 0
Step 9: Verify Contract Results
| Network | URL |
|---|---|
| L1 | http://localhost:8545 |
| L2-1 | http://localhost:8546 |
| L2-2 | http://localhost:8547 (multi-L2 mode) |
Network Combinations
L1 ↔ L2 Bridging
L2 ↔ L2 Bridging
Bridge-and-Call with ETH
Bridge with ETH Value
Smart Contract Integration
Bridge-and-Call Architecture
Important: Bridge-and-call uses a different architecture than regular message bridging. TheBridgeExtension contract handles the onMessageReceived call and automatically deploys a JumpPoint contract to execute your function. Your target contract does NOT need to implement IBridgeMessageReceiver.
How it works:
- Bridge-and-call sends message to
BridgeExtensionon destination network - BridgeExtension receives both asset and message bridges
- BridgeExtension deploys a
JumpPointcontract with your encoded function call - JumpPoint transfers tokens to your contract and executes the function call