fix storage info for decl_storage (#9274)

This commit is contained in:
Guillaume Thiolliere
2021-07-06 03:58:24 +02:00
committed by GitHub
parent db8dc5420b
commit 3127eac4d7
2 changed files with 41 additions and 4 deletions
@@ -22,10 +22,6 @@ use quote::quote;
use super::DeclStorageDefExt;
pub fn impl_storage_info(def: &DeclStorageDefExt) -> TokenStream {
if !def.generate_storage_info {
return Default::default()
}
let scrate = &def.hidden_crate;
let mut res_append_storage = TokenStream::new();
@@ -651,6 +651,47 @@ mod test2 {
}
impl Config for TraitImpl {}
#[test]
fn storage_info() {
use frame_support::{
StorageHasher,
traits::{StorageInfoTrait, StorageInfo},
pallet_prelude::*,
};
let prefix = |pallet_name, storage_name| {
let mut res = [0u8; 32];
res[0..16].copy_from_slice(&Twox128::hash(pallet_name));
res[16..32].copy_from_slice(&Twox128::hash(storage_name));
res
};
pretty_assertions::assert_eq!(
<Module<TraitImpl>>::storage_info(),
vec![
StorageInfo {
prefix: prefix(b"TestStorage", b"SingleDef"),
max_values: Some(1),
max_size: None,
},
StorageInfo {
prefix: prefix(b"TestStorage", b"PairDef"),
max_values: Some(1),
max_size: None,
},
StorageInfo {
prefix: prefix(b"TestStorage", b"Single"),
max_values: Some(1),
max_size: None,
},
StorageInfo {
prefix: prefix(b"TestStorage", b"Pair"),
max_values: Some(1),
max_size: None,
},
],
);
}
}
#[cfg(test)]