@@ -90,8 +90,8 @@ contract Gauge is IGauge, ERC2771Context, ReentrancyGuard {
90
90
function updateGainBalance (address _user ) internal {
91
91
uint256 _originBalance = balanceOf[_user];
92
92
if ( _originBalance > 0 ){
93
- //
94
- uint256 _gainBalance = _originBalance * gain / Factor + _originBalance;
93
+ uint256 _share = shares[_user];
94
+ uint256 _gainBalance = _originBalance * gain / Factor * _share / gainTotalSupply + _originBalance;
95
95
uint256 _oldGainBalance = gainBalanceOf[_user];
96
96
gainBalanceOf[_user] = _gainBalance;
97
97
gainTotalSupply = gainTotalSupply - _oldGainBalance + _gainBalance;
@@ -168,16 +168,16 @@ contract Gauge is IGauge, ERC2771Context, ReentrancyGuard {
168
168
totalSupply -= _amount;
169
169
balanceOf[receipt] -= _amount;
170
170
IERC20 (stakingToken).safeTransfer (receipt, _amount);
171
- updateGainBalance (_recipient );
171
+ updateGainBalance (receipt );
172
172
173
- emit Withdraw (receipt, _amount);
173
+ emit Withdraw (receipt, _amount);
174
174
}
175
175
176
- function _updateRewards (address _account ) internal {
176
+ function _updateRewards (address _user ) internal {
177
177
rewardPerTokenStored = rewardPerToken ();
178
178
lastUpdateTime = lastTimeRewardApplicable ();
179
- rewards[_account ] = earned (_account );
180
- userRewardPerTokenPaid[_account ] = rewardPerTokenStored;
179
+ rewards[_user ] = earned (_user );
180
+ userRewardPerTokenPaid[_user ] = rewardPerTokenStored;
181
181
}
182
182
183
183
/// @inheritdoc IGauge
0 commit comments