difftreelog
Fix inflation build
in: master
3 files changed
pallets/inflation/src/lib.rsdiffbeforeafterboth3// file 'LICENSE', which is part of this source code package.3// file 'LICENSE', which is part of this source code package.4//4//556#![recursion_limit = "1024"]6// #![recursion_limit = "1024"]7#![cfg_attr(not(feature = "std"), no_std)]7#![cfg_attr(not(feature = "std"), no_std)]8#![allow(89 clippy::too_many_arguments,10 clippy::unnecessary_mut_passed,11 clippy::unused_unit12)]1314mod benchmarking;15#[cfg(test)]9#[cfg(feature = "runtime-benchmarks")]16mod mock;10mod benchmarking;1117#[cfg(test)]12#[cfg(test)]18mod tests;13mod tests;191420use frame_support::{15use frame_support::{21 dispatch::{DispatchResult},16 dispatch::{DispatchResult},22 ensure,23 traits::{Currency, Get},17 traits::{Currency, Get},24};18};25pub use pallet::*;19pub use pallet::*;28 traits::{BlockNumberProvider}22 traits::{BlockNumberProvider}29};23};302431use std::convert::TryInto;25use sp_std::convert::TryInto;322633type BalanceOf<T> =27type BalanceOf<T> =34 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;28 <<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;45 use frame_support::pallet_prelude::*;39 use frame_support::pallet_prelude::*;46 use frame_system::pallet_prelude::*;40 use frame_system::pallet_prelude::*;4748 #[pallet::error]49 pub enum Error<T> {50 /// Inflation has already been initialized51 AlreadyInitialized,52 }534154 #[pallet::config]42 #[pallet::config]55 pub trait Config: frame_system::Config {43 pub trait Config: frame_system::Config {144 where <T as frame_system::Config>::BlockNumber: From<u32> {132 where <T as frame_system::Config>::BlockNumber: From<u32> {145 ensure_root(origin)?;133 ensure_root(origin)?;146134147 // Ensure inflation has not been yet initialized135 // Start inflation if it has not been yet initialized148 let next_inflation: T::BlockNumber = <NextInflationBlock<T>>::get();136 let next_inflation: T::BlockNumber = <NextInflationBlock<T>>::get();149 ensure!(next_inflation == 0u32.into(), Error::<T>::AlreadyInitialized);137 if next_inflation == 0u32.into() {150151 // Recalculate inflation. This can be backdated and will catch up.138 // Recalculate inflation. This can be backdated and will catch up.152 Self::recalculate_inflation(inflation_start_relay_block);139 Self::recalculate_inflation(inflation_start_relay_block);155142156 // First time deposit - create Treasury account so that we can call deposit_into_existing everywhere else143 // First time deposit - create Treasury account so that we can call deposit_into_existing everywhere else157 T::Currency::deposit_creating(&T::TreasuryAccountId::get(), <BlockInflation<T>>::get());144 T::Currency::deposit_creating(&T::TreasuryAccountId::get(), <BlockInflation<T>>::get());145 }158146159 Ok(())147 Ok(())160 }148 }runtime/Cargo.tomldiffbeforeafterboth--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -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' }
+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" }
tests/src/inflation.test.tsdiffbeforeafterboth--- a/tests/src/inflation.test.ts
+++ b/tests/src/inflation.test.ts
@@ -5,7 +5,8 @@
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import {default as usingApi} from './substrate/substrate-api';
+import {default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';
+import privateKey from './substrate/privateKey';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -14,8 +15,15 @@
it('First year inflation is 10%', async () => {
await usingApi(async (api) => {
- // Start inflation on relay block 1
- await api.tx.inflation.start_inflation(1);
+ // Make sure non-sudo can't start inflation
+ const tx = api.tx.inflation.startInflation(1);
+ const bob = privateKey('//Bob');
+ await expect(submitTransactionExpectFailAsync(bob, tx)).to.be.rejected;
+
+ // Start inflation on relay block 1 (Alice is sudo)
+ const alice = privateKey('//Alice');
+ const sudoTx = api.tx.sudo.sudo(tx as any);
+ await submitTransactionAsync(alice, sudoTx);
const blockInterval = (api.consts.inflation.inflationBlockInterval).toBigInt();
const totalIssuanceStart = (await api.query.inflation.startingYearTotalIssuance()).toBigInt();