Types of Voting
Now, let's delve into the various types of voting that can be conducted within our ecosystem. These voting modules are not constrained to adhere strictly to predefined standards outlined earlier. Each voting module is designed with its own unique criteria for voting and execution method, which can be either immediate or delayed.
To facilitate dynamic voting, the first step involves deploying the contract for the respective voting module, followed by adding its address to the node for delegate call functionality.
Delegate call operates similarly to a proxy contract mechanism. Consider two contracts, A and B, where A acts as the proxy for B. This means that any function invoked on contract A will redirect to the corresponding function in contract B. If contract B modifies the state, such as writing information or emitting an event, these actions will be executed on contract A. Consequently, all storage operations and readings are performed on contract A.
Therefore, each voting module contract can remain separate, and as long as its header (function name) conforms to our standard format, namely vote(uint256, address), it will be invoked accordingly.
Prefix | Description |
---|---|
1, 0x01 | Addition of game (Implemented): This voting process facilitates the onboarding of new games, allowing players to exchange in-game items for our token. Games must undergo this voting process or receive a top-up to connect to our platform. |
2, 0x02 | Removal of game (Implemented): If any game abuses our ecosystem or is deemed unsuitable, the community can vote to remove it. Once voted out, the game loses access to our platform. |
3, 0x03 | Bulk withdrawal (Implemented): This function enables the withdrawal of a large number of tokens without game intervention. It is commonly used to power other nodes, facilitate airdrop events, or serve as rewards for partner contracts. |
4, 0x04 | Voted for (event only) |
5, 0x05 | Voted against (event only) |
6, 0x06 | Voting successful (event only) |
7, 0x07 | Voting failed (event only) |
8, 0x08 | Addition of voting module (Future): Upon implementation, this function will enable the creation of new voting modules, allowing for additional voting criteria beyond the existing ones. |
9, 0x09 | Removal of voting module (Future): This function allows for the removal of any voting module found to contain malicious content, with caution advised due to the potential impact on the entire voting system. |
10, 0x0a | Upgrade of contract (Future): This module facilitates the upgrade of all proxied contracts by altering the implementation contract, including the node contract and associated contracts. |
11, 0x0b | Upgrade of owner (Future): The ownership can be transferred to the highest authority, typically voted to a blackhole address for most DAOs, signifying full control and ownership. |
12, 0x0c | Suspension of user (Future): Users can be suspended, restricting their ability to mint, transfer, or burn ERC20 or ERC721 tokens from us. |
13, 0x0d | Resumption of user (Future): In case of mistaken suspension, users can be unsuspended through a public vote or vouching from other users. |
14, 0x0e | Suspension of contract (Future): Contract suspension halts all token movements, to be used only in extreme situations affecting the entire ecosystem. |
15, 0x0f | Resumption of contract (Future): Token movements resume after suspension, typically for bug fixing or during upgrades requiring temporary suspension. |
16, 0x10 | Minting of ERC20 token (Future): This feature allows direct minting of tokens via our token contract, particularly relevant when initial minting proves insufficient. |
17, 0x11 | Force transfer of ERC20 token (Future): In cases of contract or user hoarding or unauthorised token holdings, tokens can be forcefully removed from an address and transferred to another. |
18, 0x12 | Minting of ERC721 token (Future): This function facilitates direct minting of NFTs via our NFT contract, useful for events or situations requiring mass minting with appropriate metadata. |
19, 0x13 | Force transfer of ERC721 token (Future): Similar to ERC20 token force transfer, this function deals with forcefully removing NFTs from an address and transferring them elsewhere in cases of hoarding or unauthorised holdings. |
Up to 255, 0xff | All the other voting types that can be added |
Last updated