npm 包 @0x/contracts-test-utils 使用教程

前言

在前端开发中,使用现成的 npm 包可以大大减少我们的工作量,减少重复造轮子的时间。@0x/contracts-test-utils 是一个非常优秀的 npm 包,可以帮助开发者进行智能合约的测试。

@0x/contracts-test-utils 介绍

@0x/contracts-test-utils 是由 0x 公司开发的 npm 包,主要是为了在智能合约测试中提供一些基本的工具函数。

具体而言,该 npm 包提供了以下功能:

  • 生成随机的 Ethereum 地址
  • 生成随机的整数
  • 生成随机字符串
  • 在本地或者测试网络上部署智能合约
  • 在测试网络上进行带有签名的交易的发送

这些工具函数都是在测试中经常用到的,而且使用起来非常简单方便。

@0x/contracts-test-utils 安装

在使用 @0x/contracts-test-utils 之前,我们需要先安装该 npm 包。可以通过在项目根目录下执行以下命令进行安装:

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

这里我们将 @0x/contracts-test-utils 安装为开发依赖,因为我们只会在测试环境中用到它。

如何使用

接下来让我们看一下如何使用 @0x/contracts-test-utils 中的一些函数。

生成随机 Ethereum 地址

在智能合约测试中,我们经常需要构造一些伪造的 Ethereum 地址用于测试。@0x/contracts-test-utils 中提供了 generateRandomAddress 函数帮助我们生成随机地址。代码如下:

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

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

这会输出一个随机的 Ethereum 地址。

生成随机整数

有时我们在测试时需要随机生成一些整数。@0x/contracts-test-utils 提供了 generateRandomInteger 函数,来生成指定范围内的随机整数。代码如下:

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

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

这里将生成一个在 100 到 200 之间(包括 100 和 200)的整数。

生成随机字符串

@0x/contracts-test-utils 还提供了 generateRandomString 函数,可以用于生成随机字串。代码如下:

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

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

这里将生成一个长度为 10 的随机字串。

部署智能合约

我们在测试中可能需要部署一些智能合约,@0x/contracts-test-utils 包含了 deployFullContractAsync 函数,可以让部署更加简单。代码如下:

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

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

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

这里我们使用 Hardhat 部署 TestContract 合约。你需要把 provider 替换成你当前环境中的 provider。

发送带有签名的交易

@0x/contracts-test-utils 还提供了 sendRawTransactionAsync 函数,可以用于测试过程中模拟发送带有签名的交易。代码如下:

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

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

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

这里的交易信息包括发送交易的地址、接收交易的地址、以太币的数量等等。你可以使用该函数快速构建交易,方便测试。

结论

本文简单介绍了 @0x/contracts-test-utils 的使用方法,并且提供了一些简单的代码示例。通过使用该 npm 包,我们可以方便地在测试中生成随机地址、整数和字串,部署智能合约以及发送带有签名的交易。这些操作都可以大大简化我们的测试流程,让我们更加高效地完成测试工作。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/93109


猜你喜欢

  • npm 包 @amazee/persistgraphql 使用教程

    前言 随着现代 Web 应用的日益复杂,前端代码也变得越来越庞大。同时,前后端分离的趋势也促使前端代码变得越来越复杂。为了解决这个问题,GraphQL 应运而生。GraphQL 是一个强类型的查询语言...

    5 年前
  • npm 包 @akashaproject/geth-connector 使用教程

    前言 随着区块链技术的发展,其应用场景越来越广泛。在区块链应用开发过程中,经常需要与以太坊节点进行交互,而 @akashaproject/geth-connector 是一个非常有用的 npm 包,它...

    5 年前
  • npm 包 @aaa-backend-stack/test-environment 使用教程

    在现代的 web 开发中,测试环境的重要性不言而喻。@aaa-backend-stack/test-environment 是一个快速搭建前端端到端测试环境的 npm 包,它为前端开发人员提供了强大的...

    5 年前
  • npm 包 @a-a-game-studio/aa-components 使用教程

    介绍 在前端开发中,我们经常需要使用一些通用组件来提高代码复用率。npm 是前端开发过程中使用最广泛的包管理工具之一。今天,我们要介绍一个 npm 包 @a-a-game-studio/aa-comp...

    5 年前
  • npm 包 @a-a-game-studio/aa-classes 使用教程

    引言 在前端开发中,为了提高开发效率,我们经常会使用一些封装好的工具库或框架。而 npm 是一个非常流行的包管理工具,其中包含了数量庞大的开源库,可以方便地进行调用和使用。

    5 年前
  • npm 包 ekit 使用教程

    简介 Ekit 是一个轻量级的前端库,提供了一些常用的实用工具和组件。它是基于 Vue.js 构建的,并且提供了 TypeScript 支持。Ekit 的 API 友好易用,适合于快速开发。

    5 年前
  • npm 包 dory 使用教程

    前言 在前端开发中,我们经常会用到各种各样的前端工具来协助我们的开发工作,并且 npm 包已经成为前端开发中必不可少的工具之一,因为它方便我们快速获取各种依赖和功能模块。

    5 年前
  • npm 包 discord-ribbon 使用教程

    Discord Ribbon 是一款基于 Discord 风格设计的图形化脚手架工具,它可以帮助前端开发者快速构建优秀的 Web 应用程序。 本文将为你介绍如何使用 npm 包 discord-rib...

    5 年前
  • npm 包 @lets/count 使用教程

    简介 @lets/count 是一个小巧的 JavaScript 库,用于统计某个元素在浏览器中出现的次数。它可以很方便地集成到您的前端项目中,在需要统计元素出现次数的场景中提供帮助。

    5 年前
  • npm 包 japa 使用教程

    介绍 japa 是一个测试框架,它可以帮助你编写测试用例,并且可以进行断言和测试覆盖率的计算。japa 直接支持在浏览器端和 Node.js 环境下运行,它的使用非常简单,而且支持插件机制,可以轻松扩...

    5 年前
  • npm 包 @adonisjs/mrm-preset 使用教程

    什么是 @adonisjs/mrm-preset @adonisjs/mrm-preset 是一个 npm 包,它提供了一组使用 Mrm 工具集的预置任务,帮助你快速搭建前端应用程序。

    5 年前
  • npm 包 @adonisjs/generic-exceptions 使用教程

    标题:深入了解 npm 包 @adonisjs/generic-exceptions 的使用教程 简介 @adonisjs/generic-exceptions 是基于 Node.js 平台开发的一个...

    5 年前
  • npm 包 @storybook/codemod 使用教程

    前言 前端开发中需要重构和更新代码是比较常见的事情,但是手动修改代码是比较费时费力的。幸运的是,有一些工具可以自动完成这个任务。npm 包 @storybook/codemod 就是其中之一。

    5 年前
  • npm 包 @krisdages/mapbox-gl 使用教程

    简介 Mapbox GL JS 是一个开源的 JavaScript 库,用于构建交互式、可定制的 Web 地图。它使用了 WebGL 技术来显示光栅瓦片地图,并支持数据可视化、位置标记和交互等功能。

    5 年前
  • npm 包 @jingsam/mapbox-gl 使用教程

    前言 Mapbox GL JS 是一个基于 WebGL 的交互式地图库,可以帮助开发者构建高度可定制化的地图应用程序。在使用 Mapbox GL JS 时,为了提高地图的性能,我们常常需要对地图进行分...

    5 年前
  • npm 包 @cgcs2000/mapbox-gl 使用教程

    简介 @cgcs2000/mapbox-gl 是一个基于 Mapbox GL JS 的 npm 包,它提供了一种简单但功能强大的方式来创建 Mapbox 地图,并进行交互和样式化。

    5 年前
  • npm 包 @carto/mapbox-gl 使用教程

    背景 随着时代的进步和技术的迭代,现代 web 开发变得越来越复杂,功能也越来越强大,其中地图展示也是很常见的一种需求。而在地图展示领域,MapBox 可谓是一个名副其实的巨头,其提供的 MapBox...

    5 年前
  • npm 包 @verady/veranet 使用教程

    简介 @verady/veranet 是一个 JavaScript 库,它是 Verady 公司的产品之一,用于提供数字货币资产的薪资计算,税务计算和财务报告。该库采用 TypeScript 编写,提...

    5 年前
  • npm 包 @the-/ps 使用教程

    在前端开发中,我们经常需要处理 DOM 元素的样式。而在处理样式的过程中,我们可能会遇到一些非常繁琐的问题,例如样式的继承、优先级计算等等。为了解决这些问题,我们可以使用 @the-/ps 这个 np...

    5 年前
  • npm 包 @inexorgame/inexor-flex 使用教程

    在前端开发中,我们经常会用到 npm 这个包管理工具,而 @inexorgame/inexor-flex 这个 npm 包则是用来帮助开发者快速集成 Flex 布局的工具。

    5 年前

相关推荐

    暂无文章