Adwaitbytes/monad-studio
GitHub: Adwaitbytes/monad-studio
一款基于浏览器的 Monad Network 智能合约集成开发环境,提供从编写、编译、安全分析到并行优化与部署的一站式工具链。
Stars: 0 | Forks: 0
# MonadStudio
一个基于浏览器的 Monad Network 智能合约开发环境。
[](LICENSE)
[](#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, 区块链开发, 性能分析, 智能合约, 自动化攻击, 逆向工具, 集成开发环境