...
# | Solution | Description | Tech difficulty | Hack vs. right way | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Leave as is | User will get behavior described above, but an argument could be made that most users will not be affected in a meaningful way. Future uses of locks for other purposes may run into the same issue. |
|
| ||||||||||||
2 | The right thing to do | Re-architect the FIP-6 locks to operate on SUFs and not percentages. This removes the precision issue from the chain altogether and makes locks more flexible for potential future uses. |
|
| ||||||||||||
3 | Implement staking limits |
|
|
| ||||||||||||
4 | Remove unstake 7-day lock | When unstaking, the user will immediately receive 100% of what they wanted to unstake. |
|
|
2021-06-01 Discussion
During a discussion with Luke Stokes Eric Butz Ed Rotthoff Pawel Mastalerz a decision was made to proceed with Option #2:
Dev/testing incremental time estimates:
Option 1: 0
Option 2: +3 weeks
Option 3: +1 week
Option 4: 0 (or reduction)
Option 1 was disqualified due to usability issues it creates.
Option 4 was disqualified as it removes a major reason for the project: ability to not include staked tokens in circulating supply and further creates a potential for unpredictable gaming of staking.
Option 2 is 2 weeks longer than Option 1, but:
It modifies locks to be more robust for locking, staking and any other application in the future.
Removal of percentages simplifies testing.
Staking is dependent on Bahamas release, which is currently planned for 6/25 (may be pulled in earlier). It is therefore estimated that Staking will deploy to Testnet on July 9th and that date is unlikely to be impacted by selecting Option 2, because the additional development will occur before that time. Although, there is risk that additional locks testing will uncover unforeseen bugs which will push the date out.
Even if the date is pushed out by a week or two, it seems like a reasonable price to pay for more robust chain functionality.