git.delta.rocks / unique-network / refs/commits / bf405ef96b15

difftreelog

source

tests/src/inflation.test.ts1.8 KiBsourcehistory
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import chai from 'chai';7import chaiAsPromised from 'chai-as-promised';8import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';9import privateKey from './substrate/privateKey';1011chai.use(chaiAsPromised);12const expect = chai.expect;1314describe('integration test: Inflation', () => {15  it('First year inflation is 10%', async () => {16    await usingApi(async (api) => {1718      // Make sure non-sudo can't start inflation19      const tx = api.tx.inflation.startInflation(1);20      const bob = privateKey('//Bob');21      await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;2223      // Start inflation on relay block 1 (Alice is sudo)24      const alice = privateKey('//Alice');25      const sudoTx = api.tx.sudo.sudo(tx as any);26      await submitTransactionAsync(alice, sudoTx);2728      const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();29      const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();30      const blockInflation = (await api.query.inflation.blockInflation()).toBigInt();3132      const YEAR = 5259600n;  // 6-second block. Blocks in one year33      // const YEAR = 2629800n; // 12-second block. Blocks in one year3435      const totalExpectedInflation = totalIssuanceStart / 10n;36      const totalActualInflation = blockInflation * YEAR / blockInterval;3738      const tolerance = 0.00001; // Relative difference per year between theoretical and actual inflation39      const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;4041      expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);42    });43  });4445});