@@ -1427,8 +1427,13 @@ describe('Redistribution', function () {
14271427
14281428 await mineNBlocks ( phaseLength ) ;
14291429
1430- expect ( await r_node_1 . isWinner ( overlay_1_n_25 ) ) . to . be . false ;
1431- expect ( await r_node_5 . isWinner ( overlay_5 ) ) . to . be . true ;
1430+ // Equal-stake lottery: exactly one of the two truth-tellers is the winner.
1431+ const node1Wins = await r_node_1 . isWinner ( overlay_1_n_25 ) ;
1432+ const node5Wins = await r_node_5 . isWinner ( overlay_5 ) ;
1433+ expect ( node1Wins ) . to . not . eq ( node5Wins ) ;
1434+
1435+ const winnerOwner = node5Wins ? node_5 : node_1 ;
1436+ const winnerOverlay = node5Wins ? overlay_5 : overlay_1_n_25 ;
14321437
14331438 const tx2 = await r_node_5 . claim ( proof1 , proof2 , proofLast ) ;
14341439 const receipt2 = await tx2 . wait ( ) ;
@@ -1453,16 +1458,15 @@ describe('Redistribution', function () {
14531458 ( receipt2 . blockNumber - copyBatch . tx . blockNumber ) * price1 * 2 ** copyBatch . postageDepth +
14541459 ( receipt2 . blockNumber - stampCreatedBlock ) * price1 * 2 ** batch . depth ; // batch in the beforeHook
14551460
1456- expect ( await token . balanceOf ( node_5 ) ) . to . be . eq ( expectedPotPayout ) ;
1461+ expect ( await token . balanceOf ( winnerOwner ) ) . to . be . eq ( expectedPotPayout ) ;
14571462
14581463 expect ( CountCommitsEvent . args [ 0 ] ) . to . be . eq ( 2 ) ;
14591464 expect ( CountRevealsEvent . args [ 0 ] ) . to . be . eq ( 2 ) ;
14601465
1461- expect ( WinnerSelectedEvent . args [ 0 ] . owner ) . to . be . eq ( node_5 ) ;
1462- expect ( WinnerSelectedEvent . args [ 0 ] . overlay ) . to . be . eq ( overlay_5 ) ;
1463- expect ( WinnerSelectedEvent . args [ 0 ] . stake ) . to . be . eq ( effectiveStakeAmount_5 ) ;
1466+ expect ( WinnerSelectedEvent . args [ 0 ] . owner ) . to . be . eq ( winnerOwner ) ;
1467+ expect ( WinnerSelectedEvent . args [ 0 ] . overlay ) . to . be . eq ( winnerOverlay ) ;
14641468 expect ( WinnerSelectedEvent . args [ 0 ] . stakeDensity ) . to . be . eq (
1465- calculateStakeDensity ( effectiveStakeAmount_5 , Number ( depth_5 ) )
1469+ calculateStakeDensity ( WinnerSelectedEvent . args [ 0 ] . stake . toString ( ) , Number ( depth_5 ) )
14661470 ) ;
14671471 expect ( WinnerSelectedEvent . args [ 0 ] . hash ) . to . be . eq ( hash_5 ) ;
14681472 expect ( WinnerSelectedEvent . args [ 0 ] . depth ) . to . be . eq ( parseInt ( depth_5 ) ) ;
@@ -1495,13 +1499,16 @@ describe('Redistribution', function () {
14951499
14961500 await mineNBlocks ( phaseLength ) ;
14971501
1502+ const node5Wins = await r_node_5 . isWinner ( overlay_5 ) ;
1503+ const winnerOwner = node5Wins ? node_5 : node_1 ;
1504+
14981505 const tx2 = await r_node_5 . claim ( proof1 , proof2 , proofLast ) ;
14991506 const receipt2 = await tx2 . wait ( ) ;
15001507
15011508 const expectedPotPayout =
15021509 ( receipt2 . blockNumber - copyBatch . tx . blockNumber ) * price1 * 2 ** copyBatch . postageDepth +
15031510 ( receipt2 . blockNumber - stampCreatedBlock ) * price1 * 2 ** batch . depth ; // batch in the beforeHook
1504- expect ( await token . balanceOf ( node_5 ) ) . to . be . eq ( expectedPotPayout ) ;
1511+ expect ( await token . balanceOf ( winnerOwner ) ) . to . be . eq ( expectedPotPayout ) ;
15051512
15061513 const sr = await ethers . getContract ( 'StakeRegistry' ) ;
15071514
0 commit comments