Connect and communicate with the Akash Network. Pure JS library can be used in browser for unsigned transactions, and with node.js for full compatibility.
This repository is the home of akashjs
, a library designed to facilitate interaction with the Akash Network. However, for full functionality, users will need to integrate several additional libraries. The Akash Network is built using the Cosmos SDK and utilizes the Stargate client for transaction signing and broadcasting. These packages are specifically tailored to enhance interaction with the Akash Network.
Package | Description |
---|---|
@akashnetwork/akashjs | Main library for interacting with the Akash Network |
@akashnetwork/akash-api | Akash API generated from Akash API for interacting with the Akash Network. Documentation is available for node and provider. |
@cosmjs/stargate | A client library for the Cosmos SDK 0.40+ (Stargate). |
@cosmjs/proto-signing | A library for signing and broadcasting transactions using the Cosmos SDK. |
Documentation for the library is available here.
Compatible with modern browsers, nodejs 14+ and Webpack 5
To install the library, run the following command:
npm install @akashnetwork/akashjs
Or use the UMD bundle (the object returned is Window.akjs
):
<script type="text/javascript" src="https://unpkg.com/@akashnetwork/akashjs@0.10.0/umd/akashjs.js" ></script>
The following example demonstrates how to fetch the state of the network.
import { getMetadata } from "@akashnetwork/akashjs/build/network/index.js";
console.log(JSON.stringify(await getMetadata("mainnet"), null, 2))
More elborate examples can be found in the examples directory.
This repository is primarily written in TypeScript and uses Node.js version 18. We use Webpack 5 for UMD bundling. These tools ensure that our development environment is consistent and our builds are stable.
Prerequisites
Installation
# Clone the repository
git clone https://github.com/akash-network/akashjs
cd akashjs
# Install dependencies
npm install
# Setup git hooks
npm run setup-git-hooks
# Watch mode for development
npm run dev:watch
# Run tests
npm run test
# Run linting
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Build the project
npm run build
TypeScript
any
type where possibleTesting
npm test
before submitting PRsCode Style
Our project enforces high standards of code quality and consistency through:
To enable git hooks for local development:
npm run setup-git-hooks
main
dev:watch
command for live reloading during developmentexamples
directory for implementation references--inspect
flagDEBUG=akashjs:*
environment variable for detailed logsPRs are welcome! By adhering to these guidelines and leveraging our automated systems, we can maintain a high-quality codebase and streamline our development processes.