Skip to content
LogoLogo

CctpV2BridgeConfig

Git Source

Inherits: AccessManagedUpgradeable, ICctpV2BridgeConfig

Constants

MAINNET_CHAIN_ID

uint256 private constant MAINNET_CHAIN_ID = 1;

MAINNET_CCTP_DOMAIN

uint32 private constant MAINNET_CCTP_DOMAIN = 0;

CctpV2BridgeConfigStorageLocation

bytes32 private constant CctpV2BridgeConfigStorageLocation =
        0xfddff817c79375fc2894a034cbd193828d9a03a3c9ab698ec061f44863e21100;

Functions

_getCctpV2BridgeConfigStorage

function _getCctpV2BridgeConfigStorage() private pure returns (CctpV2BridgeConfigStorage storage $);

Returns

NameTypeDescription
$CctpV2BridgeConfigStorage

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.

getCctpDomain

EVM chain ID => CCTP domain

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

Parameters

NameTypeDescription
evmChainIduint256

Returns

NameTypeDescription
<none>uint32

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

setCctpDomain

Associates an EVM chain ID with a CCTP domain in the contract storage.

function setCctpDomain(uint256 evmChainId, uint32 cctpDomain) external override restricted;

Parameters

NameTypeDescription
evmChainIduint256The EVM chain ID.
cctpDomainuint32The CCTP domain.

setForeignToken

Associates a local token with its foreign counterpart used in CCTP 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

CctpV2BridgeConfigStorage

Note:

  • storage-location: erc7201:makina.storage.CctpV2BridgeConfig
struct CctpV2BridgeConfigStorage {
        mapping(uint256 evmChainId => uint32 cctpDomain) _evmToCctpId;
        mapping(uint32 cctpDomain => uint256 evmChainId) _cctpToEvmId;
        mapping(address localToken => mapping(uint256 foreignEvmChainId => address foreignToken)) _localToForeignToken;
        mapping(address foreignToken => mapping(uint256 foreignEvmChainId => address localToken)) _foreignToLocalToken;
    }

Properties

NameTypeDescription
_evmToCctpIdmapping(uint256 evmChainId => uint32 cctpDomain)
_cctpToEvmIdmapping(uint32 cctpDomain => uint256 evmChainId)
_localToForeignTokenmapping(address localToken => mapping(uint256 foreignEvmChainId => address foreignToken))
_foreignToLocalTokenmapping(address foreignToken => mapping(uint256 foreignEvmChainId => address localToken))