You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidity智能合约末尾ParseError报错排查求助(附完整合约代码)

错误原因及修复方案

1. 直接触发ParseError的核心问题

你在constructor结束后错误添加了一个闭合大括号},直接提前终止了合约作用域,后续所有setBaseURI、reup等函数都被定义在了合约外部,不符合Solidity语法规则。
修复方案:删除constructor() public ERC721("Contract", "CONTRACT") {}后面多余的那个}。

2. 其他需要同步修复的编译错误

  • 缺失Base64库导入:你代码中调用了Base64.encode但未引入对应依赖,需在导入段添加一行:
import "@openzeppelin/contracts/utils/Base64.sol";
  • 数组索引空值问题:tokenURI方法中你定义了长度为17的parts数组,仅赋值到索引13,且跳过了索引12的赋值,后续拼接时调用的parts[12]、parts[14]、parts[15]、parts[16]均为空值,要么补全对应索引的赋值,要么调整数组长度和拼接逻辑。
  • 不存在的内置方法调用:新版OpenZeppelin ERC721没有内置_setBaseURI方法,你需要要么引入ERC721URIStorage扩展,要么自行定义_baseURI内部变量实现对应的set逻辑。
  • 冗余变量:你定义了bool private initialized = false;但全程未使用,可直接删除避免告警。

内容的提问来源于stack exchange,提问作者the-peffrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:30:02