npm 包 @polkadot/types 使用教程

阅读时长 7 分钟读完

介绍

@polkadot/types 是一个基于 TypeScript 的 Polkadot Substrate 库,它使得在 JavaScript 或 TypeScript 中与 Substrate 区块链进行交互变得更加简单。该库包含了 Substrate 网络上的所有数据类型以及存储在其上的所有数据结构。

这篇文章将详细介绍 @polkadot/types 的使用方法,并通过代码示例帮助读者学习如何在前端开发中使用它。

安装

在使用 @polkadot/types 之前,你需要先安装它。你可以通过 npm 命令来安装:

使用

在使用 @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