@@ -25,6 +25,13 @@ contract EmergencyKyberFeeHandler is IKyberFeeHandler, PermissionGroupsNoModifie
25
25
mapping (address => uint256 ) public rebatePerWallet;
26
26
uint256 public totalRewardWei;
27
27
28
+ struct BRRWei {
29
+ uint256 rewardWei;
30
+ uint256 fullRebateWei;
31
+ uint256 paidRebateWei;
32
+ uint256 burnWei;
33
+ }
34
+
28
35
event HandleFeeFailed (address [] rebateWallets , uint256 [] rebateBpsPerWallet , uint256 feeBRRWei );
29
36
30
37
event HandleFee (
@@ -131,21 +138,27 @@ contract EmergencyKyberFeeHandler is IKyberFeeHandler, PermissionGroupsNoModifie
131
138
uint256 feeBRRWei
132
139
) external virtual {
133
140
require (msg .sender == address (this ), "only Feehandler contract can call this function " );
134
- uint256 rebateWei = feeBRRWei.mul (rebateBps).div (BPS);
135
- uint256 rewardWei = feeBRRWei.mul (rewardBps).div (BPS);
141
+ BRRWei memory brrAmounts;
142
+
143
+ brrAmounts.fullRebateWei = feeBRRWei.mul (rebateBps).div (BPS);
144
+ brrAmounts.rewardWei = feeBRRWei.mul (rewardBps).div (BPS);
136
145
137
- rebateWei = updateRebateValues (rebateWei, rebateWallets, rebateBpsPerWallet);
146
+ brrAmounts.paidRebateWei = updateRebateValues (brrAmounts.fullRebateWei, rebateWallets, rebateBpsPerWallet);
147
+
148
+ brrAmounts.rewardWei = brrAmounts.rewardWei.add (
149
+ brrAmounts.fullRebateWei.sub (brrAmounts.paidRebateWei)
150
+ );
138
151
139
- totalRewardWei = totalRewardWei.add (rewardWei);
152
+ totalRewardWei = totalRewardWei.add (brrAmounts. rewardWei);
140
153
141
- uint burnAmountWei = feeBRRWei.sub (rewardWei).sub (rebateWei );
154
+ uint burnAmountWei = feeBRRWei.sub (brrAmounts. rewardWei).sub (brrAmounts.paidRebateWei );
142
155
143
156
emit FeeDistribution (
144
157
ETH_TOKEN_ADDRESS,
145
158
platformWallet,
146
159
platformFee,
147
- rewardWei,
148
- rebateWei ,
160
+ brrAmounts. rewardWei,
161
+ brrAmounts.paidRebateWei ,
149
162
rebateWallets,
150
163
rebateBpsPerWallet,
151
164
burnAmountWei
0 commit comments