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.
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.
The following functions should be modified to also perform: