Skip to content

Commit 6b83e03

Browse files
committed
fix to use genesis config mock in tests thanks to help from kaichaosun
1 parent eba67b9 commit 6b83e03

File tree

2 files changed

+70
-16
lines changed

2 files changed

+70
-16
lines changed

pallets/mining/rewards-allowance/src/lib.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ pub mod pallet {
3939
traits::{
4040
Currency,
4141
ExistenceRequirement,
42-
}
42+
GenesisBuild,
43+
},
4344
};
4445
use frame_system::pallet_prelude::*;
4546
use sp_std::{
@@ -742,7 +743,7 @@ pub mod pallet {
742743
}
743744

744745
let ONE = 1000000000000000000u128;
745-
let mut rm_next_change_as_fixedu128 = FixedU128::from_num(0);;
746+
let mut rm_next_change_as_fixedu128 = FixedU128::from_num(0);
746747
let _rm_next_change_as_fixedu128 =
747748
U64F64::from_num(rm_next_change_u128_short.clone()).checked_mul(U64F64::from_num(ONE));
748749
match _rm_next_change_as_fixedu128 {

pallets/mining/rewards-allowance/src/mock.rs

Lines changed: 67 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use frame_support::{
77
parameter_types,
88
traits::{
99
ContainsLengthBound,
10+
GenesisBuild,
1011
LockIdentifier,
1112
SortedMembers,
1213
},
@@ -67,6 +68,7 @@ pub use module_primitives::{
6768
Moment,
6869
},
6970
};
71+
// use super::*;
7072

7173
type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
7274
type Block = frame_system::mocking::MockBlock<Test>;
@@ -453,18 +455,69 @@ pub const FIVE_THOUSAND_DHX: u128 = 5_000_000_000_000_000_000_000_u128; // 5000
453455
// our desired mockup.
454456
pub fn new_test_ext() -> sp_io::TestExternalities {
455457
let mut t = frame_system::GenesisConfig::default().build_storage::<Test>().unwrap();
456-
pallet_balances::GenesisConfig::<Test> {
457-
balances: vec![
458-
(0, TEN_DHX),
459-
(1, TEN_DHX),
460-
(2, TEN_DHX),
461-
(3, TEN_DHX),
462-
(100, TOTAL_SUPPLY_DHX),
463-
],
464-
}
465-
.assimilate_storage(&mut t)
466-
.unwrap();
467-
let mut ext = sp_io::TestExternalities::new(t);
468-
ext.execute_with(|| System::set_block_number(1));
469-
ext
458+
459+
// note: this approach is necessary to be able to mock the values in the chain specification.
460+
// for each of the pallets used.
461+
// see https://github.com/kaichaosun/substrate-node-template/commit/f83493c8a24b5b470d039ceeaf2cde949859855a
462+
GenesisBuild::<Test>::assimilate_storage(
463+
&pallet_balances::GenesisConfig {
464+
balances: vec![
465+
(0, TEN_DHX),
466+
(1, TEN_DHX),
467+
(2, TEN_DHX),
468+
(3, TEN_DHX),
469+
(100, TOTAL_SUPPLY_DHX),
470+
],
471+
},
472+
&mut t
473+
)
474+
.unwrap();
475+
476+
GenesisBuild::<Test>::assimilate_storage(
477+
&mining_rewards_allowance::GenesisConfig {
478+
rewards_allowance_dhx_daily: FIVE_THOUSAND_DHX, // 5000 DHX
479+
rewards_allowance_dhx_for_date_remaining: Default::default(),
480+
rewards_allowance_dhx_for_date_remaining_distributed: Default::default(),
481+
rewards_multiplier_paused: false,
482+
rewards_multiplier_reset: false,
483+
rewards_multiplier_default_change: 10u32,
484+
rewards_multiplier_next_change: 10u32,
485+
rewards_multiplier_default_period_days: 90u32,
486+
rewards_multiplier_next_period_days: 90u32,
487+
rewards_multiplier_current_change: 10u32,
488+
rewards_multiplier_current_period_days_total: 90u32,
489+
rewards_multiplier_current_period_days_remaining: Default::default(),
490+
rewards_multiplier_operation: 1u8,
491+
// Note: i'm not sure how to mock Alice, Bob, Charlie, just set in implementation at genesis
492+
// registered_dhx_miners: vec![
493+
// get_account_id_from_seed::<sr25519::Public>("Alice"),
494+
// get_account_id_from_seed::<sr25519::Public>("Bob"),
495+
// get_account_id_from_seed::<sr25519::Public>("Charlie"),
496+
// ],
497+
registered_dhx_miners: Default::default(),
498+
rewards_aggregated_dhx_for_all_miners_for_date: Default::default(),
499+
rewards_accumulated_dhx_for_miner_for_date: Default::default(),
500+
min_bonded_dhx_daily: TEN_DHX, // 10 DHX
501+
min_bonded_dhx_daily_default: TEN_DHX, // 10 DHX
502+
min_mpower_daily: 5u128,
503+
min_mpower_daily_default: 5u128,
504+
cooling_off_period_days: 7u32,
505+
// Note: i'm not sure how to mock Alice, just set in implementation at genesis
506+
// cooling_off_period_days_remaining: vec![
507+
// (
508+
// get_account_id_from_seed::<sr25519::Public>("Alice"),
509+
// (
510+
// 0,
511+
// 7u32,
512+
// 0u32,
513+
// ),
514+
// ),
515+
// ],
516+
cooling_off_period_days_remaining: Default::default(),
517+
},
518+
&mut t
519+
)
520+
.unwrap();
521+
522+
t.into()
470523
}

0 commit comments

Comments
 (0)