git.delta.rocks / unique-network / refs/commits / 7d1c4da161ca

difftreelog

fix totalstaked calc bug

PraetorP2022-09-14parent: #0384755.patch.diff
in: master

3 files changed

modifiedCargo.lockdiffbeforeafterboth
64756475
6476[[package]]6476[[package]]
6477name = "pallet-unique"6477name = "pallet-unique"
6478version = "0.1.4"6478version = "0.2.0"
6479dependencies = [6479dependencies = [
6480 "ethereum",6480 "ethereum",
6481 "evm-coder",6481 "evm-coder",
modifiedpallets/app-promotion/src/lib.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/lib.rs
+++ b/pallets/app-promotion/src/lib.rs
@@ -594,14 +594,14 @@
 								last_id,
 								*income_acc.borrow(),
 								ExistenceRequirement::KeepAlive,
-							)
-							.and_then(|_| {
-								Self::add_lock_balance(last_id, *income_acc.borrow())?;
-								<TotalStaked<T>>::try_mutate(|staked| {
-									staked
-										.checked_add(&*income_acc.borrow())
-										.ok_or(ArithmeticError::Overflow.into())
-								})
+							)?;
+
+							Self::add_lock_balance(last_id, *income_acc.borrow())?;
+							<TotalStaked<T>>::try_mutate(|staked| -> DispatchResult {
+								*staked = staked
+									.checked_add(&*income_acc.borrow())
+									.ok_or(ArithmeticError::Overflow)?;
+								Ok(())
 							})?;
 
 							Self::deposit_event(Event::StakingRecalculation(
modifiedtests/src/app-promotion.test.tsdiffbeforeafterboth
--- a/tests/src/app-promotion.test.ts
+++ b/tests/src/app-promotion.test.ts
@@ -661,7 +661,7 @@
     });
   });
 
-  it.only('should increase total staked', async() => {
+  it('should increase total staked', async() => {
     await usingPlaygrounds(async (helper) => {
       const staker = accounts.pop()!;
       const totalStakedBefore = await helper.staking.getTotalStaked();
@@ -673,12 +673,11 @@
       await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));
 
       const totalStakedAfter = await helper.staking.getTotalStaked();
-      const stakersStakedBalance = totalStakedBefore + calculateIncome(100n * nominal, 10n);
-      expect(totalStakedAfter >= stakersStakedBalance).to.be.true;
+      expect(totalStakedAfter >= totalStakedBefore + calculateIncome(100n * nominal, 10n)).to.be.true;
 
       // staker can unstake
       await helper.staking.unstake(staker);
-      expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedAfter - stakersStakedBalance);
+      expect(await helper.staking.getTotalStaked()).to.be.equal(totalStakedAfter - calculateIncome(100n * nominal, 10n));
     });
   });