创建和部署你的第一个智能合约

  • BuildBear
  • 发布于 2022-10-13 13:33
  • 阅读 34

本文为初学者提供了创建和部署Hello World智能合约的详细教程,涵盖了所需工具、初始化项目、编写合约、配置和部署合约等步骤,帮助读者了解如何在Ropsten测试网上进行智能合约的交互与部署。

有很多人在探索 web3 和区块链。很多人联系了我们,询问快速讲解一个 Hello World 智能合约的教程。本文是为那些初学者准备的,如果你也是初学者;这篇文章绝对是必读的。

到本文结束时,我们将了解如何使用 Solidity 编写自己的智能合约,如何将我们的智能合约部署到 Ropsten 测试网,并与之进行交互。

如上所述,这是一个初学者指南。这将是我们一小系列智能合约工作的第 1 部分。我们将做另一个部分“第 2 部分”,编写一个 NFT 智能合约。如果你喜欢我们的工作,请为我们鼓掌并分享,让我们知道我们的内容对你有帮助 :)

我们将使用的工具:

  • Node Provider: Node Provider 是一种工具,可以轻松将你的智能合约从本地开发环境迁移到区块链。

有很多节点提供者,如 AlchemyInfuraQuicknode

对于我们的智能合约,我们将使用 Alchemy,因为它还提供免费的套餐,允许我们每天进行一定数量的请求,并且易于使用。

  • MetaMask: MetaMask 是一个 虚拟钱包,允许我们与区块链进行交互。它包括主网络和多个测试网络,如 Ropsten、Rinkeby 和 Kovan。

我们能够使用 MetaMask 测试我们的智能合约,并可以将其部署到我们的区块链上。

  • Hardhat: Hardhat 是一个免费的开发工具,用于测试和部署我们的智能合约。

Hardhat 的一个流行替代品是 Truffle。如果你熟悉 truffle,可以查看 这个视频

在继续之前,请确保你在 MetaMask 上创建一个帐户,我们将在项目中稍后使用它。

1. 初始化项目

要开始编写我们的第一个智能合约,请打开终端,创建一个目录,然后使用 npm init 命令进行初始化。

你应该能看到新创建的文件“ package.json”

接下来,我们将作为开发依赖项在 hello-world 目录内安装 Hardhat。[要了解有关 Hardhat 的更多信息, 请点击这里]

npm install --save-dev hardhat

一旦安装了 Hardhat,我们将使用命令进行初始化。

npx hardhat

Hardhat 提供了多种选项,我们可以从头开始编写自己的智能合约和脚本,或者使用示例项目开始。

创建一个 空的 hardhat.config.js 文件,我们将自行进行自定义。

  • 创建 contracts 和 scripts 文件夹,其中将包含我们的智能合约和部署脚本。
mkdir contracts
mkdir scripts

我们的文件夹结构可能如下所示:

2. 编写我们的智能合约

导航到 ‘ contracts’ 文件夹,并创建一个文件 helloworld.sol.

下面是来自 Ethereum Foundation 的一个 Hello World 智能合约示例,我们将用于本教程。

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0;// 定义一个名为 `HelloWorld` 的合约。
contract HelloWorld {   event UpdatedMessages(string oldStr, string newStr);

   string public message;   constructor(string memory initMessage) {
      message = initMessage;
   }   function update(string memory newMessage) public {
      string memory oldMsg = message;
      message = newMessage;
      emit UpdatedMessages(oldMsg, newMessage);
   }
}

这个智能合约在创建时存储一条消息,并且可以使用 update 函数更新消息。

如果你对 Solidity 不熟悉,可以通过他们的 文档 进行学习。

3. 自定义 hardhat.config.js 文件

我们将把我们的 BuildBear API URL 和 MetaMask 私钥整合到 hardhat.config.js 中。

  • 对于 API URL,点击 创建一个端点

然后点击页面末尾的提交按钮,因为我们将使用默认节点。

  • 通过下面提供的视频复制 API URL。

按照这些 说明 从水龙头中获取资金,以便执行交易。

然后遵循 这些说明 导出你的私钥。

我们将使用 .env 文件来存储 API URL 和 MetaMask 私钥。

确保你在项目中本地安装 dotenv

npm install dotenv --save

创建一个 .env 文件 并将你的 API URL 和私钥存储在里面。

  • 安装 Ether.js 库,使与以太坊区块链的交互更加方便。
npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"

hardhat.config.js 文件 中,我们将使用所有这些插件和密钥。

更新后的文件可能如下所示:

4. 部署我们的智能合约

为了检查我们的智能合约是否正常工作,我们将使用终端 shell 编译它并运行 compile 命令。

npx hardhat compile

  • 由于我们的智能合约及其配置都已准备好,我们将编写一个部署脚本,这是部署智能合约所必需的。

scripts > deploy.js 中创建一个文件。

deploy.js:

async function main() {

    const HelloWorld = await ethers.getContractFactory("helloWorld");

    const helloWorld = await HelloWorld.deploy("Hello World!");
    console.log("Contract deployed to address:", helloWorld.address);
 }

 main()
   .then(() => process.exit(0))
   .catch(error => {
     console.error(error);
     process.exit(1);
   });

在这里,我们创建了 hello world 智能合约的一个实例,并使用 deploy() 函数将其部署到区块链上。

最后,我们将部署我们的智能合约!

为此,请在 CLI 中运行以下命令。

npx run scripts/deploy.js --network ropsten

我们提供了一个 network 标志,以便使用 ropsten 网络。如果不提供网络,智能合约将默认部署到 hardhat 网络。

恭喜!你已经成功部署了你的第一个智能合约。

你可能会看到如下结果:

要了解有关已部署智能合约的更多信息,请打开 Ropsten Etherscan

在这里,你可以看到有关你的交易的信息。

你可以检查合约部署的 时间戳、使用的Gas费用以及更多信息。

为了深入了解,可以查看 Alchemy Dashboard,你可能会看到我们智能合约发出的许多 JSON-RPC 调用。

这就是本教程第 1 部分的全部内容。在后续部分中,我们将看看如何铸造自己的 NFT。如果你喜欢我们的工作,请为我们鼓掌并分享,让我们知道我们的内容对你有帮助 :)

随时与我们分享你编写第一个智能合约的经验。

作者(欢迎反馈):Amateur-DevPari Tomar

参考文献:https://youtu.be/g73EGNKatDw

  • 原文链接: medium.com/buildbear/cre...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BuildBear
BuildBear
https://medium.com/buildbear