UX feedback from voting process

I encountered some UX issues when voting this time around.

First, under “Submit vote”, there is nothing presented, just buttons: what am I voting for?

Then, after hitting vote and sending a transaction there is an error message saying that the transaction was rejected (in Metamask), even though it was signed.

Finally, coming back to the app now and going to the ballot again, no approval transaction is being created, instead, I’m just asked to sign a message

… which gives the following failure

Screenshot_2019-10-23%20Panvala%20Disputes(2)

That’s all for now

Thanks for the feedback! We need to make it clearer during the voting window when there’s no actual vote occurring. Whenever there’s only one staked slate of proposals during a quarter, Panvala automatically approves it on the assumption that it represents the consensus of the community. That’s why your vote was rejected: there was nothing to vote on.

Here’s a blog post that explains how this quarter played out: https://medium.com/@Astrotrope/the-astrotrope-era-48ee76a47b5a

The “Slates” section of the whitepaper has more information about this process.

I see. Yeah, it would help if that was clearer.

I’m also curious why I got two different Metamask actions: one transacrion to approve spending of my tokens, and one where I was just meant to sign.

The message signing is to show that the ballot is from you. For the time being, ballots are saved into a database, for reveal later. It’s always possible for you to submit the commit hash of your vote directly to the contract, save it, and then reveal by calling the contract later. That’s obviously more complex, and we don’t have an easy way for you to do this yet (I have ideas about a cli for tasks like this).

The approve transaction is because if you have tokens but haven’t deposited tokens into the Gatekeeper contract for voting, the contract will automatically try to deposit tokens before committing your vote. Without that initial approval, the ballot commitment will fail. See here for more context: https://github.com/ConsenSys/panvala/blob/develop/governance-contracts/contracts/Gatekeeper.sol#L443-L447