Skip to content

Commit 93a3291

Browse files
committed
only work with array of good workers
1 parent ef52690 commit 93a3291

File tree

2 files changed

+22
-44
lines changed

2 files changed

+22
-44
lines changed

test/000_fullchain.test.ts

Lines changed: 22 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const appPrice = 1000;
3434
const datasetPrice = 1_000_000;
3535
const workerpoolPrice = 1_000_000_000;
3636
const callbackAddress = ethers.Wallet.createRandom().address;
37-
const { results } = buildUtf8ResultAndDigest('result');
37+
const { results, resultDigest } = buildUtf8ResultAndDigest('result');
3838
const { resultsCallback, callbackResultDigest } = buildResultCallbackAndDigest(123);
3939

4040
let 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

419398
async 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)}`;
File renamed without changes.

0 commit comments

Comments
 (0)