@@ -169,7 +169,13 @@ describe('Market', () => {
169169
170170 const stakeTx = market . stakeWeederToken ( 19_700_000 * 10 ** DECIMALS ) ;
171171
172- await expect ( stakeTx ) . to . emit ( market , 'WeederTokenStaked' ) ;
172+ await expect ( stakeTx )
173+ . to . emit ( weederToken , 'Transfer' )
174+ . withArgs ( owner . address , market . address , 19_700_000 * 10 ** DECIMALS )
175+ . and . to . emit ( market , 'WeederTokenStaked' )
176+ . withArgs ( owner . address , 19_700_000 * 10 ** DECIMALS )
177+ . and . not . to . emit ( market , 'AccountAccrueChanged' )
178+ . and . not . to . emit ( market , 'DividendsCollected' ) ;
173179
174180 const shares = await market . share ( owner . address ) ;
175181
@@ -189,7 +195,13 @@ describe('Market', () => {
189195 . connect ( user1 )
190196 . stakeWeederToken ( 100_000 * 10 ** DECIMALS ) ;
191197
192- await expect ( stakeTx ) . to . emit ( market , 'WeederTokenStaked' ) ;
198+ await expect ( stakeTx )
199+ . to . emit ( weederToken , 'Transfer' )
200+ . withArgs ( user1 . address , market . address , 100_000 * 10 ** DECIMALS )
201+ . and . to . emit ( market , 'WeederTokenStaked' )
202+ . withArgs ( user1 . address , 100_000 * 10 ** DECIMALS )
203+ . and . not . to . emit ( market , 'AccountAccrueChanged' )
204+ . and . not . to . emit ( market , 'DividendsCollected' ) ;
193205
194206 const shares = await market . share ( user1 . address ) ;
195207
@@ -209,7 +221,13 @@ describe('Market', () => {
209221 . connect ( user2 )
210222 . stakeWeederToken ( 100_000 * 10 ** DECIMALS ) ;
211223
212- await expect ( stakeTx ) . to . emit ( market , 'WeederTokenStaked' ) ;
224+ await expect ( stakeTx )
225+ . to . emit ( weederToken , 'Transfer' )
226+ . withArgs ( user2 . address , market . address , 100_000 * 10 ** DECIMALS )
227+ . to . emit ( market , 'WeederTokenStaked' )
228+ . withArgs ( user2 . address , 100_000 * 10 ** DECIMALS )
229+ . and . not . to . emit ( market , 'AccountAccrueChanged' )
230+ . and . not . to . emit ( market , 'DividendsCollected' ) ;
213231
214232 const shares = await market . share ( user2 . address ) ;
215233
@@ -229,7 +247,13 @@ describe('Market', () => {
229247 . connect ( user3 )
230248 . stakeWeederToken ( 100_000 * 10 ** DECIMALS ) ;
231249
232- await expect ( stakeTx ) . to . emit ( market , 'WeederTokenStaked' ) ;
250+ await expect ( stakeTx )
251+ . to . emit ( weederToken , 'Transfer' )
252+ . withArgs ( user3 . address , market . address , 100_000 * 10 ** DECIMALS )
253+ . to . emit ( market , 'WeederTokenStaked' )
254+ . withArgs ( user3 . address , 100_000 * 10 ** DECIMALS )
255+ . and . not . to . emit ( market , 'AccountAccrueChanged' )
256+ . and . not . to . emit ( market , 'DividendsCollected' ) ;
233257
234258 const shares = await market . share ( user3 . address ) ;
235259
@@ -284,18 +308,25 @@ describe('Market', () => {
284308 } ) ;
285309
286310 it ( 'should mint 1000 USDT to vault' , async ( ) => {
287- await usdtToken . mint ( vault . address , '1000' ) . then ( ( tx ) => tx . wait ( ) ) ;
311+ const tx = usdtToken . mint ( vault . address , '1000' ) ;
312+
313+ await expect ( tx )
314+ . to . emit ( usdtToken , 'Transfer' )
315+ . withArgs ( ethers . constants . AddressZero , vault . address , '1000' ) ;
288316
289317 const balance = await usdtToken . balanceOf ( vault . address ) ;
290318
291319 return expect ( balance ) . to . equal ( '1000' ) ;
292320 } ) ;
293321
294322 it ( 'should allow 1000 USDT transfer for market' , async ( ) => {
295- await usdtToken
323+ const tx = await usdtToken
296324 . connect ( vault )
297- . increaseAllowance ( market . address , '1000' )
298- . then ( ( tx ) => tx . wait ( ) ) ;
325+ . increaseAllowance ( market . address , '1000' ) ;
326+
327+ await expect ( tx )
328+ . to . emit ( usdtToken , 'Approval' )
329+ . withArgs ( vault . address , market . address , '1000' ) ;
299330
300331 const allowance = await usdtToken . allowance (
301332 vault . address ,
@@ -356,7 +387,7 @@ describe('Market', () => {
356387 } ) ;
357388
358389 describe ( 'collect dividends' , ( ) => {
359- it ( 'should calculate earned USDT dividends' , async ( ) => {
390+ it ( 'should calculate owner earned USDT dividends' , async ( ) => {
360391 const dividends = await market . availableTokenDividends (
361392 owner . address ,
362393 usdtToken . address ,
@@ -370,7 +401,9 @@ describe('Market', () => {
370401
371402 await expect ( tx )
372403 . to . emit ( market , 'AccountAccrueChanged' )
373- . withArgs ( user1 . address , usdtToken . address , '500000' , owner . address ) ;
404+ . withArgs ( user1 . address , usdtToken . address , '500000' , owner . address )
405+ . and . to . emit ( market , 'DividendsCollected' )
406+ . withArgs ( '5' , usdtToken . address , user1 . address , owner . address ) ;
374407
375408 const accrue = await market . currentAccountAccrue (
376409 user1 . address ,
@@ -385,8 +418,16 @@ describe('Market', () => {
385418
386419 describe ( 'create and complete order 2' , ( ) => {
387420 it ( 'should add order 2 for 1000 USD' , async ( ) => {
388- const tx = await market . createOrder ( '2' , usdtToken . address , '1000' ) ;
389- await tx . wait ( ) ;
421+ const tx = market . createOrder ( '2' , usdtToken . address , '1000' ) ;
422+
423+ await expect ( tx )
424+ . to . emit ( market , 'OrderChanged' )
425+ . withArgs (
426+ '2' ,
427+ [ usdtToken . address , 0 , '1000' , OrderStatus . CREATED ] ,
428+ owner . address ,
429+ ) ;
430+
390431 const order = await market . order ( '2' ) ;
391432
392433 expect ( order . token ) . to . equal ( usdtToken . address ) ;
@@ -396,16 +437,23 @@ describe('Market', () => {
396437 } ) ;
397438
398439 it ( 'should mint 1000 USDT to vault' , async ( ) => {
399- await usdtToken . mint ( vault . address , '1000' ) . then ( ( tx ) => tx . wait ( ) ) ;
440+ const tx = usdtToken . mint ( vault . address , '1000' ) ;
441+
442+ await expect ( tx )
443+ . to . emit ( usdtToken , 'Transfer' )
444+ . withArgs ( ethers . constants . AddressZero , vault . address , '1000' ) ;
400445
401446 return expect ( await usdtToken . balanceOf ( vault . address ) ) . to . equal ( '1000' ) ;
402447 } ) ;
403448
404449 it ( 'should allow 1000 USDT transfer for market' , async ( ) => {
405- await usdtToken
450+ const tx = usdtToken
406451 . connect ( vault )
407- . increaseAllowance ( market . address , '1000' )
408- . then ( ( tx ) => tx . wait ( ) ) ;
452+ . increaseAllowance ( market . address , '1000' ) ;
453+
454+ await expect ( tx )
455+ . to . emit ( usdtToken , 'Approval' )
456+ . withArgs ( vault . address , market . address , '1000' ) ;
409457
410458 const allowance = await usdtToken . allowance (
411459 vault . address ,
@@ -416,9 +464,17 @@ describe('Market', () => {
416464 } ) ;
417465
418466 it ( 'should complete order 2' , async ( ) => {
419- const tx = await market . completeOrder ( '2' , '1000' ) ;
467+ const tx = market . completeOrder ( '2' , '1000' ) ;
420468
421- await tx . wait ( ) ;
469+ await expect ( tx )
470+ . to . emit ( market , 'OrderChanged' )
471+ . withArgs (
472+ '2' ,
473+ [ usdtToken . address , '1000' , '1000' , OrderStatus . COMPLETED ] ,
474+ owner . address ,
475+ )
476+ . and . to . emit ( market , 'MarketAccrueChanged' )
477+ . withArgs ( usdtToken . address , '1000000' , owner . address ) ;
422478
423479 const accrue = await market . currentMarketAccrue ( usdtToken . address ) ;
424480
@@ -430,7 +486,7 @@ describe('Market', () => {
430486 } ) ;
431487
432488 describe ( 'collect all dividends' , ( ) => {
433- it ( 'should calculate user 1 earned USDT dividends' , async ( ) => {
489+ it ( 'should calculate user_1 earned USDT dividends' , async ( ) => {
434490 const dividends = await market . availableTokenDividends (
435491 user1 . address ,
436492 usdtToken . address ,
@@ -439,13 +495,14 @@ describe('Market', () => {
439495 return expect ( dividends ) . to . equal ( '5' ) ;
440496 } ) ;
441497
442- it ( 'should collect user 1 USDT dividends' , async ( ) => {
443- const tx = await market . accrueTokenDividends (
444- user1 . address ,
445- usdtToken . address ,
446- ) ;
498+ it ( 'should collect user_1 USDT dividends' , async ( ) => {
499+ const tx = market . accrueTokenDividends ( user1 . address , usdtToken . address ) ;
447500
448- await tx . wait ( ) ;
501+ await expect ( tx )
502+ . to . emit ( market , 'AccountAccrueChanged' )
503+ . withArgs ( user1 . address , usdtToken . address , '1000000' , owner . address )
504+ . and . to . emit ( market , 'DividendsCollected' )
505+ . withArgs ( '5' , usdtToken . address , user1 . address , owner . address ) ;
449506
450507 const accrue = await market . currentAccountAccrue (
451508 user1 . address ,
@@ -457,7 +514,7 @@ describe('Market', () => {
457514 return expect ( accrue ) . to . equal ( '1000000' ) ;
458515 } ) ;
459516
460- it ( 'should calculate user 2 earned USDT dividends' , async ( ) => {
517+ it ( 'should calculate user_2 earned USDT dividends' , async ( ) => {
461518 const dividends = await market . availableTokenDividends (
462519 user2 . address ,
463520 usdtToken . address ,
@@ -466,24 +523,26 @@ describe('Market', () => {
466523 return expect ( dividends ) . to . equal ( '10' ) ;
467524 } ) ;
468525
469- it ( 'should collect user 2 USDT dividends' , async ( ) => {
526+ it ( 'should collect user_2 USDT dividends' , async ( ) => {
470527 const tx = market . accrueTokenDividends ( user2 . address , usdtToken . address ) ;
471528
472529 await expect ( tx )
473530 . to . emit ( market , 'AccountAccrueChanged' )
474- . withArgs ( user2 . address , usdtToken . address , '1000000' , owner . address ) ;
531+ . withArgs ( user2 . address , usdtToken . address , '1000000' , owner . address )
532+ . and . to . emit ( market , 'DividendsCollected' )
533+ . withArgs ( '10' , usdtToken . address , user2 . address , owner . address ) ;
475534
476535 const accrue = await market . currentAccountAccrue (
477536 user2 . address ,
478537 usdtToken . address ,
479538 ) ;
480539
481- expect ( await usdtToken . balanceOf ( user1 . address ) ) . to . equal ( '10' ) ;
540+ expect ( await usdtToken . balanceOf ( user2 . address ) ) . to . equal ( '10' ) ;
482541 expect ( await usdtToken . balanceOf ( market . address ) ) . to . equal ( '1980' ) ;
483542 return expect ( accrue ) . to . equal ( '1000000' ) ;
484543 } ) ;
485544
486- it ( 'should calculate user 3 earned USDT dividends' , async ( ) => {
545+ it ( 'should calculate user_3 earned USDT dividends' , async ( ) => {
487546 const dividends = await market . availableTokenDividends (
488547 user3 . address ,
489548 usdtToken . address ,
@@ -492,19 +551,21 @@ describe('Market', () => {
492551 return expect ( dividends ) . to . equal ( '10' ) ;
493552 } ) ;
494553
495- it ( 'should collect user 3 USDT dividends' , async ( ) => {
554+ it ( 'should collect user_3 USDT dividends' , async ( ) => {
496555 const tx = market . accrueTokenDividends ( user3 . address , usdtToken . address ) ;
497556
498557 await expect ( tx )
499558 . to . emit ( market , 'AccountAccrueChanged' )
500- . withArgs ( user3 . address , usdtToken . address , '1000000' , owner . address ) ;
559+ . withArgs ( user3 . address , usdtToken . address , '1000000' , owner . address )
560+ . and . to . emit ( market , 'DividendsCollected' )
561+ . withArgs ( '10' , usdtToken . address , user3 . address , owner . address ) ;
501562
502563 const accrue = await market . currentAccountAccrue (
503564 user3 . address ,
504565 usdtToken . address ,
505566 ) ;
506567
507- expect ( await usdtToken . balanceOf ( user1 . address ) ) . to . equal ( '10' ) ;
568+ expect ( await usdtToken . balanceOf ( user3 . address ) ) . to . equal ( '10' ) ;
508569 expect ( await usdtToken . balanceOf ( market . address ) ) . to . equal ( '1970' ) ;
509570 return expect ( accrue ) . to . equal ( '1000000' ) ;
510571 } ) ;
@@ -514,25 +575,32 @@ describe('Market', () => {
514575 it ( 'should transfer 100k weeder tokens from owner to user 1' , async ( ) => {
515576 expect ( await usdtToken . balanceOf ( owner . address ) ) . to . equal ( '0' ) ;
516577
517- const tx = weederToken . transfer ( user1 . address , 100_000 * 10 ** DECIMALS ) ;
578+ const tx = market . redeemWeederToken ( 100_000 * 10 ** DECIMALS ) ;
518579
519580 await expect ( tx )
520581 . to . emit ( market , 'AccountAccrueChanged' )
521- . withArgs ( owner . address , usdtToken . address , weederToken . address , [
522- '2000' ,
523- ] )
524- . and . to . emit ( market , 'AccountAccrueChanged' )
525- . withArgs ( user1 . address , usdtToken . address , weederToken . address , [
526- '2000' ,
527- ] ) ;
582+ . withArgs ( owner . address , usdtToken . address , '1000000' , owner . address )
583+ . and . to . emit ( market , 'DividendsCollected' )
584+ . withArgs ( '1970' , usdtToken . address , owner . address , owner . address )
585+ . and . to . emit ( market , 'WeederTokenRedeemed' )
586+ . withArgs ( owner . address , 100_000 * 10 ** DECIMALS ) ;
587+
588+ const txTransfer = weederToken . transfer (
589+ user1 . address ,
590+ 100_000 * 10 ** DECIMALS ,
591+ ) ;
592+
593+ await expect ( txTransfer )
594+ . to . emit ( weederToken , 'Transfer' )
595+ . withArgs ( owner . address , user1 . address , 100_000 * 10 ** DECIMALS ) ;
528596
529597 const ownerWeederBalance = await weederToken . balanceOf ( owner . address ) ;
530598 const user1WeederBalance = await weederToken . balanceOf ( user1 . address ) ;
531599 const ownerUsdtBalance = await usdtToken . balanceOf ( owner . address ) ;
532600 const user1UsdtBalance = await usdtToken . balanceOf ( user1 . address ) ;
533601
534- expect ( ownerWeederBalance ) . to . equal ( 19_600_000 * 10 ** DECIMALS ) ;
535- expect ( user1WeederBalance ) . to . equal ( 200_000 * 10 ** DECIMALS ) ;
602+ expect ( ownerWeederBalance ) . to . equal ( 0 ) ;
603+ expect ( user1WeederBalance ) . to . equal ( 100_000 * 10 ** DECIMALS ) ;
536604 expect ( ownerUsdtBalance ) . to . equal ( 1970 ) ;
537605 return expect ( user1UsdtBalance ) . to . equal ( 10 ) ;
538606 } ) ;
0 commit comments