Expose storage_prefix logic, and remove duplicate code (#9621)

* expose storage prefix generation, remove duplicate code

* remove more duplicate code

* clean up import

* fix io test

* remove slicing

* Update frame/support/src/storage/mod.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
This commit is contained in:
Shawn Tabrizi
2021-08-25 15:16:47 -04:00
committed by GitHub
parent 531fd70e22
commit 7c3890c652
12 changed files with 89 additions and 191 deletions
@@ -428,16 +428,10 @@ mod tests {
#[test]
fn storage_info() {
use frame_support::{
pallet_prelude::*,
storage::storage_prefix as prefix,
traits::{StorageInfo, StorageInfoTrait},
StorageHasher,
};
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![
@@ -717,15 +711,8 @@ mod test2 {
#[test]
fn storage_info() {
use frame_support::{
pallet_prelude::*,
storage::storage_prefix as prefix,
traits::{StorageInfo, StorageInfoTrait},
StorageHasher,
};
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(),
+2 -17
View File
@@ -934,14 +934,7 @@ fn migrate_from_pallet_version_to_storage_version() {
const PALLET_VERSION_STORAGE_KEY_POSTFIX: &[u8] = b":__PALLET_VERSION__:";
fn pallet_version_key(name: &str) -> [u8; 32] {
let pallet_name = sp_io::hashing::twox_128(name.as_bytes());
let postfix = sp_io::hashing::twox_128(PALLET_VERSION_STORAGE_KEY_POSTFIX);
let mut final_key = [0u8; 32];
final_key[..16].copy_from_slice(&pallet_name);
final_key[16..].copy_from_slice(&postfix);
final_key
frame_support::storage::storage_prefix(name.as_bytes(), PALLET_VERSION_STORAGE_KEY_POSTFIX)
}
TestExternalities::default().execute_with(|| {
@@ -1274,16 +1267,8 @@ fn test_pallet_info_access() {
#[test]
fn test_storage_info() {
use frame_support::{
pallet_prelude::*,
storage::storage_prefix as prefix,
traits::{StorageInfo, StorageInfoTrait},
StorageHasher,
};
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
};
assert_eq!(
@@ -5,9 +5,9 @@ error[E0107]: missing generics for trait `Hooks`
| ^^^^^ expected 1 type argument
|
note: trait defined here, with 1 type parameter: `BlockNumber`
--> $DIR/hooks.rs:221:11
--> $DIR/hooks.rs:214:11
|
221 | pub trait Hooks<BlockNumber> {
214 | pub trait Hooks<BlockNumber> {
| ^^^^^ -----------
help: use angle brackets to add missing type argument
|