Cursor Solidity 使用教程,从零开始写智能合约

ChatGPT2026-04-24 01:21:2351

温馨提示:在 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,设置namesymboldecimals等状态变量,实现minttransfer功能,使用hardhatremix编译合约,在终端运行npx hardhat compile验证无报错,最后可通过Hardhat本地网络部署并测试合约,该流程帮助开发者快速上手Solidity开发。

本文目录导读:

  1. 什么是Cursor?
  2. 为什么用Cursor写Solidity?
  3. 准备工作:装好Cursor
  4. 写你的第一个Solidity合约
  5. 用Cursor改代码
  6. 写一个更实用的合约:投票合约
  7. 检查你的代码有没有错
  8. 把合约部署到测试网
  9. 用Cursor学Solidity的语法
  10. 写一个带权限的合约
  11. 处理常见问题
  12. 写一个代币合约
  13. 写一个NFT合约

你刚开始学Solidity,想写一个简单的智能合约,但你是不是觉得写代码很麻烦?装环境、配编译器、找bug……光是这一步就能让很多人放弃,我今天要告诉你一个好消息:你可以用Cursor这个AI编程工具来帮你写Solidity代码,它不需要你懂那么多复杂的配置,只需要你会说人话就行。

什么是Cursor?

Cursor是一个代码编辑器,它和VS Code很像,但多了一个AI助手,这个助手可以帮你写代码、改代码、解释代码,你只要告诉它你要什么,它就能给你写出来。

举个例子,你告诉它:“帮我写一个简单的存储合约,能存一个数字,也能取出来。”它就会给你写出完整的Solidity代码,这比你自己去查文档、找模板要快得多。

为什么用Cursor写Solidity?

Solidity是写以太坊智能合约的语言,最大的问题是:

  1. 语法不熟悉——你需要记住很多关键字和规则
  2. 容易出错——一个很小的错误就会让你的合约不能运行
  3. 调试麻烦——出了错,你可能根本不知道问题在哪里

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部署这个合约?”

它会告诉你步骤:

  1. 打开Remix官网
  2. 把你写的代码复制进去
  3. 点“Compile”编译
  4. 选一个测试网络,比如Sepolia
  5. 点“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 或更高等级的会员权限。如需购买账号或充值会员,请扫码添加我们客服咨询。

本文链接:https://www.lexitong.com/ai/97.html

Solidity智能合约cursor solidity使用教程视频

相关文章

网友评论