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

difftreelog

temporary disable inflation pallet

Igor Kozyrev2021-12-06parent: #e9439e8.patch.diff
in: master

7 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -11690,7 +11690,6 @@
  "pallet-evm-migration",
  "pallet-evm-transaction-payment",
  "pallet-fungible",
- "pallet-inflation",
  "pallet-nonfungible",
  "pallet-randomness-collective-flip",
  "pallet-refungible",
modifiedruntime/Cargo.tomldiffbeforeafterboth
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -33,7 +33,7 @@
     'pallet-refungible/runtime-benchmarks',
     'pallet-nonfungible/runtime-benchmarks',
     'pallet-unique/runtime-benchmarks',
-    'pallet-inflation/runtime-benchmarks',
+#    'pallet-inflation/runtime-benchmarks',
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
     'xcm-builder/runtime-benchmarks',
@@ -75,7 +75,7 @@
     'fp-self-contained/std',
     'parachain-info/std',
     'serde',
-    'pallet-inflation/std',
+#    'pallet-inflation/std',
     'pallet-common/std',
     'pallet-fungible/std',
     'pallet-refungible/std',
@@ -379,7 +379,7 @@
 pallet-unique = { path = '../pallets/unique', default-features = false }
 up-rpc = { path = "../primitives/rpc", default-features = false }
 up-evm-mapping = { path = "../primitives/evm-mapping", default-features = false }
-pallet-inflation = { path = '../pallets/inflation', default-features = false }
+# pallet-inflation = { path = '../pallets/inflation', default-features = false }
 up-data-structs = { path = '../primitives/data-structs', default-features = false }
 pallet-common = { default-features = false, path = "../pallets/common" }
 pallet-fungible = { default-features = false, path = "../pallets/fungible" }
modifiedruntime/src/lib.rsdiffbeforeafterboth
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -784,17 +784,17 @@
 	type Event = Event;
 	type WeightInfo = pallet_unique::weights::SubstrateWeight<Self>;
 }
-
+/*
 parameter_types! {
 	pub const InflationBlockInterval: BlockNumber = 100; // every time per how many blocks inflation is applied
-}
+} */
 
 /// Used for the pallet inflation
-impl pallet_inflation::Config for Runtime {
+/* impl pallet_inflation::Config for Runtime {
 	type Currency = Balances;
 	type TreasuryAccountId = TreasuryAccountId;
 	type InflationBlockInterval = InflationBlockInterval;
-}
+} */
 
 // parameter_types! {
 // 	pub MaximumSchedulerWeight: Weight = Perbill::from_percent(50) *
@@ -881,7 +881,7 @@
 		DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,
 
 		// Unique Pallets
-		Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
+		// Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
 		Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,
 		// Scheduler: pallet_unq_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
 		// free = 63
@@ -1366,7 +1366,7 @@
 
 			list_benchmark!(list, extra, pallet_evm_migration, EvmMigration);
 			list_benchmark!(list, extra, pallet_unique, Unique);
-			list_benchmark!(list, extra, pallet_inflation, Inflation);
+			//list_benchmark!(list, extra, pallet_inflation, Inflation);
 			list_benchmark!(list, extra, pallet_fungible, Fungible);
 			list_benchmark!(list, extra, pallet_refungible, Refungible);
 			list_benchmark!(list, extra, pallet_nonfungible, Nonfungible);
@@ -1400,7 +1400,7 @@
 
 			add_benchmark!(params, batches, pallet_evm_migration, EvmMigration);
 			add_benchmark!(params, batches, pallet_unique, Unique);
-			add_benchmark!(params, batches, pallet_inflation, Inflation);
+			//add_benchmark!(params, batches, pallet_inflation, Inflation);
 			add_benchmark!(params, batches, pallet_fungible, Fungible);
 			add_benchmark!(params, batches, pallet_refungible, Refungible);
 			add_benchmark!(params, batches, pallet_nonfungible, Nonfungible);
modifiedtests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth
before · tests/src/creditFeesToTreasury.test.ts
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 {alicesPublicKey, bobsPublicKey} from './accounts';10import privateKey from './substrate/privateKey';11import {IKeyringPair} from '@polkadot/types/types';12import {13  createCollectionExpectSuccess,14  createItemExpectSuccess,15  getGenericResult,16  transferExpectSuccess,17  UNIQUE,18} from './util/helpers';1920import {default as waitNewBlocks} from './substrate/wait-new-blocks';21import {ApiPromise} from '@polkadot/api';2223chai.use(chaiAsPromised);24const expect = chai.expect;2526const TREASURY = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z';27const saneMinimumFee = 0.05;28const saneMaximumFee = 0.5;29const createCollectionDeposit = 100;3031let alice: IKeyringPair;32let bob: IKeyringPair;3334// Skip the inflation block pauses if the block is close to inflation block35// until the inflation happens36/*eslint no-async-promise-executor: "off"*/37function skipInflationBlock(api: ApiPromise): Promise<void> {38  const promise = new Promise<void>(async (resolve) => {39    const blockInterval = (await api.consts.inflation.inflationBlockInterval).toNumber();40    const unsubscribe = await api.rpc.chain.subscribeNewHeads(head => {41      const currentBlock = head.number.toNumber();42      if (currentBlock % blockInterval < blockInterval - 10) {43        unsubscribe();44        resolve();45      } else {46        console.log(`Skipping inflation block, current block: ${currentBlock}`);47      }48    });49  });5051  return promise;52}5354describe('integration test: Fees must be credited to Treasury:', () => {55  before(async () => {56    await usingApi(async () => {57      alice = privateKey('//Alice');58      bob = privateKey('//Bob');59    });60  });6162  it('Total issuance does not change', async () => {63    await usingApi(async (api) => {64      await skipInflationBlock(api);65      await waitNewBlocks(api, 1);6667      const totalBefore = (await api.query.balances.totalIssuance()).toBigInt();6869      const alicePrivateKey = privateKey('//Alice');70      const amount = 1n;71      const transfer = api.tx.balances.transfer(bobsPublicKey, amount);7273      const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));7475      const totalAfter = (await api.query.balances.totalIssuance()).toBigInt();7677      expect(result.success).to.be.true;78      expect(totalAfter).to.be.equal(totalBefore);79    });80  });8182  it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {83    await usingApi(async (api) => {84      await skipInflationBlock(api);85      await waitNewBlocks(api, 1);8687      const alicePrivateKey = privateKey('//Alice');88      const treasuryBalanceBefore: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();89      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();9091      const amount = 1n;92      const transfer = api.tx.balances.transfer(bobsPublicKey, amount);93      const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));9495      const treasuryBalanceAfter: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();96      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();97      const fee = aliceBalanceBefore - aliceBalanceAfter - amount;98      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;99100      expect(result.success).to.be.true;101      expect(treasuryIncrease).to.be.equal(fee);102    });103  });104105  it('Treasury balance increased by failed tx fee', async () => {106    await usingApi(async (api) => {107      await skipInflationBlock(api);108      await waitNewBlocks(api, 1);109110      const bobPrivateKey = privateKey('//Bob');111      const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();112      const bobBalanceBefore = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();113114      const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);115      await expect(submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;116117      const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();118      const bobBalanceAfter = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();119      const fee = bobBalanceBefore - bobBalanceAfter;120      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;121122      expect(treasuryIncrease).to.be.equal(fee);123    });124  });125126  it('NFT Transactions also send fees to Treasury', async () => {127    await usingApi(async (api) => {128      await skipInflationBlock(api);129      await waitNewBlocks(api, 1);130131      const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();132      const aliceBalanceBefore = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();133134      await createCollectionExpectSuccess();135136      const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();137      const aliceBalanceAfter = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();138      const fee = aliceBalanceBefore - aliceBalanceAfter;139      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;140141      expect(treasuryIncrease).to.be.equal(fee);142    });143  });144145  it('Fees are sane', async () => {146    await usingApi(async (api) => {147      await skipInflationBlock(api);148      await waitNewBlocks(api, 1);149150      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();151152      await createCollectionExpectSuccess();153154      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();155      const fee = aliceBalanceBefore - aliceBalanceAfter;156157      expect(fee / UNIQUE < BigInt(Math.ceil(saneMaximumFee + createCollectionDeposit))).to.be.true;158      expect(fee / UNIQUE < BigInt(Math.ceil(saneMinimumFee  + createCollectionDeposit))).to.be.true;159    });160  });161162  it('NFT Transfer fee is close to 0.1 Unique', async () => {163    await usingApi(async (api) => {164      await skipInflationBlock(api);165      await waitNewBlocks(api, 1);166167      const collectionId = await createCollectionExpectSuccess();168      const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');169170      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();171      await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');172      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();173174      const fee = Number(aliceBalanceBefore - aliceBalanceAfter) / Number(UNIQUE);175      const expectedTransferFee = 0.1;176      // fee drifts because of NextFeeMultiplier177      const tolerance = 0.001;178179      expect(Math.abs(fee - expectedTransferFee)).to.be.lessThan(tolerance);180    });181  });182183});
after · tests/src/creditFeesToTreasury.test.ts
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 {alicesPublicKey, bobsPublicKey} from './accounts';10import privateKey from './substrate/privateKey';11import {IKeyringPair} from '@polkadot/types/types';12import {13  createCollectionExpectSuccess,14  createItemExpectSuccess,15  getGenericResult,16  transferExpectSuccess,17  UNIQUE,18} from './util/helpers';1920import {default as waitNewBlocks} from './substrate/wait-new-blocks';21import {ApiPromise} from '@polkadot/api';2223chai.use(chaiAsPromised);24const expect = chai.expect;2526const TREASURY = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z';27const saneMinimumFee = 0.05;28const saneMaximumFee = 0.5;29const createCollectionDeposit = 100;3031let alice: IKeyringPair;32let bob: IKeyringPair;3334// Skip the inflation block pauses if the block is close to inflation block35// until the inflation happens36/*eslint no-async-promise-executor: "off"*/37/*function skipInflationBlock(api: ApiPromise): Promise<void> {38  const promise = new Promise<void>(async (resolve) => {39    const blockInterval = (await api.consts.inflation.inflationBlockInterval).toNumber();40    const unsubscribe = await api.rpc.chain.subscribeNewHeads(head => {41      const currentBlock = head.number.toNumber();42      if (currentBlock % blockInterval < blockInterval - 10) {43        unsubscribe();44        resolve();45      } else {46        console.log(`Skipping inflation block, current block: ${currentBlock}`);47      }48    });49  });5051  return promise;52}*/5354describe('integration test: Fees must be credited to Treasury:', () => {55  before(async () => {56    await usingApi(async () => {57      alice = privateKey('//Alice');58      bob = privateKey('//Bob');59    });60  });6162  it('Total issuance does not change', async () => {63    await usingApi(async (api) => {64      //await skipInflationBlock(api);65      await waitNewBlocks(api, 1);6667      const totalBefore = (await api.query.balances.totalIssuance()).toBigInt();6869      const alicePrivateKey = privateKey('//Alice');70      const amount = 1n;71      const transfer = api.tx.balances.transfer(bobsPublicKey, amount);7273      const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));7475      const totalAfter = (await api.query.balances.totalIssuance()).toBigInt();7677      expect(result.success).to.be.true;78      expect(totalAfter).to.be.equal(totalBefore);79    });80  });8182  it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {83    await usingApi(async (api) => {84      //await skipInflationBlock(api);85      await waitNewBlocks(api, 1);8687      const alicePrivateKey = privateKey('//Alice');88      const treasuryBalanceBefore: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();89      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();9091      const amount = 1n;92      const transfer = api.tx.balances.transfer(bobsPublicKey, amount);93      const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));9495      const treasuryBalanceAfter: bigint = (await api.query.system.account(TREASURY)).data.free.toBigInt();96      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();97      const fee = aliceBalanceBefore - aliceBalanceAfter - amount;98      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;99100      expect(result.success).to.be.true;101      expect(treasuryIncrease).to.be.equal(fee);102    });103  });104105  it('Treasury balance increased by failed tx fee', async () => {106    await usingApi(async (api) => {107      //await skipInflationBlock(api);108      await waitNewBlocks(api, 1);109110      const bobPrivateKey = privateKey('//Bob');111      const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();112      const bobBalanceBefore = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();113114      const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);115      await expect(submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;116117      const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();118      const bobBalanceAfter = (await api.query.system.account(bobsPublicKey)).data.free.toBigInt();119      const fee = bobBalanceBefore - bobBalanceAfter;120      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;121122      expect(treasuryIncrease).to.be.equal(fee);123    });124  });125126  it('NFT Transactions also send fees to Treasury', async () => {127    await usingApi(async (api) => {128      //await skipInflationBlock(api);129      await waitNewBlocks(api, 1);130131      const treasuryBalanceBefore = (await api.query.system.account(TREASURY)).data.free.toBigInt();132      const aliceBalanceBefore = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();133134      await createCollectionExpectSuccess();135136      const treasuryBalanceAfter = (await api.query.system.account(TREASURY)).data.free.toBigInt();137      const aliceBalanceAfter = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();138      const fee = aliceBalanceBefore - aliceBalanceAfter;139      const treasuryIncrease = treasuryBalanceAfter - treasuryBalanceBefore;140141      expect(treasuryIncrease).to.be.equal(fee);142    });143  });144145  it('Fees are sane', async () => {146    await usingApi(async (api) => {147      //await skipInflationBlock(api);148      await waitNewBlocks(api, 1);149150      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();151152      await createCollectionExpectSuccess();153154      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();155      const fee = aliceBalanceBefore - aliceBalanceAfter;156157      expect(fee / UNIQUE < BigInt(Math.ceil(saneMaximumFee + createCollectionDeposit))).to.be.true;158      expect(fee / UNIQUE < BigInt(Math.ceil(saneMinimumFee  + createCollectionDeposit))).to.be.true;159    });160  });161162  it('NFT Transfer fee is close to 0.1 Unique', async () => {163    await usingApi(async (api) => {164      //await skipInflationBlock(api);165      await waitNewBlocks(api, 1);166167      const collectionId = await createCollectionExpectSuccess();168      const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');169170      const aliceBalanceBefore: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();171      await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');172      const aliceBalanceAfter: bigint = (await api.query.system.account(alicesPublicKey)).data.free.toBigInt();173174      const fee = Number(aliceBalanceBefore - aliceBalanceAfter) / Number(UNIQUE);175      const expectedTransferFee = 0.1;176      // fee drifts because of NextFeeMultiplier177      const tolerance = 0.001;178179      expect(Math.abs(fee - expectedTransferFee)).to.be.lessThan(tolerance);180    });181  });182183});
modifiedtests/src/inflation.test.tsdiffbeforeafterboth
--- a/tests/src/inflation.test.ts
+++ b/tests/src/inflation.test.ts
@@ -10,7 +10,7 @@
 chai.use(chaiAsPromised);
 const expect = chai.expect;
 
-describe('integration test: Inflation', () => {
+describe.skip('integration test: Inflation', () => {
   it('First year inflation is 10%', async () => {
     await usingApi(async (api) => {
 
modifiedtests/src/pallet-presence.test.tsdiffbeforeafterboth
--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -34,7 +34,7 @@
   'polkadotxcm',
   'cumulusxcm',
   'dmpqueue',
-  'inflation',
+  //'inflation',
   'unique',
   'nonfungible',
   'refungible',
modifiedtests/src/setOffchainSchema.test.tsdiffbeforeafterboth
--- a/tests/src/setOffchainSchema.test.ts
+++ b/tests/src/setOffchainSchema.test.ts
@@ -84,7 +84,7 @@
     await setOffchainSchemaExpectFailure(alice, destroyedCollectionId, DATA);
   });
 
-  it.only('fails on too long data', async () => {
+  it('fails on too long data', async () => {
     const tooLongData = new Array(8 * 1024 + 10).fill(0xff);
 
     await setOffchainSchemaExpectFailure(alice, validCollectionId, tooLongData);