之后可能会更新一些相关内容在我的个人网站上,记录一下我的学习路径顺便做个备忘
我们先来写一个简单的Hello World
要做的第一件事是创建一个新的有效性文件,入门推荐使用Remix,我有一些基础就直接使用Hardhat项目了,在 VS Code 里打开一个空文件夹,然后初始化:
mkdir my-contract
cd my-contract
npm init -y
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
npx hardhat init
初始化时会让你选,选 "Create a TypeScript project"(或 JavaScript 项目,新手建议 JS 更简单)。
生成后的目录结构:
my-contract/
├─ contracts/ # 写 Solidity 合约(.sol)
├─ scripts/ # 部署脚本
├─ test/ # 测试
├─ hardhat.config.js # 配置
└─ package.json
这样一个简单的项目文件就建好了
contracts/HelloWorld.sol:
// SPDX-License-Identifier: MIT 在这最好放一个许可证,不然会报错
pragma solidity ^0.8.28;//指定编译器版本,尖括号代表大于等于此版本设计的,最好是指定一个确定的版本
contract HelloWorld {
string public message = "Hello World";
}
要"运行"它,写个脚本 scripts/hello.js:
const hre = require("hardhat");
async function main() {
const HelloWorld = await hre.ethers.getContractFactory("HelloWorld");
const hello = await HelloWorld.deploy();
await hello.waitForDeployment();
console.log("message =", await hello.message());
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
写一个合约Hello World在contract文件夹中,运行hello.js即可
npx hardhat run scripts/hello.js
现在这个合约没有部署到主网,只是在本地运行的,我们可以调用这个合约的message。
