This repository contains all the necessary ingredients for successful cross-chain development utilizing the Axelar General Message Passing protocol.
We recommend using the latest Node.js LTS version.
npm ci
npm run build
npm run test
Pre-compiled bytecodes can be found under Releases. Furthermore, pre-compiled bytecodes and ABI are shipped in the npm package and can be imported via:
npm install @axelar-network/axelar-gmp-sdk-solidity
const IAxelarExecutable = require('@axelar-network/axelar-gmp-sdk-solidity/interfaces/IAxelarExecutable.json');
const Upgradable = require('@axelar-network/axelar-cgp-solidity/artifacts/contracts/upgradable/Upgradable.sol/Upgradable.json');
Unit tests can also be run against live networks for integration testing, see here.
Check gas usage
REPORT_GAS=true npm run test
Check storage layout of contracts.
STORAGE_LAYOUT=true npx hardhat check
Check contract bytecode size
CHECK_CONTRACT_SIZE=true npm run build
Base interface for validating and executing GMP contract calls.
Interface that allows expediting GMP calls by lending assets and performing execution before it fully propagates through the Axelar network.
These contracts are used to deploy your Executable to have the same address on different EVM chains. This simplifies message validation from peer Executables. You can learn more in the documentation.
Base implementation of upgradable contracts designed to be deployed with Create3Deployer
and to have the same Proxy address on different EVM chains.
Allows conversion between string
and address
data types
Allows conversion between bytes
and address
data types
Allows conversion between string
and bytes32
data types
for storing strings under 31 bytes into a single storage slot