Summary
To compensate users who received fewer GFI rewards due to an unintentional bug in the StakingRewards
contract, we propose transferring the equivalent amount of GFI from the Goldfinch Treasury to the affected users.
If approved, ~2923 GFI will be transferred to the affected 23 unique wallet addresses.
Motivation
We should do our best to honor and uphold the intended design of the protocol. The StakingRewards
contract behaved in an unexpected way, and users should not be penalized for interacting with the contract.
Background
Due to a missing modifier on the unstakeMultiple
function in StakingRewards
, users received less GFI rewards than they should have when unstaking their positions. The modifier contained logic to checkpoint rewards before unstaking. Omitting the modifier meant that users only received GFI rewards up to the previous checkpoint.
The usage of the erroneous unstakeMultiple
function has been temporarily removed from the frontend, so the bug is no longer affecting users of the Goldfinch dApp. The proper smart contract fix has been put in place, and will be deployed in the upcoming weeks.
In total, 23 unique wallet addresses lost ~2923 GFI rewards between April 30 to May 13.
Methodology
To calculate the amount of GFI that should have been disbursed to each affected user, we simulated a getReward
transaction at the block number in which the original unstakeMultiple
transaction was executed. The output of the getReward
transaction represents the exact amount of GFI that should have been claimable when the user unstaked a position at that block number; it accounts for checkpointing and slashing rewards for early unstaking.
Data
See this spreadsheet for full details.
Specification & Requirements
To transfer GFI, will execute a multisend transaction from the Goldfinch Council multisig. No smart contract changes will be required for transferring GFI to affected users.
Benefits
Increase trust between the team, protocol participants, and community members.
Drawbacks and Risks
No real downsides except usage of the token, but if the proposal passes, then it is assumed the community believes this is a worthwhile use of the token.
Voting
YES: Transfer GFI to compensate affected users
NO: Do not transfer GFI to compensate affected users