1import { IKeyringPair } from '@polkadot/types/types';2import chai from 'chai';3import chaiAsPromised from 'chai-as-promised';4import { alicesPublicKey, bobsPublicKey } from '../accounts';5import getBalance from '../substrate/get-balance';6import privateKey from '../substrate/privateKey';7import usingApi, { submitTransactionAsync } from '../substrate/substrate-api';8import {9 confirmSponsorshipExpectSuccess,10 createCollectionExpectSuccess,11 createItemExpectSuccess,12 setCollectionSponsorExpectSuccess,13 normalizeAccountId,14 waitNewBlocks,15} from '../util/helpers';1617chai.use(chaiAsPromised);18const expect = chai.expect;19let Alice: IKeyringPair;20let Bob: IKeyringPair;2122before(async () => {23 await usingApi(async () => {24 Alice = privateKey('//Alice');25 Bob = privateKey('//Bob');26 });27});2829describe('Payment of commission if one block: ', () => {30 31 it('Payment of commission if one block contains transactions for payment from the sponsor\'s balance and his (sponsor\'s) exclusion from the collection ', async () => {32 await usingApi(async (api) => {33 const collectionId = await createCollectionExpectSuccess();34 const changeAdminTxBob = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));35 await submitTransactionAsync(Alice, changeAdminTxBob);36 const itemId = await createItemExpectSuccess(Bob, collectionId, 'NFT');37 await setCollectionSponsorExpectSuccess(collectionId, Bob.address);38 await confirmSponsorshipExpectSuccess(collectionId, '//Bob');3940 const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);41 const sendItem = api.tx.nft.transfer(normalizeAccountId(Alice.address), collectionId, itemId, 1);42 const revokeSponsor = api.tx.nft.removeCollectionSponsor(collectionId);43 await Promise.all([44 sendItem.signAndSend(Bob),45 revokeSponsor.signAndSend(Alice),46 ]);47 const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);48 49 expect(alicesBalanceAfter === alicesBalanceBefore).to.be.true;50 51 expect(bobsBalanceAfter === bobsBalanceBefore).to.be.true;52 await waitNewBlocks(2);53 });54 });55});