1Hive / time-lock-app

The Time Lock app enables Aragon organizations to require users transfer or temporarily lock tokens before forwarding an intent.
GNU General Public License v3.0
16 stars 11 forks source link

Ui implementation #31

Closed fabriziovigevani closed 5 years ago

fabriziovigevani commented 5 years ago

closes #27 #26 #25 #24

Had to add some components to mimic the new upcoming aragon client which will be removed once it's released. The @aragon/ui we are using is the one being implemented on the aragon/ui#newstyle branch.

This includes the basic functionality for the app.

npm run start:template to deploy it with the template.

The template mints you 300 ERC20 tokens (LKT tokens) which will be used for locking before forwarding actions.

The lock-app has permission to create votes. So if you try to mint yourself some tokens from the tokens app, it should prompt you to make 2 transactions, first one to approve the lock app to transfer 20 ERC20 tokens on your behalf and the second one the create the vote.

Once you confirm this transactions, you should see in the lock app a new lock being created. App is initialized with a duration of 1 minute and 30 seconds and a lock amount of 20 LKT tokens.

Some of the field descriptions are of course subject to change, especially in the withdraw panel.

There's still missing the implementation @willjgriff suggested of estimating the amount of gas the transaction will cost and suggest an appropriated count of locks to withdraw.

lkngtn commented 5 years ago

Walked through the flow and this seems to working well from a user perspective! Nice work!

lkngtn commented 5 years ago

Some copy suggestions: "Tokens unlocked:" --> "Unlocked balance:"

Also not sure if its possible, but it would be nice if when confirming the action requirement enumerated the lock amount:

image

fabriziovigevani commented 5 years ago

Since we are implementing a griefing mechanism where the amount of tokens to be locked is based on the current number of locks the user has, from the top of my head can't think a good way to tell how many tokens is going to lock. I think radpsec supports only basic logic and some built-in functions but could dig a bit more into how it works under the hood.