git.delta.rocks / unique-network / refs/commits / 5202fc8f6f12

difftreelog

source

tests/src/collision-tests/sponsorPayments.test.ts2.5 KiBsourcehistory
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 waitNewBlocks from '../substrate/wait-new-blocks';
9import {
10  confirmSponsorshipExpectSuccess,
11  createCollectionExpectSuccess,
12  createItemExpectSuccess,
13  setCollectionSponsorExpectSuccess,
14} from '../util/helpers';
15
16chai.use(chaiAsPromised);
17const expect = chai.expect;
18let Alice: IKeyringPair;
19let Bob: IKeyringPair;
20let Ferdie: IKeyringPair;
21
22before(async () => {
23  await usingApi(async () => {
24    Alice = privateKey('//Alice');
25    Bob = privateKey('//Bob');
26    Ferdie = privateKey('//Ferdie');
27  });
28});
29
30describe('Payment of commission if one block: ', () => {
31  // tslint:disable-next-line: max-line-length
32  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 () => {
33    await usingApi(async (api) => {
34      const collectionId = await createCollectionExpectSuccess();
35      const changeAdminTxBob = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);
36      await submitTransactionAsync(Alice, changeAdminTxBob);
37      const itemId = await createItemExpectSuccess(Bob, collectionId, 'NFT');
38      await setCollectionSponsorExpectSuccess(collectionId, Bob.address);
39      await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
40      //
41      const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
42      const sendItem = api.tx.nft.transfer(Alice.address, collectionId, itemId, 1);
43      const revokeSponsor = api.tx.nft.removeCollectionSponsor(collectionId);
44      await Promise.all
45      ([
46        sendItem.signAndSend(Bob),
47        revokeSponsor.signAndSend(Alice),
48      ]);
49      const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);
50      // tslint:disable-next-line:no-unused-expression
51      expect(alicesBalanceAfter === alicesBalanceBefore).to.be.true;
52      // tslint:disable-next-line:no-unused-expression
53      expect(bobsBalanceAfter === bobsBalanceBefore).to.be.true;
54      const blockHash = await api.query.system.number();
55      console.log(`blockHash: ${blockHash}`);
56    });
57  });
58});