@@ -8,17 +8,7 @@ const TestToken = artifacts.require('Token.sol')
88const Helper = require ( '../helper.js' )
99const nwHelper = require ( './networkHelper.js' )
1010const BN = web3 . utils . BN
11- const {
12- BPS ,
13- precisionUnits,
14- ethDecimals,
15- ethAddress,
16- zeroAddress,
17- emptyHint,
18- zeroBN,
19- MAX_QTY ,
20- MAX_RATE
21- } = require ( '../helper.js' )
11+ const { BPS , precisionUnits, ethDecimals, ethAddress, zeroAddress, emptyHint, zeroBN, MAX_QTY , MAX_RATE } = require ( '../helper.js' )
2212const { expectEvent, expectRevert} = require ( '@openzeppelin/test-helpers' )
2313
2414let admin
@@ -45,10 +35,7 @@ contract('EmergencyKyberFeeHandler', function (accounts) {
4535
4636 describe ( 'valid constructor params' , async ( ) => {
4737 it ( 'test total BRR value should be BPS' , async ( ) => {
48- await expectRevert (
49- EmergencyKyberFeeHandler . new ( admin , network , rewardBps , rebateBps , burnBps . add ( new BN ( 1 ) ) ) ,
50- 'Bad BRR values'
51- )
38+ await expectRevert ( EmergencyKyberFeeHandler . new ( admin , network , rewardBps , rebateBps , burnBps . add ( new BN ( 1 ) ) ) , 'Bad BRR values' )
5239 } )
5340
5441 it ( 'test total BRR value should not be overflow' , async ( ) => {
@@ -84,100 +71,112 @@ contract('EmergencyKyberFeeHandler', function (accounts) {
8471 } )
8572
8673 it ( 'should handle Fee' , async ( ) => {
87- let platformFeeWei = new BN ( 10 ) . pow ( new BN ( 17 ) )
74+ let platformFee = new BN ( 10 ) . pow ( new BN ( 17 ) )
8875 let fee = new BN ( 10 ) . pow ( new BN ( 18 ) )
8976
9077 let initalState = await getFeeHanlerState ( feeHandler , rebateWallets , platformWallet )
91- let txResult = await feeHandler . handleFees ( rebateWallets , rebateBpsPerWallet , platformWallet , platformFeeWei , {
92- from : network ,
93- value : fee
94- } )
78+ let txResult = await feeHandler . handleFees (
79+ ethAddress ,
80+ rebateWallets ,
81+ rebateBpsPerWallet ,
82+ platformWallet ,
83+ platformFee ,
84+ fee . sub ( platformFee ) ,
85+ {
86+ from : network ,
87+ value : fee
88+ }
89+ )
9590
96- let feeBrrWei = fee . sub ( platformFeeWei )
91+ let feeBrrWei = fee . sub ( platformFee )
9792 let rewardWei = feeBrrWei . mul ( rewardBps ) . div ( BPS )
9893
9994 await expectEvent ( txResult , 'HandleFee' , {
10095 platformWallet,
101- platformFeeWei,
96+ platformFeeWei : platformFee ,
10297 feeBRRWei : feeBrrWei
10398 } )
10499
105100 await expectEvent ( txResult , 'BRRFeeDistribution' , {
106101 rewardWei : rewardWei
107102 } )
108103
109- await assertStateAfterHandlerFees (
110- feeHandler ,
111- initalState ,
112- rebateWallets ,
113- rebateBpsPerWallet ,
114- platformWallet ,
115- platformFeeWei ,
116- fee
117- )
104+ await assertStateAfterHandlerFees ( feeHandler , initalState , rebateWallets , rebateBpsPerWallet , platformWallet , platformFee , fee )
118105 } )
119106
120107 it ( 'should handle Fee with only platform Fee' , async ( ) => {
121- let platformFeeWei = new BN ( 10 ) . pow ( new BN ( 17 ) )
108+ let platformFee = new BN ( 10 ) . pow ( new BN ( 17 ) )
122109 let initalState = await getFeeHanlerState ( feeHandler , rebateWallets , platformWallet )
123- let txResult = await feeHandler . handleFees ( rebateWallets , rebateBpsPerWallet , platformWallet , platformFeeWei , {
110+ let txResult = await feeHandler . handleFees ( ethAddress , rebateWallets , rebateBpsPerWallet , platformWallet , platformFee , zeroBN , {
124111 from : network ,
125- value : platformFeeWei
112+ value : platformFee
126113 } )
127114
128115 await expectEvent ( txResult , 'HandleFee' , {
129116 platformWallet,
130- platformFeeWei,
131- feeBRRWei : new BN ( 0 ) ,
117+ platformFeeWei : platformFee ,
118+ feeBRRWei : new BN ( 0 )
132119 } )
133120 await assertStateAfterHandlerFees (
134121 feeHandler ,
135122 initalState ,
136123 rebateWallets ,
137124 rebateBpsPerWallet ,
138125 platformWallet ,
139- platformFeeWei ,
140- platformFeeWei
126+ platformFee ,
127+ platformFee
141128 )
142129 } )
143130
144131 it ( 'test failtolerance when calculateAndRecordFeeData failed' , async ( ) => {
145132 feeHandler = await MockEmergencyFeeHandler . new ( admin , network , rewardBps , rebateBps , burnBps )
146- let platformFeeWei = new BN ( 10 ) . pow ( new BN ( 17 ) )
133+ let platformFee = new BN ( 10 ) . pow ( new BN ( 17 ) )
147134 let fee = new BN ( 10 ) . pow ( new BN ( 18 ) )
148135
149136 let initalFeePerPlatformWallet = await feeHandler . feePerPlatformWallet ( platformWallet )
150- let txResult = await feeHandler . handleFees ( rebateWallets , rebateBpsPerWallet , platformWallet , platformFeeWei , {
151- from : network ,
152- value : fee
153- } )
137+ let txResult = await feeHandler . handleFees (
138+ ethAddress ,
139+ rebateWallets ,
140+ rebateBpsPerWallet ,
141+ platformWallet ,
142+ platformFee ,
143+ fee . sub ( platformFee ) ,
144+ {
145+ from : network ,
146+ value : fee
147+ }
148+ )
154149
155150 await expectEvent ( txResult , 'HandleFeeFailed' , {
156- feeBRRWei : fee . sub ( platformFeeWei )
151+ feeBRRWei : fee . sub ( platformFee )
157152 } )
158153 //platform fee should update as normal
159154 let afterFeePerPlatformWallet = await feeHandler . feePerPlatformWallet ( platformWallet )
160- Helper . assertEqual (
161- initalFeePerPlatformWallet . add ( platformFeeWei ) ,
162- afterFeePerPlatformWallet ,
163- 'unexpected feePerPlatformWallet'
164- )
155+ Helper . assertEqual ( initalFeePerPlatformWallet . add ( platformFee ) , afterFeePerPlatformWallet , 'unexpected feePerPlatformWallet' )
165156 } )
166157 } )
167158
168159 describe ( 'test withdraw and claimPlatformFee function' , async ( ) => {
169160 let availableFee
170161 let totalBalance
171- let platformFeeWei
162+ let platformFee
172163 before ( 'create new feehandler' , async ( ) => {
173164 feeHandler = await EmergencyKyberFeeHandler . new ( admin , network , rewardBps , rebateBps , burnBps )
174- platformFeeWei = new BN ( 10 ) . pow ( new BN ( 17 ) )
165+ platformFee = new BN ( 10 ) . pow ( new BN ( 17 ) )
175166 totalBalance = new BN ( 10 ) . pow ( new BN ( 18 ) )
176- await feeHandler . handleFees ( rebateWallets , rebateBpsPerWallet , platformWallet , platformFeeWei , {
177- from : network ,
178- value : totalBalance
179- } )
180- availableFee = totalBalance . sub ( platformFeeWei )
167+ await feeHandler . handleFees (
168+ ethAddress ,
169+ rebateWallets ,
170+ rebateBpsPerWallet ,
171+ platformWallet ,
172+ platformFee ,
173+ totalBalance . sub ( platformFee ) ,
174+ {
175+ from : network ,
176+ value : totalBalance
177+ }
178+ )
179+ availableFee = totalBalance . sub ( platformFee )
181180 } )
182181
183182 it ( 'test withdraw revert if not admin' , async ( ) => {
@@ -204,13 +203,14 @@ contract('EmergencyKyberFeeHandler', function (accounts) {
204203 let txResult = await feeHandler . claimPlatformFee ( platformWallet )
205204 expectEvent ( txResult , 'PlatformFeePaid' , {
206205 platformWallet : platformWallet ,
207- amountWei : platformFeeWei . sub ( new BN ( 1 ) )
206+ amount : platformFee . sub ( new BN ( 1 ) ) ,
207+ token : ethAddress
208208 } )
209209 let afterBalance = await Helper . getBalancePromise ( platformWallet )
210- Helper . assertEqual ( initialBalance . add ( platformFeeWei ) . sub ( new BN ( 1 ) ) , afterBalance , 'unexpected balance' )
210+ Helper . assertEqual ( initialBalance . add ( platformFee ) . sub ( new BN ( 1 ) ) , afterBalance , 'unexpected balance' )
211211 let afterTotalPlatformFee = await feeHandler . totalPlatformFeeWei ( )
212212 Helper . assertEqual (
213- initialTotalPlatformFee . sub ( platformFeeWei . sub ( new BN ( 1 ) ) ) ,
213+ initialTotalPlatformFee . sub ( platformFee . sub ( new BN ( 1 ) ) ) ,
214214 afterTotalPlatformFee ,
215215 'total balance platform fee wei is not update as expected'
216216 )
@@ -220,7 +220,7 @@ contract('EmergencyKyberFeeHandler', function (accounts) {
220220 it ( 'should revert with not implemented method from IKyberFeeHandler' , async ( ) => {
221221 feeHandler = await EmergencyKyberFeeHandler . new ( admin , network , rewardBps , rebateBps , burnBps )
222222 await expectRevert ( feeHandler . claimReserveRebate ( rebateWallets [ 0 ] ) , 'not implemented' )
223- await expectRevert ( feeHandler . claimStakerReward ( rebateWallets [ 0 ] , new BN ( 0 ) , new BN ( 0 ) ) , 'not implemented' )
223+ await expectRevert ( feeHandler . claimStakerReward ( rebateWallets [ 0 ] , new BN ( 0 ) ) , 'not implemented' )
224224 } )
225225
226226 describe ( 'test integration with real network' , async ( ) => {
@@ -311,15 +311,7 @@ contract('EmergencyKyberFeeHandler', function (accounts) {
311311 . mul ( networkFeeBps )
312312 . div ( BPS )
313313 . add ( platformFeeWei )
314- await assertStateAfterHandlerFees (
315- feeHandler ,
316- initalState ,
317- [ rebateWallet ] ,
318- [ BPS ] ,
319- platformWallet ,
320- platformFeeWei ,
321- fee
322- )
314+ await assertStateAfterHandlerFees ( feeHandler , initalState , [ rebateWallet ] , [ BPS ] , platformWallet , platformFeeWei , fee )
323315 } )
324316 } )
325317} )
@@ -361,10 +353,6 @@ async function assertStateAfterHandlerFees (
361353
362354 for ( let i = 0 ; i < rebateWallets . length ; i ++ ) {
363355 let rebatePerWallet = rebateWei . mul ( rebateBpsPerWallet [ i ] ) . div ( BPS )
364- Helper . assertEqual (
365- rebatePerWallet . add ( initalState . rebatePerWallet [ i ] ) ,
366- afterState . rebatePerWallet [ i ] ,
367- 'unpected rebatePerWallet'
368- )
356+ Helper . assertEqual ( rebatePerWallet . add ( initalState . rebatePerWallet [ i ] ) , afterState . rebatePerWallet [ i ] , 'unpected rebatePerWallet' )
369357 }
370358}
0 commit comments