fix: Add workspace dependencies for vendored pezkuwi-subxt and zombienet-sdk

- Add all missing workspace dependencies required by vendor crates
- Include external crates: scale-*, sp-core, sc-chain-spec, kube, etc.
- Include subxt dependencies: smoldot, web-time, wasm-bindgen, etc.
- Regenerate umbrella crate with updated dependencies
- Apply zepter std feature propagation fixes to vendor crates
- Apply rustfmt formatting to vendor and pezframe files
This commit is contained in:
2025-12-23 00:18:55 +03:00
parent 70ddb6516f
commit 49485a882c
133 changed files with 1070 additions and 697 deletions
+8 -1
View File
@@ -15,7 +15,14 @@ description = "Command line utilities for checking metadata compatibility betwee
[features]
default = ["legacy", "std"]
std = ["frame-metadata/std", "scale-info/std"]
std = [
"frame-metadata/std",
"scale-info/std",
"bitvec/std",
"frame-decode/std",
"codec/std",
"pezsp-crypto-hashing/std"
]
# Enable decoding of legacy metadata, too.
# std required by frame-metadata to decode <V14.
+2 -2
View File
@@ -3,8 +3,8 @@ mod portable_registry_builder;
mod tests;
use crate::{
Metadata,
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
Metadata,
};
use alloc::{borrow::ToOwned, collections::BTreeMap, format, string::ToString, vec::Vec};
use frame_decode::{
@@ -15,7 +15,7 @@ use frame_decode::{
};
use frame_metadata::v15;
use portable_registry_builder::PortableRegistryBuilder;
use scale_info_legacy::{TypeRegistrySet, type_registry::RuntimeApiName};
use scale_info_legacy::{type_registry::RuntimeApiName, TypeRegistrySet};
/// Options to configure the legacy translating.
pub(crate) struct Opts {
@@ -4,8 +4,8 @@ use alloc::{
string::ToString,
vec::Vec,
};
use scale_info::{PortableRegistry, PortableType, form::PortableForm};
use scale_info_legacy::{LookupName, TypeRegistrySet, type_registry::TypeRegistryResolveError};
use scale_info::{form::PortableForm, PortableRegistry, PortableType};
use scale_info_legacy::{type_registry::TypeRegistryResolveError, LookupName, TypeRegistrySet};
use scale_type_resolver::{
BitsOrderFormat, BitsStoreFormat, FieldIter, PathIter, Primitive, ResolvedTypeVisitor,
UnhandledKind, VariantIter,
@@ -459,9 +459,9 @@ fn prepare_path<'info, Path: PathIter<'info>>(
// Non-compliant paths are converted to our default path
let non_compliant_path = path[0..path.len() - 1].iter().any(|&p| {
p.is_empty() ||
p.starts_with(|c: char| !c.is_ascii_alphabetic()) ||
p.contains(|c: char| !c.is_ascii_alphanumeric() || c.is_ascii_uppercase())
p.is_empty()
|| p.starts_with(|c: char| !c.is_ascii_alphabetic())
|| p.contains(|c: char| !c.is_ascii_alphanumeric() || c.is_ascii_uppercase())
});
if non_compliant_path {
let last = *path.last().unwrap();
+15 -10
View File
@@ -432,16 +432,21 @@ fn codegen_works() {
};
match &metadata {
RuntimeMetadata::V9(m) =>
pezkuwi_subxt_codegen::Metadata::from_v9(m, &types_for_spec),
RuntimeMetadata::V10(m) =>
pezkuwi_subxt_codegen::Metadata::from_v10(m, &types_for_spec),
RuntimeMetadata::V11(m) =>
pezkuwi_subxt_codegen::Metadata::from_v11(m, &types_for_spec),
RuntimeMetadata::V12(m) =>
pezkuwi_subxt_codegen::Metadata::from_v12(m, &types_for_spec),
RuntimeMetadata::V13(m) =>
pezkuwi_subxt_codegen::Metadata::from_v13(m, &types_for_spec),
RuntimeMetadata::V9(m) => {
pezkuwi_subxt_codegen::Metadata::from_v9(m, &types_for_spec)
},
RuntimeMetadata::V10(m) => {
pezkuwi_subxt_codegen::Metadata::from_v10(m, &types_for_spec)
},
RuntimeMetadata::V11(m) => {
pezkuwi_subxt_codegen::Metadata::from_v11(m, &types_for_spec)
},
RuntimeMetadata::V12(m) => {
pezkuwi_subxt_codegen::Metadata::from_v12(m, &types_for_spec)
},
RuntimeMetadata::V13(m) => {
pezkuwi_subxt_codegen::Metadata::from_v13(m, &types_for_spec)
},
_ => panic!("Metadata version {} not expected", metadata.version()),
}
.expect("Could not convert to pezkuwi_subxt_metadata::Metadata")
+42 -28
View File
@@ -53,34 +53,48 @@ impl TryFrom<frame_metadata::RuntimeMetadataPrefixed> for crate::Metadata {
fn try_from(value: frame_metadata::RuntimeMetadataPrefixed) -> Result<Self, Self::Error> {
match value.1 {
frame_metadata::RuntimeMetadata::V0(_) =>
Err(TryFromError::UnsupportedMetadataVersion(0)),
frame_metadata::RuntimeMetadata::V1(_) =>
Err(TryFromError::UnsupportedMetadataVersion(1)),
frame_metadata::RuntimeMetadata::V2(_) =>
Err(TryFromError::UnsupportedMetadataVersion(2)),
frame_metadata::RuntimeMetadata::V3(_) =>
Err(TryFromError::UnsupportedMetadataVersion(3)),
frame_metadata::RuntimeMetadata::V4(_) =>
Err(TryFromError::UnsupportedMetadataVersion(4)),
frame_metadata::RuntimeMetadata::V5(_) =>
Err(TryFromError::UnsupportedMetadataVersion(5)),
frame_metadata::RuntimeMetadata::V6(_) =>
Err(TryFromError::UnsupportedMetadataVersion(6)),
frame_metadata::RuntimeMetadata::V7(_) =>
Err(TryFromError::UnsupportedMetadataVersion(7)),
frame_metadata::RuntimeMetadata::V8(_) =>
Err(TryFromError::UnsupportedMetadataVersion(8)),
frame_metadata::RuntimeMetadata::V9(_) =>
Err(TryFromError::UnsupportedMetadataVersion(9)),
frame_metadata::RuntimeMetadata::V10(_) =>
Err(TryFromError::UnsupportedMetadataVersion(10)),
frame_metadata::RuntimeMetadata::V11(_) =>
Err(TryFromError::UnsupportedMetadataVersion(11)),
frame_metadata::RuntimeMetadata::V12(_) =>
Err(TryFromError::UnsupportedMetadataVersion(12)),
frame_metadata::RuntimeMetadata::V13(_) =>
Err(TryFromError::UnsupportedMetadataVersion(13)),
frame_metadata::RuntimeMetadata::V0(_) => {
Err(TryFromError::UnsupportedMetadataVersion(0))
},
frame_metadata::RuntimeMetadata::V1(_) => {
Err(TryFromError::UnsupportedMetadataVersion(1))
},
frame_metadata::RuntimeMetadata::V2(_) => {
Err(TryFromError::UnsupportedMetadataVersion(2))
},
frame_metadata::RuntimeMetadata::V3(_) => {
Err(TryFromError::UnsupportedMetadataVersion(3))
},
frame_metadata::RuntimeMetadata::V4(_) => {
Err(TryFromError::UnsupportedMetadataVersion(4))
},
frame_metadata::RuntimeMetadata::V5(_) => {
Err(TryFromError::UnsupportedMetadataVersion(5))
},
frame_metadata::RuntimeMetadata::V6(_) => {
Err(TryFromError::UnsupportedMetadataVersion(6))
},
frame_metadata::RuntimeMetadata::V7(_) => {
Err(TryFromError::UnsupportedMetadataVersion(7))
},
frame_metadata::RuntimeMetadata::V8(_) => {
Err(TryFromError::UnsupportedMetadataVersion(8))
},
frame_metadata::RuntimeMetadata::V9(_) => {
Err(TryFromError::UnsupportedMetadataVersion(9))
},
frame_metadata::RuntimeMetadata::V10(_) => {
Err(TryFromError::UnsupportedMetadataVersion(10))
},
frame_metadata::RuntimeMetadata::V11(_) => {
Err(TryFromError::UnsupportedMetadataVersion(11))
},
frame_metadata::RuntimeMetadata::V12(_) => {
Err(TryFromError::UnsupportedMetadataVersion(12))
},
frame_metadata::RuntimeMetadata::V13(_) => {
Err(TryFromError::UnsupportedMetadataVersion(13))
},
frame_metadata::RuntimeMetadata::V14(m) => m.try_into(),
frame_metadata::RuntimeMetadata::V15(m) => m.try_into(),
frame_metadata::RuntimeMetadata::V16(m) => m.try_into(),
+1 -1
View File
@@ -5,9 +5,9 @@
use super::TryFromError;
use crate::{
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
ConstantMetadata, CustomMetadataInner, ExtrinsicMetadata, Metadata, OuterEnumsMetadata,
PalletMetadataInner, StorageEntryMetadata, StorageMetadata, TransactionExtensionMetadataInner,
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
};
use alloc::{borrow::ToOwned, collections::BTreeMap, format, string::String, vec, vec::Vec};
use frame_decode::storage::StorageTypeInfo;
+1 -1
View File
@@ -5,10 +5,10 @@
use super::TryFromError;
use crate::{
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
ConstantMetadata, ExtrinsicMetadata, Metadata, OuterEnumsMetadata, PalletMetadataInner,
RuntimeApiMetadataInner, RuntimeApiMethodMetadataInner, StorageEntryMetadata, StorageMetadata,
TransactionExtensionMetadataInner,
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
};
use alloc::{collections::BTreeMap, vec, vec::Vec};
use frame_decode::{runtime_apis::RuntimeApiTypeInfo, storage::StorageTypeInfo};
+1 -1
View File
@@ -5,10 +5,10 @@
use super::TryFromError;
use crate::{
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
ConstantMetadata, ExtrinsicMetadata, Metadata, OuterEnumsMetadata, PalletMetadataInner,
RuntimeApiMetadataInner, RuntimeApiMethodMetadataInner, StorageEntryMetadata, StorageMetadata,
TransactionExtensionMetadataInner, ViewFunctionMetadataInner,
utils::{ordered_map::OrderedMap, variant_index::VariantIndex},
};
use frame_decode::{
runtime_apis::RuntimeApiTypeInfo, storage::StorageTypeInfo,
+3 -3
View File
@@ -43,15 +43,15 @@ use frame_decode::{
};
use hashbrown::HashMap;
use scale_info::{PortableRegistry, Variant, form::PortableForm};
use scale_info::{form::PortableForm, PortableRegistry, Variant};
use utils::{
ordered_map::OrderedMap,
validation::{HASH_LEN, get_custom_value_hash},
validation::{get_custom_value_hash, HASH_LEN},
variant_index::VariantIndex,
};
pub use frame_decode::storage::StorageHasher;
pub use from::{SUPPORTED_METADATA_VERSIONS, TryFromError};
pub use from::{TryFromError, SUPPORTED_METADATA_VERSIONS};
pub use utils::validation::MetadataHasher;
#[cfg(feature = "legacy")]
+17 -5
View File
@@ -10,7 +10,7 @@ use crate::{
};
use alloc::vec::Vec;
use hashbrown::HashMap;
use scale_info::{Field, PortableRegistry, TypeDef, TypeDefVariant, Variant, form::PortableForm};
use scale_info::{form::PortableForm, Field, PortableRegistry, TypeDef, TypeDefVariant, Variant};
// The number of bytes our `hash` function produces.
pub(crate) const HASH_LEN: usize = 32;
@@ -115,7 +115,11 @@ fn get_type_def_variant_hash(
.as_ref()
.map(|only_these_variants| only_these_variants.contains(&var.name.as_str()))
.unwrap_or(true);
if should_hash { xor(bytes, get_variant_hash(registry, var, cache)) } else { bytes }
if should_hash {
xor(bytes, get_variant_hash(registry, var, cache))
} else {
bytes
}
});
concat_and_hash2(&variant_id_bytes, &variant_field_bytes)
}
@@ -521,7 +525,11 @@ impl<'a> MetadataHasher<'a> {
.unwrap_or(true);
// We don't care what order the pallets are seen in, so XOR their
// hashes together to be order independent.
if should_hash { xor(bytes, get_pallet_hash(pallet)) } else { bytes }
if should_hash {
xor(bytes, get_pallet_hash(pallet))
} else {
bytes
}
});
let apis_hash = metadata.runtime_api_traits().fold([0u8; HASH_LEN], |bytes, api| {
@@ -534,7 +542,11 @@ impl<'a> MetadataHasher<'a> {
.unwrap_or(true);
// We don't care what order the runtime APIs are seen in, so XOR their
// hashes together to be order independent.
if should_hash { xor(bytes, get_runtime_apis_hash(api)) } else { bytes }
if should_hash {
xor(bytes, get_runtime_apis_hash(api))
} else {
bytes
}
});
let outer_enums_hash = concat_and_hash3(
@@ -566,7 +578,7 @@ mod tests {
use super::*;
use bitvec::{order::Lsb0, vec::BitVec};
use frame_metadata::v15;
use scale_info::{Registry, meta_type};
use scale_info::{meta_type, Registry};
// Define recursive types.
#[allow(dead_code)]
+1 -1
View File
@@ -4,7 +4,7 @@
use alloc::{borrow::ToOwned, string::String};
use hashbrown::HashMap;
use scale_info::{PortableRegistry, TypeDef, Variant, form::PortableForm};
use scale_info::{form::PortableForm, PortableRegistry, TypeDef, Variant};
/// Given some type ID and type registry, build a couple of
/// indexes to look up variants by index or name. If the ID provided