This directory contains source files for the Lido Voting app that provides a UI for creating and participating in the Lido DAO votes.
To verify that the Voting app deployed at Lido DAO was built from this source code, please follow instructions below.
- git
- Node.js 14+
- ipfs 0.12.0
Clone the aragon-apps
repo,
git clone https://github.com/lidofinance/aragon-apps.git
Go into the directory,
cd aragon-apps
Checkout this commit (the latest yarn.lock
update),
git checkout 6cd692b320b172f62561f642f0a3c4352e48750b
Install dependencies without updating the lockfile. This will make sure that you're using the same versions of the dependencies that were used to develop the app,
yarn install --immutable
Open another terminal window and run the IPFS daemon,
ipfs daemon
Go back to the previous terminal tab and go into Voting app,
cd apps/voting
Run the script that builds the Voting app and uploads it to your local IPFS node,
npx hardhat ipfspub --app-name aragon-voting --ipfs-api-url http://127.0.0.1:5001
This may take a few minutes to complete and the end of this run, you see the IPFS hash and content URI printed in your terminal,
Release assets uploaded to IPFS: QmPotx7zHGCgBe9DEhMoB83erVJuvMt3YqCndTezWVRpdA
Content URI: 0x697066733a516d506f7478377a484743674265394445684d6f4238336572564a75764d74335971436e6454657a575652706441
Open the Voting App Repo and scroll down to getLatest
method, open the dropdown and click "Query". This will give you the Lido app version, contract address and the content URI. Now check that the content URI that you've obtained in the previous step matches the one that Etherscan fetched for you from the Lido protocol.
Now that we have the IPFS hash and content URI, let's see that it is, in fact, the one that's used on the DAO website.
Open the Voting app in your browser, then open the network inspector and refresh the page to track all of the network requests that the website makes.
You will find that one of the two HTML files has, in fact, been loaded from https://ipfs.mainnet.fi/ipfs/QmPotx7zHGCgBe9DEhMoB83erVJuvMt3YqCndTezWVRpdA/index.html
.
You are done! ✨