Go to file
Shane Vitarana 04a74aac83 Add Secpk256k1 offline key signer
Renamed Secp256k1Wallet -> Secp256k1HdWallet

Renamed Secp256k1Key -> Secp256k1Wallet

Renamed fromPrivateKey function

Fixed linter issues

Rename Secp256k1Wallet.fromMnemonic everywhere

Revert "Rename Secp256k1Wallet.fromMnemonic everywhere"

This reverts commit 18c52968bc1a234755c61d1d5c67850222239bd7.

Revert "Fixed linter issues"

This reverts commit 8e6fce93d809f160e8dafa9478f56f9effcf561a.

Revert "Renamed fromPrivateKey function"

This reverts commit d628f186bb126d4fc2b205dbc0b95b3198af02df.

Revert "Renamed Secp256k1Key -> Secp256k1Wallet"

This reverts commit 35a082701de9bd2c8cf89b25a168f12212d4ba8a.

Revert "Renamed Secp256k1Wallet -> Secp256k1HdWallet"

This reverts commit bd69f293e1ae7d96ad0afd295af360de70863e13.

Ran linter

Renamed fromPrivateKey

Updated Typescript definitions
2020-10-27 14:31:53 +01:00
.circleci Update and re-enable erc20 contract 2020-10-15 11:35:29 +02:00
docs Rename cosmwasm-faucet -> cosmos-faucet 2020-08-18 11:00:04 +02:00
packages Add Secpk256k1 offline key signer 2020-10-27 14:31:53 +01:00
scripts scripts: Remove unnecessary import in echo.py 2020-10-22 12:41:29 +02:00
.editorconfig Set up format and lint configs 2020-01-22 22:24:22 +01:00
.eslintignore eslint: Update .eslintignore 2020-07-15 13:22:32 +02:00
.eslintrc.js root: Update eslint no-shadow rule 2020-10-22 10:54:54 +02:00
.gitattributes Setup Git LFS for *.png and *.wasm 2020-06-28 20:12:39 +02:00
.gitignore Create copy_docs.sh 2020-07-02 10:38:26 +02:00
.mergify.yml Don't automerge WIP labeled PRs 2020-07-30 15:06:48 +02:00
.nycrc.yml Standardize .nycrc.yml 2020-10-13 12:31:16 +02:00
.prettierrc.json Set up format and lint configs 2020-01-22 22:24:22 +01:00
CHANGELOG.md root: Update CHANGELOG for logs refactor 2020-10-27 14:20:11 +01:00
codecov.yml Disable bot comments for PRs 2020-06-25 13:32:26 +02:00
HACKING.md Add ERC20_ENABLED 2020-10-08 11:48:58 +02:00
jasmine-spec-reporter.config.json Upgrade dev packages (#256) 2020-06-28 10:20:15 +02:00
lerna.json v0.23.1 2020-10-27 10:29:39 +01:00
LICENSE Use an unmodified copy of Apache-2.0 2020-01-23 18:32:43 +01:00
NOTICE Fork @iov/socket (#250) 2020-06-25 16:01:41 +02:00
package.json root: Upgrade @typescript-eslint deps 2020-10-22 10:54:54 +02:00
README.md Add logo to README [skip ci] 2020-08-11 17:07:30 +02:00
tsconfig.json launchpad-ledger: Add basic type declaration for ledger-cosmos-js 2020-09-15 10:47:01 +02:00
yarn.lock root: Upgrade @typescript-eslint deps 2020-10-22 10:54:54 +02:00

CosmJS

CosmJS is the Swiss Army knife to power JavaScript based client solutions ranging from Web apps/explorers over browser extensions to server-side clients like faucets/scrapers in the Cosmos ecosystem.

"Cosm" is short for Cosmos and "JS" is short for runs everywhere we actually develop in TypeScript.

Packages

CosmJS is a library that consists of many smaller npm packages within the @cosmjs namespace, a so called monorepo. Here are some of them to get an idea:

Package Description Latest
@cosmjs/launchpad A client library for the Cosmos SDK 0.37 (cosmoshub-3), 0.38 and 0.39 (Launchpad) npm version
@cosmjs/faucet A faucet application for node.js npm version
@cosmjs/cosmwasm Client for chains with the CosmWasm module enabled npm version
@cosmjs/crypto Cryptography for blockchain projects, e.g. hashing (SHA-2, Keccak256, Ripemd160), signing (secp256k1, ed25519), HD key derivation (BIPO39, SLIP-0010), KDFs and symmetric encryption for key storage (PBKDF2, Argon2, XChaCha20Poly1305) npm version
@cosmjs/encoding Encoding helpers for blockchain projects npm version
@cosmjs/math Safe integers; decimals for handling financial amounts npm version

Modularity

We're pretty proud of the modularity and a clean dependency tree in this monorepo. This ensures software quality on our side and lets users pick exactly what they need. Here you see how everything fits together (every item is a npm package; right depends on left):

CosmJS dependency tree

If this was not enough to scare you away, check out the version including app runtime dependencies: cosmjs-tree-full.png.

Supported JS environments

Currently the codebase supports the following runtime environments:

  1. Node.js 10+
  2. Modern browsers (Chromium/Firefox/Safari, no Internet Explorer or Edge Spartan)
  3. Browser extensions (Chromium/Firefox)

Our current JavaScript target standard is ES2017, giving us native async/await support. We use WebAssembly to implement certain cryptographic functions.

We're happy to adjust this list according to users' needs as long as you don't ask for Internet Explorer support. If your environment does not support Wasm, we can work on a solution with swapable implementations.

Roadmap

In addition to the development board and our release milestones, we maintain a higher level roadmap in this Trello board.

Development

See HACKING.md.