difftreelog
Add helper to get total payout
in: master
2 files changed
tests/src/app-promotion.test.tsdiffbeforeafterboth619 // Wait for rewards and pay619 // Wait for rewards and pay620 const [stakedInBlock] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});620 const [stakedInBlock] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});621 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock.block));621 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stakedInBlock.block));622 // await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));622 await helper.signTransaction(palletAdmin, helper.api!.tx.appPromotion.payoutStakers(100));623 const totalPayout = (await helper.sudo.payoutStakers(palletAdmin, 100)).reduce((prev, payout) => prev + payout.payout, 0n);623624624 const totalStakedAfter = await helper.staking.getTotalStaked();625 const totalStakedAfter = await helper.staking.getTotalStaked();625 expect(totalStakedAfter >= totalStakedBefore + calculateIncome(100n * nominal, 10n)).to.be.true;626 expect(totalStakedAfter).to.equal(totalStakedBefore + (100n * nominal) + totalPayout);626627 // staker can unstake627 // staker can unstake628 await helper.staking.unstake(staker);628 await helper.staking.unstake(staker);tests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth60 */60 */61 arrange: ArrangeGroup;61 arrange: ArrangeGroup;62 wait: WaitGroup;62 wait: WaitGroup;63 sudo: SudoGroup;636464 constructor(logger: { log: (msg: any, level: any) => void, level: any }) {65 constructor(logger: { log: (msg: any, level: any) => void, level: any }) {65 super(logger);66 super(logger);66 this.arrange = new ArrangeGroup(this);67 this.arrange = new ArrangeGroup(this);67 this.wait = new WaitGroup(this);68 this.wait = new WaitGroup(this);69 this.sudo = new SudoGroup(this);68 }70 }697170 async connect(wsEndpoint: string, _listeners?: any): Promise<void> {72 async connect(wsEndpoint: string, _listeners?: any): Promise<void> {282 }284 }283}285}284286287class SudoGroup {288 helper: UniqueHelper;289290 constructor(helper: UniqueHelper) {291 this.helper = helper;292 }293294 async payoutStakers(signer: IKeyringPair, stakersToPayout: number) {295 const payoutResult = await this.helper.executeExtrinsic(signer, 'api.tx.appPromotion.payoutStakers', [stakersToPayout], true);296 return payoutResult.result.events.filter(e => e.event.method === 'StakingRecalculation').map(e => {297 return {298 staker: e.event.data[0].toString(),299 stake: e.event.data[1].toBigInt(),300 payout: e.event.data[2].toBigInt(),301 };302 });303 }304}