refactor: zombienet-sdk rebrand and subxt compatibility fixes
Zombienet-SDK changes: - orchestrator: sc-chain-spec → pezsc-chain-spec - orchestrator: sp-core → pezsp-core imports - orchestrator: k8s-openapi v1_27 → v1_28 - provider: k8s-openapi v1_27 → v1_28 - sdk: k8s-openapi v1_27 → v1_28 Subxt vendor fixes: - Enable std features (remove default-features = false) - Fix lifetime annotations for Rust 2024 compatibility - Fix ecdsa/sr25519 password type conversions - Fix RecoveryId API change (i32::from → to_i32) Dependencies: - wasmtime: 35.0.0 → 37.0.0 (security fix) - tracing-subscriber: 0.3.18 → 0.3.20 (security fix) - thiserror: 1.0.64 → 2.0.17 Note: ring 0.16.20 vulnerability remains - requires libp2p 0.56 upgrade which needs extensive pezsc-network API changes.
This commit is contained in:
Generated
+273
-1596
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -1508,15 +1508,15 @@ static_assertions = { version = "1.1.0", default-features = false }
|
||||
static_init = { version = "1.0.3" }
|
||||
strum = { version = "0.26.3", default-features = false }
|
||||
# Pezkuwi-subxt (vendored from subxt with pezsp_runtime support)
|
||||
pezkuwi-subxt = { path = "vendor/pezkuwi-subxt/subxt", default-features = false }
|
||||
pezkuwi-subxt = { path = "vendor/pezkuwi-subxt/subxt" }
|
||||
pezkuwi-subxt-codegen = { path = "vendor/pezkuwi-subxt/codegen" }
|
||||
pezkuwi-subxt-core = { path = "vendor/pezkuwi-subxt/core", default-features = false }
|
||||
pezkuwi-subxt-lightclient = { path = "vendor/pezkuwi-subxt/lightclient", default-features = false }
|
||||
pezkuwi-subxt-core = { path = "vendor/pezkuwi-subxt/core" }
|
||||
pezkuwi-subxt-lightclient = { path = "vendor/pezkuwi-subxt/lightclient" }
|
||||
pezkuwi-subxt-macro = { path = "vendor/pezkuwi-subxt/macro" }
|
||||
pezkuwi-subxt-metadata = { path = "vendor/pezkuwi-subxt/metadata", default-features = false }
|
||||
pezkuwi-subxt-rpcs = { path = "vendor/pezkuwi-subxt/rpcs", default-features = false }
|
||||
pezkuwi-subxt-signer = { path = "vendor/pezkuwi-subxt/signer", default-features = false }
|
||||
pezkuwi-subxt-utils-fetchmetadata = { path = "vendor/pezkuwi-subxt/utils/fetch-metadata", default-features = false }
|
||||
pezkuwi-subxt-metadata = { path = "vendor/pezkuwi-subxt/metadata" }
|
||||
pezkuwi-subxt-rpcs = { path = "vendor/pezkuwi-subxt/rpcs" }
|
||||
pezkuwi-subxt-signer = { path = "vendor/pezkuwi-subxt/signer" }
|
||||
pezkuwi-subxt-utils-fetchmetadata = { path = "vendor/pezkuwi-subxt/utils/fetch-metadata" }
|
||||
pezkuwi-subxt-utils-stripmetadata = { path = "vendor/pezkuwi-subxt/utils/strip-metadata" }
|
||||
support = { package = "zombienet-support", path = "vendor/pezkuwi-zombienet-sdk/crates/support" }
|
||||
syn = { version = "2.0.87" }
|
||||
@@ -1537,7 +1537,7 @@ test-teyrchain-adder = { path = "pezkuwi/teyrchain/test-teyrchains/adder" }
|
||||
test-teyrchain-halt = { path = "pezkuwi/teyrchain/test-teyrchains/halt" }
|
||||
test-teyrchain-undying = { path = "pezkuwi/teyrchain/test-teyrchains/undying" }
|
||||
testnet-teyrchains-constants = { path = "pezcumulus/teyrchains/runtimes/constants", default-features = false }
|
||||
thiserror = { version = "1.0.64" }
|
||||
thiserror = { version = "2.0.17", default-features = true }
|
||||
thousands = { version = "0.2.0" }
|
||||
threadpool = { version = "1.7" }
|
||||
tikv-jemalloc-ctl = { version = "0.6.0", features = ["stats"] }
|
||||
|
||||
Vendored
+1
-1
@@ -53,7 +53,7 @@ scale-info = { workspace = true, default-features = false, features = ["bit-vec"
|
||||
scale-value = { workspace = true, default-features = false }
|
||||
serde = { workspace = true, default-features = false, features = ["derive"] }
|
||||
serde_json = { workspace = true, default-features = false, features = ["alloc", "raw_value"] }
|
||||
thiserror = { workspace = true, default-features = false }
|
||||
thiserror = { workspace = true }
|
||||
tracing = { workspace = true, default-features = false }
|
||||
|
||||
# For ss58 encoding AccountId32 to serialize them properly:
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ impl<'info, KeyParts: IntoDecodableValues> StorageKey<'info, KeyParts> {
|
||||
|
||||
/// Iterate over the parts of this storage key. Each part of a storage key corresponds to a
|
||||
/// single value that has been hashed.
|
||||
pub fn parts(&self) -> impl ExactSizeIterator<Item = StorageKeyPart<'info>> {
|
||||
pub fn parts(&self) -> impl ExactSizeIterator<Item = StorageKeyPart<'info>> + '_ {
|
||||
let parts_len = self.info.parts().len();
|
||||
(0..parts_len).map(move |index| StorageKeyPart {
|
||||
index,
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ pezsp-crypto-hashing = { workspace = true }
|
||||
scale-info = { workspace = true, default-features = false }
|
||||
scale-info-legacy = { workspace = true, optional = true }
|
||||
scale-type-resolver = { workspace = true, optional = true }
|
||||
thiserror = { workspace = true, default-features = false }
|
||||
thiserror = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
bitvec = { workspace = true, features = ["alloc"] }
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ secp256k1 = { workspace = true, optional = true, features = [
|
||||
] }
|
||||
secrecy = { workspace = true }
|
||||
sha2 = { workspace = true }
|
||||
thiserror = { workspace = true, default-features = false }
|
||||
thiserror = { workspace = true }
|
||||
zeroize = { workspace = true }
|
||||
|
||||
# These are used if the pezkuwi-js-compat feature is enabled
|
||||
|
||||
+2
-2
@@ -68,7 +68,7 @@ impl Keypair {
|
||||
Self::from_secret_key(seed)?
|
||||
} else {
|
||||
let phrase = bip39::Mnemonic::from_str(phrase.expose_secret())?;
|
||||
let pass_str = password.as_ref().map(|p| p.expose_secret());
|
||||
let pass_str = password.as_ref().map(|p| p.expose_secret().as_str());
|
||||
Self::from_phrase(&phrase, pass_str)?
|
||||
};
|
||||
|
||||
@@ -197,7 +197,7 @@ pub(crate) mod internal {
|
||||
let (recid, sig): (_, [u8; 64]) = recsig.serialize_compact();
|
||||
let mut signature_bytes: [u8; 65] = [0; 65];
|
||||
signature_bytes[..64].copy_from_slice(&sig);
|
||||
signature_bytes[64] = (i32::from(recid) & 0xFF) as u8;
|
||||
signature_bytes[64] = (recid.to_i32() & 0xFF) as u8;
|
||||
signature_bytes
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ impl Keypair {
|
||||
Self::from_secret_key(seed)?
|
||||
} else {
|
||||
let phrase = bip39::Mnemonic::from_str(phrase.expose_secret())?;
|
||||
let pass_str = password.as_ref().map(|p| p.expose_secret());
|
||||
let pass_str = password.as_ref().map(|p| p.expose_secret().as_str());
|
||||
Self::from_phrase(&phrase, pass_str)?
|
||||
};
|
||||
|
||||
|
||||
@@ -74,9 +74,9 @@ where
|
||||
/// Iterate through the extrinsics using metadata to dynamically decode and skip
|
||||
/// them, and return only those which should decode to the provided `E` type.
|
||||
/// If an error occurs, all subsequent iterations return `None`.
|
||||
pub fn find<E: StaticExtrinsic>(
|
||||
&self,
|
||||
) -> impl Iterator<Item = Result<FoundExtrinsic<T, C, E>, ExtrinsicError>> {
|
||||
pub fn find<'a, E: StaticExtrinsic + 'a>(
|
||||
&'a self,
|
||||
) -> impl Iterator<Item = Result<FoundExtrinsic<T, C, E>, ExtrinsicError>> + 'a {
|
||||
self.inner.find::<E>().map(|res| {
|
||||
match res {
|
||||
Err(e) => Err(ExtrinsicError::from(e)),
|
||||
@@ -290,7 +290,7 @@ impl<T: Config> ExtrinsicEvents<T> {
|
||||
///
|
||||
/// This works in the same way that [`events::Events::iter()`] does, with the
|
||||
/// exception that it filters out events not related to the submitted extrinsic.
|
||||
pub fn iter(&self) -> impl Iterator<Item = Result<events::EventDetails<T>, EventsError>> {
|
||||
pub fn iter(&self) -> impl Iterator<Item = Result<events::EventDetails<T>, EventsError>> + '_ {
|
||||
self.events.iter().filter(|ev| {
|
||||
ev.as_ref()
|
||||
.map(|ev| ev.phase() == events::Phase::ApplyExtrinsic(self.idx))
|
||||
@@ -302,7 +302,7 @@ impl<T: Config> ExtrinsicEvents<T> {
|
||||
///
|
||||
/// This works in the same way that [`events::Events::find()`] does, with the
|
||||
/// exception that it filters out events not related to the submitted extrinsic.
|
||||
pub fn find<Ev: events::StaticEvent>(&self) -> impl Iterator<Item = Result<Ev, EventsError>> {
|
||||
pub fn find<'a, Ev: events::StaticEvent + 'a>(&'a self) -> impl Iterator<Item = Result<Ev, EventsError>> + 'a {
|
||||
self.iter().filter_map(|ev| ev.and_then(|ev| ev.as_event::<Ev>()).transpose())
|
||||
}
|
||||
|
||||
|
||||
@@ -30,16 +30,13 @@ reqwest = { workspace = true }
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
serde_json = { workspace = true, features = ["arbitrary_precision"] }
|
||||
sha2 = { workspace = true, default-features = false }
|
||||
sp-core = { workspace = true }
|
||||
pezsp-core = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
tokio = { workspace = true, features = ["time"] }
|
||||
tracing = { workspace = true }
|
||||
uuid = { workspace = true }
|
||||
# staging-chain-spec-builder = { workspace = true }
|
||||
# parity-scale-codec = { version = "3.7.5", features = ["derive"] }
|
||||
# sc-chain-spec = {workspace = true, default-features = false}
|
||||
erased-serde = { workspace = true }
|
||||
sc-chain-spec = { workspace = true }
|
||||
pezsc-chain-spec = { workspace = true }
|
||||
|
||||
# Zombienet deps
|
||||
configuration = { workspace = true }
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ use provider::{
|
||||
types::{GenerateFileCommand, GenerateFilesOptions, TransferedFile},
|
||||
DynNamespace, ProviderError,
|
||||
};
|
||||
use sc_chain_spec::{GenericChainSpec, GenesisConfigBuilderRuntimeCaller};
|
||||
use pezsc_chain_spec::{GenericChainSpec, GenesisConfigBuilderRuntimeCaller};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::json;
|
||||
use support::{constants::THIS_IS_A_BUG, fs::FileSystem, replacer::apply_replacements};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use sp_core::{crypto::SecretStringError, ecdsa, ed25519, keccak_256, sr25519, Pair, H160, H256};
|
||||
use pezsp_core::{crypto::SecretStringError, ecdsa, ed25519, keccak_256, sr25519, Pair, H160, H256};
|
||||
|
||||
use super::errors::GeneratorError;
|
||||
use crate::shared::types::{Accounts, NodeAccount};
|
||||
@@ -59,7 +59,7 @@ mod tests {
|
||||
use super::*;
|
||||
#[test]
|
||||
fn generate_for_alice() {
|
||||
use sp_core::crypto::Ss58Codec;
|
||||
use pezsp_core::crypto::Ss58Codec;
|
||||
let s = "Alice";
|
||||
let seed = format!("//{s}");
|
||||
|
||||
@@ -84,7 +84,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn generate_for_zombie() {
|
||||
use sp_core::crypto::Ss58Codec;
|
||||
use pezsp_core::crypto::Ss58Codec;
|
||||
let s = "Zombie";
|
||||
let seed = format!("//{s}");
|
||||
|
||||
|
||||
@@ -1053,7 +1053,7 @@ pub enum ZombieRole {
|
||||
// re-exports
|
||||
pub use network::{AddCollatorOptions, AddNodeOptions};
|
||||
pub use network_helper::metrics;
|
||||
pub use sc_chain_spec;
|
||||
pub use pezsc_chain_spec;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ erased-serde = { workspace = true }
|
||||
flate2 = { workspace = true }
|
||||
futures = { workspace = true }
|
||||
hex = { workspace = true }
|
||||
k8s-openapi = { workspace = true, features = ["v1_27"] }
|
||||
k8s-openapi = { workspace = true, features = ["v1_28"] }
|
||||
kube = { workspace = true, features = ["runtime", "ws"] }
|
||||
nix = { workspace = true, features = ["signal"] }
|
||||
regex = { workspace = true }
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ provider = { workspace = true }
|
||||
support = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
k8s-openapi = { workspace = true, features = ["v1_27"] }
|
||||
k8s-openapi = { workspace = true, features = ["v1_28"] }
|
||||
kube = { workspace = true, features = ["runtime", "ws"] }
|
||||
serde_json = { workspace = true }
|
||||
tracing-subscriber = { workspace = true }
|
||||
|
||||
Reference in New Issue
Block a user