git.delta.rocks / unique-network / refs/commits / 58ad49b3952d

difftreelog

Tests: execute payoutStakers until reward for test account

Max Andreev2023-02-16parent: #991825e.patch.diff
in: master

1 file changed

modifiedtests/src/sub/appPromotion/appPromotion.test.tsdiffbeforeafterboth
870 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));
872872
873 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 });
877876
878 itSub('can eventually pay all rewards', async ({helper}) => {877 itSub('can eventually pay all rewards', async ({helper}) => {
957});956});
958957
958
959// Sometimes is is required to make a cycle in order for the payment to be calculated for a specific account
960async 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}
959968
960function 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;