git.delta.rocks / unique-network / refs/commits / 343d804c01f9

difftreelog

fix review

Max Andreev2022-09-15parent: #1a380ae.patch.diff
in: master

3 files changed

modifiedtests/src/app-promotion.test.tsdiffbeforeafterboth
414 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});414 const collection = await helper.nft.mintCollection(collectionOwner, {name: 'New', description: 'New Collection', tokenPrefix: 'Promotion'});
415 415
416 await collection.burn(collectionOwner);416 await collection.burn(collectionOwner);
417 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(collection.collectionId))).to.be.rejected;417 await expect(helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.stopSponsoringCollection', [collection.collectionId], true)).to.be.rejectedWith('common.CollectionNotFound');
418 await expect(helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.stopSponsoringCollection(999999999))).to.be.rejected;418 await expect(helper.executeExtrinsic(palletAdmin, 'api.tx.appPromotion.stopSponsoringCollection', [999_999_999], true)).to.be.rejectedWith('common.CollectionNotFound');
419 });419 });
420});420});
421421
459459
460 // new sponsor is pallet address460 // new sponsor is pallet address
461 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.true; 461 expect(await contractHelper.methods.hasSponsor(flipper.options.address).call()).to.be.true;
462 expect((await helper.api!.query.evmContractHelpers.owner(flipper.options.address)).toJSON()).to.be.equal(contractOwner); 462 expect((await helper.callRpc('api.query.evmContractHelpers.owner', [flipper.options.address])).toJSON()).to.be.equal(contractOwner);
463 expect((await helper.api!.query.evmContractHelpers.sponsoring(flipper.options.address)).toJSON()).to.deep.equal({463 expect((await helper.callRpc('api.query.evmContractHelpers.sponsoring', [flipper.options.address])).toJSON()).to.deep.equal({
464 confirmed: {464 confirmed: {
465 substrate: palletAddress,465 substrate: palletAddress,
466 },466 },
602602
603 itSub('can not be called by non admin', async ({helper}) => {603 itSub('can not be called by non admin', async ({helper}) => {
604 const nonAdmin = accounts.pop()!;604 const nonAdmin = accounts.pop()!;
605 await expect(helper.signTransaction(nonAdmin, helper.api!.tx.appPromotion.payoutStakers(100))).to.be.rejected;605 await expect(helper.admin.payoutStakers(nonAdmin, 100)).to.be.rejectedWith('appPromotion.NoPermission');
606 });606 });
607607
608 itSub('should increase total staked', async ({helper}) => {608 itSub('should increase total staked', async ({helper}) => {
613 // Wait for rewards and pay613 // Wait for rewards and pay
614 const [stakedInBlock] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});614 const [stakedInBlock] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
615 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock.block));615 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock.block));
616 const totalPayout = (await helper.sudo.payoutStakers(palletAdmin, 100)).reduce((prev, payout) => prev + payout.payout, 0n);616 const totalPayout = (await helper.admin.payoutStakers(palletAdmin, 100)).reduce((prev, payout) => prev + payout.payout, 0n);
617617
618 const totalStakedAfter = await helper.staking.getTotalStaked();618 const totalStakedAfter = await helper.staking.getTotalStaked();
619 expect(totalStakedAfter).to.equal(totalStakedBefore + (100n * nominal) + totalPayout);619 expect(totalStakedAfter).to.equal(totalStakedBefore + (100n * nominal) + totalPayout);
634 const [_, stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});634 const [_, stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
635 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));635 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));
636636
637 const payoutToStaker = (await helper.sudo.payoutStakers(palletAdmin, 100)).find((payout) => payout.staker === staker.address)?.payout;637 const payoutToStaker = (await helper.admin.payoutStakers(palletAdmin, 100)).find((payout) => payout.staker === staker.address)?.payout;
638 expect(payoutToStaker + 300n * nominal).to.equal(calculateIncome(300n * nominal, 10n));638 expect(payoutToStaker + 300n * nominal).to.equal(calculateIncome(300n * nominal, 10n));
639639
640 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});640 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
650 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});650 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
651 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);651 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);
652652
653 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));653 await helper.admin.payoutStakers(palletAdmin, 100);
654 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});654 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
655 const frozenBalanceShouldBe = calculateIncome(100n * nominal, 10n, 2);655 const frozenBalanceShouldBe = calculateIncome(100n * nominal, 10n, 2);
656 expect(stake.amount).to.be.equal(frozenBalanceShouldBe);656 expect(stake.amount).to.be.equal(frozenBalanceShouldBe);
670 670
671 // so he did not receive any rewards671 // so he did not receive any rewards
672 const totalBalanceBefore = await helper.balance.getSubstrate(staker.address);672 const totalBalanceBefore = await helper.balance.getSubstrate(staker.address);
673 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));673 await helper.admin.payoutStakers(palletAdmin, 100);
674 const totalBalanceAfter = await helper.balance.getSubstrate(staker.address);674 const totalBalanceAfter = await helper.balance.getSubstrate(staker.address);
675675
676 expect(totalBalanceBefore).to.be.equal(totalBalanceAfter);676 expect(totalBalanceBefore).to.be.equal(totalBalanceAfter);
684 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});684 let [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
685 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block));685 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block));
686 686
687 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));687 await helper.admin.payoutStakers(palletAdmin, 100);
688 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});688 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
689 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n));689 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n));
690 690
691 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);691 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block) + LOCKING_PERIOD);
692 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));692 await helper.admin.payoutStakers(palletAdmin, 100);
693 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});693 [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});
694 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n, 2));694 expect(stake.amount).to.equal(calculateIncome(100n * nominal, 10n, 2));
695 });695 });
703 await Promise.all(oneHundredStakers.map(staker => helper.staking.stake(staker, 100n * nominal)));703 await Promise.all(oneHundredStakers.map(staker => helper.staking.stake(staker, 100n * nominal)));
704 }704 }
705 await helper.wait.newBlocks(40);705 await helper.wait.newBlocks(40);
706 const result = await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));706 await helper.admin.payoutStakers(palletAdmin, 100);
707 });707 });
708708
709 itSub.skip('can handle 40.000 rewards', async ({helper}) => {709 itSub.skip('can handle 40.000 rewards', async ({helper}) => {
modifiedtests/src/eth/util/playgrounds/unique.dev.tsdiffbeforeafterboth
--- a/tests/src/eth/util/playgrounds/unique.dev.ts
+++ b/tests/src/eth/util/playgrounds/unique.dev.ts
@@ -201,6 +201,9 @@
 
   async deployFlipper(signer: string): Promise<Contract> {
     return await this.helper.ethContract.deployByCode(signer, 'Flipper', `
+    // SPDX-License-Identifier: UNLICENSED
+    pragma solidity ^0.8.6;
+
     contract Flipper {
       bool value = false;
       function flip() public {
modifiedtests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.dev.ts
+++ b/tests/src/util/playgrounds/unique.dev.ts
@@ -60,13 +60,13 @@
    */
   arrange: ArrangeGroup;
   wait: WaitGroup;
-  sudo: SudoGroup;
+  admin: AdminGroup;
 
   constructor(logger: { log: (msg: any, level: any) => void, level: any }) {
     super(logger);
     this.arrange = new ArrangeGroup(this);
     this.wait = new WaitGroup(this);
-    this.sudo = new SudoGroup(this);
+    this.admin = new AdminGroup(this);
   }
 
   async connect(wsEndpoint: string, _listeners?: any): Promise<void> {
@@ -284,7 +284,7 @@
   }
 }
 
-class SudoGroup {
+class AdminGroup {
   helper: UniqueHelper;
 
   constructor(helper: UniqueHelper) {
@@ -301,4 +301,4 @@
       };
     });
   }
-}
\ No newline at end of file
+}