ZetaInteractor
Git Source (opens in a new tab)
Inherits: Ownable2Step, ZetaInteractorErrors
State Variables
ZERO_BYTES
bytes32 constant ZERO_BYTES = keccak256(new bytes(0));
currentChainId
uint256 internal immutable currentChainId;
connector
ZetaConnector public immutable connector;
interactorsByChainId
*Maps a chain id to its corresponding address of the MultiChainSwap contract The address is expressed in bytes to allow non-EVM chains This mapping is useful, mainly, for two reasons:
- Given a chain id, the contract is able to route a transaction to its corresponding address
- To check that the messages (onZetaMessage, onZetaRevert) come from a trusted source*
mapping(uint256 => bytes) public interactorsByChainId;
Functions
isValidMessageCall
modifier isValidMessageCall(ZetaInterfaces.ZetaMessage calldata zetaMessage);
isValidRevertCall
modifier isValidRevertCall(ZetaInterfaces.ZetaRevert calldata zetaRevert);
constructor
constructor(address zetaConnectorAddress);
_isValidCaller
function _isValidCaller() private view;
_isValidChainId
Useful for contracts that inherit from this one
function _isValidChainId(uint256 chainId) internal view returns (bool);
setInteractorByChainId
function setInteractorByChainId(uint256 destinationChainId, bytes calldata contractAddress) external onlyOwner;
How's your journey with ZetaChain?
Let us know