Example: Cross-Chain Messaging Demo
Sending a simple string across chains.
Last updated
Sending a simple string across chains.
Last updated
In the , we demonstrate how to concatenate together a string message that includes:
arbitrary text
the sender's balance
the sender's name (if applicable)
The entrypoint for this contract is the sendMail
function, which a user (EOA) calls to send a message across chains.
The user calling this function specifies which destination chain they would like to send their message to (with the parameter _destinationChainId
) as well as the _destinationMailbox
contract address (a CrossChainMailbox
deployed on the destination chain).
The body of sendMail
uses the StringHelper
library to piece together the information of message + balance + ENS name in one formatted string. Then we use send
to send that actual message to our CrossChainMailbox
through Telepathy.
In this case, we store the message and emit an event.
The full source code for the contracts used in this demo can be found at the in . This contains the source contract CrossChainMailer
and destination contract CrossChainMailbox
.
This contract needs a reference to the Telepathy , so we pass in that information to the constructor:
Destination contracts should inherit from the contract:
This gives convenient functionality for ensuring that ONLY the Telepathy can call this function, and gives a function to override to receive messages. To set up this contract a , pass in the Router's address in the constructor:
Then override the function with custom logic: