1234567891011121314151617import chai from 'chai';18import chaiAsPromised from 'chai-as-promised';19import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';20import privateKey from './substrate/privateKey';2122chai.use(chaiAsPromised);23const expect = chai.expect;2425describe('integration test: Inflation', () => {26 it('First year inflation is 10%', async () => {27 await usingApi(async (api) => {2829 30 const tx = api.tx.inflation.startInflation(1);31 const bob = privateKey('//Bob');32 await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;3334 35 const alice = privateKey('//Alice');36 const sudoTx = api.tx.sudo.sudo(tx as any);37 await submitTransactionAsync(alice, sudoTx);3839 const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();40 const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();41 const blockInflation = (await api.query.inflation.blockInflation()).toBigInt();4243 const YEAR = 5259600n; 44 4546 const totalExpectedInflation = totalIssuanceStart / 10n;47 const totalActualInflation = blockInflation * YEAR / blockInterval;4849 const tolerance = 0.00001; 50 const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;5152 expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);53 });54 });5556});