Solidity 是一种用于在以太坊区块链上编写智能合约的编程语言。它类似于 JavaScript,支持面向对象的编程。开发环境搭建可以通过安装 Truffle 或 Hardhat,这两个工具能帮助编译、部署和测试智能合约。搭建时还需要安装 Node.js 和 npm,并配置好相关的开发框架。通过这些工具,可以在本地模拟区块链环境,快速开发和测试合约代码。
作者
经验值
阅读时间
Remix 是一个基于浏览器的 Solidity 智能合约开发环境,适合新手和开发者快速编写、编译、部署和测试以太坊合约。无需安装任何软件,即开即用!
contracts
文件夹 → 点击 “+” 新建文件MyContract.sol
以下是一个简单的智能合约范例:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract MyContract {
string public message = "Hello, Remix!";
function setMessage(string calldata newMessage) public {
message = newMessage;
}
}
pragma
对应(如 0.8.0)Compile MyContract.sol
MyContract
点击 Deploy
按钮
下面会看到 Deployed Contracts
出现合约地址
部署成功后:
message()
查看默认信息setMessage()
输入框 → 点击按钮 → 修改信息message()
,可以看到新的字符串node -v
npm -v
mkdir my-hardhat-project
cd my-hardhat-project
npm init -y
npm install --save-dev hardhat
npx hardhat
选择第一个选项 “Create a basic sample project” → 按照提示一路回车即可。
项目结构大致如下:
my-hardhat-project/
├── contracts/
│ └── Lock.sol
├── scripts/
│ └── deploy.js
├── test/
│ └── Lock.js
├── hardhat.config.js
├── package.json
npx hardhat compile
npx hardhat node
默认会启动本地链在 http://127.0.0.1:8545,并生成 20 个测试钱包。
npx hardhat run scripts/deploy.js --network localhost
console.log
调试 JavaScript 脚本console.log
或事件 (emit
) 在 Solidity 合约中调试(推荐用 Remix 测试逻辑)chai
和 ethers.js
编写自动化测试(已内建)npm install --save-dev @nomicfoundation/hardhat-toolbox
安装后支持:
npm install dotenv
.env 文件(注意别上传到 GitHub):
SEPOLIA_RPC_URL=https://sepolia.infura.io/v3/你的项目ID
PRIVATE_KEY=你的钱包私钥(无 0x 前缀)
hardhat.config.js 添加:
require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
module.exports = {
solidity: "0.8.20",
networks: {
sepolia: {
url: process.env.SEPOLIA_RPC_URL,
accounts: [process.env.PRIVATE_KEY],
},
},
};
部署到 Sepolia:
npx hardhat run scripts/deploy.js --network sepolia
类比理解:MetaMask 就像你在 Web3 世界中的支付宝/微信钱包
提醒:新手常见诈骗陷阱是「泄露助记词」,务必警惕!
示例:使用 JavaScript 连接钱包
if (window.ethereum) {
try {
const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
console.log('连接的钱包地址:', accounts[0]);
} catch (error) {
console.error('用户拒绝连接', error);
}
} else {
alert('请先安装 MetaMask 插件');
}
实现步骤:
window.ethereum
是否存在补充说明: