Socket
Socket
Sign inDemoInstall

@stargazefi/api

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@stargazefi/api

A client library for the Stargaze blockchain


Version published
Weekly downloads
8
increased by700%
Maintainers
2
Weekly downloads
 
Created
Source

@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';

// Create a new instance of the StargazeApi class.
const api = StargazeApi.connect({
	// StargazeApi supports multiple client connections to interact with a node:
	// - via the Tendermint RPC
	// - via gRPC
	// - via gRPC-web
	// - via REST and gRPC-gateway
	connection: {
		// Here, we are using the Tendermint RPC client connection.
		type: 'tendermint',
		url: 'http://devnet.stargaze.fi:26657',
	},
});

// Create a client for the x/bank module.
const bankClient = new QueryClientImpl(api.connection.queryConnection);
// Fetch the balance of an address.
const myAddress = 'stars1j9...';
const balances = await bankClient.AllBalances({
	address: myAddress,
});

console.log(balances); // Prints `{"balances":[{"denom":"utree","amount":"10000000000"}],"pagination":{"total":1}}`
Click to see some ideas on a future more user-friendly API.
import { StargazeApi } from '@stargazefi/api';

// Same as above.
const api = new StargazeApi({ ... });

// Fetch the balance of an address with new API.
const myAddress = 'stars1j9...';
const balances = await api.query.cosmos.bank.v1beta1.AllBalances({
address: myAddress,
});

console.log(balances); // Prints `{"balances":[{"denom":"utree","amount":"10000000000"}],"pagination":{"total":1}}`

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:

  • Cosmos SDK Docs for all other modules (x/bank, x/staking...)

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.

FAQs

Package last updated on 12 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc