Skip to content

lidofinance/dao-voting-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lido DAO Voting UI

Abstract

Over the past year, there were multiple situations with Aragon voting UI being unavailable or dysfunctional at the times of ongoing DAO votings. It is critical to have a UI-friendly fallback option in the form of Lido's own resilient voting UI app.

Functionality

The proposed UI consists of one essential page with a limited set of actions available.

The required functionality includes:

  • accessing specific voting outside of Aragon voting UI
  • getting on-chain details related to specific voting by voting ID (status, voting results, voting start/end date, parsed EVM script)
  • connecting wallet (similar to Lido on Ethereum staking widget)
  • casting vote (Yes/No)

More details

Pre-requisites

  • Node.js v12+
  • Yarn package manager

This project requires an .env file which is distributed via private communication channels. A sample can be found in .env.sample.

Dockerfile env

  • Node.js v16.20.1
  • Yarn package manager v1.22.19

Development

Step 1. Copy the contents of .env.sample to .env.local

cp .env.sample .env.local

Step 2. Fill out the .env.local. You will need to provide RPC provider urls with keys included.

Step 3. Install dependencies

yarn install

Step 4. Start the development server

yarn dev

Environment variables

Note! Avoid using NEXT_PUBLIC_ environment variables as it hinders our CI pipeline. Please use server-side environment variables and pass them to the client using getInitialProps in _app.js.

Automatic versioning

Note! This repo uses automatic versioning, please follow the commit message conventions.

e.g.

git commit -m "fix: a bug in calculation"
git commit -m "feat: dark theme"

Production

yarn build && yarn start

Notable dependencies

Release flow

To create a new release:

  1. Merge all changes to the main branch.
  2. After the merge, the Prepare release draft action will run automatically. When the action is complete, a release draft is created.
  3. When you need to release, go to Repo → Releases.
  4. Publish the desired release draft manually by clicking the edit button - this release is now the Latest Published.
  5. After publication, the action to create a release bump will be triggered automatically.