API Version: v0.2.7 Not using latest version (v0.3.1)

CCIPLocalSimulatorFork v0.2.7 API Reference

CCIPLocalSimulatorFork

CCIP simulator for forked networks.

CCIPLocalSimulatorFork

Structs

EVM2EVMMessage

struct EVM2EVMMessage {
  uint64 sourceChainSelector;
  address sender;
  address receiver;
  uint64 sequenceNumber;
  uint256 gasLimit;
  bool strict;
  uint64 nonce;
  address feeToken;
  uint256 feeTokenAmount;
  bytes data;
  struct Client.EVMTokenAmount[] tokenAmounts;
  bytes[] sourceTokenData;
  bytes32 messageId;
}

OffRamp

Structure representing an offRamp configuration

Parameters

NameTypeDescription
struct OffRamp {
  uint64 sourceChainSelector;
  address offRamp;
}

Variables

DEFAULT_GAS_LIMIT

uint32 DEFAULT_GAS_LIMIT

i_register

contract Register i_register

The immutable register instance

address LINK_FAUCET

The address of the LINK faucet

s_processedMessages

mapping(bytes32 => bool) s_processedMessages

Mapping to track processed messages

Errors

InvalidExtraArgsTag

error InvalidExtraArgsTag()

Events

CCIPMessageSent

event CCIPMessageSent(uint64 destChainSelector, uint64 sequenceNumber, struct Internal.EVM2AnyRampMessage message)

CCIPSendRequested

event CCIPSendRequested(struct InternalPreV1dot6.EVM2EVMMessage message)

Events emitted when a CCIP send request is made

Functions

_fromBytes

function _fromBytes(bytes extraArgs) internal pure returns (struct Client.GenericExtraArgsV2)

Internal helper function to decode extraArgs bytes to GenericExtraArgsV2 struct. Supports decoding of both GenericExtraArgsV2 and EVMExtraArgsV1 structs.

Parameters

NameTypeDescription
extraArgsbytes- The bytes representing the extra arguments.

Returns

NameTypeDescription
[0]struct Client.GenericExtraArgsV2genericExtraArgs - The decoded GenericExtraArgsV2 struct.

_routeCapturedMessages

function _routeCapturedMessages(uint256[] forkIds, uint256 sourceForkId, address sourceRouterAddress) internal

Internal function to route captured messages to their respective destination forks.

Parameters

NameTypeDescription
forkIdsuint256[]- The IDs of the destination network forks. These are the returned values of createFork() or createSelectFork(), not chainIds.
sourceForkIduint256- The ID of the source network fork. This is the returned value of createFork() or createSelectFork(), not chainId.
sourceRouterAddressaddress- The address of the Router on the source chain.

constructor

constructor() public

Constructor to initialize the contract

executeSingleMessage

function executeSingleMessage(struct Internal.Any2EVMRampMessage message, bytes[] offchainTokenData, uint32[] tokenGasOverrides) external

Executes a single CCIP message on the offRamp

Parameters

NameTypeDescription
messagestruct Internal.Any2EVMRampMessage- The CCIP message to be executed
offchainTokenDatabytes[]- Additional offchain token data
tokenGasOverridesuint32[]

executeSingleMessage

function executeSingleMessage(struct InternalPreV1dot6.EVM2EVMMessage message, bytes[] offchainTokenData, uint32[] tokenGasOverrides) external

Works with Foundry only

getNetworkDetails

function getNetworkDetails(uint256 chainId) external view returns (struct Register.NetworkDetails)

Returns the default values for currently CCIP supported networks. If network is not present or some of the values are changed, user can manually add new network details using the setNetworkDetails function.

Parameters

NameTypeDescription
chainIduint256- The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector.

Returns

NameTypeDescription
[0]struct Register.NetworkDetailsnetworkDetails - The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token.

getOffRamps

function getOffRamps() external view returns (struct IRouterFork.OffRamp[])

Gets the list of offRamps

Returns

NameTypeDescription
[0]struct IRouterFork.OffRamp[]offRamps - Array of OffRamp structs

getOnRamp

function getOnRamp(uint64 destChainSelector) external view returns (address)

Return the configured onramp for specific a destination chain. @param destChainSelector The destination chain Id to get the onRamp for.

Returns

NameTypeDescription
[0]addressThe address of the onRamp.

requestLinkFromFaucet

function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success)

Requests LINK tokens from the faucet. The provided amount of tokens are transferred to provided destination address.

Parameters

NameTypeDescription
toaddress- The address to which LINK tokens are to be sent.
amountuint256- The amount of LINK tokens to send.

Returns

NameTypeDescription
successbool- Returns true if the transfer of tokens was successful, otherwise false.

setNetworkDetails

function setNetworkDetails(uint256 chainId, struct Register.NetworkDetails networkDetails) external

If network details are not present or some of the values are changed, user can manually add new network details using the setNetworkDetails function.

Parameters

NameTypeDescription
chainIduint256- The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector.
networkDetailsstruct Register.NetworkDetails- The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token.

switchChainAndRouteMessage

function switchChainAndRouteMessage(uint256 forkId) external

To be called after the sending of the cross-chain message (ccipSend). Goes through the list of past logs and looks for the CCIPSendRequested and CCIPMessageSent events. Switches to a destination network fork. Routes the sent cross-chain message on the destination network. If you sent more than one message, it will try to route all of them to forkId.

Parameters

NameTypeDescription
forkIduint256- The ID of the destination network fork. This is the returned value of createFork() or createSelectFork()

switchChainAndRouteMessage

function switchChainAndRouteMessage(uint256[] forkIds) external

To be called after the sending of the cross-chain message (ccipSend). Override variant of the switchChainAndRouteMessage(uint256 forkId) function in case of multiple destination forks. Goes through the list of past logs and looks for the CCIPSendRequested and CCIPMessageSent events. Loops through provided forkIds and tries to route the message to correct destination. If you haven't provide correct forkId, the message will get lost. If you sent more than one message, it will try to route all of them to correct destinations.

Parameters

NameTypeDescription
forkIdsuint256[]- The IDs of the destination network forks. These are the returned values of createFork() or createSelectFork()

Get the latest Chainlink content straight to your inbox.