Skip to content

A1LinLin1/hackathon

Repository files navigation

智能合约审计平台

一个基于 Sui 区块链和 move 语言的智能合约静态安全审计工具,可以审计包括solidity、move、go、vyper、rust等智能合约语言的代码漏洞,在DeFi的安全中十分重要。包含:

  • 后端服务:使用 Node.js 提供接口,采集链上数据并与前端交互。
  • 前端应用:基于 Vite + React + TypeScript,集成 Sui Wallet,展示审计报告。
  • 静态分析 CLI:使用 TypeScript 实现的命令行工具,对 Move 源码进行漏洞检测。
  • 智能合约示例contracts/audit/ReportStore.move 模块及测试,用于演示如何提交与存储审计报告。

目录结构

hackathon/
├── backend/               # 后端服务
│   ├── package.json       # NPM 配置
│   ├── server.js          # Express 服务入口
│   ├── submit.js          # 链上提交脚本
│   └── utils.js           # 工具函数
├── contracts/             # Move 合约模块
│   └── audit/
│       ├── Move.toml      # Move 项目配置
│       ├── Move.lock      # 依赖锁定文件
│       └── sources/
│           └── ReportStore.move  # 审计存储合约
├── examples/              # 演示用合约 & 测试
│   ├── ExampleErrors.move
│   └── Example.move
├── frontend/              # 前端应用
│   ├── README.md          # 前端 README
│   ├── package.json
│   ├── vite.config.ts
│   └── src/               # 源码
│       ├── main.tsx
│       ├── App.tsx
│       ├── suiClient.ts   # Sui 客户端封装
│       └── components/    # React 组件
├── src/                   # 静态分析工具核心代码
│   ├── cli.ts             # CLI 入口
│   ├── detectors/         # 各类漏洞检测器
│   └── parser.ts          # Move 语法解析
├── vendor/                # 本地依赖:tree-sitter-move
├── LICENSE                # MIT 许可证
└── README.md              # 本文件

快速开始

环境准备

  • Node.js >= 18
  • npm 或 yarn
  • Sui 客户端 (可选,用于链上交互)

后端服务

cd backend
npm install
node server.js          # 启动服务,默认监听 http://localhost:3001

前端应用

cd frontend
npm install
npm run dev             # 启动 Vite 开发服务器,访问 http://localhost:5173

静态分析 CLI

# 在项目根目录
npm install             # 安装根目录依赖(TypeScript、tree-sitter 等)
npm run build           # 编译 TypeScript 到 dist
npm start -- examples/ExampleErrors.move
# 或者扫描整个目录:
npm start -- scan ./src

使用示例

  1. 提交审计报告到链上:在后端目录运行 node submit.js,将本地生成的审计报告通过 Sui 客户端提交到 ReportStore 合约。
  2. 查看审计报告:在前端页面点击「加载报告」,将自动从后端拉取链上存储的报告并展示在表格中。
  3. 静态扫描 Move 源码:运行 CLI 工具,对自定义 Move 模块进行访问控制、重入、溢出等多种安全检测。
  4. 审计历史和搜索功能:根据钱包连接地址,返回在链上审计过的历史记录,并有根据文件名和时间搜索的功能。

前端展示

在浏览器中访问 http://localhost:5173 后,你将看到如下界面:

前端审计报告页面


技术栈

  • 后端:Node.js, Express, @mysten/sui 客户端
  • 前端:Vite, React, TypeScript, @suiet/wallet-kit
  • 静态分析:TypeScript, tree-sitter-move, Node.js CLI
  • 合约:Move (Sui)

贡献

欢迎提交 Issue 或 Pull Request:

  1. Fork 本仓库
  2. 创建分支 feature/你的功能
  3. 提交代码并推送
  4. 在主仓库提交 PR

请遵守代码风格和测试覆盖率要求。


许可证

本项目基于 MIT License

About

move合约审计平台

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published