返回项目展示

contrib-ledger

已通过
截图 1

项目描述

# Contrib Ledger 开源贡献的「估值 → 维护者签名 → 贡献者自己上链」demo,部署在 Monad 测试网。 维护者在链下给已合并的 PR 打分并做 EIP-712 签名;贡献者用自己的钱包把签名提交到 `ContributionRegistry`。合约验签通过后记账、累加积分,并 mint 一枚声誉 NFT。积分不是可转让代币。 仓库:https://github.com/iis-MarkKuang/contrib-ledger --- ## 一句话流程 ```text GitHub PR 合并 → server 链下估值 + EIP-712 签名(私钥只在这里) → web 贡献者用 MetaMask 发交易 → ContributionRegistry @ Monad testnet → web 读事件,显示积分和声誉 NFT ``` 细节和时序图见 [SOLUTION.md](SOLUTION.md),需求文档在 `requirements/`。 --- ## 现在有什么 合约、链下签名和 webhook 已能在本地跑通。页面能连 MetaMask,在 Monad 测试网和本地 Anvil 之间切换,并读出贡献、积分和声誉 NFT。进度记在 [progress/](progress/),下一张票见 [ROADMAP.md](ROADMAP.md)。 | 模块 | 状态 | | --- | --- | | `contracts/` | `ContributionRegistry`:EIP-712 验签、积分、声誉 NFT。`forge test` 通过 | | `server/` | 健康检查、估值、EIP-712 签名、`POST /webhook` | | `web/` | 连接 MetaMask,选择网络,看板读链 | | `SOLUTION.md` | 架构、依赖、时序图 | **不做的事**:DAO、预言机、跨链、可交易代币、contract.dev、嵌入式钱包。社区挑战先搁置。 --- ## 本地运行 前置:Foundry ≥ 1.8,`forge` 在 `PATH` 里。 **1. 配置环境变量** ```bash cp .env.example .env # 变量名见 .env.example,.env 不要提交 ``` **2. 启动后端** ```bash cd server && npm install && npm run dev ``` 健康检查:`curl http://127.0.0.1:8787/health` **3. 启动前端** ```bash cd web && npm install && npm run dev ``` **4. 跑合约测试 / 本地链** ```bash cd contracts forge test --network monad anvil --network monad ``` `foundry.toml` 已写 `network = "monad"`。本地链是空的 Anvil,不 fork 测试网。签名 chain id 默认是测试网 `10143`;Anvil 测试单独用 `31337`。 --- ## 链参数 以 [docs/monad-testnet.md](docs/monad-testnet.md) 为准: | 项 | 测试网 | 本地 Anvil | | --- | --- | --- | | Chain ID | `10143` | `31337` | | RPC | `https://testnet-rpc.monad.xyz`(公开,无需 key) | `http://127.0.0.1:8545` | | 浏览器 | `https://testnet.monadscan.com` | — |

团队成员

BigCupTheory

Yyuan kuang
队长
岳岳阳

元数据

创建者yuan kuang
创建时间2026年10月17日
状态已归档
项目 ID#434