跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

使用 Scaffold-ETH 2 构建 dApp

导言

Scaffold-ETH 2 是一个开源工具包,用于在以太坊和其他与 EVM 兼容的区块链(如 Kaia)上构建去中心化应用程序(dApps)。 借助 Scaffold-ETH 2,开发人员可以轻松部署 Solidity 智能合约,并使用 React 前端启动 dApp。

Scaffold-ETH 2 工具包使用 Next.js、RainbowKit、Hardhat、Foundry、Wagmi 和 TypeScript 构建。 开发人员可以使用 Hardhat 或 Foundry 轻松创建、测试和部署智能合约,还可以使用 Next.js 构建 React 前端。

在本教程中,您将学习如何使用 Scaffold-ETH 2 在 Kaia 上部署、运行合约和构建 dApp。

先决条件

要开始学习本指南,您需要

设置开发环境

要安装 Scaffold-ETH 2,您有两个选择,要么克隆 Scaffold-ETH 2 资源库,要么使用 npx create-eth@latest 安装。

在本指南中,我们将使用 npx 方法来引导 Scaffold-ETH 2 项目。

运行以下命令引导 Scaffold-ETH 2 项目:


npx create-eth@latest

您将看到一系列提示:

项目名称:输入项目名称: 输入项目名称,如 kaia-scaffold-example。

** 实体框架**;您想使用哪种实体框架?选择您喜欢的实体框架(Hardhat、Foundry)。 在本指南中,我们将使用 Hardhat 框架。

Install packages?:按回车键表示是(默认选项)或输入 n 并按回车键表示否 设置完成后,导航至项目目录。


cd project-name
// e.g cd kaia_scaffold

Scaffold-ETH setup

Scaffold-ETH 2 开发过程的亮点

使用 Scaffold-ETH 2 开发项目的流程可概述如下:

  1. 为 Kaia 更新 Hardhat 中的网络配置
  2. 将智能合约添加到 packages/hardhat/contracts
  3. 编辑 packages/hardhat/deploy 中的部署脚本
  4. 将智能合约部署到 Kaia
  5. 使用硬帽验证插件验证智能合约
  6. packages/nextjs/scaffold.config.ts 文件中配置前端以 Kaia 为目标
  7. packages/nextjs/pages目录下根据需要编辑你的前台

在本指南中,我们将使用 Scaffold-ETH 2 安装后可用的默认示例合同和前端。 只需为 Kaia 修改这些组件即可。 在这种情况下,我们将把配置分为 HardhatNext.js 配置。

硬头盔配置

在本节中,你将修改 Hardhat 配置文件中的网络配置,以packages/hardhat文件夹下的 Kaia 为目标。

为 Kaia 配置 Hardhat

要为 Kaia 配置 hardhat,需要创建 .env 文件并修改 hardhat.config.ts 以支持 Kaia。

第 1 步:创建 .env

要创建 .env 文件,请在终端中复制并粘贴以下代码


touch packages/hardhat/.env

关于 hardhat.config.js 文件中已使用的变量,可参考 .env.example 文件。 对于 Kaia,您只需创建一个变量:deployed_private_key.

第 2 步:编辑 .env 文件以包含此变量:


deployer_private_key=insert_private_key

在**.env**文件中说明的私钥与将在 Hardhat 项目中部署智能合约并与之交互的账户相对应。

第 3 步:修改 hardhat.config.ts

接下来我们要做的是配置 hardhat.config.ts 以支持 Kaia。

将常量defaultNetwork设置为部署智能合约的网络。


kairos: {
chainId: 1001,
url: "https://responsive-green-emerald.kaia-kairos.quiknode.pro/",
accounts: [deployerPrivateKey],
},

在网络配置对象下为 Kaia 添加网络配置


network: "kairos",

有关在 Kaia 中使用 Hardhat 的更多信息,请查看 Hardhat 指南 了解更多详情。

向 Kaia 部署合同

配置 Hardhat 以支持 Kaia 网络后,下一步就是编译和部署合同样本。

首先,您可以通过运行


纱线编译

Compile

然后,可以在项目根目录下运行以下命令:


yarn deploy

Deploy

请注意:

如果没有在 hardhat.config.ts 文件中设置默认网络配置,可以在命令中添加 --network INSERT_NETWORK。 例如,以下命令将向 Kaia 部署一份合同。

yarn deploy --network kaia

验证您已部署的合同

要验证已部署的合同,我们将使用硬帽验证插件。 只需在 Kairos Testnet 的 etherscan 配置对象下的 hardhat.config.ts 中添加以下配置即可。


etherscan: {
apiKey: {
kairos: "unnecessary",
},
customChains: [
{
network: "kairos",
chainId: 1001,
urls: {
apiURL: "https://api-baobab.klaytnscope.com/api",
browserURL: "https://kairos.kaiascope.com",
},
},
],
},

接下来,在终端中复制并粘贴以下命令来验证智能合约:

示例


yarn hardhat-verify --network network_name contract_address "构造函数参数 1"

实际


yarn hardhat-verify --network kairos 0x7fc9656fc8c8ab433867e58b7c6afc19ec4275da
"0x7fc9656fc8c8ab433867e58b7c6afc19ec4275da"

如上所示,要验证合同,必须输入网络名称、合同地址和构造函数参数(如有)。 稍等片刻,控制台就会显示验证结果,如果验证成功,还会提供指向 Kaiascope 上已验证合同的 URL。

Verify

Verify on Kaiascope

有关使用 Hardhat Verify 插件在 Kaia 上验证智能合约的更多信息,请参阅 Hardhat-Verify-Plugins guide

Next.js 配置

在本节中,你将修改 Next.js 配置,使其针对packages/nextjs文件夹下的 Kairos Testnet(智能合约部署到了这里)。 在本文件夹中,我们打算修改 scaffold.config.ts 文件中 scaffoldConfig 对象的 targetNetwork 数组。

修改 targetNetwork 数组


targetNetworks:[链.klaytnBaobab]、

这就是配置 Next.js 的全部要求! 接下来,在本地主机上启动 dApp。

在本地主机启动应用程序

完成所有必要配置后,您就可以在本地主机上启动示例应用程序了。

为此,请运行


起纱

Run dApp

现在,您应该可以在 http://localhost:3001/ 上访问基于 React 的 dApp 前端。 您可以通过连接钱包或查看合约调试器页面与 dApp 进行互动。

Scaffold dApp

结论

祝贺你 您已成功使用 Scaffold-ETH 2 在 Kaia 上部署了一个合约并运行了一个 dApp。 现在您已经了解 Scaffold-ETH 2 的工作原理,可以随意创建和部署自己的智能合约,并修改前端以满足您的 dApp 需求!

如需了解更多信息,请访问 Scaffold-ETH 2 文档 ;如有任何疑问,请访问 Kaia 论坛

让这个页面变得更好