123456import 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 19 const tx = api.tx.inflation.startInflation(1);20 const bob = privateKey('//Bob');21 await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;2223 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; 33 3435 const totalExpectedInflation = totalIssuanceStart / 10n;36 const totalActualInflation = blockInflation * YEAR / blockInterval;3738 const tolerance = 0.00001; 39 const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;4041 expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);42 });43 });4445});