Skip to content
This repository has been archived by the owner on Dec 25, 2023. It is now read-only.

CosmWasm/CosmWasmJS

Repository files navigation

Unmaintained ⚠️

CosmWasmJS is outdated and unmaintained. See https://medium.com/cosmwasm/dev-note-2-why-we-are-sunsetting-cosmwasmjs-61d8706418e6. There is no 1:1 alternative but https://cosmology.tech/ might be a helpful resource for bootstrapping dapps with wallet connections. The code here serves as a historical reference. We hope it is useful one way or another.


CosmJS

npm

About

Cosmwasm.js was created to help new developers get started with their first dApps. It is just a wrapper package to easily import needed features from CosmJS.

Get started

Installation

NPM

npm install cosmwasm

Yarn

yarn add cosmwasm

Usage

Get a read-only cosmwasm client

import { CosmWasmClient } from "cosmwasm";

// This is your rpc endpoint
const rpcEndpoint = "https://rpc.cliffnet.cosmwasm.com:443/";

async function main() {
  const client = await CosmWasmClient.connect(rpcEndpoint);
  console.log(client);
}

main();

Create a wallet and a signing stargate client

import { SigningCosmWasmClient, Secp256k1HdWallet } from "cosmwasm";

// This is your rpc endpoint
const rpcEndpoint = "https://rpc.cliffnet.cosmwasm.com:443/";

// Using a random generated mnemonic
const mnemonic =
  "rifle same bitter control garage duck grab spare mountain doctor rubber cook";

async function main() {
  // Create a wallet
  const wallet = await Secp256k1HdWallet.fromMnemonic(mnemonic);

  // Using
  const client = await SigningCosmWasmClient.connectWithSigner(
    rpcEndpoint,
    wallet,
  );
  console.log(client);
}

main();

Connect with keplr and get a signing starget client

import { setupWebKeplr } from "cosmwasm";

const config = {
  chainId: "cliffnet-1",
  rpcEndpoint: "https://rpc.cliffnet.cosmwasm.com:443/",
  prefix: "wasm",
};

async function main() {
  const client = await setupWebKeplr(config);
  console.log(client);
}

main();

Connect with Cosmostation and get a signing starget client

import { setupCosmostation } from "cosmwasm";

const config = {
  chainId: "cliffnet-1",
  rpcEndpoint: "https://rpc.cliffnet.cosmwasm.com:443/",
  prefix: "wasm",
};

async function main() {
  const client = await setupCosmostation(config);
  console.log(client);
}

main();

Interacting with contracts

import { CosmWasmClient } from "cosmwasm";

// This is your rpc endpoint
const rpcEndpoint = "https://rpc.cliffnet.cosmwasm.com:443/";

// This is your contract address
const contractAddr =
  "wasm19qws2lfd8pskyn0cfgpl5yjjyq3msy5402qr8nkzff9kdnkaepyqycedfh";

async function main() {
  const client = await CosmWasmClient.connect(rpcEndpoint);
  const config = await client.queryContractSmart(contractAddr, { config: {} });

  console.log(config);
}

main();