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" }
|
static_init = { version = "1.0.3" }
|
||||||
strum = { version = "0.26.3", default-features = false }
|
strum = { version = "0.26.3", default-features = false }
|
||||||
# Pezkuwi-subxt (vendored from subxt with pezsp_runtime support)
|
# 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-codegen = { path = "vendor/pezkuwi-subxt/codegen" }
|
||||||
pezkuwi-subxt-core = { path = "vendor/pezkuwi-subxt/core", default-features = false }
|
pezkuwi-subxt-core = { path = "vendor/pezkuwi-subxt/core" }
|
||||||
pezkuwi-subxt-lightclient = { path = "vendor/pezkuwi-subxt/lightclient", default-features = false }
|
pezkuwi-subxt-lightclient = { path = "vendor/pezkuwi-subxt/lightclient" }
|
||||||
pezkuwi-subxt-macro = { path = "vendor/pezkuwi-subxt/macro" }
|
pezkuwi-subxt-macro = { path = "vendor/pezkuwi-subxt/macro" }
|
||||||
pezkuwi-subxt-metadata = { path = "vendor/pezkuwi-subxt/metadata", default-features = false }
|
pezkuwi-subxt-metadata = { path = "vendor/pezkuwi-subxt/metadata" }
|
||||||
pezkuwi-subxt-rpcs = { path = "vendor/pezkuwi-subxt/rpcs", default-features = false }
|
pezkuwi-subxt-rpcs = { path = "vendor/pezkuwi-subxt/rpcs" }
|
||||||
pezkuwi-subxt-signer = { path = "vendor/pezkuwi-subxt/signer", default-features = false }
|
pezkuwi-subxt-signer = { path = "vendor/pezkuwi-subxt/signer" }
|
||||||
pezkuwi-subxt-utils-fetchmetadata = { path = "vendor/pezkuwi-subxt/utils/fetch-metadata", default-features = false }
|
pezkuwi-subxt-utils-fetchmetadata = { path = "vendor/pezkuwi-subxt/utils/fetch-metadata" }
|
||||||
pezkuwi-subxt-utils-stripmetadata = { path = "vendor/pezkuwi-subxt/utils/strip-metadata" }
|
pezkuwi-subxt-utils-stripmetadata = { path = "vendor/pezkuwi-subxt/utils/strip-metadata" }
|
||||||
support = { package = "zombienet-support", path = "vendor/pezkuwi-zombienet-sdk/crates/support" }
|
support = { package = "zombienet-support", path = "vendor/pezkuwi-zombienet-sdk/crates/support" }
|
||||||
syn = { version = "2.0.87" }
|
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-halt = { path = "pezkuwi/teyrchain/test-teyrchains/halt" }
|
||||||
test-teyrchain-undying = { path = "pezkuwi/teyrchain/test-teyrchains/undying" }
|
test-teyrchain-undying = { path = "pezkuwi/teyrchain/test-teyrchains/undying" }
|
||||||
testnet-teyrchains-constants = { path = "pezcumulus/teyrchains/runtimes/constants", default-features = false }
|
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" }
|
thousands = { version = "0.2.0" }
|
||||||
threadpool = { version = "1.7" }
|
threadpool = { version = "1.7" }
|
||||||
tikv-jemalloc-ctl = { version = "0.6.0", features = ["stats"] }
|
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 }
|
scale-value = { workspace = true, default-features = false }
|
||||||
serde = { workspace = true, default-features = false, features = ["derive"] }
|
serde = { workspace = true, default-features = false, features = ["derive"] }
|
||||||
serde_json = { workspace = true, default-features = false, features = ["alloc", "raw_value"] }
|
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 }
|
tracing = { workspace = true, default-features = false }
|
||||||
|
|
||||||
# For ss58 encoding AccountId32 to serialize them properly:
|
# 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
|
/// Iterate over the parts of this storage key. Each part of a storage key corresponds to a
|
||||||
/// single value that has been hashed.
|
/// 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();
|
let parts_len = self.info.parts().len();
|
||||||
(0..parts_len).map(move |index| StorageKeyPart {
|
(0..parts_len).map(move |index| StorageKeyPart {
|
||||||
index,
|
index,
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ pezsp-crypto-hashing = { workspace = true }
|
|||||||
scale-info = { workspace = true, default-features = false }
|
scale-info = { workspace = true, default-features = false }
|
||||||
scale-info-legacy = { workspace = true, optional = true }
|
scale-info-legacy = { workspace = true, optional = true }
|
||||||
scale-type-resolver = { workspace = true, optional = true }
|
scale-type-resolver = { workspace = true, optional = true }
|
||||||
thiserror = { workspace = true, default-features = false }
|
thiserror = { workspace = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bitvec = { workspace = true, features = ["alloc"] }
|
bitvec = { workspace = true, features = ["alloc"] }
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@ secp256k1 = { workspace = true, optional = true, features = [
|
|||||||
] }
|
] }
|
||||||
secrecy = { workspace = true }
|
secrecy = { workspace = true }
|
||||||
sha2 = { workspace = true }
|
sha2 = { workspace = true }
|
||||||
thiserror = { workspace = true, default-features = false }
|
thiserror = { workspace = true }
|
||||||
zeroize = { workspace = true }
|
zeroize = { workspace = true }
|
||||||
|
|
||||||
# These are used if the pezkuwi-js-compat feature is enabled
|
# These are used if the pezkuwi-js-compat feature is enabled
|
||||||
|
|||||||
+2
-2
@@ -68,7 +68,7 @@ impl Keypair {
|
|||||||
Self::from_secret_key(seed)?
|
Self::from_secret_key(seed)?
|
||||||
} else {
|
} else {
|
||||||
let phrase = bip39::Mnemonic::from_str(phrase.expose_secret())?;
|
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)?
|
Self::from_phrase(&phrase, pass_str)?
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ pub(crate) mod internal {
|
|||||||
let (recid, sig): (_, [u8; 64]) = recsig.serialize_compact();
|
let (recid, sig): (_, [u8; 64]) = recsig.serialize_compact();
|
||||||
let mut signature_bytes: [u8; 65] = [0; 65];
|
let mut signature_bytes: [u8; 65] = [0; 65];
|
||||||
signature_bytes[..64].copy_from_slice(&sig);
|
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
|
signature_bytes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -78,7 +78,7 @@ impl Keypair {
|
|||||||
Self::from_secret_key(seed)?
|
Self::from_secret_key(seed)?
|
||||||
} else {
|
} else {
|
||||||
let phrase = bip39::Mnemonic::from_str(phrase.expose_secret())?;
|
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)?
|
Self::from_phrase(&phrase, pass_str)?
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -74,9 +74,9 @@ where
|
|||||||
/// Iterate through the extrinsics using metadata to dynamically decode and skip
|
/// Iterate through the extrinsics using metadata to dynamically decode and skip
|
||||||
/// them, and return only those which should decode to the provided `E` type.
|
/// them, and return only those which should decode to the provided `E` type.
|
||||||
/// If an error occurs, all subsequent iterations return `None`.
|
/// If an error occurs, all subsequent iterations return `None`.
|
||||||
pub fn find<E: StaticExtrinsic>(
|
pub fn find<'a, E: StaticExtrinsic + 'a>(
|
||||||
&self,
|
&'a self,
|
||||||
) -> impl Iterator<Item = Result<FoundExtrinsic<T, C, E>, ExtrinsicError>> {
|
) -> impl Iterator<Item = Result<FoundExtrinsic<T, C, E>, ExtrinsicError>> + 'a {
|
||||||
self.inner.find::<E>().map(|res| {
|
self.inner.find::<E>().map(|res| {
|
||||||
match res {
|
match res {
|
||||||
Err(e) => Err(ExtrinsicError::from(e)),
|
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
|
/// 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.
|
/// 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| {
|
self.events.iter().filter(|ev| {
|
||||||
ev.as_ref()
|
ev.as_ref()
|
||||||
.map(|ev| ev.phase() == events::Phase::ApplyExtrinsic(self.idx))
|
.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
|
/// 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.
|
/// 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())
|
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 = { workspace = true, features = ["derive"] }
|
||||||
serde_json = { workspace = true, features = ["arbitrary_precision"] }
|
serde_json = { workspace = true, features = ["arbitrary_precision"] }
|
||||||
sha2 = { workspace = true, default-features = false }
|
sha2 = { workspace = true, default-features = false }
|
||||||
sp-core = { workspace = true }
|
pezsp-core = { workspace = true }
|
||||||
thiserror = { workspace = true }
|
thiserror = { workspace = true }
|
||||||
tokio = { workspace = true, features = ["time"] }
|
tokio = { workspace = true, features = ["time"] }
|
||||||
tracing = { workspace = true }
|
tracing = { workspace = true }
|
||||||
uuid = { 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 }
|
erased-serde = { workspace = true }
|
||||||
sc-chain-spec = { workspace = true }
|
pezsc-chain-spec = { workspace = true }
|
||||||
|
|
||||||
# Zombienet deps
|
# Zombienet deps
|
||||||
configuration = { workspace = true }
|
configuration = { workspace = true }
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ use provider::{
|
|||||||
types::{GenerateFileCommand, GenerateFilesOptions, TransferedFile},
|
types::{GenerateFileCommand, GenerateFilesOptions, TransferedFile},
|
||||||
DynNamespace, ProviderError,
|
DynNamespace, ProviderError,
|
||||||
};
|
};
|
||||||
use sc_chain_spec::{GenericChainSpec, GenesisConfigBuilderRuntimeCaller};
|
use pezsc_chain_spec::{GenericChainSpec, GenesisConfigBuilderRuntimeCaller};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use support::{constants::THIS_IS_A_BUG, fs::FileSystem, replacer::apply_replacements};
|
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 super::errors::GeneratorError;
|
||||||
use crate::shared::types::{Accounts, NodeAccount};
|
use crate::shared::types::{Accounts, NodeAccount};
|
||||||
@@ -59,7 +59,7 @@ mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
#[test]
|
#[test]
|
||||||
fn generate_for_alice() {
|
fn generate_for_alice() {
|
||||||
use sp_core::crypto::Ss58Codec;
|
use pezsp_core::crypto::Ss58Codec;
|
||||||
let s = "Alice";
|
let s = "Alice";
|
||||||
let seed = format!("//{s}");
|
let seed = format!("//{s}");
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn generate_for_zombie() {
|
fn generate_for_zombie() {
|
||||||
use sp_core::crypto::Ss58Codec;
|
use pezsp_core::crypto::Ss58Codec;
|
||||||
let s = "Zombie";
|
let s = "Zombie";
|
||||||
let seed = format!("//{s}");
|
let seed = format!("//{s}");
|
||||||
|
|
||||||
|
|||||||
@@ -1053,7 +1053,7 @@ pub enum ZombieRole {
|
|||||||
// re-exports
|
// re-exports
|
||||||
pub use network::{AddCollatorOptions, AddNodeOptions};
|
pub use network::{AddCollatorOptions, AddNodeOptions};
|
||||||
pub use network_helper::metrics;
|
pub use network_helper::metrics;
|
||||||
pub use sc_chain_spec;
|
pub use pezsc_chain_spec;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ erased-serde = { workspace = true }
|
|||||||
flate2 = { workspace = true }
|
flate2 = { workspace = true }
|
||||||
futures = { workspace = true }
|
futures = { workspace = true }
|
||||||
hex = { 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"] }
|
kube = { workspace = true, features = ["runtime", "ws"] }
|
||||||
nix = { workspace = true, features = ["signal"] }
|
nix = { workspace = true, features = ["signal"] }
|
||||||
regex = { workspace = true }
|
regex = { workspace = true }
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ provider = { workspace = true }
|
|||||||
support = { workspace = true }
|
support = { workspace = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
k8s-openapi = { workspace = true, features = ["v1_27"] }
|
k8s-openapi = { workspace = true, features = ["v1_28"] }
|
||||||
kube = { workspace = true, features = ["runtime", "ws"] }
|
kube = { workspace = true, features = ["runtime", "ws"] }
|
||||||
serde_json = { workspace = true }
|
serde_json = { workspace = true }
|
||||||
tracing-subscriber = { workspace = true }
|
tracing-subscriber = { workspace = true }
|
||||||
|
|||||||
Reference in New Issue
Block a user