什么是 @typechain/ethers-v5
@typechain/ethers-v5 是一个基于 ethers.js 的 TypeScript 类型生成器,可用于增强 Solidity 智能合约与 JavaScript 应用程序之间的类型安全性,使其支持 ethers.js v5 版本。
如何使用 @typechain/ethers-v5
安装:
npm install --save-dev @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
使用步骤
- 安装依赖
npm install --save-dev ethers typechain hardhat @typechain/ethers-v5
- 创建 Solidity 智能合约
在项目的 contracts 文件夹中创建 MyContract.sol 文件:
-- -------------------- ---- ------- -- ------------------------ -- ------------------------ --- ------ -------- ------- -------- ---------- - ------ ------ ----- ------------------ ------ ------ - ---- - ------ - -
- 编译 Solidity 智能合约
在项目的根目录中创建 hardhat.config.ts
文件:
-- -------------------- ---- ------- -- ----------------- ------ - ----------------- - ---- ----------------------- ----- ------- ----------------- - - --------- - -------- -------- -- -- ------ ------- -------
在项目根目录中运行下面的命令来编译智能合约:
npx hardhat compile
- 自动生成 TypeScript 类型定义
运行下面的命令来生成 TypeScript 类型定义:
npx typechain --target ethers-v5 --out-dir typechain --all contracts/*.sol
- 编写使用 TypeScript 类型定义的代码
-- -------------------- ---- ------- -- ----------------- ------ - ------ - ---- --------- ------ - --------------- - ---- ----------------------- ------ - ---------- - ---- -------------------------- ----- ------------- - --- -- --- ---- ----- ------------------ - ----------- -- -- -------- -- ------ ----- ----------------- - --- ------------------------------------------ --------------------------- ------- - -- ---- -- ------------ ------ - ----------------- - ---- --------------- ----- -------- ------ - ----- -------- - ---------------------------------- ---------- ----------------- ----------------- -- ------- - ---------------------------- -- ----------------------- ------ - ------ - ---- --------- ------ - ----------------- - ---- -------------------- ---------------------- -- -- - --- --------- ---- ---------------- -- -- - ----- ------ - --- ------------------------------- ---------- -------- - ----- -------------------------------------------- ------- --- ---------- ---- - ------ ----- -- -- - ------------ ---------------------------- ------- --- ---
结论
@typechain/ethers-v5 是一个使得 Solidity 智能合约与 JavaScript 应用程序之间类型更加安全的 TypeScript 类型生成器,可以充分利用 TypeScript 的类型系统来减少团队之间的沟通,增强代码的可维护性和可读性。通过本文的介绍和示例代码,读者可以更加深入地了解和使用 @typechain/ethers-v5。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f30d7dc3b0ab45f74a8bccd