jamesm-dev/NitroGem
GitHub: jamesm-dev/NitroGem
NitroGem 是一个伪装成加密货币代币列表与投票 dApp 的 JS 供应链投送器,提供分析框架与 IOC 规则。
Stars: 1 | Forks: 0
# NitroGem
一个社区驱动的 dApp,用于发现、列出、对代币进行投票并推广加密货币代币。用户连接钱包,列出新代币,用 ETH 投票支持喜爱的代币,并按层级排名以获得最大可见度。
## 功能
### 代币列出与发现
- 提交新代币,包含合约地址、Logo、社交链接和网络(以太坊 / BSC)
- 按层级、网络和最新性筛选浏览所有已列出的代币
- 包含市场数据、合约信息和社交链接的详细代币页面
### 投票系统
- 社区成员为自己信任的代币投票(每次投票 0.0035 ETH)
- 每个钱包每日投票上限为 5 次,防止操纵
- 通过 VotingManager 智能合约追踪链上投票
- 实时投票统计和每日/每周排名
### 层级制推广
- **翡翠层级** - 免费列出(默认)
- **红玉层级** - 投票 250 次以上或购买 0.5 ETH 以获得更高可见度
- **钻石层级** - 投票 500 次以上或购买 1 ETH 以获得顶级推广
### NitroGem 积分
### 国库
- 实时国库余额显示(ETH 转换为 USD)
- 回购计划的透明资金追踪
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 17、React Router v6、SCSS、Material-UI |
| 后端 | Express.js、SQLite(通过 Sequelize)、Firebase 实时数据库 |
| 区块链 | Solidity 0.8.20、Hardhat、OpenZeppelin、ethers.js v5 |
| 钱包 | 通过 `@metamask/detect-provider` 集成 MetaMask |
| 网络 | 以太坊主网、BSC(可配置) |
## 项目结构
```
nitrogem/
contracts/ Solidity smart contracts
NitroGem.sol Credit system (buy credits, tiers, withdraw)
VotingManager.sol On-chain voting (vote, daily limits, fee forwarding)
test/ Hardhat tests (53 tests)
scripts/ Deployment & ABI sync scripts
deployments/ Deployment records per network
src/ React frontend
pages/ Page components (Default, Treasury, Details, etc.)
components/ Shared UI components (NavBar, Footer, Filter, etc.)
helpers/ Wallet, contract, Firebase, and config utilities
abis/ Contract ABIs (synced from Hardhat artifacts)
assets/ Images and fonts
app/ Express backend
controllers/ Mempool scanning, DEX trading controllers
routes/ API routes
config/ Database configuration
hardhat.config.js Hardhat configuration
package.json Dependencies and scripts
```
## 快速开始
### 前置条件
- Node.js >= 18.19.0
- npm >= 8.0.0
- MetaMask 浏览器扩展
### 安装依赖
```
npm install
```
### 环境配置
在项目根目录创建 `.env` 文件:
```
OPENAI_KEY=your_openai_key
OPENAI_MODEL=gpt-4
```
### 运行应用
```
npm start
```
这将同时启动 Express 后端和 React 开发服务器,地址为 `http://localhost:3000`。
## 智能合约
### 编译
```
npm run compile
```
### 运行测试
```
npm run test:contracts
```
全部 53 个测试覆盖:积分购买(9 个层级)、消费、层级购买、链上投票、每日限额、管理员功能、暂停/恢复、访问控制和重入保护。
### 构建合约并同步 ABI
```
npm run build:contracts
```
编译合约并将 ABI 复制到 `src/helpers/abis/` 目录,供 React 前端使用。
### 部署
```
# 本地 Hardhat 网络
npm run deploy:local
# Sepolia 测试网(在 hardhat.config.js 中配置)
npm run deploy:sepolia
# 以太坊主网(在 hardhat.config.js 中配置)
npm run deploy:mainnet
```
部署记录保存至 `deployments/.json`。
### 合约概览
**NitroGem.sol** - 平台积分系统
- `buyCredits()` - 使用 ETH 购买积分(9 个价格层级)
- `spendCredits(amount, reason)` - 为平台操作消费积分
- `buyRubyTier()` / `buyDiamondTier()` - 层级升级
- `withdraw()` - 所有者提取 ETH 至国库
- `pause()` / `unpause()` - 紧急断路器
**VotingManager.sol** - 链上投票
- `vote(coinId)` - 为代币列表投票(每次 0.0035 ETH 费用)
- `votesRemainingToday(address)` - 查询当日剩余投票次数
- `getVotes(coinId)` - 读取某列表的总投票数
- 费用在每次投票后立即转发至国库
两个合约均使用 OpenZeppelin 的 `Ownable`、`ReentrancyGuard` 和 `Pausable`。
## 可用脚本
## 配置
```
ENVS = {
CONTRACT_ADDRESS: "0x...", // NitroGem contract
VOTING_CONTRACT_ADDRESS: "", // VotingManager (set after deployment)
CHAIN_ID: "0x1", // Ethereum Mainnet
NORMAL_VOTE_FEE: "0.0035", // ETH per vote
RUBY_TIRE_FEE: "0.5", // Ruby tier price
DIAMOND_TIRE_FEE: "1", // Diamond tier price
CHARITY_ADDR: "0x...", // Fee recipient
TREASURY_ADDR: "0x...", // Treasury address
}
```
部署的网络配置位于 `hardhat.config.js`。
## 许可证
MIT
标签:BSC, dApp, Ethereum Mainnet, ethers.js, Express.js, Firebase, Hardhat, IOC, JS dropper, Material-UI, MetaMask, MITM代理, NFT市场, NitroGem, OpenZeppelin, React, React Router, Ruby层级, SCSS, SEO, Sequelize, Solidity, SQLite, Syscalls, VotingManager, 买回计划, 代币列表, 代币发现, 以太坊, 供应链攻击, 信用系统, 免费列表, 前端, 加密货币, 区块链, 去中心化应用, 后端, 国库, 基于层级的推广, 币安智能链, 排名系统, 智能合约, 检测规则, 每日投票限制, 社区投票, 网络资产发现, 自定义脚本, 透明资金, 钱包集成, 钻石层级