How should the voting process look like in the UI? Here’s how I imagine it (assuming contributor uses the Metamask wallet):
- User adds projects to cart, selects amounts and presses the “Contribute” button.
- The dialog window pops up and shows the progress indicator:
Step 1 - Approve
. - Metamask window appears and user is asked to confirm approval transaction.
- The dialog window shows the next step:
Step 2 - Contribute
. - Metamask window appears and user is asked to confirm contribution.
- The dialog window shows the next step:
Step 3 - Are you being bribed?
and buttonsYes
andNo
. - If the user presses
No
, the dialog window shows the last step:Step 4 - Voting
.- Metamask window appears and user is asked to confirm voting transaction.
- Dialog window shows
Success
.
- If the user presses
Yes
, the dialog windows shows:Step 4 - Changing the key
and prints the raw transaction data along with instructions on how to submit it (through the relayer) and a buttonDone
.- When user presses
Done
, the dialog window shows the next step:Step 5 - Fake voting
. - Metamask window appears and user is asked to confirm transaction with invalid votes.
- Dialog window shows the next step
Step 6 - Voting
and prints the transaction data and explains that real votes should be submitted through the relayer. - Dialog windows shows
Success
.
- When user presses