Skip to content

codermaybe/VotingSystem

Repository files navigation

VotingSystem

版本概览

VotingSystem 1.0

  • 单项目投票模型
  • 部署时写入选项
  • 管理员手动结束投票
  • 适合学习基础链上投票流程

VotingSystem 2.0

  • 支持多项目并行投票
  • 任何地址都可创建项目
  • 通过项目名称管理投票
  • 支持暂停 / 恢复 / 删除(逻辑下架)

VotingSystem 3.0

  • 改用 projectId 作为主键
  • 引入明确生命周期:Draft / Active / Paused / Ended / Cancelled / Archived
  • 支持激活、暂停、恢复、取消、结算、归档
  • 赢家结算后固化,避免重复循环计算
  • 已提供合约、测试、Ignition 模块与前端接入
  • 前端创建面板支持立即开始 / 定时开始 / 持续时长 / 自定义结束时间

安装

npm install

部署

部署 V1

npx hardhat ignition deploy ignition/modules/VotingSystem.js --network <network>

部署 V2

npx hardhat ignition deploy ignition/modules/VotingSystem2.js --network <network>

部署 V3

npx hardhat ignition deploy ignition/modules/VotingSystem3.js --network <network>

本地 Hardhat 示例:

npx hardhat ignition deploy ignition/modules/VotingSystem3.js --network hardhat

测试

V3 定向测试

npx hardhat test test/VotingSystem3.js --network hardhat

前端

cd frontend
npm install
npm run dev

前端现在支持:

  • VotingSystem 1.0
  • VotingSystem 2.0
  • VotingSystem 3.0

进入页面后:

  1. 连接 MetaMask
  2. 在右侧填写并保存对应版本合约地址
  3. 切换到目标版本
  4. 刷新链上数据并开始操作

About

A blockchain-based voting system that provides a multi-person election mechanism written in solidity.区块链投票系统,提供多人选举机制。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors