MultiChainTellerBase

Git Source

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

Name
Type
Description

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.

Parameters

Name
Type
Description

chainSelector

uint32

of chain

allowMessagesFromChain

allow messages from a particular chain

Callable by OWNER_ROLE.

Parameters

Name
Type
Description

chainSelector

uint32

of chain

targetTeller

address

removeChain

Remove a chain from the teller.

Callable by OWNER_ROLE.

Callable by OWNER_ROLE.

allowMessagesToChain

Allow messages to a chain.

Callable by OWNER_ROLE.

stopMessagesToChain

Stop messages to a chain.

Callable by OWNER_ROLE.

setChainGasLimit

Set the gas limit for messages to a chain.

Callable by OWNER_ROLE.

_beforeBridge

override beforeBridge to check Chain struct

Parameters

Name
Type
Description

data

BridgeData

bridge data

Events

ChainAdded

ChainRemoved

ChainAllowMessagesFrom

ChainAllowMessagesTo

ChainStopMessagesFrom

ChainStopMessagesTo

ChainSetGasLimit

Was this helpful?