我如何使用 Truffle 编译、测试和部署我的智能合约

我如何使用 Truffle 编译、测试和部署我的智能合约

Truffle 是一个使用以太坊虚拟机 (EVM) 的区块链开发环境、测试框架和资产管道。

在本文中,我们将了解如何开始使用 Truffle 编写、编译、测试和部署在区块链上运行的智能合约。

安装松露

首先,我们需要使用 npm 在我们的计算机上安装 Truffle。 打开终端并使用以下命令进行全局安装。

npm install -g truffle

为您的新 truffle 项目创建一个文件夹,并使用下面列出的命令对其进行初始化

truffle init

完成此操作后,您现在将拥有一个包含以下项目的项目结构:

contracts/:Solidity 合约的文件夹migrations/:可编写脚本的部署文件的文件夹test/:用于测试应用程序和合约的测试文件的文件夹truffle.js:松露配置文件

目前,我们要做的就是取消注释配置文件 (truffle-config.js) 中我们定义要使用的网络的部分。

编写智能合约

您可以在扩展名为 .sol 的文件中编写智能合约并将其保存在 contracts 文件夹下,或者您可以从 Remix IDE 粘贴现有的智能合约。

我在此处链接了另一篇关于在 Solidity 中编写智能合约的文章。

编译

接下来,我们将使用以下命令编译我们的代码,您会在编译后的项目目录中看到一个 build 文件夹

truffle compile

Truffle 的合约工件是保存在 build/contracts/ 目录中的大型 JSON 文件。 Truffle 在我们编译时保存我们的工件,并在我们迁移时使用地址信息更新我们的工件。

测试

Truffle 让你可以用 Javascript 和 Solidity 编写测试。 它使用 Mocha 测试框架来测试智能合约。 所有测试文件都应位于 ./test 目录中。 Truffle 只会运行具有以下文件扩展名的测试文件:.js、.ts、.es、.es6、.jsx、.sol。 所有其他文件都被忽略。

我们需要在您的测试中明确要求合同与之交互。 我们可以使用 artifacts.require() 方法来做到这一点,该方法由 Truffle 提供,允许我们为特定的 Solidity 合约请求可用的合约抽象。

简单解释一下这个测试代码

1. ‘contract()’ 和 mocha 中的 ‘describe()’ 是一样的。

2. it() 用于创建测试。

3. 部署合约。

4. 获取变量‘updatedData’的值。

5. 使用 assert.equal() 测试预期输出是否与实际输出相同。

要运行所有测试,只需运行:

truffle testortruffle test ./path/to/test/file.js

部署

部署者功能

所有迁移都必须通过 module.exports 语法导出函数。 每个迁移导出的函数都应该接受一个部署器对象作为它的第一个参数。 deployer 对象是您进行部署任务的主要接口。

要部署我们的智能合约,我们需要连接到区块链。 Truffle 有一个内置的个人区块链,可用于测试。 该区块链位于您的系统本地,不与以太坊主网络交互。

您可以使用 Truffle Develop 创建此区块链并与之交互。

1.运行松露开发:

truffle develop
migrate

您可以使用这些 Id 和地址来创建和连接 UI 或开发 Dapp。

完毕!!! 这就是编译、测试和部署智能合约的方法。

感谢您阅读本文

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes