温馨提示:在 ChatGPT 官网(www.chatgpt.com)使用 GPT-5.5、ChatGPT-Image-2 等模型时,需要 ChatGPT Plus 或更高等级的会员权限。如需购买账号或充值会员,请扫码添加我们客服咨询。
本教程介绍如何使用Cursor从零开始编写Solidity智能合约,首先安装Node.js和VS Code,并在VS Code中安装Solidity扩展,在Cursor中创建项目文件夹,打开终端运行npm init -y初始化项目,新建MyToken.sol文件,编写一个简单的ERC20代币合约:定义contract MyToken,设置name、symbol、decimals等状态变量,实现mint和transfer功能,使用hardhat或remix编译合约,在终端运行npx hardhat compile验证无报错,最后可通过Hardhat本地网络部署并测试合约,该流程帮助开发者快速上手Solidity开发。
本文目录导读:
- 什么是Cursor?
- 为什么用Cursor写Solidity?
- 准备工作:装好Cursor
- 写你的第一个Solidity合约
- 用Cursor改代码
- 写一个更实用的合约:投票合约
- 检查你的代码有没有错
- 把合约部署到测试网
- 用Cursor学Solidity的语法
- 写一个带权限的合约
- 处理常见问题
- 写一个代币合约
- 写一个NFT合约
你刚开始学Solidity,想写一个简单的智能合约,但你是不是觉得写代码很麻烦?装环境、配编译器、找bug……光是这一步就能让很多人放弃,我今天要告诉你一个好消息:你可以用Cursor这个AI编程工具来帮你写Solidity代码,它不需要你懂那么多复杂的配置,只需要你会说人话就行。
什么是Cursor?
Cursor是一个代码编辑器,它和VS Code很像,但多了一个AI助手,这个助手可以帮你写代码、改代码、解释代码,你只要告诉它你要什么,它就能给你写出来。
举个例子,你告诉它:“帮我写一个简单的存储合约,能存一个数字,也能取出来。”它就会给你写出完整的Solidity代码,这比你自己去查文档、找模板要快得多。
为什么用Cursor写Solidity?
Solidity是写以太坊智能合约的语言,最大的问题是:
- 语法不熟悉——你需要记住很多关键字和规则
- 容易出错——一个很小的错误就会让你的合约不能运行
- 调试麻烦——出了错,你可能根本不知道问题在哪里
Cursor可以帮你解决这些问题,它像一个随时在线的老师,你写错了它会提醒你,你不懂的地方它会解释给你听。
准备工作:装好Cursor
第一步很简单,你去Cursor的官网下载一个,安装的时候一直点“下一步”就行。
装好之后,用你的邮箱注册一个账号,免费的版本就够用了,你不需要花钱买会员。
写你的第一个Solidity合约
我们来试试写一个最简单的合约,打开Cursor,创建一个新文件,把它命名为“MyFirstContract.sol”。
然后你在文件里写一行注释:
// 帮我写一个简单的存储合约,能存一个数字,也能取出来
接着你按Ctrl+Enter(Windows)或者Command+Enter(Mac),Cursor的AI助手就会给你写出完整的代码,它大概会写出来这样的东西:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint256 private storedData;
function set(uint256 x) public {
storedData = x;
}
function get() public view returns (uint256) {
return storedData;
}
}
你是不是觉得这个代码很简单?对,这就是一个完整的智能合约,它有一个存储数字的地方,通过set函数可以把数字存进去,通过get函数可以把数字取出来。
用Cursor改代码
假设你想要这个合约能存两个数字,怎么办?你不用自己改,直接问Cursor。
你选中刚才的代码,然后在输入框里写:“改成能存两个不同的数字”
Cursor会帮你改代码:
contract TwoNumberStorage {
uint256 private number1;
uint256 private number2;
function set1(uint256 x) public {
number1 = x;
}
function set2(uint256 x) public {
number2 = x;
}
function get1() public view returns (uint256) {
return number1;
}
function get2() public view returns (uint256) {
return number2;
}
}
你看,你根本不需要自己动手改,告诉它你要什么,它就帮你做了。
写一个更实用的合约:投票合约
现在我们来写一个稍微复杂一点的投票合约,这个合约要能让人投票,也能统计票数。
你新建一个文件,然后写:
帮我写一个简单的投票合约,每个人只能投一次票,候选人有Alice和Bob两个,合约能记录每个人的票数,也能看到谁票多。
Cursor会给你写出来,它可能会写出这样的代码:
contract SimpleVote {
uint256 public aliceVotes;
uint256 public bobVotes;
mapping(address => bool) public hasVoted;
function voteForAlice() public {
require(!hasVoted[msg.sender], "你已经投过票了");
hasVoted[msg.sender] = true;
aliceVotes++;
}
function voteForBob() public {
require(!hasVoted[msg.sender], "你已经投过票了");
hasVoted[msg.sender] = true;
bobVotes++;
}
function getWinner() public view returns (string memory) {
if (aliceVotes > bobVotes) {
return "Alice wins!";
} else if (bobVotes > aliceVotes) {
return "Bob wins!";
} else {
return "It's a tie!";
}
}
}
这个合约有三个主要部分:记录每个人的投票状态,记录两个人的票数,以及得出赢家。
你看到那个require了吗?它的意思是“如果条件不满足,就报错”,这里用它来防止一个人投两次票。
检查你的代码有没有错
写完了代码,你肯定想知道它有没有错,Cursor可以帮你检查。
你选中全部代码,然后输入:“检查这个合约有没有安全漏洞”
Cursor会告诉你:
- 有没有逻辑错误
- 会不会被攻击
- 有没有更好的写法
比如它可能会说:“你这个合约有一个问题,投票结果可以被任何人看到,但你没办法防止有人攻击,建议你加上一个权限控制。”
然后它会帮你改好代码,你只需要点一下“应用”就可以了。
把合约部署到测试网
写完了合约,你还得把它部署到区块链上,最常用的工具是Remix,但你可以用Cursor来辅助你。
你问Cursor:“怎么用Remix部署这个合约?”
它会告诉你步骤:
- 打开Remix官网
- 把你写的代码复制进去
- 点“Compile”编译
- 选一个测试网络,比如Sepolia
- 点“Deploy”
如果你觉得这个过程太麻烦,也可以问Cursor:“有什么简单的方法部署合约?”
它会推荐你一些工具,比如Hardhat或Truffle,这些工具可以自动帮你部署,但你需要学一点命令行的操作。
用Cursor学Solidity的语法
你不需要一上来就背语法,去看文档太枯燥了,用Cursor来学,效率更高。
比如你不懂“mapping”是什么,你直接问Cursor:“mapping在Solidity里是什么意思?”
它会告诉你:“mapping像是一个字典,你可以用它把一个人的地址和他的余额对起来,比如mapping(address => uint) balance,意思是我可以查某个地址有多少钱。”
如果你想看一个具体的例子,你说:“给我一个用mapping的例子”
它就会给你写出完整的代码,你一看就懂了。
写一个带权限的合约
假设你想写一个合约,只有你能修改里面的数据,你可以这样问Cursor:
“写一个合约,只有合约的创建者才能修改里面的数字”
它会写出这样的代码:
contract OwnedStorage {
address public owner;
uint256 private data;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "你不是合约创建者");
_;
}
function setData(uint256 x) public onlyOwner {
data = x;
}
function getData() public view returns (uint256) {
return data;
}
}
你看,它用了“modifier”这个关键字,你不用自己搞懂什么是modifier,你先看这个例子,就知道它用来控制权限的。
处理常见问题
写Solidity合约,新手最容易犯的错误有这几种:
忘记了地址类型 你写了一个参数,但忘了它是地址类型,Cursor会提醒你:“这里应该用address而不是string”
用了错误的版本 你写了“pragma Solidity ^0.4.0”,但现在的合约一般都要求0.8以上,Cursor会说:“建议你改为0.8.0以上,不然会有安全问题”
重复的代码 你写了一个很长的合约,里面有很多重复的代码,Cursor会建议你用函数来简化。
这些问题,你都可以直接问Cursor怎么改,它不只是告诉你哪里错了,还会给你正确的代码。
写一个代币合约
ERC20代币是最常见的智能合约,你自己写一个肯定很麻烦,但用Cursor就简单了。
你写:“帮我写一个ERC20代币合约,名字叫MyToken,符号是MTK,总供应量是1000000个”
Cursor会给你写一个完整的ERC20合约,你不需要自己去OpenZeppelin找模板,它直接帮你写好。
如果你看不懂里面的代码,你选中它,然后说:“解释一下这段代码在做什么”
它会逐行告诉你:
- constructor是构造函数,创建合约的时候运行一次
- transfer是转账函数
- balanceOf是查看余额的函数
写一个NFT合约
NFT现在很火,你也可以用Cursor写一个简单的NFT合约。
你写:“写一个简单的NFT合约,每个NFT有一个编号和一个链接”
Cursor会给你写出一个ERC721标准的合约,你不需要懂ERC721标准,它会帮你处理所有事情。
写完以后,你问它:“怎么铸造一个NFT?”
它会告诉你铸造的方法,以及怎么把铸造功能放到你的合约里。
用Cursor写Solidity合约,最大的好处就是你不用从零开始,你不需要记住所有的语法和规则,你只需要知道你想要什么,然后让AI帮你写出来。
最好的学习方法就是:先写一个简单的东西,然后慢慢增加功能,遇到不懂的,直接问Cursor,它比你去翻文档要快得多。
你不需要担心自己写错了,因为Cursor会帮你检查,也会告诉你怎么改,你多写几次,自然就会了。
最后说一句:写合约之前,一定要想清楚你要干什么,合约一旦部署就不能改了,你用Cursor写完了,一定要在测试网上先测试一下,确保没有问题再部署到主网。
温馨提示:在 ChatGPT 官网(www.chatgpt.com)使用 GPT-5.5、ChatGPT-Image-2 等模型时,需要 ChatGPT Plus 或更高等级的会员权限。如需购买账号或充值会员,请扫码添加我们客服咨询。


网友评论