mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 21:37:56 +00:00
Implement all storage after prefix (#4227)
* Implement all storage after prefix * fix test, bump version and fix doc * bump metadata version * Update frame/support/procedural/src/storage/storage_struct.rs
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
use support::storage::unhashed;
|
||||
use codec::Encode;
|
||||
use support::{StorageDoubleMap, StorageLinkedMap, StorageMap, StorageValue};
|
||||
use runtime_io::{TestExternalities, hashing};
|
||||
use runtime_io::{TestExternalities, hashing::{twox_128, blake2_128, blake2_256}};
|
||||
|
||||
mod no_instance {
|
||||
use codec::{Encode, Decode, EncodeLike};
|
||||
@@ -89,44 +89,43 @@ mod instance {
|
||||
fn final_keys_no_instance() {
|
||||
TestExternalities::default().execute_with(|| {
|
||||
no_instance::Value::put(1);
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(b"FinalKeysNone Value")), Some(1u32));
|
||||
let k = [twox_128(b"FinalKeysNone"), twox_128(b"Value")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(1u32));
|
||||
|
||||
no_instance::Map::insert(1, 2);
|
||||
let mut k = b"FinalKeysNone Map".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"Map")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
no_instance::Map2::insert(1, 2);
|
||||
let mut k = b"FinalKeysNone Map2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"Map2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
let head = b"head of FinalKeysNone LinkedMap".to_vec();
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), None);
|
||||
let head = [twox_128(b"FinalKeysNone"), twox_128(b"HeadOfLinkedMap")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&head), None);
|
||||
|
||||
no_instance::LinkedMap::insert(1, 2);
|
||||
let mut k = b"FinalKeysNone LinkedMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), Some(1u32));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"LinkedMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&head), Some(1u32));
|
||||
|
||||
no_instance::LinkedMap2::insert(1, 2);
|
||||
let mut k = b"FinalKeysNone LinkedMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"LinkedMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
no_instance::DoubleMap::insert(&1, &2, &3);
|
||||
let mut k = b"FinalKeysNone DoubleMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::blake2_256(&k).to_vec();
|
||||
k.extend(&hashing::blake2_256(&2u32.encode()));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"DoubleMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
|
||||
no_instance::DoubleMap2::insert(&1, &2, &3);
|
||||
let mut k = b"FinalKeysNone DoubleMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::twox_128(&k).to_vec();
|
||||
k.extend(&hashing::blake2_128(&2u32.encode()));
|
||||
let mut k = [twox_128(b"FinalKeysNone"), twox_128(b"DoubleMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
});
|
||||
}
|
||||
@@ -135,44 +134,43 @@ fn final_keys_no_instance() {
|
||||
fn final_keys_default_instance() {
|
||||
TestExternalities::default().execute_with(|| {
|
||||
<instance::Value<instance::DefaultInstance>>::put(1);
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(b"FinalKeysSome Value")), Some(1u32));
|
||||
let k = [twox_128(b"FinalKeysSome"), twox_128(b"Value")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(1u32));
|
||||
|
||||
<instance::Map<instance::DefaultInstance>>::insert(1, 2);
|
||||
let mut k = b"FinalKeysSome Map".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"Map")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
<instance::Map2<instance::DefaultInstance>>::insert(1, 2);
|
||||
let mut k = b"FinalKeysSome Map2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"Map2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
let head = b"head of FinalKeysSome LinkedMap".to_vec();
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), None);
|
||||
let head = [twox_128(b"FinalKeysSome"), twox_128(b"HeadOfLinkedMap")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&head), None);
|
||||
|
||||
<instance::LinkedMap<instance::DefaultInstance>>::insert(1, 2);
|
||||
let mut k = b"FinalKeysSome LinkedMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), Some(1u32));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"LinkedMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&head), Some(1u32));
|
||||
|
||||
<instance::LinkedMap2<instance::DefaultInstance>>::insert(1, 2);
|
||||
let mut k = b"FinalKeysSome LinkedMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"LinkedMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
<instance::DoubleMap<instance::DefaultInstance>>::insert(&1, &2, &3);
|
||||
let mut k = b"FinalKeysSome DoubleMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::blake2_256(&k).to_vec();
|
||||
k.extend(&hashing::blake2_256(&2u32.encode()));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"DoubleMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
|
||||
<instance::DoubleMap2<instance::DefaultInstance>>::insert(&1, &2, &3);
|
||||
let mut k = b"FinalKeysSome DoubleMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::twox_128(&k).to_vec();
|
||||
k.extend(&hashing::blake2_128(&2u32.encode()));
|
||||
let mut k = [twox_128(b"FinalKeysSome"), twox_128(b"DoubleMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
});
|
||||
}
|
||||
@@ -181,47 +179,43 @@ fn final_keys_default_instance() {
|
||||
fn final_keys_instance_2() {
|
||||
TestExternalities::default().execute_with(|| {
|
||||
<instance::Value<instance::Instance2>>::put(1);
|
||||
assert_eq!(
|
||||
unhashed::get::<u32>(&hashing::twox_128(b"Instance2FinalKeysSome Value")),
|
||||
Some(1u32)
|
||||
);
|
||||
let k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"Value")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(1u32));
|
||||
|
||||
<instance::Map<instance::Instance2>>::insert(1, 2);
|
||||
let mut k = b"Instance2FinalKeysSome Map".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"Map")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
<instance::Map2<instance::Instance2>>::insert(1, 2);
|
||||
let mut k = b"Instance2FinalKeysSome Map2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"Map2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
let head = b"head of Instance2FinalKeysSome LinkedMap".to_vec();
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), None);
|
||||
let head = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"HeadOfLinkedMap")].concat();
|
||||
assert_eq!(unhashed::get::<u32>(&head), None);
|
||||
|
||||
<instance::LinkedMap<instance::Instance2>>::insert(1, 2);
|
||||
let mut k = b"Instance2FinalKeysSome LinkedMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&k)), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::blake2_256(&head)), Some(1u32));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"LinkedMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
assert_eq!(unhashed::get::<u32>(&head), Some(1u32));
|
||||
|
||||
<instance::LinkedMap2<instance::Instance2>>::insert(1, 2);
|
||||
let mut k = b"Instance2FinalKeysSome LinkedMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
assert_eq!(unhashed::get::<u32>(&hashing::twox_128(&k)), Some(2u32));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"LinkedMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(2u32));
|
||||
|
||||
<instance::DoubleMap<instance::Instance2>>::insert(&1, &2, &3);
|
||||
let mut k = b"Instance2FinalKeysSome DoubleMap".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::blake2_256(&k).to_vec();
|
||||
k.extend(&hashing::blake2_256(&2u32.encode()));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"DoubleMap")].concat();
|
||||
k.extend(1u32.using_encoded(blake2_256).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_256).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
|
||||
<instance::DoubleMap2<instance::Instance2>>::insert(&1, &2, &3);
|
||||
let mut k = b"Instance2FinalKeysSome DoubleMap2".to_vec();
|
||||
k.extend(1u32.encode());
|
||||
let mut k = hashing::twox_128(&k).to_vec();
|
||||
k.extend(&hashing::blake2_128(&2u32.encode()));
|
||||
let mut k = [twox_128(b"Instance2FinalKeysSome"), twox_128(b"DoubleMap2")].concat();
|
||||
k.extend(1u32.using_encoded(twox_128).to_vec());
|
||||
k.extend(2u32.using_encoded(blake2_128).to_vec());
|
||||
assert_eq!(unhashed::get::<u32>(&k), Some(3u32));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -472,14 +472,3 @@ fn test_instance_storage_metadata() {
|
||||
let metadata = Module2_2::storage_metadata();
|
||||
pretty_assertions::assert_eq!(EXPECTED_METADATA, metadata);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn instance_prefix_is_prefix_of_entries() {
|
||||
use module2::Instance;
|
||||
|
||||
let prefix = module2::Instance2::PREFIX;
|
||||
assert!(module2::Instance2::PREFIX_FOR_Value.starts_with(prefix));
|
||||
assert!(module2::Instance2::PREFIX_FOR_Map.starts_with(prefix));
|
||||
assert!(module2::Instance2::PREFIX_FOR_LinkedMap.starts_with(prefix));
|
||||
assert!(module2::Instance2::PREFIX_FOR_DoubleMap.starts_with(prefix));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user