Gollumの云转茶社
首页项目归档照片墙音乐灵境杂谈友链关于
封面

学习一下Solidity

写作时间:2026-09-07 16:13:08
# solidity
# Hello World
# 区块链
# 智能合约

之后可能会更新一些相关内容在我的个人网站上,记录一下我的学习路径顺便做个备忘

我们先来写一个简单的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。

avatar

Gollum

在代码与光影之间游走,在游戏与和弦里穿行,世界有很多层,我想一一构建。当信任可以被代码验证,当创作可以真正属于自己,我的故事,从这里开始。

RECOMMENDED