difftreelog
Tests: execute payoutStakers until reward for test account
in: master
1 file changed
tests/src/sub/appPromotion/appPromotion.test.tsdiffbeforeafterboth870 const [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});870 const [stake] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});871 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block));871 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake.block));872872873 const payouts = await helper.admin.payoutStakers(palletAdmin, 100);874 const stakerPayout = payouts.find(p => p.staker === staker.address);873 const stakerPayout = await payUntilRewardFor(staker.address, helper);875 expect(stakerPayout!.stake).to.eq(100n * nominal + 1n);874 expect(stakerPayout.stake).to.eq(100n * nominal + 1n);876 });875 });877876878 itSub('can eventually pay all rewards', async ({helper}) => {877 itSub('can eventually pay all rewards', async ({helper}) => {957});956});958957958959// Sometimes is is required to make a cycle in order for the payment to be calculated for a specific account960async function payUntilRewardFor(account: string, helper: DevUniqueHelper) {961 for (let i = 0; i < 3; i++) {962 const payouts = await helper.admin.payoutStakers(palletAdmin, 100);963 const accountPayout = payouts.find(p => p.staker === account);964 if (accountPayout) return accountPayout;965 }966 throw Error(`Cannot find payout for ${account}`);967}959968960function calculateIncome(base: bigint, iter = 0, calcPeriod: bigint = UNLOCKING_PERIOD): bigint {969function calculateIncome(base: bigint, iter = 0, calcPeriod: bigint = UNLOCKING_PERIOD): bigint {961 const DAY = 7200n;970 const DAY = 7200n;