difftreelog
ffeat: add new fns to test-utils pallet
in: master
3 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6675,6 +6675,7 @@
dependencies = [
"frame-support",
"frame-system",
+ "pallet-unique-scheduler",
"parity-scale-codec 3.1.5",
"scale-info",
]
test-pallets/utils/Cargo.tomldiffbeforeafterboth10scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }10scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" }13pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }131414[features]15[features]15default = ["std"]16default = ["std"]18 "scale-info/std",19 "scale-info/std",19 "frame-support/std",20 "frame-support/std",20 "frame-system/std",21 "frame-system/std",22 "pallet-unique-scheduler/std",21]23]2224test-pallets/utils/src/lib.rsdiffbeforeafterboth--- a/test-pallets/utils/src/lib.rs
+++ b/test-pallets/utils/src/lib.rs
@@ -16,15 +16,17 @@
#![cfg_attr(not(feature = "std"), no_std)]
+
pub use pallet::*;
#[frame_support::pallet]
pub mod pallet {
use frame_support::pallet_prelude::*;
use frame_system::pallet_prelude::*;
+ use pallet_unique_scheduler::{ScheduledId, Pallet as SchedulerPallet};
#[pallet::config]
- pub trait Config: frame_system::Config {
+ pub trait Config: frame_system::Config + pallet_unique_scheduler::Config {
type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;
}
@@ -40,7 +42,7 @@
pub struct Pallet<T>(_);
#[pallet::storage]
- #[pallet::getter(fn something)]
+ #[pallet::getter(fn test_value)]
pub type TestValue<T> = StorageValue<_, u32, ValueQuery>;
#[pallet::error]
@@ -70,6 +72,26 @@
Err(<Error<T>>::TriggerRollback.into())
}
+ #[pallet::weight(10_000)]
+ pub fn inc_test_value(origin: OriginFor<T>) -> DispatchResult {
+ Self::set_test_value(origin, <TestValue<T>>::get() + 1)
+ }
+
+ #[pallet::weight(10_000)]
+ pub fn self_canceling_inc(
+ origin: OriginFor<T>,
+ id: ScheduledId,
+ max_test_value: u32,
+ ) -> DispatchResult {
+ if <TestValue<T>>::get() < max_test_value {
+ Self::inc_test_value(origin)?;
+ } else {
+ SchedulerPallet::<T>::cancel_named(origin, id)?;
+ }
+
+ Ok(())
+ }
+
#[pallet::weight(100_000_000)]
pub fn just_take_fee(_origin: OriginFor<T>) -> DispatchResult {
Ok(())