95 lines
2.3 KiB
Markdown
95 lines
2.3 KiB
Markdown
# @cosmwasm/cli
|
|
|
|
[](https://www.npmjs.com/package/@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
|
|
|
|
1. Install `@cosmwasm/cli` and run `cosmwasm-cli` as shown above
|
|
2. Start a local wasmd blockchain
|
|
3. Start with `./bin/cosmwasm-cli --init examples/local_faucet.ts`
|
|
4. Play around as in the following example code
|
|
|
|
```ts
|
|
// 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
|
|
|
|
```ts
|
|
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](https://github.com/confio/cosmwasm-js/blob/master/NOTICE) and
|
|
[LICENSE](https://github.com/confio/cosmwasm-js/blob/master/LICENSE)).
|