Giter Club home page Giter Club logo

voting-v2's Introduction

voting-v2

Voting smart contracts for NDC v2

voting-v2's People

Contributors

akorchyn avatar robert-zaremba avatar

Stargazers

 avatar

Watchers

Jane Wang avatar  avatar

voting-v2's Issues

Relayer

Relayer scope:

  • Validate user eligibility to vote
  • Accept the encrypted package
  • Relay encrypted user votes to voting contract
  • Double vote works

Decrypt votes

As a Product Owner I want to decrypt votes in order to process voting results
AC1: Decryption keys are available after the voting ends
AC2: Relayer decrypts voting data using keys from AC1 and publishes it to the NEAR mainnet
AC3: Every user can check data published in AC2

Staking data

As a Product manager I want to have staking data for the voting project

AC1: I have list of users (accounts) who ever staked

AC2: I have stake amount for users who ever staked at the moment of the snapshot

SC Secret network

As a user I want to encrypt data using secret network to preserve my privacy
AC1: User can create a shared secret to encrypt the vote
AC2: Public key for decryption is available after voting period ends

Process encrypted vote

As a User I want my vote to be processed in order to get it accounted
AC1: Encrypted votes are stored in the voting contract

Add support for filtering of the snaphost data

As a FE developer I want to have support for filtering snapshot data in order to provide user friendly views
AC1: Following fields are available for filtering\sorting with pagination : (AccountId,ActivityVP,StakingVP,OverallVP,AccountAge)

Activity data

As a Product Manager I want to have activity data for users that ever staked on NEAR blockchain
AC: We have list of users who ever staked on NEAR with number of months they had an active transaction

IPFS integration

As a Product Manager I want to have snapshot in form of json file on IPFS

AC1: Snapshot is available for the block specified in the Election framework document

Voting contract as storage

The scope of the voting contract:

  • Store encrypted votes
  • Store results
  • View methods to get paginated votes and results.

Encrypt voting package

As a Product Manager I want voting package to be encrypted so information about it is not available before the voting ends
AC1: User can create an encryption key
AC2: User can encrypt the Voting package with the key from AC1
AC3: Voting package from AC2 contains amount of votes for each candidate
AC4: User can resubmit the voting untill the end of the voting period
AC5: User is able to submit encryption key from AC1 to the contract

SC User registration

As a user I want to register in voting in order to vote
AC1: Users are able to register in voting
AC2: Same user cant register twice
AC3: Voting power is assigned to user once he registers
AC4: Data about registered users is available on the relayer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.