Skip to content

Latest commit

 

History

History

axelar-local-dev-aptos

Axelar Local Dev: Aptos Integration

This package allows you to create a local development environment for cross-chain communication using the Aptos protocol. At present, we support general message passing with EVM chain but integration with NEAR is not currently supported.

Installation

To install this package, use the following command:

npm install @axelar-network/axelar-local-dev-aptos

Prerequisite

Before getting started, you'll need to install Aptos on your local machine.

  1. Install Aptos CLI Tool

Download from here: https://aptos.dev/cli-tools/aptos-cli-tool/

Note: Our examples are tested on Aptos version 1.0.4.

  1. Run the Aptos Local Network

Use the following command:

aptos node run-local-testnet --with-faucet --force-restart

Configuration

To set up the Aptos chain stack with the EVM chain stack, you need to modify the createAndExport function in your script. Create an AptosRelayer instance and incorporate it with your existing EVM relayer. Here's an example:

const aptosRelayer = new AptosRelayer();
const relayers = { evm: new EvmRelayer({ aptosRelayer }), aptos: aptosRelayer };

For more details on setting up the createAndExport function, check our Standalone Environment Setup Guide.

API Reference

AptosNetwork is a generalization of AptosClient (avaliable in the aptos package) that includes (among others that are mainly used for intrnal purposes):

  • getResourceAccountAddress(MaybeHexString sourceAddress, MaybeHexString seed): Predicts the aptos resource address for an account with a certain seed.
  • deploy(string modulePath , string[] compiledModules, MaybeHexString seed): Deploy compiledModules found in modulePath. Seed is optional, if it is included then the modules are deployed as a resource.
  • submitTransactionAndWait(MaybeHexString from, EntryFunctionPayload txData): A wrapper for aptos' submit transaction workflow, for ease of use.

Additionaly we export two utility functions

  • createAptosNetwork(config?: {nodeUrl: string, faucetUrl: string}): This funds the owner account and uses it to deploy the gateway module. nodeUrl defaults to http://localhost:8080 and faucetUrl defaults to http://localhost:8081
  • loadAptosNetwork(string nodeUrl): This loads the an preconfigured AptosNetwork. It is useful so that relaying works properly to said aptos network works properly.

createAndExport (see above) will try to also call createAptosNetwork so that realying works to aptos as well.