akashjs
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.
compatibility
Compatible with modern browsers, nodejs 14+ and Webpack 5
getting started
install from npm
or yarn
npm i @akashnetwork/akashjs
yarn add @akashnetwork/akashjs
or use the umd bundle the object returned is Window.akjs
<script
type="text/javascript"
src="https://unpkg.com/@akashnetwork/akashjs@0.0.6/umd/akashjs.js"
></script>
stargate
While akashjs
manages much under the hood, more control is available through all of the exported types, clients and protocols.
Import the registry for signing and broadcasting signed transactions, this is needed if you plan to use Stargate
import { stargate as akashStargate } from "@akashnetwork/akashjs";
import { Registry } from "@cosmjs/proto-signing";
const myRegistry = new Registry([
...defaultRegistryTypes,
...akashStargate.registry,
]);
const client = await SigningStargateClient.connectWithSigner(
`http://rpcUrl/`,
offlineSigner,
{
registry: myRegistry,
}
);
You can use the signer to create and sign requests. Below is an example of sending a deployment take-down message.
const mnemonic = "your wallet mnemonic";
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "akash" });
const [account] = await wallet.getAccounts();
const message = MsgCloseDeployment.fromPartial({
id: {
dseq: "555555",
owner: account.address,
}
});
const msgAny = {
typeUrl: getTypeUrl(MsgCloseDeployment),
value: message
};
const rpcEndpoint = "http://my.rpc.node";
const myRegistry = new Registry(
getAkashTypeRegistry()
);
const client = await SigningStargateClient.connectWithSigner(
rpcEndpoint,
wallet,
{
registry: myRegistry
}
);
const fee = {
amount: [
{
denom: "uakt",
amount: "5000",
},
],
gas: "800000",
};
const signedMessage = await client.signAndBroadcast(
account.address,
[msgAny],
fee,
"take down deployment"
);
examples
Additional examples can be found in the examples directory
contributing
This repository uses node 16, and yarn 1.2+, webpack 5 for umd bundling and is written in typescript. PRs are welcome.