1234567891011121314151617import chai from 'chai';18import chaiAsPromised from 'chai-as-promised';19import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';2021chai.use(chaiAsPromised);22const expect = chai.expect;2324describe('integration test: Inflation', () => {25 it('First year inflation is 10%', async () => {26 await usingApi(async (api, privateKeyWrapper) => {2728 29 const tx = api.tx.inflation.startInflation(1);30 const bob = privateKeyWrapper('//Bob');31 await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;3233 34 const alice = privateKeyWrapper('//Alice');35 const sudoTx = api.tx.sudo.sudo(tx as any);36 await submitTransactionAsync(alice, sudoTx);3738 const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();39 const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();40 const blockInflation = (await api.query.inflation.blockInflation()).toBigInt();4142 const YEAR = 5259600n; 43 4445 const totalExpectedInflation = totalIssuanceStart / 10n;46 const totalActualInflation = blockInflation * YEAR / blockInterval;4748 const tolerance = 0.00001; 49 const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;5051 expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);52 });53 });5455});