TLDR;

The C++ to the cosmos ecosystem client - tools for both high and low level operations

Tools for the Client


Emphasis on the "client".

Shooting txs, retrieving blockchain data can all be done spectacularly when you acquire an LCD for said chain. However creating contracts, or any form of chain manipulation not pertaining to actually sending txs are not supported(You can shoot a contract via broadcasting a tx, but when actually creating the contract - you're on your own)

Almost naught documentation

Github search and IDE autocomplete is your ally - and your only ally.(Apart from community members chipping in) You're gonna have a hard time without a basic understanding of the typescript syntax.

Who needs documentation when you have autocomplete?

Who needs documentation when you have autocomplete?

Unfortunate Defaults

The aftermath of unfortunate defaults

The aftermath of unfortunate defaults

Some defaults were set a bit unrealistically like the "makeCosmoshubPath" function. Most cosmos blockchains use different hdpaths, yet the Launchpad only offered the default cosmos path forcing the user to import @cosmjs/crypto in order to support other blockchains.

This makes the following modularity kind of useless since you need to import the sub-modules anyway.

https://media.githubusercontent.com/media/cosmos/cosmjs/master/docs/cosmjs-tree.png

Some pros

Despite all the skepticism above, the overall experience was fine. However I suspect this to be because I have already put in my fair share of hours rummaging around the cosmos-sdk. I do not expect cosmos-sdk newbies to have a pleasant experience with the library(in its current state).