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

difftreelog

Return inflation test from .oudated

Maksandre2022-10-05parent: #c004530.patch.diff
in: master

2 files changed

deletedtests/src/.outdated/inflation.test.tsdiffbeforeafterboth
--- a/tests/src/.outdated/inflation.test.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
-// This file is part of Unique Network.
-
-// Unique Network is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Unique Network is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-
-import {IKeyringPair} from '@polkadot/types/types';
-import {expect, itSub, usingPlaygrounds} from '../util/playgrounds';
-
-// todo:playgrounds requires sudo, look into on the later stage
-describe('integration test: Inflation', () => {
-  let superuser: IKeyringPair;
-
-  before(async () => {
-    await usingPlaygrounds(async (_, privateKey) => {
-      superuser = privateKey('//Alice');
-    });
-  });
-  
-  itSub('First year inflation is 10%', async ({helper}) => {
-    // Make sure non-sudo can't start inflation
-    const [bob] = await helper.arrange.createAccounts([10n], superuser);
-
-    await expect(helper.executeExtrinsic(bob, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);
-
-    // Make sure superuser can't start inflation without explicit sudo
-    await expect(helper.executeExtrinsic(superuser, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);
-
-    // Start inflation on relay block 1 (Alice is sudo)
-    const tx = helper.constructApiCall('api.tx.inflation.startInflation', [1]);
-    await expect(helper.executeExtrinsic(superuser, 'api.tx.sudo.sudo', [tx])).to.not.be.rejected;
-
-    const blockInterval = (helper.api!.consts.inflation.inflationBlockInterval as any).toBigInt();
-    const totalIssuanceStart = ((await helper.api!.query.inflation.startingYearTotalIssuance()) as any).toBigInt();
-    const blockInflation = (await helper.api!.query.inflation.blockInflation() as any).toBigInt();
-
-    const YEAR = 5259600n;  // 6-second block. Blocks in one year
-    // const YEAR = 2629800n; // 12-second block. Blocks in one year
-
-    const totalExpectedInflation = totalIssuanceStart / 10n;
-    const totalActualInflation = blockInflation * YEAR / blockInterval;
-
-    const tolerance = 0.00001; // Relative difference per year between theoretical and actual inflation
-    const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;
-
-    expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);
-  });
-});
addedtests/src/inflation.test.tsdiffbeforeafterboth
after · tests/src/inflation.test.ts
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {expect, itSub, usingPlaygrounds} from './util/playgrounds';1920// todo:playgrounds requires sudo, look into on the later stage21describe('integration test: Inflation', () => {22  let superuser: IKeyringPair;2324  before(async () => {25    await usingPlaygrounds(async (_, privateKey) => {26      superuser = privateKey('//Alice');27    });28  });29  30  itSub('First year inflation is 10%', async ({helper}) => {31    // Make sure non-sudo can't start inflation32    const [bob] = await helper.arrange.createAccounts([10n], superuser);3334    await expect(helper.executeExtrinsic(bob, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);3536    // Make sure superuser can't start inflation without explicit sudo37    await expect(helper.executeExtrinsic(superuser, 'api.tx.inflation.startInflation', [1])).to.be.rejectedWith(/BadOrigin/);3839    // Start inflation on relay block 1 (Alice is sudo)40    const tx = helper.constructApiCall('api.tx.inflation.startInflation', [1]);41    await expect(helper.executeExtrinsic(superuser, 'api.tx.sudo.sudo', [tx])).to.not.be.rejected;4243    const blockInterval = (helper.api!.consts.inflation.inflationBlockInterval as any).toBigInt();44    const totalIssuanceStart = ((await helper.api!.query.inflation.startingYearTotalIssuance()) as any).toBigInt();45    const blockInflation = (await helper.api!.query.inflation.blockInflation() as any).toBigInt();4647    const YEAR = 5259600n;  // 6-second block. Blocks in one year48    // const YEAR = 2629800n; // 12-second block. Blocks in one year4950    const totalExpectedInflation = totalIssuanceStart / 10n;51    const totalActualInflation = blockInflation * YEAR / blockInterval;5253    const tolerance = 0.00001; // Relative difference per year between theoretical and actual inflation54    const expectedInflation = totalExpectedInflation / totalActualInflation - 1n;5556    expect(Math.abs(Number(expectedInflation))).to.be.lessThanOrEqual(tolerance);57  });58});