@@ -34,7 +34,7 @@ const appPrice = 1000;
3434const datasetPrice = 1_000_000 ;
3535const workerpoolPrice = 1_000_000_000 ;
3636const callbackAddress = ethers . Wallet . createRandom ( ) . address ;
37- const { results } = buildUtf8ResultAndDigest ( 'result' ) ;
37+ const { results, resultDigest } = buildUtf8ResultAndDigest ( 'result' ) ;
3838const { resultsCallback, callbackResultDigest } = buildResultCallbackAndDigest ( 123 ) ;
3939
4040let proxyAddress : string ;
@@ -296,8 +296,8 @@ describe('Integration tests', function () {
296296
297297 it ( '[5] No sponsorship, no beneficiary, no callback, no BoT, no replication' , async function ( ) { } ) ;
298298
299- describe . only ( 'Integration tests array of worker' , function ( ) {
300- for ( let workerNumber = 1 ; workerNumber < 5 ; workerNumber ++ ) {
299+ describe ( 'Integration tests array of worker' , function ( ) {
300+ for ( let workerNumber = 1 ; workerNumber < 6 ; workerNumber ++ ) {
301301 it ( `[6.${ workerNumber } ] No sponsorship, no beneficiary, no callback, no BoT, up to ${ workerNumber } workers` , async function ( ) {
302302 const volume = 1 ;
303303 const disposableWokers = [ worker1 , worker2 , worker3 , worker4 , worker5 ] ;
@@ -312,9 +312,8 @@ describe('Integration tests', function () {
312312 requester : requester . address ,
313313 tag : standardDealTag ,
314314 beneficiary : beneficiary . address ,
315- callback : callbackAddress ,
316315 volume,
317- trust : workerNumber ,
316+ trust : workerNumber ** 2 - 1 ,
318317 } ) ;
319318 const { dealId, dealPrice, schedulerStakePerDeal } =
320319 await iexecWrapper . signAndMatchOrders ( ...orders . toArray ( ) ) ;
@@ -340,46 +339,31 @@ describe('Integration tests', function () {
340339 proxyBalance : dealPrice + schedulerStakePerDeal ,
341340 accounts,
342341 } ) ;
342+ for ( let i = 0 ; i < workerNumber ; i ++ ) {
343+ expect ( await iexecPoco . viewScore ( workers [ i ] . address ) ) . to . be . equal ( 0 ) ;
344+ }
343345 const taskId = await iexecWrapper . initializeTask ( dealId , 0 ) ;
344346 // Finalize each task and check balance changes.
345- let workerStake : number = 0 ;
347+ const workerStake = await iexecPoco
348+ . viewDeal ( dealId )
349+ . then ( ( deal ) => deal . workerStake . toNumber ( ) ) ;
350+
351+ for ( let i = 0 ; i < workerNumber ; i ++ ) {
352+ await iexecWrapper . contributeToTask ( dealId , 0 , resultDigest , workers [ i ] ) ;
353+ }
346354 for ( let i = 0 ; i < workerNumber ; i ++ ) {
347- console . log ( 'worker ' + i + ' is contributing' ) ;
348- const { workerStakePerTask } = await iexecWrapper . contributeToTask (
349- dealId ,
350- 0 ,
351- callbackResultDigest ,
352- workers [ i ] ,
353- ) ;
354355 await iexecPoco
355356 . connect ( workers [ i ] )
356- . reveal ( taskId , callbackResultDigest )
357+ . reveal ( taskId , resultDigest )
357358 . then ( ( tx ) => tx . wait ( ) ) ;
358- workerStake = workerStakePerTask ;
359359 }
360360 await iexecPoco
361361 . connect ( scheduler )
362- . finalize ( taskId , results , resultsCallback )
362+ . finalize ( taskId , results , '0x' )
363363 . then ( ( tx ) => tx . wait ( ) ) ;
364364 expect ( ( await iexecPoco . viewTask ( taskId ) ) . status ) . to . equal (
365365 TaskStatusEnum . COMPLETED ,
366366 ) ;
367- // Multiply amount by the number of finalized tasks to correctly compute
368- // stake and reward amounts.
369-
370- // For each task, balances change such as:
371- // - Requester
372- // - frozen: frozenBefore - taskPrice
373- // - Scheduler
374- // - balance: balanceBefore + taskStake + taskReward
375- // - frozen: frozenBefore - taskStake
376- // - App
377- // - balance: balance before + appPrice
378- // - Dataset
379- // - balance: balance before + datasetPrice
380- // - Worker:
381- // - balance: balance before + taskStake + taskReward
382- // - frozen: frozen before - taskStake
383367 accounts = [
384368 { signer : requester , balance : 0 , frozen : dealPrice - taskPrice } ,
385369 {
@@ -393,34 +377,28 @@ describe('Integration tests', function () {
393377 for ( let i = 0 ; i < workerNumber ; i ++ ) {
394378 accounts . push ( {
395379 signer : disposableWokers [ i ] ,
396- balance : workerStake + workerRewardPerTask ,
380+ balance : workerStake + workerRewardPerTask / workerNumber ,
397381 frozen : 0 ,
398382 } ) ;
399383 }
400384 await checkBalancesAndFrozens ( {
401385 proxyBalance : 0 ,
402386 accounts,
403387 } ) ;
388+ for ( let i = 0 ; i < workerNumber ; i ++ ) {
389+ if ( workerNumber == 1 ) {
390+ expect ( await iexecPoco . viewScore ( workers [ i ] . address ) ) . to . be . equal ( 0 ) ;
391+ }
392+ }
404393 } ) ;
405394 }
406395 } ) ;
407-
408- it ( '[6] No sponsorship, no beneficiary, no callback, no BoT, up to 5 workers' , async function ( ) {
409- const volume = 1 ;
410- let workers = [ ] ;
411- const disposableWokers = [ worker1 , worker2 , worker3 , worker4 , worker5 ] ;
412-
413- for ( let workerNumber = 1 ; workerNumber < 3 ; workerNumber ++ ) { }
414- } ) ;
415-
416- it ( '[7] No sponsorship, no beneficiary, no callback, no BoT, up to 5 workers with 1 bad actor' , async function ( ) { } ) ;
417396} ) ;
418397
419398async function checkBalancesAndFrozens ( args : {
420399 proxyBalance : number ;
421400 accounts : { signer : SignerWithAddress ; balance : number ; frozen : number } [ ] ;
422401} ) {
423- console . log ( 'Checking balances... => proxy first' ) ;
424402 expect ( await iexecPoco . balanceOf ( proxyAddress ) ) . to . equal ( args . proxyBalance ) ;
425403 for ( const account of args . accounts ) {
426404 const message = `Failed with account at index ${ args . accounts . indexOf ( account ) } ` ;
0 commit comments