介绍
@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