Skip to content

Architecture

ChenchenYo edited this page Feb 28, 2019 · 1 revision

Smart contracts

  1. Membership management

    1. Accessible contract [Abstract]: Holds the structure of membership system. Three roles exists in the sytem: delegate, member, whitelister. i.e. There are one delegate who represents legally the association; Members who can propose and vote for proposals of the association; Whitelisters, who have the write to promote new members upon thorough examination of their identities (either online or offline).
    2. Membership contract: Defines actual functionalities that each role can do.
  2. Proposal management

    1. MinimalProposal [Abstract]: Holds the common pattern of all the proposals that belong to the two sub-categories - normal proposal and administrative proposal (aka. GA proposal). The list of all the proposals is stored inside a mapping in such contract. Proposals have limited period that is allowed to be open, this information is calculated via the library TallyClerk.
    2. ProposalManager: Creation / voting and other operations on proposals are conducted via this contract. The conclusion of the proposal is calculated with logic inside TallyClerk contract.
    3. ProposalInterface: an interface that allows other ocntracts communicate with each other.
  3. General Assembly (GA): The GA is described in the GAManager contract, where historical and future GAs are saved inside this contract.

  4. Treasury

    1. Treasury: The portal that manages all the financial operations of the DAAS.
    2. Wallet: Wallet that holds contribution from members.
    3. ExternalWallet: Wallet that holds the depositiion from external companies who want to sponsor one or many project/proposal(s). The wallet holds the money until the such project and Please beware that no GA proposal accepts sponsorships.
  5. DAA: contract deployer and address manager.

Functions

Name of functions startingTime endingTime candidate proposedGADate proposedStatute internalWallet externalWallet wait for GA to set up voting time?
createDelegateCandidancyProposal 0 0 msg.sender 0 "" 0x0 0x0 Yes
createGADateProposal _votingStarts _votingEnds 0x0 _proposedTime "" 0x0 0x0 No
createcProposal 0 0 0x0 0 "" 0x0 0x0 Yes
createUpdateStatuteProposal 0 0 0x0 0 _newHash 0x0 0x0 Yes
createExpelMemberProposal _startingTime _endingTime _targetMember 0 "" 0x0 0x0 No
createUpdateWalletProposal 0 0 0x0 0 "" _internalWallet _externalWallet Yes
Clone this wiki locally