Adwaitbytes/monad-studio

GitHub: Adwaitbytes/monad-studio

一款基于浏览器的 Monad Network 智能合约集成开发环境,提供从编写、编译、安全分析到并行优化与部署的一站式工具链。

Stars: 0 | Forks: 0

# MonadStudio 一个基于浏览器的 Monad Network 智能合约开发环境。 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Tests](https://img.shields.io/badge/tests-45%2F45%20passing-success)](#testing) ## 关于 MonadStudio 是一个专为在 Monad Network 上构建智能合约而设计的集成开发环境。它提供了完整的工具链,包括代码编辑、编译、安全分析和部署功能——所有这些都可以通过 Web 浏览器访问,无需本地环境配置。 该 IDE 针对 Monad 的并行执行架构进行了优化,提供独特的分析工具,帮助开发者编写能够充分利用 Monad 10,000 TPS 吞吐量的合约。 ## 核心功能 **开发环境** - 支持 Solidity 语法高亮和自动补全的 Monaco 代码编辑器 - 支持多文件项目,便于组织复杂的合约系统 - 实时错误检测与验证 - 支持暗色和亮色主题 **编译流水线** - 基于 Hardhat 的编译,支持 OpenZeppelin 合约解析 - Solidity 0.8.24,支持优化器(默认 200 次运行) - 提供带有上下文信息的详细错误提示 - 生成用于部署的 ABI 和 bytecode **安全分析** - 针对常见攻击向量(重入攻击、溢出、访问控制)的漏洞扫描 - 基于模式的安全建议 - 风险评估评分 - 针对安全性提升的自动化建议 **Monad 并行分析器** - 针对并行执行优化的存储依赖分析 - 函数级别的并行化评分 - 依赖关系图可视化 - 针对提升 Monad 上合约吞吐量的具体建议 **部署** - 集成 MetaMask 钱包 - 支持 Monad Testnet 和 Mainnet - 带有区块浏览器链接的交易确认 - 部署历史记录跟踪 **AI 辅助** (可选) - 使用 OpenAI 或 Groq API 进行自然语言合约生成 - 代码解释与文档生成 - 基于 gas 使用模式的优化建议 - 针对编译错误的调试辅助 **Python 转译器** (实验性) - 用于以 Python 语法编写合约的 PyMon 服务 - 自动转译为 Solidity - 类型推断与验证 - 基于 Flask 的编译 API **合约模板** - 针对常见模式(ERC20、ERC721、DAO、Staking、DEX)的预置模板 - 经过生产环境测试的实现 - 可自定义的参数 **数据分析** (可选) - 集成 Supabase 进行部署跟踪 - 使用量指标与性能监控 - 历史数据可视化 ## 安装说明 ### 本地开发 Clone 仓库并安装依赖: ``` git clone https://github.com/yourusername/monad-ide.git cd monad-ide npm install ``` 创建一个包含你配置的 `.env.local` 文件: ``` # AI provider — generate/audit/explain/research 至少需要一个。 # 在没有以上任何一项的情况下编译、部署和转移工作。 OPENAI_API_KEY=your_openai_api_key OPENROUTER_API_KEY=your_openrouter_api_key GROQ_API_KEY=your_groq_api_key # 可选:Analytics NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_key # 可选:Deployment PRIVATE_KEY=your_private_key ``` 启动开发服务器: ``` npm run dev ``` 应用程序将在 `http://localhost:3000` 提供。 ### 生产环境部署 MonadStudio 可以部署到 Vercel、Netlify 或任何 Node.js 托管平台。 对于 Vercel: ``` npm i -g vercel vercel ``` 通过你的托管平台控制面板添加环境变量。 ## 配置 ### AI 提供商设置 **Groq** (推荐) - 推理速度快,提供免费额度 - 在 console.groq.com 注册 - 在控制面板中生成 API 密钥 - 将 `GROQ_API_KEY` 添加到环境变量 **OpenAI** (备选) - 针对复杂任务提供更高质量的回复 - 需要付费 API 访问权限 - 在 platform.openai.com 创建密钥 - 将 `OPENAI_API_KEY` 添加到环境变量 ### Supabase (可选) 用于分析和部署跟踪: 1. 在 supabase.com 创建项目 2. 执行 `supabase/schema.sql` 中的 SQL schema 3. 将项目 URL 和 anon key 复制到环境变量 ## 用法 ### 编写合约 该 IDE 提供了三种开始方式: 1. **从模板开始** - 从预置的合约中选择(ERC20、NFT、DAO、Staking) 2. **AI 生成** - 用自然语言描述需求 3. **空白文件** - 从头编写 Solidity 代码 Monaco 编辑器包含: - Solidity 的语法高亮 - 语言关键字的自动补全 - 错误下划线提示 - 代码折叠和小地图 ### 编译 点击 Compile 按钮构建你的合约。系统会: - 自动解析 OpenZeppelin 导入 - 运行带有优化的 Solidity 编译器 - 生成 ABI 和 bytecode - 报告带有行号和描述的错误 如果启用了 AI 功能,编译错误将包含上下文解释和建议。 ### 安全审计 Audit 按钮会触发分析,检查以下内容: - 重入攻击漏洞 - 整数溢出/下溢风险 - 访问控制问题 - 不安全的外部调用 - gas 优化机会 结果包括严重性评级和修复建议。 ### 并行分析 Parallel Profiler 分析合约针对 Monad 的特定优化: 1. 映射存储变量的访问模式 2. 识别函数之间的读/写冲突 3. 计算并行化潜力 4. 生成依赖关系图可视化 5. 提供优化建议 这有助于你编写利用 Monad 并行执行架构的合约。 ### 部署 要部署合约: 1. 确保合约编译成功 2. 连接 MetaMask 钱包 3. 选择目标网络(Monad Testnet 或 Mainnet) 4. 点击 Deploy 5. 在 MetaMask 中确认交易 6. 接收合约地址和浏览器链接 ## 技术栈 **前端** - Next.js 16(使用 App Router) - React 19 - TypeScript - Tailwind CSS 4 - 用于动画的 Framer Motion - Monaco Editor (VS Code 引擎) - Lucide React 图标 **状态管理** - 用于应用状态的 Zustand - LocalStorage 持久化 **区块链集成** - 用于现代 Web3 交互的 Viem - 用于钱包连接的 Ethers.js - 用于编译的 Hardhat - OpenZeppelin 合约库 **后端服务** - Next.js API 路由 - Hardhat 编译器集成 - Solc 0.8.31 **AI 服务** (可选) - Groq API - OpenAI API **Python 转译器** - Flask API 服务器 - Python AST 解析器 - Solidity 代码生成器 **测试** - Mocha 测试框架 - Chai 断言 - Hardhat 网络 - 45 个通过的测试 **数据分析** (可选) - Supabase PostgreSQL - 实时订阅 ## Monad Network MonadStudio 是为 Monad 构建的,这是一个通过并行执行实现 10,000 TPS 吞吐量的兼容 EVM 的区块链。 **网络配置** | Network | Chain ID | RPC Endpoint | |---------|----------|--------------| | Testnet | 10143 | https://testnet-rpc.monad.xyz | | Mainnet | 10143 | https://mainnet-rpc.monad.xyz | **添加到 MetaMask** 在部署过程中,IDE 会提示添加网络。手动配置: - Network Name: Monad Testnet - RPC URL: https://testnet-rpc.monad.xyz - Chain ID: 10143 - Currency Symbol: MON **并行执行** Monad 的架构并行而不是顺序地执行交易。Parallel Profiler 帮助识别: - 可以并发执行的函数 - 造成冲突的存储依赖 - 获得更高吞吐量的优化机会 ## 项目结构 ``` monad-ide/ ├── app/ │ ├── api/ # API routes │ │ ├── agent/ # AI generation endpoint │ │ ├── analytics/ # Analytics tracking │ │ ├── parallel/ # Parallel analysis │ │ ├── pymon/ # Python transpiler │ │ ├── security/ # Security audit │ │ └── templates/ # Contract templates │ ├── landing/ # Landing page │ ├── studio/ # Main IDE │ │ └── components/ # IDE components │ └── tutorials/ # Tutorial pages ├── contracts/ # Contract templates │ └── templates/ # Pre-built contracts ├── lib/ # Core libraries │ ├── contractTemplates.ts # Template definitions │ ├── dependencyGraph.ts # Graph generation │ ├── openzeppelin-bundle.ts # Bundled OZ contracts │ ├── parallelAnalyzer.ts # Parallel analysis │ ├── securityAnalyzer.js # Security scanner │ ├── store.ts # State management │ └── supabase.ts # Analytics client ├── pymon_service/ # Python transpiler │ ├── auditor.py │ ├── compiler.py │ ├── py_contracts.py │ ├── server.py │ └── transpiler.py ├── scripts/ # Deployment scripts ├── test/ # Test suite ├── tutorials/ # Tutorial content ├── hardhat.config.cjs # Hardhat configuration └── package.json # Dependencies ``` ## 测试 运行测试套件: ``` npm test # Run all tests npm run test:coverage # With coverage report ``` 测试覆盖范围: - ERC20 代币操作 - NFT 铸造与转移 - DEX 流动池功能 - gas 优化验证 - 安全模式检查 45/45 个测试通过。 ## 开发命令 ``` npm run dev # Start development server npm run build # Build for production npm run start # Run production build npm run compile # Compile Solidity contracts npm run clean # Clean build artifacts npm run lint # Run linter npm run type-check # TypeScript validation ``` ## 部署 ### Vercel ``` npm i -g vercel vercel ``` 在 Vercel 控制面板中添加环境变量。 ### 其他平台 兼容于: - Netlify(构建命令:`npm run build`) - Railway(GitHub 集成) - DigitalOcean(Node.js 主机) - 自托管(Docker 或 PM2) 有关特定平台的说明,请参阅 [DEPLOYMENT.md](DEPLOYMENT.md)。 ## 贡献 欢迎贡献。如需贡献: 1. Fork 该仓库 2. 创建一个功能分支 3. 进行更改并编写测试 4. 提交 pull request ## 故障排除 **编译失败** - 检查 OpenZeppelin 导入路径是否使用了 `@openzeppelin/contracts` - 验证 Solidity 版本是否为 0.8.24 - 使用 `npm run clean` 清除缓存 **部署问题** - 确认 MetaMask 已连接到正确的网络 - 验证是否有足够的 MON 余额支付 gas - 确保合约编译成功 **AI 功能无法使用** - 检查 `.env.local` 中的 API 密钥 - 验证 API 密钥的有效性和额度 - 尝试备选提供商(Groq 或 OpenAI) **Python 转译器** - 安装依赖:`pip install -r pymon_service/requirements.txt` - 启动 Flask 服务器:`python pymon_service/server.py` - 服务运行在端口 5000 ## 许可证 MIT License - 详情请参阅 [LICENSE](LICENSE)。 ## 致谢 基于以下技术构建: - Monad Network - OpenZeppelin 合约 - Hardhat 开发环境 - Monaco Editor - Groq 和 OpenAI APIs ## 支持 - 文档:[DEPLOYMENT.md](DEPLOYMENT.md) - 问题:[GitHub Issues](https://github.com/yourusername/monad-ide/issues) - Monad:[docs.monad.xyz](https://docs.monad.xyz) - 检查 Solidity 版本兼容性 (0.8.24) - 清除 Hardhat 缓存:`npm run clean` **部署问题:** - 验证 MetaMask 是否已连接到正确的网络 - 确保钱包有足够的 MON 用于支付 gas - 在部署前检查合约是否编译成功 **AI 无法使用:** - 验证 `.env.local` 中的 API 密钥 - 检查 API 密钥是否有足够的额度 - 尝试备选的 AI 提供商 **PyMon 转译器:** - Python 服务运行在单独的端口 (5000) - 安装 Python 依赖:`pip install -r pymon_service/requirements.txt` - 启动 Flask 服务器:`python pymon_service/server.py` ## 许可证 该项目基于 MIT License 授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 MonadStudio 是基于 Monad 生态系统并为其构建的: - **Monad Labs** - 用于构建最快的兼容 EVM 的区块链 - **OpenZeppelin** - 提供安全、经过审计的智能合约库 - **Hardhat** - 提供最佳的 Solidity 开发体验 - **Monaco Editor** - 将 VS Code 引入浏览器 - **Groq** - 提供极速的 AI 推理 - **Vercel** - 提供无缝的部署和托管 *以 10,000 TPS 交付智能合约*
标签:Solidity, Web3, 区块链开发, 性能分析, 智能合约, 自动化攻击, 逆向工具, 集成开发环境