DAO

After the release of our NFTs, the next step is going to organize the proposals and votes by using a DAO implemented in the smart contract. Each citizen will be allowed to vote and contribute to the future of The United Metaverse Nation.

contract DAOInterface {
    // The minimum debate period that a generic proposal can have
    uint constant minProposalDebatePeriod = 2 weeks;
    // The minimum debate period that a split proposal can have
    uint constant quorumHalvingPeriod = 25 weeks;
    // Period after which a proposal is closed
    // (used in the case `executeProposal` fails because it throws)
    uint constant executeProposalPeriod = 10 days;
    // Time for vote freeze. A proposal needs to have majority support before votingDeadline - preSupportTime
    uint constant preSupportTime = 2 days;
    // Denotes the maximum proposal deposit that can be given. It is given as
    // a fraction of total Ether spent plus balance of the DAO
    uint constant maxDepositDivisor = 100;

    

We decided to implement the DAO at a later date to be able to launch the project successfully. Our goal is to be fully decentralized as soon as possible, however, for this project to evolve and prosper, it needs a founding team in its infancy.

Token token;

    // Proposals to spend the DAO's ether
    Proposal[] public proposals;
    // The quorum needed for each proposal is partially calculated by
    // totalSupply / minQuorumDivisor
    uint public minQuorumDivisor;
    // The unix time of the last time quorum was reached on a proposal
    uint public lastTimeMinQuorumMet;

    // Address of the curator
    address public curator;
    // The whitelist: List of addresses the DAO is allowed to send ether to
    mapping (address => bool) public allowedRecipients;

    // Map of addresses blocked during a vote (not allowed to transfer DAO
    // tokens). The address points to the proposal ID.
    mapping (address => uint) public blocked;

    // Map of addresses and proposal voted on by this address
    mapping (address => uint[]) public votingRegister;

    // The minimum deposit (in wei) required to submit any proposal that is not
    // requesting a new Curator (no deposit is required for splits)
    uint public proposalDeposit;

    // the accumulated sum of all current proposal deposits
    uint sumOfProposalDeposits;

Last updated