SDL Pool CCIP Controller Primary

The SDLPoolCCIPControllerPrimary acts as an interface between the PrimarySDLPool and secondary chains by handling CCIP messaging.

This contract is deployed only on the primary chain.

View Functions

getRouter

Returns the current CCIP router

function getRouter() public view returns (address)

Return Values

NameTypeDescription

router

address

router address

linkToken

Returns the address of the LINK token

function linkToken() external view returns (address)

Return Values

NameTypeDescription

linkToken

address

address of LINK token

sdlToken

Returns the address of the SDL token

function sdlToken() external view returns (address)

Return Values

NameTypeDescription

sdlToken

address

address of SDL token

sdlPool

Returns the address of the SDL pool

function sdlPool() external view returns (address)

Return Values

NameTypeDescription

sdlPool

address

address of SDL pool

reSDLTokenBridge

Returns the address of the reSDL bridge

function reSDLTokenBridge() external view returns (address)

Return Values

NameTypeDescription

reSDLTokenBridge

address

address of reSDL bridge

maxLINKFee

Returns the maximum CCIP fee in LINK to be paid on outgoing messages

function maxLINKFee() external view returns (uint256)

Return Values

NameTypeDescription

maxLINKFee

uint256

max fee in LINK

whitelistedDestinations

Returns the destination address for a whitelisted chain

function whitelistedDestinations(uint64 _chainSelector) external view returns (address)

Parameters

NameTypeDescription

_chainSelector

address

id of chain

Return Values

NameTypeDescription

destination

address

destination address

updateExtraArgsByChain

Returns the CCIP extra args for sending updates for a whitelisted chain

function updateExtraArgsByChain(uint64 _chainSelector) external view returns (bytes)

Parameters

NameTypeDescription

_chainSelector

address

id of chain

Return Values

NameTypeDescription

extraArgs

byts

extra args

rewardsExtraArgsByChain

Returns the CCIP extra args for sending rewards for a whitelisted chain

function rewardsExtraArgsByChain(uint64 _chainSelector) external view returns (bytes)

Parameters

NameTypeDescription

_chainSelector

address

id of chain

Return Values

NameTypeDescription

extraArgs

bytes

extra args

reSDLSupplyByChain

Returns the total reSDL supply on a whitelisted chain

function reSDLSupplyByChain(uint64 _chainSelector) external view returns (uint256)

Parameters

NameTypeDescription

_chainSelector

address

id of chain

Return Values

NameTypeDescription

reSDLSupply

uint256

total reSDL supply on chain

wrappedRewardTokens

Returns the wrapper token for a reward token

function wrappedRewardTokens(address _token) external view returns (address)

Parameters

NameTypeDescription

_token

address

address of reward token

Return Values

NameTypeDescription

wrapper

address

address of wrapper token

rewardsInitiator

Returns the address of the rewards initator

function rewardsInitiator() external view returns (address)

Return Values

NameTypeDescription

rewardsInitiator

address

address of rewards initiator

getWhitelistedChains

Returns a list of all whitelisted chains

function getWhitelistedChains() external view returns (uint64[])

Return Values

NameTypeDescription

chainSelectors

uint64[]

list of whitelisted chain ids

Write Functions

setRouter

Sets the CCIP router

function setRouter(address _router) external

Parameters

NameTypeDescription

_router

address

router address

handleOutgoingRESDL

Handles the outgoing transfer of an reSDL token to another chain

function handleOutgoingRESDL(uint64 _destinationChainSelector, address _sender, uint256 _tokenId) external virtual returns (address, struct ISDLPool.RESDLToken)

Parameters

NameTypeDescription

_destinationChainSelector

uint64

id of the destination chain

_sender

address

sender of the transfer

_tokenId

uint256

id of token

Return Values

NameTypeDescription

receiver

address

the destination address

token

RESDLToken

the token being transferred

handleIncomingRESDL

Handles the incoming transfer of an reSDL token from another chain

function handleIncomingRESDL(uint64 _sourceChainSelector, address _receiver, uint256 _tokenId, struct ISDLPool.RESDLToken _reSDLToken) external virtual

Parameters

NameTypeDescription

_sourceChainSelector

uint64

id of the source chain

_receiver

address

receiver of the transfer

_tokenId

uint256

id of reSDL token

_reSDLToken

RESDLToken

reSDL token

ccipSend

Sends a CCIP message

function ccipSend(uint64 _destinationChainSelector, struct Client.EVM2AnyMessage _evmToAnyMessage) external payable returns (bytes32)

Parameters

NameTypeDescription

_sourceChainSelector

uint64

id of the destination chain

_evmToAnyMessage

EVMToAntMessage

CCIP message

ccipReceive

Processes a received CCIP message

function ccipReceive(struct Client.Any2EVMMessage _message) external

Parameters

NameTypeDescription

_message

Any2EVMMessage

CCIP message

recoverTokens

Withdraws tokens held by this contract

function recoverTokens(address[] _tokens, uint256[] _amounts, address _receiver) external

Parameters

NameTypeDescription

_tokens

address[]

list of tokens to withdraw

_amounts

uint256[]

list of corresponding amounts to withdraw

_receiver

address

address to receive tokens

setMaxLINKFee

Sets the maximum LINK fee to be paid on an outgoing CCIP message

function setMaxLINKFee(uint256 _maxLINKFee) external

Parameters

NameTypeDescription

_maxLINKFee

uint256

maximum fee in LINK

setRESDLTokenBridge

Sets the address of the reSDL token bridge

function setRESDLTokenBridge(address _reSDLTokenBridge) external

Parameters

NameTypeDescription

_reSDLTokenBridge

address

address of reSDL token bridge

distributeRewards

Claims and distributes rewards between all secondary chains

function distributeRewards() external

addWhitelistedChain

Whitelists a new chain

function addWhitelistedChain(uint64 _chainSelector, address _destination, bytes _updateExtraArgs, bytes _rewardsExtraArgs) external

Parameters

NameTypeDescription

_chainSelector

uint64

id of chain

_destination

address

address to receive CCIP messages on chain

_updateExtraArgs

bytes

extraArgs for sending updates to this destination as defined in CCIP docs

_rewardsExtraArgs

bytes

extraArgs for sending rewards to this destination as defined in CCIP docs

removeWhitelistedChain

Removes an existing whitelisted chain

function removeWhitelistedChain(uint64 _chainSelector) external

Parameters

NameTypeDescription

_chainSelector

uint64

id of chain

approveRewardTokens

Approves the CCIP router to transfer tokens on behalf of this contract

function approveRewardTokens(address[] _tokens) external

Parameters

NameTypeDescription

_tokens

address[]

list of tokens to approve

setWrappedRewardToken

Sets the wrapped token address for a reward token

function setWrappedRewardToken(address _token, address _wrappedToken) external

Parameters

NameTypeDescription

_token

address

address of token

_wrappedToken

address

address of wrapped token

setUpdateExtraArgs

Sets the extra args used for sending updates to a chain

function setUpdateExtraArgs(uint64 _chainSelector, bytes _updateExtraArgs) external

Parameters

NameTypeDescription

_chainSelector

uint64

id of chain

_updateExtraArgs

bytes

extra args as defined in CCIP API

setRewardsExtraArgs

Sets the extra args used for sending rewards to a chain

function setRewardsExtraArgs(uint64 _chainSelector, bytes _rewardsExtraArgs) external

Parameters

NameTypeDescription

_chainSelector

uint64

id of chain

_rewardsExtraArgs

bytes

extra args as defined in CCIP API

setRewardsInitiator

Sets the rewards initiator

function setRewardsInitiator(address _rewardsInitiator) external

Parameters

NameTypeDescription

_rewardsInitiator

address

address of rewards initiator

Last updated