Skip to content

Latest commit

 

History

History
84 lines (58 loc) · 2.42 KB

File metadata and controls

84 lines (58 loc) · 2.42 KB

Axelar Local Dev Cosmos

Axelar Local Dev Cosmos offers a comprehensive suite of tools for local development involving Cosmos chains. With this package, developers can easily deploy WebAssembly (Wasm) contracts on a Wasm chain and seamlessly send cross-chain messages to the Ethereum Virtual Machine (EVM) chain.

Note: This package is currently under development. Some functionalities might be unstable.

Prerequisite

  • Docker installed and running on your local machine.

Quick Start

Start Wasm and Axelar Chain

Run the following command to pull the Docker image, set up the chains, and establish IBC connections:

npm run start

Alternatively, you can start the chains programmatically:

import { startChains } from "@axelar-network/axelar-local-dev-cosmos";

startChains();

Running IBC Relayer and Axelar Event Listener

After setting up the chains, follow these steps to run the IBC Relayer and Axelar Event Listener:

Create Axelar Relayer Service for initailizing the IBC channels and keep listening to incoming events:

import {
  defaultAxelarChainInfo,
  AxelarRelayerService,
} from "@axelar-network/axelar-local-dev-cosmos";

const axelarRelayerService = await AxelarRelayerService.create(
  defaultAxelarChainInfo
);

Relaying Messages

To relay messages after they have been submitted on the Ethereum or Wasm chains, use the following method:

import {
  evmRelayer,
  createNetwork,
  relay,
  RelayerType,
} from "@axelar-network/axelar-local-dev";
import {
  defaultAxelarChainInfo,
  AxelarRelayerService,
} from "@axelar-network/axelar-local-dev-cosmos";

// Setup for Ethereum Network and Wasm chain relayer
const evmNetwork = await createNetwork({ name: "Ethereum" });
const wasmRelayer = await AxelarRelayerService.create(defaultAxelarChainInfo);

// Deploy contracts, send messages, and call the relay function
// ...

evmRelayer.setRelayer(RelayerType.Wasm, wasmRelayer);
await relay({
  wasm: wasmRelayer,
  evm: evmRelayer,
});

// Verify results on the destination chain
// ...

Examples

  • We currently support Ethereum as the destination chain for messages originating from the Wasm chain.
  • For implementation details, see our Local Example and Axelar Example.

The Local Example utilizes the same contracts as in the Axelar Examples.