介绍
@polkadot/types 是一个基于 TypeScript 的 Polkadot Substrate 库,它使得在 JavaScript 或 TypeScript 中与 Substrate 区块链进行交互变得更加简单。该库包含了 Substrate 网络上的所有数据类型以及存储在其上的所有数据结构。
这篇文章将详细介绍 @polkadot/types 的使用方法,并通过代码示例帮助读者学习如何在前端开发中使用它。
安装
在使用 @polkadot/types 之前,你需要先安装它。你可以通过 npm 命令来安装:
npm install --save @polkadot/types
使用
在使用 @polkadot/types 之前,你需要理解一些 Substrate 相关的概念。这些概念包括区块、交易、事件、存储和功能模块等。
创建一个连接
在和 Substrate 进行交互之前,你需要创建一个与 Substrate 节点的连接。你可以使用 ApiPromise
对象创建一个连接,如下所示:
-- -------------------- ---- ------- ------ - ------------ ------- - ---- ---------------- ------ - -------------- - ---- --------------------------- ----- -------- - ---------------------- ----- -------- ------------------ - ----- -------- - ----- ------------------------------ ----- --- - ----- -------------------- --------- ----------- ----------- ---------- - ------------ -------------- ---- -- ---- ------ ----- ---- -- -- -- ---- - ---- -- ---- ------ ---- ---- -- -- -- ----------- - ---- -- ---- ------ ----- ------- ---- -- -- -- --- ------ ---- -
这里我们使用 web3FromSource
方法获取一个与 Polkadot JS 扩展程序交互的 provider 对象,然后使用 ApisPromise
创建一个连接。在这里,ENDPOINT
是 Substrate 节点的 WebSocket 地址,typesChain
是我们连接的网络类型,typesSpec
是我们需要使用的自定义类型,rpc
是我们需要使用的自定义 RPC 方法,typesAlias
是我们需要为自定义类型创建的别名。
查询最新区块
连接到 Substrate 节点后,我们可以通过 api.rpc.chain.getBlock
方法获取最新区块的信息,如下所示:
-- -------------------- ---- ------- ----- -------- ---------------- - ----- --- - ----- ------------------- ----- ----------- - ----- -------------------------- ----- ----------- - ------------------------------ ----- --------- - ------------------------- ------ - ------------ ---------- -- -
查看账户余额
要查看指定账户的余额,可以使用 api.query.system.account
方法,如下所示:
-- -------------------- ---- ------- ------ - ------- - ---- ---------------- ----- -------- ------------------- ------- - ----- --- - ----- ------------------- ----- ------- - --- --------- ----- --------- --- ----- ----- - ------------------------------ ----- - ---- - - ----- ---------------------------------- ------ -------------------- -
这里我们首先创建了一个 keyring,然后使用其 addFromUri
方法为账户添加了一个助记词“Alice”。接着我们使用 api.query.system.account
方法查询指定账户的余额,并将其转为人类可读格式返回。
发送交易
使用 @polkadot/types 发送交易的流程如下:
-- -------------------- ---- ------- ------ - ------- - ---- ---------------- ------ - ------------- - ---- -------------------- ------ - ------------- - ---- ------------------------ ----- -------- ---------------- ------- --------- ------- ------- ------- - ----- --- - ----- ------------------- ----- ------- - --- --------- ----- --------- --- ----- ----- - ------------------------------ ----- ----- - ----- --------------------------------------------- ----- -------- ------------- - - -------- -------------- ---------- ---------------- ------------ -- ---- ------------------------------ - -------- ---------------- ------- -- --- ------------ ---------------- ------- ---------------------------------- -------- ------ ----------------- --- ---- -- -------- -- -- ----- ------ - - ------------ ----- --------------- -------------- -- - ------ - ---------- ----- ------------------------------- -- -- ----------- -------------- -- ----- --------- - ----- ---------------- -------------------- ----------------- ------ ---------------------------------- -------------------- - ------ ------ --- -
在这里,我们首先创建了一个 keyring,然后使用其 addFromUri
方法为账户添加了一个助记词“Alice”。接着我们使用 api.query.system.accountNonce
方法获取当前账户的 nonce 值。然后,我们构造了一个 SignerPayload
对象,并使用 api.sign
方法进行签名。最后我们构建交易并使用 api.tx.sign()
方法进行签名。
结论
通过本文,我们学习了如何使用 @polkadot/types 库来和 Substrate 区块链进行交互。我们介绍了创建连接、查询最新区块、查看账户余额、以及发送交易这些基本操作,希望读者能够通过本文得到帮助,更好地使用 @polkadot/types。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/polkadot-types