写一个web3.0投票合约代码
时间: 2024-02-13 08:02:21 浏览: 124
投票的代码
以下是一个简单的Web3.0投票合约示例代码:
```
pragma solidity ^0.8.0;
contract Voting {
// 投票选项
struct Option {
string name; // 选项名称
uint count; // 得票数
}
// 投票
mapping(address => bool) public voted; // 已投票地址
Option[] public options; // 投票选项
// 添加投票选项
function addOption(string memory optionName) public {
options.push(Option(optionName, 0));
}
// 投票
function vote(uint optionIndex) public {
require(!voted[msg.sender], "You have already voted."); // 判断是否已投票
require(optionIndex < options.length, "Invalid option index."); // 判断选项是否存在
options[optionIndex].count++; // 给选项加一票
voted[msg.sender] = true; // 标记该地址已投票
}
// 获取投票结果
function getResults() public view returns (Option[] memory) {
return options; // 返回所有选项的得票数
}
}
```
这是一个基本的投票合约代码,您可以根据需要进行修改和扩展。
阅读全文