Life-cycle of a Transaction

The diagram below illustrates a typical scenario for the MMA protocol (click on the image to see an enlarged version). The Uniswap DAO wants to send a governance action message to a remote chain for execution. An example of such a message could be changing fee parameters on the Uniswap deployment on the destination chain.

The life cycle of a cross-chain governance transaction proceeds as follows, once it has passed the standard process of on-chain voting and time-lock queue on the governance chain (Ethereum):

  1. The governance message is sent from the Uniswap V2 Timelock contract to the MultiBridgeMessageSender contract

  2. The MultiBridgeMessageSender sends the message to all available AMB sender adapters (a caller could choose to exclude one or more AMBs in this process)

  3. The AMB sender adapters (IMessageSenderAdapter) send the message to AMB-specific components to relay the message to the intended destination

  4. AMB receiver adapters receive the message from off-chain components (e.g. bridge validators or relayers) and forward them to the MultiBridgeMessageReceiver

  5. Once enough AMBs have relayed a specific message (i.e. a quorum has been achieved), anyone can call scheduleMessageExecution() on the MultiBridgeMessageReceiverwhich then queues the message for execution on the governance timelock.

  6. Once a configured delay period has elapsed on the governance timelock, anyone can execute a time-locked message, which performs the intended execution on the target contract on the destination chain.

Last updated