mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-11 14:09:15 +00:00
@cosmwasm/cli
Installation and first run
The cosmwasm-cli
executable is available via npm. We recommend local
installations to your demo project. If you don't have one yet, just
mkdir cosmwasm-cli-installation && cd cosmwasm-cli-installation && yarn init --yes
.
locally with yarn
$ yarn add @cosmwasm/cli --dev
$ ./node_modules/.bin/cosmwasm-cli
locally with npm
$ npm install @cosmwasm/cli --save-dev
$ ./node_modules/.bin/cosmwasm-cli
globally with yarn
$ yarn global add @cosmwasm/cli
$ cosmwasm-cli
globally with npm
$ npm install -g @cosmwasm/cli
$ cosmwasm-cli
Getting started
- Install
@cosmwasm/cli
and runcosmwasm-cli
as shown above - Start a local wasmd blockchain
- Start with
./bin/cosmwasm-cli --init examples/local_faucet.ts
- Play around as in the following example code
// Get account information
const account = (await client.authAccounts(faucetAddress)).result.value;
// Craft a send transaction
const emptyAddress = Bech32.encode("cosmos", Random.getBytes(20));
const memo = "My first contract on chain";
const sendTokensMsg: types.MsgSend = {
type: "cosmos-sdk/MsgSend",
value: {
from_address: faucetAddress,
to_address: emptyAddress,
amount: [
{
denom: "ucosm",
amount: "1234567",
},
],
},
};
const signBytes = makeSignBytes([sendTokensMsg], defaultFee, defaultNetworkId, memo, account);
const signature = encodeSecp256k1Signature(pen.pubkey, await pen.createSignature(signBytes));
const signedTx: types.StdTx = {
msg: [sendTokensMsg],
fee: defaultFee,
memo: memo,
signatures: [signature],
}
const postResult = await client.postTx(marshalTx(signedTx));
Other example codes
Create random mnemonic and Cosmos address
const mnemonic = Bip39.encode(Random.getBytes(16)).toString();
const pen = await Secp256k1Pen.fromMnemonic(mnemonic);
const pubkey = encodeSecp256k1Pubkey(pen.pubkey);
const address = encodeAddress(pubkey, "cosmos");
License
This package is part of the cosmwasm-js repository, licensed under the Apache License 2.0 (see NOTICE and LICENSE).