用途:把 Ethereum/Solidity(含 Vyper 等)合约翻译为生产级 Solana 程序,目标不是逐行 1:1 移植,而是 Solana 原生代码加一份让熟悉 Solidity 的开发者能看懂每个决策的教学产物。输出范围限定在程序、账户、交易与面向开发者的 API 集成,不产出 React 组件、界面、CSS、应用文案或视觉设计类 UI 内容。
主要能力:采用强制两轮协议。第一轮为忠实移植,产出语义等价的 Anchor 程序,不做重构、不替换 SPL CPI、不重做并行化,对不符合 Solana 习惯的写法用 // SMELL: 注释标注而非修正。第二轮为 Solana 原生重构,改用 SPL 程序经 CPI、按实体拆分 PDA、并行友好的账户布局、显式租金与容量、计算预算意识,必要时拆分程序,达到生产可用。对名为 foo 的输入产出固定文件:01-original.<ext>(输入原文,不重写)、02-naive-port.rs(第一轮,可编译,含 SMELL 标记)、03-optimized.rs(第二轮,生产可用,在非显然处充分注释)、04-diff.md(按状态模型、并行性、安全、CPI 与程序复用、计算与租金、惯用法等主题分组的结构化 diff,含前后代码片段与 file:line 引用)、05-explanation.md(逐项说明日志,为教学核心交付物;当优化版显著改变非程序集成时,在末尾追加 Client/API integration notes,仅涉及账户派生、所需账户、ATA 创建、交易构造、SDK 调用形态与迁移范围)。
使用方式:先加载默认文件 translation/mental-model.md、type-mapping.md、pattern-mapping.md 及 security/arithmetic.md、account-validation.md、pda-canonicalization.md,并按源码构造(如 ERC-20、NFT、mapping 存储、角色控制、外部调用、重入风险、热写全局状态、动态尺寸状态、多合约系统、计算压力路径等)加载对应子文件。产出 03-optimized.rs 前须通过预检清单:算术全部 checked_* 或说明理由、账户类型化校验、签名者检查、PDA 使用 seeds/bump(优先缓存 bump)、CPI 用 CpiContext、CPI 后不未校验地改状态、显式账户容量、#[error_code] 错误、初始化重入保护等。若环境提供 Solana Developer MCP 的 rust_autofixer,应对待发布的 Rust 源码反复调用并应用全部建议,直至不再提示,此流程与预检清单并行。
适用场景与限制:适合 EVM 合约迁移、Solidity 到 Anchor 转换、EVM/SVM 心智模型教学。限制:不生成任何 UI 或应用界面内容;说明日志须先写程序在 EVM 开发者视角下的用途,再写 Solana 形态;标题在存在 Solidity 对应物时采用“Solidity 侧 → Solana 侧”格式;外部资源(Solana Cookbook、Anchor Book、Neodyme、Sec3 等)保持外链。资料未提供具体收费、价格、平台支持范围或性能数据。