Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ringecosystem/msgport
Msgport is unified interface for sending and receiving messages across different chains
https://github.com/ringecosystem/msgport
cross-chain evm message smart-contracts
Last synced: about 2 months ago
JSON representation
Msgport is unified interface for sending and receiving messages across different chains
- Host: GitHub
- URL: https://github.com/ringecosystem/msgport
- Owner: ringecosystem
- Created: 2023-05-09T04:09:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-13T08:25:25.000Z (7 months ago)
- Last Synced: 2024-09-05T23:08:31.416Z (5 months ago)
- Topics: cross-chain, evm, message, smart-contracts
- Language: Solidity
- Homepage: https://scan.msgport.xyz/
- Size: 1.02 MB
- Stars: 10
- Watchers: 4
- Forks: 1
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Support: SUPPORTED.md
Awesome Lists containing this project
README
# MSGPORT
Darwinia Msgport is built upon a flexible and modular architecture, allowing users to harness various cross-chain messaging layers that best suit their specific needs. Msgport provides support for sending arbitrary messages through different low-level cross-chain messaging services.
## Example receiver dApp
For an example receiver dApp, please refer to the [ExampleReceiverDapp](./src/examples/ExampleReceiverDapp.sol) file.
## Sending message
1. Obtain the message port addres.
a. From the address list part: [Supported chains](./SUPPORTED.md)
or
b. Through portRegistry contract: `portRegistry.get(uint256 chainId, bytes4 code)`
2. Retrieve the `fee` and adapter `params` from the [Msgport API](https://github.com/darwinia-network/darwinia-msgport-api/blob/main/README.md)
3. Send the message using the following parameters
- toChainId: uint256 - Use the standard EVM chainId. [Supported chains](./SUPPORTED.md)
- toDapp: address - The address of your receiver dApp.
- message: bytes - The payload of your message.
- params: bytes - Adapter params obtained from the Msgport API in step 2.
```sol
messagePort.send(toChainId, toDapp, message, params);
```4. You can verify the senderPort and senderDapp addresses when reciving the message.
For an example, please check [Verify example](./src/examples/ExampleReceiverDapp.sol)
## Develop
### Foundry
To install dependencies and compile contracts:
```sh
git clone --recurse-submodules https://github.com/darwinia-network/darwinia-msgport.git && cd darwinia-msgport
make tools
make
```## Security and Liability
All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.