ralexandrec/vrf-lotto-frontend
GitHub: ralexandrec/vrf-lotto-frontend
一个基于 Base 网络和 Chainlink VRF 的去中心化智能合约抽奖应用前端,提供可审计的链上抽奖体验。
Stars: 0 | Forks: 0
# Lotchain 前端 🎟️✨
欢迎使用 **Lotchain** 的前端应用,这是一个优质、去中心化且可审计的智能合约抽奖应用。该 Web 界面使用 **React**、**Vite**、**Ethers.js (v6)** 构建,并采用了旨在呈现时尚的*暗黑与金色*现代美感的自定义 CSS 样式。
该应用利用 **Chainlink VRF v2.5** 来保证加密安全且防篡改的随机数以抽取获胜者,并集成了 **ChangeNOW** 小组件功能,以实现流畅的法币/加密货币引导流程。
## 🔗 相关仓库与资源
- **智能合约后端:** [vrf-lotto](https://github.com/ralexandrec/vrf-lotto)
- 包含 Solidity 智能合约、Hardhat 脚本、部署设置和后端抽奖测试覆盖率的代码库。
- **合约地址 (Base Sepolia):** `0x10ed17d3F4AAD4043f34b9A9AD024c743f2Db46F`
- **所有者地址:** `0xc545124FA9704BA2eC880e3E5A141eBb6bE98B41`
## ✨ 功能
- **Web3 钱包连接:** 集成了 MetaMask 连接,支持动态链检测。
- **自动网络切换:** 自动添加并提示用户切换到 **Base Sepolia** 测试网。
- **动态引导向导 (投注助手):**
- **第 1 步:** 钱包连接触发器。
- **第 2 步:** 根据当前的链配置,提供交互式水龙头 (Faucets) 列表 (Base Sepolia) 或 ChangeNOW 小组件 (Base 主网),帮助用户轻松获取 ETH。
- **第 3 步:** 动态购票界面。
- **实时同步状态:** 动态轮询(10秒间隔)和事件监听器,用于实时奖池、玩家数量、状态更新以及祝贺触发。
- **活动日志控制台:** 内联可视化日志控制台,用于监控交易状态和区块事件。
- **管理面板 (动态):** 仅对智能合约所有者钱包可见,允许管理员直接从 Web 界面触发抽奖 (`sortearVencedor()`)。
- **多语言 (i18n):** 支持葡萄牙语 (PT) 和英语 (EN) 的轻量级、响应式翻译。
## 🚀 快速开始
### 1. 前置条件
请确保您已安装 **Node.js** (v18+)。
### 2. 安装
克隆仓库并安装依赖:
```
git clone https://github.com/ralexandrec/vrf-lotto-frontend.git
cd vrf-lotto-frontend
npm install
```
### 3. 本地运行
启动开发服务器:
```
npm run dev
```
在浏览器中打开 **`http://localhost:5173`**。
### 4. 生产环境构建
打包静态应用资源:
```
npm run build
```
输出的文件将构建在 `/dist` 目录中。由于采用了相对资产基础路径配置,它们可以从任何子目录或云 S3/GCS 存储桶中提供服务。
## 🧪 测试
该仓库包含基于 **Cucumber**、**Playwright** 和 **Chai** 构建的行为驱动 E2E 测试,用于验证 Web3 钱包状态、动态翻译和智能合约模拟输入。
运行测试套件:
```
npx cucumber-js
```
## 🌍 GitHub Pages 部署
该仓库预先打包了 `.github/workflows/deploy.yml` 中的 GitHub Actions 工作流,用于处理自动编译和部署到 GitHub Pages。
要激活自动部署:
1. 将代码推送到您的 GitHub 仓库:`vrf-lotto-frontend`。
2. 进入您 GitHub 仓库的 **Settings -> Pages**。
3. 在 **Build and deployment -> Source** 下,选择 **GitHub Actions**。
4. 每次推送到 `main` 或 `master` 分支都将触发自动构建和部署。
## 📄 许可证
本项目是开源的,基于 [MIT License](LICENSE) 提供。
标签:DApp, Ethers.js, React, Syscalls, Vite, Web3, 区块链, 智能合约, 特征检测, 自定义脚本