trustlessjs
v0.7.4-alpha.5
Published
package to interact with TrustlessHub
Downloads
77
Readme
trustlessjs
install
npm install trustlessjs
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:
- cosmos-kit (recommended)
- keplr
- cosmjs
Initializing the Stargate Client
We recommend manually making the SigningStargateClient
instance yourself by using getTrstSigningClientOptions
:
import { getTrstSigningClientOptions, trstAccountParser } from "@trustlessjs";
const { registry, aminoTypes } = getTrstSigningClientOptions();
const client = await SigningStargateClient.connectWithSigner(
rpc,
offlineSigner,
{
registry,
aminoTypes,
accountParser: trstAccountParser,
}
);
Usage
We strongly recommend that you check the generated files in src/codegen/trst
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 { trst } from "trustlessjs";
const client = await trst.ClientFactory.createRPCQueryClient({
rpcEndpoint: RPC_ENDPOINT,
});
const balance = await client.cosmos.bank.v1beta1.allBalances({
address: "trst1addresshere",
});
Composing & Broadcasting Trst Messages
import { trst } from "trustlessjs";
const msgClaimFreeAmount =
trst.claim.MessageComposer.withTypeUrl.claimFreeAmount({
user: "trst1addresshere",
});
const fee = {
amount: [
{
amount: "0",
denom: "utrst",
},
],
gas: 250_000,
};
const tx = await trstAccount.client.signAndBroadcast(
"trst1addresshere",
[msgClaimFreeAmount],
fee,
""
);
assertIsDeliverTxSuccess(tx);
If you're unfamiliar with Stargate, you can read their guide here.
Composing IBC Messages
import { ibc } from "trustlessjs";
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> = v0.4.1
git tag <version>
git push origin <version>
git push origin main
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:
- @cosmwasm/ts-codegen for generated CosmWasm contract Typescript classes
- @cosmology/telescope a "babel for the Cosmos", Telescope is a TypeScript Transpiler for Cosmos Protobufs.
- cosmos-kit A wallet connector for the Cosmos ⚛️