Skip to content

trstlabs/intentojs

Repository files navigation

intentojs

install

npm install intentojs

Connecting with Wallets and Signing Messages

⚡️ For web interfaces, we recommend using cosmos-kit. To sign and broadcast messages, you can create signers with a variety of options:

Initializing the Stargate Client

We recommend manually making the SigningStargateClient instance yourself by using getIntentoSigningClientOptions:

import {
  getIntentoSigningClientOptions,
  IntentoAccountParser,
} from "@intentojs";

const { registry, aminoTypes } = getIntentoSigningClientOptions();

const client = await SigningStargateClient.connectWithSigner(
  rpc,
  offlineSigner,
  {
    registry,
    aminoTypes,
    accountParser: intentoAccountParser,
  }
);

Usage

We strongly recommend that you check the generated files in src/codegen/intento and use it as source of truth for which functions you could use.

The rest of our documentation will cover only the tip of the iceberg — examples you can take ideas from.

RPC Client

import { intento } from "intentojs";

const client = await intento.ClientFactory.createRPCQueryClient({
  rpcEndpoint: RPC_ENDPOINT,
});

const balance = await client.cosmos.bank.v1beta1.allBalances({
  address: "intento1addresshere",
});

Composing & Broadcasting Intento Messages

import { intento } from "intentojs";

const msgClaimFreeAmount =
  intento.claim.MessageComposer.withTypeUrl.claimFreeAmount({
    user: "into1addresshere",
  });

const fee = {
  amount: [
    {
      amount: "0",
      denom: "uinto",
    },
  ],
  gas: 250_000,
};

const tx = await intentoAccount.client.signAndBroadcast(
  "intento1addresshere",
  [msgClaimFreeAmount],
  fee,
  ""
);

assertIsDeliverTxSuccess(tx);

If you're unfamiliar with Stargate, you can read their guide here.

Composing IBC Messages

import { ibc } from "intentojs";

const { transfer } =
  ibc.applications.transfer.v1.MessageComposer.withTypeUrl.transfer({
    // Redacted (check internal types for the message parameters)
  });

Developing & Publishing

When first cloning the repo:

git submodule update --init
telescope install
telescope transpile

Codegen

Update the generated ts files:

yarn codegen

Build the module and types:

yarn build

Publishing

If you haven't logged to npm cli, run:

npm login

Afterwards, update package.json version.

# Example: <version> = 0.9.0-beta.3
git push origin main
git tag <version>
git push origin <version>
npm publish

Credits

🛠 Built by Cosmology — if you like our tools, please consider delegating to their validator ⚛️

Code built with the help of these related projects:

About

A TS package to interact with Intento

Resources

License

Stars

Watchers

Forks

Packages

No packages published