jagannivas513-oss/OnChain-Tender-Management
GitHub: jagannivas513-oss/OnChain-Tender-Management
一个基于区块链的智能招标与合同管理 dApp,通过自动化流程与不可篡改记录解决透明性与信任问题。
Stars: 0 | Forks: 0
# 智能招标与合同管理(dApp)
Solidity `TenderManager` 在 EVM 链上自动化招标生命周期,提供 React + **ethers v6** 仪表板并使用 **MetaMask** 进行签名。状态变更会触发事件,以便区块浏览器和 UI 重构一条**不可变的审计追踪**。
## 链上内容
- **创建招标**:标题、描述、截止日期、最低出价(以 wei 为单位存储)。
- **提交出价**:每个地址对每个招标仅限一次出价;金额必须满足最低要求(声明为 wei 数值——本版本不托管资金)。
- **关闭招标**:任何人都可在截止日期后标记招标为已关闭。
- **授予中标**:招标创建者选择获胜出价;其他提交的出价将在存储中并经由 `BidRejected` 事件标记为已拒绝。
- **取消招标**:创建者可在招标仍处于开放状态时取消。
## 仓库结构
- `contracts/TenderManager.sol` — 核心逻辑。
- `scripts/deploy.js` — 部署脚本。
- `scripts/export-abi.js` — 编译后将 ABI 复制到 `frontend/src/contracts/`。
- `frontend/` — Vite + React 仪表板。
## 先决条件
- Node.js 18+
运行安装**从 `smart-tender/`**(合约目录)和 **`smart-tender/frontend/`**(UI 目录)开始。如果使用仓库根目录下的 `fakenews/` 文件夹,请在该处运行 `npm run setup:smart-tender`,而非简单的 `npm install`(根目录本身无依赖)。
- MetaMask 连接至 **Sepolia**、**Polygon Amoy** 或 **本地 Hardhat** 链(链 ID `31337`)。
## 智能合约
```
cd smart-tender
npm install
npm run compile
npm test
npm run export-abi
```
## 本地链(最快演示)
终端 A:
```
npx hardhat node
```
终端 B:
```
npm run deploy:local
npm run export-abi
```
将输出的 `TenderManager` 地址复制到 `frontend/.env.local`:
```
VITE_CONTRACT_ADDRESS=0x...
```
在 MetaMask 中添加网络 **Localhost 8545**,链 ID **31337**,RPC 地址 **http://127.0.0.1:8545**。导入一个 Hardhat 测试私钥(仅用于本地开发)。
终端 C:
```
cd frontend
npm install
npm run dev
```
## 以太坊 Sepolia / Polygon Amoy
1. 将 `.env.example` 复制为 `.env` 并填写 `smart-tender` 目录中的 `PRIVATE_KEY` 和 RPC 地址(使用可信任的 RPC 提供商)。
2. 使用测试网 ETH/MATIC 为部署账户充值。
3. 部署:
```
npm run deploy:sepolia
# 或
npm run deploy:amoy
```
4. 运行 `npm run export-abi`,并在 `frontend/.env.local` 中设置新地址。若希望在公共 RPC 上更快加载 **Audit trail**,请在 `frontend/.env.local` 中将 `VITE_FROM_BLOCK` 设置为部署区块号。
5. 切换 MetaMask 至同一网络并打开仪表板。
## 安全注意事项
- 切勿提交 `.env` 文件或真实私钥。
- 本 MVP 在链上记录出价 **金额**,但不托管资金。你可以在后续扩展合约,加入托管、里程碑或争议处理模块。
标签:dApp, ethers v6, EVM, Gas优化, Hardhat, MetaMask, MITM代理, Polygon Amoy, React, Sepolia, Solidity, Syscalls, Tender Management, Vite, 不可篡改, 事件日志, 以太坊, 供应链金融, 前端, 区块链, 去中心化, 可追溯性, 合同管理, 安全性, 开源, 招标管理, 智能合约, 本地开发, 自动化投标, 透明审计, 钱包集成