npm 包 @typechain/ethers-v5 使用教程

阅读时长 7 分钟读完

什么是 @typechain/ethers-v5

@typechain/ethers-v5 是一个基于 ethers.js 的 TypeScript 类型生成器,可用于增强 Solidity 智能合约与 JavaScript 应用程序之间的类型安全性,使其支持 ethers.js v5 版本。

如何使用 @typechain/ethers-v5

安装:

第一步:编写 Solidity 智能合约

在 Solidity 智能合约中定义好要使用的智能合约:

-- -------------------- ---- -------
-- --------------
------ -------- -------

-------- ---------- -
  ------ ------ -----
  
  ------------------ ------ ------ -
    ---- - ------
  -
-

第二步:编写 TypeScript 类型定义

在 TypeScript 文件中编写与 Solidity 智能合约对应的 TypeScript 类型定义:

-- -------------------- ---- -------
-- -------------
------ - ------ - ---- ---------
------ - --------------- - ---- -----------------------

----- ------------- - - -- -- --- -- --
----- ------------------ - ----------- -- -- -------- --

------ ---- ---------- - -
    ----- -- -- ----------------
-

------ ----- ----------------- - --- ------------------------------------------ -------------------------------------------------------- -- ----

第三步:使用类型定义与智能合约交互:

在 TypeScript 文件中使用 MyContractFactory 创建智能合约实例,通过调用类型定义中定义的方法访问智能合约:

-- -------------------- ---- -------
-- --------
------ - ----------------- - ---- ---------------

----- -------- ------ -
  ----- -------- - ------------------------------------- --------

  ----------------- ----------------- -- -------
-

----------------------------

@typechain/ethers-v5 示例代码

代码结构

├── contracts │ └── MyContract.sol ├── src │ ├── MyContract.ts │ └── index.ts ├── test │ └── MyContract.test.ts ├── typechain │ └── index.d.ts ├── hardhat.config.ts ├── package.json └── tsconfig.json

使用步骤

  1. 安装依赖
  1. 创建 Solidity 智能合约

在项目的 contracts 文件夹中创建 MyContract.sol 文件:

-- -------------------- ---- -------
-- ------------------------
-- ------------------------ ---
------ -------- -------

-------- ---------- -
  ------ ------ -----

  ------------------ ------ ------ -
    ---- - ------
  -
-
  1. 编译 Solidity 智能合约

在项目的根目录中创建 hardhat.config.ts 文件:

-- -------------------- ---- -------
-- -----------------
------ - ----------------- - ---- -----------------------

----- ------- ----------------- - -
  --------- -
    -------- --------
  --
--

------ ------- -------

在项目根目录中运行下面的命令来编译智能合约:

  1. 自动生成 TypeScript 类型定义

运行下面的命令来生成 TypeScript 类型定义:

  1. 编写使用 TypeScript 类型定义的代码
-- -------------------- ---- -------
-- -----------------
------ - ------ - ---- ---------
------ - --------------- - ---- -----------------------
------ - ---------- - ---- --------------------------

----- ------------- - --- -- --- ----
----- ------------------ - ----------- -- -- -------- --

------ ----- ----------------- - --- ------------------------------------------ ---------------------------
  -------
- -- ----

-- ------------
------ - ----------------- - ---- ---------------

----- -------- ------ -
  ----- -------- - ---------------------------------- ----------

  ----------------- ----------------- -- -------
-

----------------------------

-- -----------------------
------ - ------ - ---- ---------
------ - ----------------- - ---- --------------------

---------------------- -- -- -
  --- --------- ----

  ---------------- -- -- -
    ----- ------ - --- ------------------------------- ----------
    -------- - ----- -------------------------------------------- -------
  ---

  ---------- ---- - ------ ----- -- -- -
    ------------ ---------------------------- -------
  ---
---

结论

@typechain/ethers-v5 是一个使得 Solidity 智能合约与 JavaScript 应用程序之间类型更加安全的 TypeScript 类型生成器,可以充分利用 TypeScript 的类型系统来减少团队之间的沟通,增强代码的可维护性和可读性。通过本文的介绍和示例代码,读者可以更加深入地了解和使用 @typechain/ethers-v5。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f30d7dc3b0ab45f74a8bccd

纠错
反馈