EIP-5164 defines a cross-chain execution interface for EVM-based blockchains allowing contracts on one chain to call contracts on another. This repo contains an implementation of EIP-5164 that uses Hyperlane as the transport layer.
The two main contracts are HyperlaneERC5164Relayer.sol and HyperlaneERC5164Executor which are implementations of EIP-5164 CrossChainRelayer and CrossChainExecutor respectively as well implementations of Hyperlane Message Sender and Message Recipient respectively allowing them to provide an EIP-5164 interface while using Hyperlane as the cross-chain transport layer.
$ yarn install
Create a .env
file and set the following variables
PRIVATE_KEY
ETHERSCAN_API_KEY
Fund the account for the above private key with test tokens from a faucet (e.g the Paradigm faucet at https://faucet.paradigm.xyz.)
These additional variables can also be set depending on your networks of choice
MOONSCAN_API_KEY
POLYSCAN_API_KEY
SNOWTRACE_API_KEY
ARBISCAN_API_KEY
$ yarn build
$ yarn clean
$ yarn hardhat deploy-executor --network goerli --origin moonbasealpha
$ yarn hardhat deploy-relayer --network moonbasealpha --executor "EXECUTOR_ADDRESS" --remote goerli
$ yarn hardhat deploy-call-target --network goerli --executor "EXECUTOR_ADDRESS"
$ yarn hardhat send-message --network moonbasealpha --relayer "RELAYER_ADDRESS" --target "CALL_TARGET_ADDRESS" --message "MESSAGE"
$ yarn test
$ yarn coverage
All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
All smart contracts are released under GPL-3.0