mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 18:31:05 +00:00
Include StorageInfo in Benchmarking Pipeline (#9090)
* extend storageinfo * extend_storage_info * use vec * add storage info to pipeline * get read and written keys * undo storageinfo move * refactor keytracker * return read / write count * playing with key matching * add basic `StorageInfo` constructor * add whitelisted to returned info * fix some test stuff * pipe comments into benchmark data * add_storage_comments * add comments to template * track only storage prefix * Update frame/benchmarking/src/lib.rs * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix test * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * remove test logs * add temp benchmark script * Apply suggestions from code review Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> * remove keytracker and use trackedstoragekey * add comment for unknown keys * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs * remove duplicate comments with unknown keys * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * refactor bench tracker, and fix results * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix child tries in new tracker * extra newline * fix unused warning * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix master merge * storage info usage refactor * remove now unused * fix refactor * use a vec for prefix * fix tests * also update writer to use vec * disable read and written keys for now * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Update frame/system/src/weights.rs * fix test * Delete weights.rs * reset weights Co-authored-by: Parity Bot <admin@parity.io> Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
This commit is contained in:
@@ -273,9 +273,15 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::storage_value_final_key(),
|
||||
>::storage_value_final_key().to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(max_size),
|
||||
}
|
||||
@@ -308,10 +314,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: Some(max_size),
|
||||
}
|
||||
@@ -350,10 +364,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: Some(max_size),
|
||||
}
|
||||
@@ -385,10 +407,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: Some(max_size),
|
||||
}
|
||||
@@ -413,9 +443,15 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
{
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct as #scrate::#storage_generator_trait
|
||||
>::storage_value_final_key(),
|
||||
>::storage_value_final_key().to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
}
|
||||
@@ -435,10 +471,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
{
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: None,
|
||||
}
|
||||
@@ -458,10 +502,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
{
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: None,
|
||||
}
|
||||
@@ -481,10 +533,18 @@ pub fn decl_and_impl(def: &DeclStorageDefExt) -> TokenStream {
|
||||
{
|
||||
#scrate::sp_std::vec![
|
||||
#scrate::traits::StorageInfo {
|
||||
pallet_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::module_prefix().to_vec(),
|
||||
storage_name: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::storage_prefix().to_vec(),
|
||||
prefix: <
|
||||
#storage_struct
|
||||
as #scrate::storage::StoragePrefixedMap<#value_type>
|
||||
>::final_prefix(),
|
||||
>::final_prefix().to_vec(),
|
||||
max_values: #max_values,
|
||||
max_size: None,
|
||||
}
|
||||
|
||||
@@ -486,7 +486,9 @@ where
|
||||
fn storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: Some(
|
||||
Hasher1::max_len::<Key1>()
|
||||
@@ -517,7 +519,9 @@ where
|
||||
fn partial_storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: None
|
||||
}
|
||||
|
||||
@@ -363,7 +363,9 @@ where
|
||||
fn storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: Some(
|
||||
Hasher::max_len::<Key>()
|
||||
@@ -391,7 +393,9 @@ where
|
||||
fn partial_storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: None,
|
||||
}
|
||||
|
||||
@@ -418,7 +418,9 @@ where
|
||||
fn storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: Some(
|
||||
Key::key_max_encoded_len()
|
||||
@@ -445,7 +447,9 @@ where
|
||||
fn partial_storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::final_prefix(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::final_prefix().to_vec(),
|
||||
max_values: MaxValues::get(),
|
||||
max_size: None,
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ use crate::{
|
||||
storage::{
|
||||
StorageAppend, StorageTryAppend, StorageDecodeLength,
|
||||
types::{OptionQuery, QueryKindTrait, OnEmptyGetter},
|
||||
generator::{StorageValue as StorageValueT},
|
||||
},
|
||||
traits::{GetDefault, StorageInstance, StorageInfo},
|
||||
};
|
||||
@@ -217,7 +218,9 @@ where
|
||||
fn storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::hashed_key(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::hashed_key().to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(
|
||||
Value::max_encoded_len()
|
||||
@@ -241,7 +244,9 @@ where
|
||||
fn partial_storage_info() -> Vec<StorageInfo> {
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: Self::hashed_key(),
|
||||
pallet_name: Self::module_prefix().to_vec(),
|
||||
storage_name: Self::storage_prefix().to_vec(),
|
||||
prefix: Self::hashed_key().to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
}
|
||||
|
||||
@@ -48,11 +48,15 @@ pub trait StorageInstance {
|
||||
const STORAGE_PREFIX: &'static str;
|
||||
}
|
||||
|
||||
/// Some info about an individual storage in a pallet.
|
||||
/// Metadata about storage from the runtime.
|
||||
#[derive(codec::Encode, codec::Decode, crate::RuntimeDebug, Eq, PartialEq, Clone)]
|
||||
pub struct StorageInfo {
|
||||
/// The prefix of the storage. All keys after the prefix are considered part of the storage
|
||||
pub prefix: [u8; 32],
|
||||
/// Encoded string of pallet name.
|
||||
pub pallet_name: Vec<u8>,
|
||||
/// Encoded string of storage name.
|
||||
pub storage_name: Vec<u8>,
|
||||
/// The prefix of the storage. All keys after the prefix are considered part of this storage.
|
||||
pub prefix: Vec<u8>,
|
||||
/// The maximum number of values in the storage, or none if no maximum specified.
|
||||
pub max_values: Option<u32>,
|
||||
/// The maximum size of key/values in the storage, or none if no maximum specified.
|
||||
|
||||
@@ -438,147 +438,205 @@ mod tests {
|
||||
<Module<TraitImpl>>::storage_info(),
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"U32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"U32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"U32").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBU32").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"U32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"U32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"U32MYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBU32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBU32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBU32MYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETU32").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETU32WITHCONFIG"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETU32WITHCONFIG".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETU32WITHCONFIG").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIG"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETU32WITHCONFIG".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIG").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETU32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETU32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETU32MYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETU32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32MYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETU32WITHCONFIGMYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETU32WITHCONFIGMYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETU32WITHCONFIGMYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIGMYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETU32WITHCONFIGMYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIGMYDEF").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIGMYDEFOPT"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETU32WITHCONFIGMYDEFOPT".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETU32WITHCONFIGMYDEFOPT").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GetU32WithBuilder"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GetU32WithBuilder".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GetU32WithBuilder").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GetOptU32WithBuilderSome"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GetOptU32WithBuilderSome".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GetOptU32WithBuilderSome").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GetOptU32WithBuilderNone"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GetOptU32WithBuilderNone".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GetOptU32WithBuilderNone").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"MAPU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"MAPU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"MAPU32").to_vec(),
|
||||
max_values: Some(3),
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBMAPU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBMAPU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBMAPU32").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETMAPU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETMAPU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETMAPU32").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETMAPU32"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETMAPU32".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETMAPU32").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"GETMAPU32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"GETMAPU32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"GETMAPU32MYDEF").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PUBGETMAPU32MYDEF"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PUBGETMAPU32MYDEF".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PUBGETMAPU32MYDEF").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"DOUBLEMAP"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"DOUBLEMAP".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"DOUBLEMAP").to_vec(),
|
||||
max_values: Some(3),
|
||||
max_size: Some(12 + 16 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"DOUBLEMAP2"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"DOUBLEMAP2".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"DOUBLEMAP2").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(12 + 16 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE1"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"COMPLEXTYPE1".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE1").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(5),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE2"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"COMPLEXTYPE2".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE2").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(1156),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE3"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"COMPLEXTYPE3".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"COMPLEXTYPE3").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(100),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"NMAP"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"NMAP".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"NMAP").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(16 + 4 + 8 + 2 + 1),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"NMAP2"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"NMAP2".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"NMAP2").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(16 + 4 + 1),
|
||||
},
|
||||
@@ -669,22 +727,30 @@ mod test2 {
|
||||
<Module<TraitImpl>>::storage_info(),
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"SingleDef"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"SingleDef".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"SingleDef").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"PairDef"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"PairDef".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"PairDef").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"Single"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"Single".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"Single").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"TestStorage", b"Pair"),
|
||||
pallet_name: b"TestStorage".to_vec(),
|
||||
storage_name: b"Pair".to_vec(),
|
||||
prefix: prefix(b"TestStorage", b"Pair").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
},
|
||||
|
||||
@@ -1171,54 +1171,74 @@ fn test_storage_info() {
|
||||
Example::storage_info(),
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"ValueWhereClause"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"ValueWhereClause".to_vec(),
|
||||
prefix: prefix(b"Example", b"ValueWhereClause").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(8),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"Value"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"Value".to_vec(),
|
||||
prefix: prefix(b"Example", b"Value").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"Value2"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"Value2".to_vec(),
|
||||
prefix: prefix(b"Example", b"Value2").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(8),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"Map"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"Map".to_vec(),
|
||||
prefix: prefix(b"Example", b"Map").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(3 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"Map2"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"Map2".to_vec(),
|
||||
prefix: prefix(b"Example", b"Map2").to_vec(),
|
||||
max_values: Some(3),
|
||||
max_size: Some(6 + 8),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"DoubleMap"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"DoubleMap".to_vec(),
|
||||
prefix: prefix(b"Example", b"DoubleMap").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(7 + 16 + 8),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"DoubleMap2"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"DoubleMap2".to_vec(),
|
||||
prefix: prefix(b"Example", b"DoubleMap2").to_vec(),
|
||||
max_values: Some(5),
|
||||
max_size: Some(14 + 8 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"NMap"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"NMap".to_vec(),
|
||||
prefix: prefix(b"Example", b"NMap").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(5 + 16),
|
||||
},
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"NMap2"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"NMap2".to_vec(),
|
||||
prefix: prefix(b"Example", b"NMap2").to_vec(),
|
||||
max_values: Some(11),
|
||||
max_size: Some(14 + 8 + 16),
|
||||
},
|
||||
#[cfg(feature = "conditional-storage")]
|
||||
{
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"ConditionalValue"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"ConditionalValue".to_vec(),
|
||||
prefix: prefix(b"Example", b"ConditionalValue").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: Some(4),
|
||||
}
|
||||
@@ -1226,7 +1246,9 @@ fn test_storage_info() {
|
||||
#[cfg(feature = "conditional-storage")]
|
||||
{
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"ConditionalMap"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"ConditionalMap".to_vec(),
|
||||
prefix: prefix(b"Example", b"ConditionalMap").to_vec(),
|
||||
max_values: Some(12),
|
||||
max_size: Some(6 + 8),
|
||||
}
|
||||
@@ -1234,7 +1256,9 @@ fn test_storage_info() {
|
||||
#[cfg(feature = "conditional-storage")]
|
||||
{
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"ConditionalDoubleMap"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"ConditionalDoubleMap".to_vec(),
|
||||
prefix: prefix(b"Example", b"ConditionalDoubleMap").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(7 + 16 + 8),
|
||||
}
|
||||
@@ -1242,7 +1266,9 @@ fn test_storage_info() {
|
||||
#[cfg(feature = "conditional-storage")]
|
||||
{
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example", b"ConditionalNMap"),
|
||||
pallet_name: b"Example".to_vec(),
|
||||
storage_name: b"ConditionalNMap".to_vec(),
|
||||
prefix: prefix(b"Example", b"ConditionalNMap").to_vec(),
|
||||
max_values: None,
|
||||
max_size: Some(7 + 16 + 8),
|
||||
}
|
||||
@@ -1254,7 +1280,9 @@ fn test_storage_info() {
|
||||
Example2::storage_info(),
|
||||
vec![
|
||||
StorageInfo {
|
||||
prefix: prefix(b"Example2", b"SomeValue"),
|
||||
pallet_name: b"Example2".to_vec(),
|
||||
storage_name: b"SomeValue".to_vec(),
|
||||
prefix: prefix(b"Example2", b"SomeValue").to_vec(),
|
||||
max_values: Some(1),
|
||||
max_size: None,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user