The voting contract is an ethereum ERC20 based smart contract designed to costumize votings and polls. The contract can be included in any sale-based smart contract in order to give tokenholder the right to vote. An external DAPP can be added to setup voting parameter.
- Contract requires
UniversalToken.sol
- Contract based on
solidity ^0.4.25
Function | Description |
---|---|
contract Voting is CustomOwnable | Constructor: Initlizes poll, determines the current state of a poll, defines voter and tokenmanager |
createPoll | creates a new poll |
endPoll | Ends a poll. Only the creator of a given poll can end that poll. |
getPollStatus | Returns the status of a poll. |
getPollExpirationTime | Gets the expiration date of a poll. |
getPollHistory | Gets the complete list of polls a user has voted in. |
getPollInfoForVoter | Gets a voter's vote and weight for a given expired poll. |
getVotersForPoll | Gets all the voters of a poll. |
getLockedAmount | Gets the amount of Voting Tokens that are locked for a given voter. |
getTokenStake | Gets the amount of Voting Credits for a given voter. |
getIfUserHasVoted | Checks if a user has voted for a specific poll. |
modifier validPoll | Modifier that checks for a valid poll ID. |
NOTE: weight is denominated in wei
Function | Description |
---|---|
castVote | Casts a vote for a given poll. |
NOTE: User must approve transfer of tokens. weight is denominated in wei
Function | Description |
---|---|
stakeVotingTokens | Stakes tokens for a given voter in return for voting credits. |
withdrawTokens | Allows a voter to withdraw voting tokens after a poll has ended. |
updateTokenBank | Helper function that updates active token balances after a poll has ended. |