permit setting treasury pallet initial funding through genesis (#7214)

This commit is contained in:
Kerwin Zhu
2020-10-01 17:15:33 +08:00
committed by GitHub
parent dbf4558633
commit a2c4b38eb6
2 changed files with 25 additions and 4 deletions
+8 -4
View File
@@ -396,10 +396,14 @@ decl_storage! {
add_extra_genesis {
build(|_config| {
// Create Treasury account
let _ = T::Currency::make_free_balance_be(
&<Module<T, I>>::account_id(),
T::Currency::minimum_balance(),
);
let account_id = <Module<T, I>>::account_id();
let min = T::Currency::minimum_balance();
if T::Currency::free_balance(&account_id) < min {
let _ = T::Currency::make_free_balance_be(
&account_id,
min,
);
}
});
}
}
+17
View File
@@ -1148,3 +1148,20 @@ fn test_last_reward_migration() {
);
});
}
#[test]
fn genesis_funding_works() {
let mut t = frame_system::GenesisConfig::default().build_storage::<Test>().unwrap();
let initial_funding = 100;
pallet_balances::GenesisConfig::<Test>{
// Total issuance will be 200 with treasury account initialized with 100.
balances: vec![(0, 100), (Treasury::account_id(), initial_funding)],
}.assimilate_storage(&mut t).unwrap();
GenesisConfig::default().assimilate_storage::<Test, _>(&mut t).unwrap();
let mut t: sp_io::TestExternalities = t.into();
t.execute_with(|| {
assert_eq!(Balances::free_balance(Treasury::account_id()), initial_funding);
assert_eq!(Treasury::pot(), initial_funding - Balances::minimum_balance());
});
}