MultiChainTellerBase
Inherits: CrossChainTellerBase
Base contract for the MultiChainTellers, We've noticed that many bridge options are L1 -> L2 only, which are quite simple IE Optimism Messenger While others like LZ that can contact many bridges, contain lots of additional complexity to manage the configuration for these chains To keep this separated we are using this MultiChain syntax for the > 2 chain messaging while only CrossChain for 2 chain messengers like OP
State Variables
selectorToChains
mapping(uint32 => Chain) public selectorToChains;
Functions
constructor
constructor(address _owner, address _vault, address _accountant) CrossChainTellerBase(_owner, _vault, _accountant);
addChain
adds an acceptable chain to bridge to
Callable by OWNER_ROLE.
function addChain(
uint32 chainSelector,
bool allowMessagesFrom,
bool allowMessagesTo,
address targetTeller,
uint64 messageGasLimit,
uint64 messageGasMin
)
external
requiresAuth;
Parameters
chainSelector
uint32
chainSelector of chain
allowMessagesFrom
bool
allow messages from this chain
allowMessagesTo
bool
allow messages to the chain
targetTeller
address
address of the target teller on this chain
messageGasLimit
uint64
to pass to bridge
messageGasMin
uint64
to require a minimum provided gas for this chain
stopMessagesFromChain
block messages from a particular chain
Callable by OWNER_ROLE.
function stopMessagesFromChain(uint32 chainSelector) external requiresAuth;
Parameters
chainSelector
uint32
of chain
allowMessagesFromChain
allow messages from a particular chain
Callable by OWNER_ROLE.
function allowMessagesFromChain(uint32 chainSelector, address targetTeller) external requiresAuth;
Parameters
chainSelector
uint32
of chain
targetTeller
address
removeChain
Remove a chain from the teller.
Callable by OWNER_ROLE.
Callable by OWNER_ROLE.
function removeChain(uint32 chainSelector) external requiresAuth;
allowMessagesToChain
Allow messages to a chain.
Callable by OWNER_ROLE.
function allowMessagesToChain(
uint32 chainSelector,
address targetTeller,
uint64 messageGasLimit
)
external
requiresAuth;
stopMessagesToChain
Stop messages to a chain.
Callable by OWNER_ROLE.
function stopMessagesToChain(uint32 chainSelector) external requiresAuth;
setChainGasLimit
Set the gas limit for messages to a chain.
Callable by OWNER_ROLE.
function setChainGasLimit(uint32 chainSelector, uint64 messageGasLimit) external requiresAuth;
_beforeBridge
override beforeBridge to check Chain struct
function _beforeBridge(BridgeData calldata data) internal override;
Parameters
data
BridgeData
bridge data
Events
ChainAdded
event ChainAdded(
uint256 chainSelector,
bool allowMessagesFrom,
bool allowMessagesTo,
address targetTeller,
uint64 messageGasLimit,
uint64 messageGasMin
);
ChainRemoved
event ChainRemoved(uint256 chainSelector);
ChainAllowMessagesFrom
event ChainAllowMessagesFrom(uint256 chainSelector, address targetTeller);
ChainAllowMessagesTo
event ChainAllowMessagesTo(uint256 chainSelector, address targetTeller);
ChainStopMessagesFrom
event ChainStopMessagesFrom(uint256 chainSelector);
ChainStopMessagesTo
event ChainStopMessagesTo(uint256 chainSelector);
ChainSetGasLimit
event ChainSetGasLimit(uint256 chainSelector, uint64 messageGasLimit);
Was this helpful?