Skip to content
LogoLogo

LayerZeroV2BridgeConfig

Git Source

Inherits: AccessManagedUpgradeable, ILayerZeroV2BridgeConfig

Constants

LayerZeroV2BridgeConfigStorageLocation

bytes32 private constant LayerZeroV2BridgeConfigStorageLocation =
        0x9968c8893e7d72567bf0ce47e55989cd61e749404314ded743fba239bde60b00;

Functions

_getLayerZeroV2BridgeConfigStorage

function _getLayerZeroV2BridgeConfigStorage() private pure returns (LayerZeroV2BridgeConfigStorage storage $);

Returns

NameTypeDescription
$LayerZeroV2BridgeConfigStorage

constructor

constructor();

initialize

function initialize(address initialAuthority) external initializer;

Parameters

NameTypeDescription
initialAuthorityaddress

isRouteSupported

Returns whether a bridge transfer route is supported for the associated bridge.

function isRouteSupported(address inputToken, uint256 foreignChainId, address outputToken)
        external
        view
        override
        returns (bool);

Parameters

NameTypeDescription
inputTokenaddressThe token being sent from the source chain.
foreignChainIduint256The destination chain ID.
outputTokenaddressThe token being received on the destination chain.

Returns

NameTypeDescription
<none>boolTrue if the route is supported, false otherwise.

getLzEndpointId

EVM chain ID => LayerZero endpoint ID

function getLzEndpointId(uint256 evmChainId) external view override returns (uint32);

Parameters

NameTypeDescription
evmChainIduint256

Returns

NameTypeDescription
<none>uint32

getOft

Local token address => LayerZero OFT address

function getOft(address localToken) external view override returns (address);

Parameters

NameTypeDescription
localTokenaddress

Returns

NameTypeDescription
<none>address

getForeignToken

Local token address => Foreign EVM chain ID => Foreign Token address

function getForeignToken(address localToken, uint256 foreignEvmChainId) external view override returns (address);

Parameters

NameTypeDescription
localTokenaddress
foreignEvmChainIduint256

Returns

NameTypeDescription
<none>address

setLzEndpointId

Associates an EVM chain ID with a LayerZero endpoint ID in the contract storage.

function setLzEndpointId(uint256 evmChainId, uint32 lzEndpointId) external override restricted;

Parameters

NameTypeDescription
evmChainIduint256The EVM chain ID.
lzEndpointIduint32The LayerZero endpoint ID.

setOft

Registers a LayerZero OFT for its associated token.

Assumes that an OFT's associated token is immutable.

Overwrites any previously registered OFT for the provided OFT's associated token.

function setOft(address oft) external override restricted;

Parameters

NameTypeDescription
oftaddressThe address of the LayerZero OFT.

setForeignToken

Associates a local token with its foreign counterpart used in LayerZero bridging.

function setForeignToken(address localToken, uint256 foreignEvmChainId, address foreignToken)
        external
        override
        restricted;

Parameters

NameTypeDescription
localTokenaddressThe local token address.
foreignEvmChainIduint256The foreign EVM chain ID.
foreignTokenaddressThe foreign token address.

Structs

LayerZeroV2BridgeConfigStorage

Note:

  • storage-location: erc7201:makina.storage.LayerZeroV2BridgeConfig
struct LayerZeroV2BridgeConfigStorage {
        mapping(uint256 evmChainId => uint32 lzEndpointId) _evmToLzId;
        mapping(uint32 lzEndpointId => uint256 evmChainId) _lzToEvmId;
        mapping(address localToken => address oft) _localTokenToOft;
        mapping(address localToken => mapping(uint256 foreignEvmChainId => address foreignToken)) _localToForeignToken;
        mapping(address foreignToken => mapping(uint256 foreignEvmChainId => address localToken)) _foreignToLocalToken;
    }

Properties

NameTypeDescription
_evmToLzIdmapping(uint256 evmChainId => uint32 lzEndpointId)
_lzToEvmIdmapping(uint32 lzEndpointId => uint256 evmChainId)
_localTokenToOftmapping(address localToken => address oft)
_localToForeignTokenmapping(address localToken => mapping(uint256 foreignEvmChainId => address foreignToken))
_foreignToLocalTokenmapping(address foreignToken => mapping(uint256 foreignEvmChainId => address localToken))