Round-Trip with Auto Back-Leg
A single Push contract that dispatches an outbound to BNB Testnet and automatically receives an inbound callback when the destination chain finishes. One user signature on Push, two coordinated transactions across two chains.
This is a loaded pattern example where the operational knobs that the basics gloss over (gasLimit floor, destination CEA prefunding, the 6-arg executeUniversalTx dispatch path, refund accumulation) all become concrete here.
For the conceptual background, see Contract-Initiated Multichain Execution (especially the Round-Trip Wire Format and Operational Knobs sections).
What this example shows
| Aspect | Details |
|---|---|
| Direction | Push -> BNB -> Push, all from one user signature on Push. |
| Trigger | EOA calls kickOff(...). The contract dispatches outbound; TSS auto-fires the inbound callback when the BNB tx settles. |
| Wire format | The destination CEA's outer multicall self-calls sendUniversalTxToUEA on the CEA itself. The CEA wraps the inner payload and submits it through BNB's gateway. |
| Inbound dispatch path | The 6-arg executeUniversalTx(string, bytes, bytes, uint256, address, bytes32). For Push-native contracts, TSS dispatches this signature; the 2-arg executeUniversalTx(UniversalPayload, bytes) overload in the codebase is reserved for UEA proxy accounts and is not invoked here. |
| Verified on | Donut Testnet. End-to-end run with outboundCount and callbacks both advancing. |