CCIP v1.5.1 IRouterClient API Reference
To send messages through CCIP, users must interact with the IRouterClient
interface.
After you import IRouterClient.sol
, you can initialize a router client instance:
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
...
IRouterClient router;
constructor(address _router) {
router = IRouterClient(_router);
}
Errors
UnsupportedDestinationChain
error UnsupportedDestinationChain(uint64 destChainSelector)
InsufficientFeeTokenAmount
error InsufficientFeeTokenAmount()
InvalidMsgValue
error InvalidMsgValue()
Functions
isChainSupported
function isChainSupported(uint64 destChainSelector) external view returns (bool supported)
Checks if the given chain ID is supported for sending/receiving.
Parameters
Name | Type | Description |
---|---|---|
destChainSelector | uint64 | The chain to check. |
Return Values
Name | Type | Description |
---|---|---|
supported | bool | returns true if it is supported, false if not. |
getFee
function getFee(uint64 destinationChainSelector, struct Client.EVM2AnyMessage message) external view returns (uint256 fee)
Parameters
Name | Type | Description |
---|---|---|
destinationChainSelector | uint64 | The destination chainSelector |
message | struct Client.EVM2AnyMessage | The cross-chain CCIP message including data and/or tokens |
Return Values
Name | Type | Description |
---|---|---|
fee | uint256 | returns guaranteed execution fee for the specified message delivery to the destination chain |
ccipSend
function ccipSend(uint64 destinationChainSelector, struct Client.EVM2AnyMessage message) external payable returns (bytes32)
Request a message to be sent to the destination chain.
Parameters
Name | Type | Description |
---|---|---|
destinationChainSelector | uint64 | The destination chain ID |
message | struct Client.EVM2AnyMessage | The cross-chain CCIP message, including data and/or tokens |
Return Values
Name | Type | Description |
---|---|---|
[0] | bytes32 | messageId The message ID |