@stargazefi/api
A client library for the Stargaze blockchain.
🚧 Warning
This API is still under heavy construction, be ready for unexpected breaking changes.
Get Started
The library exposes one main TypeScript class: the StargazeApi
class. Here is an example of fetching the user's balance.
import { StargazeApi } from '@stargazefi/api';
import { QueryClientImpl } from '@stargazefi/api/lib/generated/cosmos/bank/v1beta1/query';
const api = StargazeApi.connect({
connection: {
type: 'tendermint',
url: 'http://devnet.stargaze.fi:26657',
},
});
const bankClient = new QueryClientImpl(api.connection.queryConnection);
const myAddress = 'stars1j9...';
const balances = await bankClient.AllBalances({
address: myAddress,
});
console.log(balances);
Click to see some ideas on a future more user-friendly API.
import { StargazeApi } from '@stargazefi/api';
const api = new StargazeApi({ ... });
const myAddress = 'stars1j9...';
const balances = await api.query.cosmos.bank.v1beta1.AllBalances({
address: myAddress,
});
console.log(balances);
Feel free to comment on issue #2 if you have ideas of user-facing APIs you'd like to see.
Documentation
The list of all available methods to call can be found in:
Alternatively, you can just explore the ./src/generated/
folder, all methods are commented in the code.
Differences with CosmJS
The main difference with CosmJS is that StargazeJS is 100%-generated TS client, while CosmJS recommends manually decorating your own TS classes. For this code generation, StargazeJS uses ts-proto
. However, the generated types create imcompatibilities with CosmJS (which uses protobufjs).
Long-term Roadmap
- Create a "JS Client generator": you input some proto files, the generator outputs a fully-functional TS client.
- Make it compatible with CosmJS.