Skip to content

Fuse staking public good for UBI and profit #2

@sirpy

Description

@sirpy

GoodDollar is a non-profit project, delivering digital basic income to tens of thousands of daily users in the form of the G$ token.

Currently the FuseStaking contract donates all earned rewards from staked Fuse. It uses the rewards to buyback G$s on Fuseswap and splits those G$s between the UBI Pool and a Community Pool

This bounty is about upgrading the FuseStaking contract with a feature that allows users to stake with G$ and also earn rewards pro-rata
There's another bounty here to Add this functionality to the wallet

Join https://t.me/GoodDollarBounties to learn more

Motivation

  • We want to give G$ more utility
  • Educate our citizens about savings, investment and DEFI

Details

  • The current FustStaking (here:``) distributes the earnings to the UBI pool and a Community pool according to pre-defined ratio.
    • add another ratio that will set how much out of the earnings will be allocated to reward the stakers
    • use BaseShare.sol to add Staking token capabilities and pro-rata rewards
    • add a method to set the different ratios. require that they add up to 100%
  • Implement the Stakers pool functionality
    • every day when collecting rewards update the amount that is kept for stakers
    • when user stakes he should be able to specify if he wants to donate his rewards or not (0 or 100) (user forfeits his G$ rewards and they will go to the UBI/community pool according to their respective ratios
  • Update stake method
    • no msg.value try to collect G$s using transferFrom
    • swap G$s to Fuse on fuseswap
    • update user stakes/productivity in Fuse tokens. (Also keep a total of the original G$ amounts he staked)
    • staking distributes pending rewards
  • Update withdraw method
    • allow user to specify how much to withdraw
    • withdrawing distributes pending rewards
    • update user stakes/productivity
  • Protect against manipulation. Currently we dont convert Fuse to G$ if price impact is more than X%. this might not be enough if price is manipulated just before. (ie deposting lots of G$ but little Fuse).
  • use price impact over uniswap TWAP or suggest a different protection method

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions