本文为初学者提供了创建和部署Hello World智能合约的详细教程,涵盖了所需工具、初始化项目、编写合约、配置和部署合约等步骤,帮助读者了解如何在Ropsten测试网上进行智能合约的交互与部署。
有很多人在探索 web3 和区块链。很多人联系了我们,询问快速讲解一个 Hello World 智能合约的教程。本文是为那些初学者准备的,如果你也是初学者;这篇文章绝对是必读的。
到本文结束时,我们将了解如何使用 Solidity 编写自己的智能合约,如何将我们的智能合约部署到 Ropsten 测试网,并与之进行交互。
如上所述,这是一个初学者指南。这将是我们一小系列智能合约工作的第 1 部分。我们将做另一个部分“第 2 部分”,编写一个 NFT 智能合约。如果你喜欢我们的工作,请为我们鼓掌并分享,让我们知道我们的内容对你有帮助 :)
有很多节点提供者,如 Alchemy、Infura 和 Quicknode。
对于我们的智能合约,我们将使用 Alchemy,因为它还提供免费的套餐,允许我们每天进行一定数量的请求,并且易于使用。
我们能够使用 MetaMask 测试我们的智能合约,并可以将其部署到我们的区块链上。
Hardhat 的一个流行替代品是 Truffle。如果你熟悉 truffle,可以查看 这个视频。
在继续之前,请确保你在 MetaMask 上创建一个帐户,我们将在项目中稍后使用它。
要开始编写我们的第一个智能合约,请打开终端,创建一个目录,然后使用 npm init
命令进行初始化。
你应该能看到新创建的文件“ package.json”
接下来,我们将作为开发依赖项在 hello-world 目录内安装 Hardhat。[要了解有关 Hardhat 的更多信息, 请点击这里]
npm install --save-dev hardhat
一旦安装了 Hardhat,我们将使用命令进行初始化。
npx hardhat
Hardhat 提供了多种选项,我们可以从头开始编写自己的智能合约和脚本,或者使用示例项目开始。
创建一个 空的 hardhat.config.js 文件,我们将自行进行自定义。
mkdir contracts
mkdir scripts
我们的文件夹结构可能如下所示:
导航到 ‘ 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 不熟悉,可以通过他们的 文档 进行学习。
我们将把我们的 BuildBear API URL 和 MetaMask 私钥整合到 hardhat.config.js 中。
然后点击页面末尾的提交按钮,因为我们将使用默认节点。
按照这些 说明 从水龙头中获取资金,以便执行交易。
然后遵循 这些说明 导出你的私钥。
我们将使用 .env
文件来存储 API URL 和 MetaMask 私钥。
确保你在项目中本地安装 dotenv。
npm install dotenv --save
创建一个 .env 文件 并将你的 API URL 和私钥存储在里面。
npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"
在 hardhat.config.js 文件 中,我们将使用所有这些插件和密钥。
更新后的文件可能如下所示:
为了检查我们的智能合约是否正常工作,我们将使用终端 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-Dev 和 Pari Tomar
参考文献:https://youtu.be/g73EGNKatDw
- 原文链接: medium.com/buildbear/cre...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!