npm 包 @jswebfans/cosmos-lib 使用教程

介绍

@jswebfans/cosmos-lib 是一个基于 Cosmos SDK 的 JavaScript 库,提供了一系列的 API 可以让开发者在前端应用中方便的调用 Cosmos SDK 中的接口,同时也可以通过它来构建和签名 Cosmos 的交易数据。

安装

通过 npm 安装:

npm install @jswebfans/cosmos-lib

使用

初始化

在引用库之前,我们需要初始化一个 CosmJS 对象,并传入一个 Tendermint 节点的 URL:

import { SigningCosmosClient } from '@jswebfans/cosmos-lib';
const client = new SigningCosmosClient(url, mnemonic);

在上面的代码中,url 表示 Tendermint 节点 URL,mnemonic 是你的 COSMOS 钱包助记词。

查询余额

我们可以使用 getBalance 方法来查询钱包的余额:

const balance = await client.getBalance(address, denom);
console.log(`Balance: ${balance.amount} ${denom}`);

上面的代码中,address 是钱包地址,denom 表示币种种类。

发送交易

我们可以使用 sendTransferTx 方法来发送交易:

const recipientAddress = 'cosmos1a...'; // 目标地址
const amount = 1000000; // 金额(微币)
const fee = {
  amount: [{ amount: '2000', denom: 'uatom' }], // 手续费(也可以为 0)
  gas: '200000', // 燃料费
};
const result = await client.sendTransferTx(address, recipientAddress, amount, fee);

上面的代码中,address 是发送方的地址,recipientAddress 是接收方的地址,amount 是发送的金额(微币),fee 表示手续费。result 返回了交易的结果。

构建和签名交易

我们也可以使用 buildAndSignTx 方法来构建和签名交易:

import { makeStdTx } from '@jswebfans/cosmos-lib';
const msg = [
  {
    type: 'cosmos-sdk/MsgSend',
    value: {
      from_address: address,
      to_address: recipientAddress,
      amount: [{ amount: String(amount), denom: 'uatom' }],
    },
  },
];
const stdTx = makeStdTx(msg, fee, memo);
const signedTx = await client.sign(stdTx);
const result = await client.broadcast(signedTx);

在上面的代码中,我们使用 makeStdTx 方法来创建一个标准的交易对象,包括一个或多个消息、手续费、以及备注信息,之后通过 sign 方法将交易签名,最终通过 broadcast 方法来广播交易数据。

总结

@jswebfans/cosmos-lib 提供了一系列方便的 API 用来调用 Cosmos SDK 的接口,并能够帮助开发者更方便的构建和签名交易。这个库的使用可以极大的简化开发者在前端应用中使用 Cosmos SDK 的难度,降低开发门槛。在本文中,我们详细介绍了 @jswebfans/cosmos-lib 的使用方法,并提供了多个实例进行演示。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673dffb81d47349e53cb3


纠错
反馈