@axelarjs/cosmos
TypeScript icon, indicating that this package has built-in type declarations

0.2.13 • Public • Published

@axelarjs/cosmos

type-safe clients for axelar's cosmos node

NPM Version Changelog Typedoc License

Install

pnpm add @axelarjs/cosmos

Usage

Simulate a link transaction

import { AXELAR_RPC_URLS } from "@axelarjs/core";
import { STANDARD_FEE } from "@axelarjs/cosmos/constants";
import { createAxelarSigningClient } from "@axelarjs/cosmos/constants/stargateClient";

import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
import { toAccAddress } from "@cosmjs/stargate/build/queryclient/utils";

const offlineSigner = await DirectSecp256k1HdWallet.fromMnemonic(
  process.env["COSMOS_WALLET_MNEMONIC"] as string,
  { prefix: "axelar" }
);

const client = await createAxelarSigningClient(
  AXELAR_RPC_URLS.testnet,
  offlineSigner
);

const [accData] = await offlineSigner.getAccounts();

if (!accData) {
  throw new Error("Invalid response from offlineSigner.getAccounts()");
}

const estimateGas = await client.tx.evm.link.simulate(accData.address, {
  sender: toAccAddress(String(accData.address)),
  recipientAddr: "0xB8Cd93C83A974649D76B1c19f311f639e62272BC",
  recipientChain: "avalanche",
  asset: "wavax-wei",
  chain: "fantom",
});

console.log({ estimateGas });

Broadcast a link transaction

import { AXELAR_RPC_URLS } from "@axelarjs/core";
import { STANDARD_FEE } from "@axelarjs/cosmos/constants";
import { createAxelarSigningClient } from "@axelarjs/cosmos/constants/stargateClient";

import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
import { toAccAddress } from "@cosmjs/stargate/build/queryclient/utils";

const offlineSigner = await DirectSecp256k1HdWallet.fromMnemonic(
  process.env["COSMOS_WALLET_MNEMONIC"] as string,
  { prefix: "axelar" }
);

const client = await createAxelarSigningClient(
  AXELAR_RPC_URLS.testnet,
  offlineSigner
);

const [accData] = await offlineSigner.getAccounts();

if (!accData) {
  throw new Error("Invalid response from offlineSigner.getAccounts()");
}

const txResponse = await client.tx.evm.link.signAndBroadcast(
  accData.address,
  {
    sender: toAccAddress(String(accData?.address)),
    recipientAddr: "0xB8Cd93C83A974649D76B1c19f311f639e62272BC",
    recipientChain: "avalanche",
    asset: "wavax-wei",
    chain: "fantom",
  },
  STANDARD_FEE
);

console.log({ txResponse });

Readme

Keywords

none

Package Sidebar

Install

npm i @axelarjs/cosmos

Weekly Downloads

254

Version

0.2.13

License

LicenseRef-LICENSE

Unpacked Size

292 kB

Total Files

87

Last publish

Collaborators

  • canhtrinh