Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

#

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.

Status
colourGreen
titleNone

Status
colourRed
titleHACK

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.

Status
colourRed
titleHIGH

Status
colourGreen
titleRIGH WAY

3

Implement staking limits

  • Do not allow staking on accounts with Mainnet locks or FIP-6 locks, which are now only possible on new accounts.

  • Do not allow unstaking of partial amounts. The user can add staked amounts, but when they unstake, they have to unstake everything that was stake. Example:

    • Allowed:

      • Stake 100

      • Stake 200

      • Stake 300

      • Unstake 600

    • Not allowed

      • Stake 100

      • Stake 200

      • Stake 300

      • Unstake 300

Status
colourGreen
titleLOW

Status
colourYellow
titleMedium

4

Remove unstake 7-day lock

When unstaking, the user will immediately receive 100% of what they wanted to unstake.

Status
colourGreen
titleLOW

Status
colourYellow
titleMedium

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.