Purpose

We want to give some utility to the G$ token as a “savings” account. Members that save G$s will get fixed APY rewards on top of the GOOD token rewards as existing today in the GovernanceStaking contract.

V2 would reinvest locked G$ in DEFI protocols, initially voltage swap.

High Level Description

The staking contract will use the standard contract staking rewards calculations where the rewards are calculated per block by: blockPassedSinceLastReward * InterestRatePerBlock * totalStaked.

When staking user can specify a donationRatio (a number between 0-100) representing how much of the rewards he is waiving and donating back to the DAO.

When user withdraw his stake or claim his rewards, the contract request G$s from another contract “GoodDollarMintBurnWrapper”

GoodDollarMintBurnWrapper would either allocate its balance or mint new G$s.

The minting of new G$s on sidechains will require the respective mainnet bridge locked G$ tokens to be updated. This will happen asynchronously via a mechanism TBD elsewhere. It could be that for a while not all G$ tokens on sidechain can not be redeemed on mainnet.

The G$ staking contract will have a guardian (a community multisig) that can manage some of its settings to adapt to market needs.

GoodDollarStaking - Contract Specs

The following functions should be modified to also perform: