Multi-bridge Message Receiver
src/MultiBridgeMessageReceiver.sol
Features
Receive messages from a predefined source chain, through an approved set of bridge receiver adapters.
Enable scheduling a message for execution if a quorum of bridges relays the message
Update the list of trusted bridge receiver adapters
Update the quorum threshold for message validity
Functions
receiveMessage
Enables the contract to receive messages from a source chain, through a list of allowed bridge receiver adapters. A message can be delivered by a given bridge only once.
_message
: A MessageLibrary.Message
an object containing the message details.
scheduleMessageExecution
Sends a message, that has achieved a quorum and has not yet expired, to the governance timelock for eventual execution.
_msgId
: The unique identifier of the message_execParams
: The parameters for message execution, including the target contract address and execution payload
updateReceiverAdapter
Updates the list of approved bridge receiver adapters. This function can only be called by the owner
_receiverAdapters
: An array of addresses of the receiver adapter contracts_operations
: An array of operations for each receiver adapter. True implies add, and False implies remove.
updateQuorum
Updates the quorum, which is the number of independent bridges that must deliver a message for it to be considered valid. This function can only be called by the owner
_newQuorum
: The new quorum threshold for message validation
updateQuorumAndReceiverAdapter
Atomically updates the list of approved bridge receiver adapters and the quorum for message validation. This function can only be called by the owner
_receiverAdapters
: An array of addresses of the receiver adapter contracts_operations
: An array of operations for each receiver adapter. True implies add, and False implies remove._newQuorum
: The new quorum threshold for message validation
updateGovernanceTimelock
Updates the governance timelock address, which is the contract that ultimately executes valid messages.
_newGovernanceTimelock
is the new governance timelock contract address
Events
BridgeMessageReceived
: Emitted when a message is received from a bridge receiver adapterMessageExecutionScheduled
: Emitted when a message is scheduled for execution on the time lock contract on the destination chainBridgeReceiverAdapterUpdated
: Emitted when a receiver adapter is updatedQuorumUpdated
: Emitted when the quorum threshold is updated
Dependencies
IMultiBridgeMessageReceiver
: Interface for the MultiBridgeMessageReceiver contractIMessageReceiverAdapter
: Common interface for AMB receiver adapters that builds on EIP-5164 MessageExecutor. Read more here.ExecutorAware
: EIP-5164 interface for trusted executor-aware contracts. Read more here.MessageLibrary
: Contains the message struct definition
Last updated