diff --git a/Cargo.lock b/Cargo.lock index 3b42a173..e2a99a77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1913,18 +1913,6 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" -[[package]] -name = "binary-merkle-tree" -version = "13.0.0" -dependencies = [ - "array-bytes 6.2.3", - "hash-db", - "log", - "parity-scale-codec", - "pezsp-core", - "pezsp-runtime", -] - [[package]] name = "bincode" version = "1.3.3" @@ -2308,6 +2296,7 @@ dependencies = [ "pezsp-consensus", "pezsp-core", "pezsp-runtime", + "pezsp-tracing", ] [[package]] @@ -2606,8 +2595,8 @@ dependencies = [ name = "bp-beefy" version = "0.1.0" dependencies = [ - "binary-merkle-tree", "parity-scale-codec", + "pez-binary-merkle-tree", "pezbp-runtime", "pezframe-support", "pezpallet-beefy-mmr", @@ -9966,6 +9955,17 @@ dependencies = [ "indexmap 2.12.1", ] +[[package]] +name = "pez-binary-merkle-tree" +version = "14.0.1" +dependencies = [ + "array-bytes 6.2.3", + "hash-db", + "log", + "parity-scale-codec", + "pezsp-core", +] + [[package]] name = "pez-chain-spec-guide-runtime" version = "0.0.0" @@ -12129,7 +12129,6 @@ dependencies = [ "Inflector", "aquamarine", "array-bytes 6.2.3", - "binary-merkle-tree", "bitflags 1.3.2", "docify", "environmental", @@ -12140,6 +12139,7 @@ dependencies = [ "macro_magic", "parity-scale-codec", "paste", + "pez-binary-merkle-tree", "pezframe-support-procedural", "pezframe-system", "pezsp-api", @@ -13610,7 +13610,6 @@ version = "0.1.0" dependencies = [ "asset-test-pezutils", "assets-common", - "binary-merkle-tree", "bizinikiwi-bip39", "bizinikiwi-build-script-utils", "bizinikiwi-frame-rpc-support", @@ -13630,6 +13629,7 @@ dependencies = [ "bp-xcm-bridge-hub-router", "bridge-hub-common", "frame-remote-externalities", + "pez-binary-merkle-tree", "pez-ethereum-standards", "pez-fork-tree", "pez-generate-bags", @@ -13734,7 +13734,6 @@ dependencies = [ "pezkuwi-runtime-teyrchains", "pezkuwi-sdk-frame", "pezkuwi-service", - "pezkuwi-ss58-registry", "pezkuwi-statement-distribution", "pezkuwi-statement-table", "pezkuwi-subxt", @@ -13969,6 +13968,7 @@ dependencies = [ "pezsp-runtime-interface", "pezsp-runtime-interface-proc-macro", "pezsp-session", + "pezsp-ss58-registry 1.52.0", "pezsp-staking", "pezsp-state-machine", "pezsp-statement-store", @@ -14279,19 +14279,6 @@ dependencies = [ "zagros-runtime-constants", ] -[[package]] -name = "pezkuwi-ss58-registry" -version = "1.51.0" -dependencies = [ - "Inflector", - "num-format", - "proc-macro2 1.0.103", - "quote 1.0.42", - "serde", - "serde_json", - "unicode-xid 0.2.6", -] - [[package]] name = "pezkuwi-statement-distribution" version = "7.0.0" @@ -14909,13 +14896,13 @@ dependencies = [ name = "pezkuwichain-runtime" version = "7.0.0" dependencies = [ - "binary-merkle-tree", "bitvec", "bizinikiwi-wasm-builder", "frame-remote-externalities", "hex-literal", "log", "parity-scale-codec", + "pez-binary-merkle-tree", "pezframe-benchmarking", "pezframe-election-provider-support", "pezframe-executive", @@ -15562,9 +15549,9 @@ name = "pezpallet-beefy-mmr" version = "28.0.0" dependencies = [ "array-bytes 6.2.3", - "binary-merkle-tree", "log", "parity-scale-codec", + "pez-binary-merkle-tree", "pezframe-benchmarking", "pezframe-support", "pezframe-system", @@ -17566,13 +17553,13 @@ name = "pezpallet-staking-async-rc-runtime" version = "7.0.0" dependencies = [ "approx", - "binary-merkle-tree", "bitvec", "bizinikiwi-wasm-builder", "frame-remote-externalities", "hex-literal", "log", "parity-scale-codec", + "pez-binary-merkle-tree", "pezframe-benchmarking", "pezframe-election-provider-support", "pezframe-executive", @@ -20395,7 +20382,6 @@ dependencies = [ "pezsp-runtime", "pezsp-runtime-interface", "pezsp-state-machine", - "pezsp-test-primitives", "pezsp-trie", "pezsp-version", "scale-info", @@ -20673,10 +20659,10 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", "paste", - "pezkuwi-ss58-registry", "pezsp-crypto-hashing", "pezsp-debug-derive", "pezsp-externalities", + "pezsp-ss58-registry 1.52.0 (registry+https://github.com/rust-lang/crates.io-index)", "pezsp-std", "pezsp-storage", "primitive-types 0.13.1", @@ -20745,7 +20731,6 @@ dependencies = [ "byteorder", "criterion", "digest 0.10.7", - "pezsp-crypto-hashing-proc-macro", "sha2 0.10.9", "sha3", "twox-hash 1.6.3", @@ -20902,7 +20887,6 @@ dependencies = [ name = "pezsp-npos-elections" version = "26.0.0" dependencies = [ - "bizinikiwi-test-utils", "parity-scale-codec", "pezsp-arithmetic", "pezsp-core", @@ -20953,8 +20937,6 @@ dependencies = [ name = "pezsp-runtime" version = "31.0.1" dependencies = [ - "binary-merkle-tree", - "bizinikiwi-test-runtime-client", "bytes", "docify", "either", @@ -20964,7 +20946,7 @@ dependencies = [ "num-traits", "parity-scale-codec", "paste", - "pezsp-api", + "pez-binary-merkle-tree", "pezsp-application-crypto", "pezsp-arithmetic", "pezsp-core", @@ -20992,10 +20974,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "pezsp-externalities", - "pezsp-io", "pezsp-runtime-interface-proc-macro", - "pezsp-runtime-interface-test-wasm", - "pezsp-state-machine", "pezsp-std", "pezsp-storage", "pezsp-tracing", @@ -21068,6 +21047,34 @@ dependencies = [ "scale-info", ] +[[package]] +name = "pezsp-ss58-registry" +version = "1.52.0" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2 1.0.103", + "quote 1.0.42", + "serde", + "serde_json", + "unicode-xid 0.2.6", +] + +[[package]] +name = "pezsp-ss58-registry" +version = "1.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf18f939625b28ef71ad9eb5bcfe34aaa30ab6fd38740c49b9ea1a9f36b4671" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2 1.0.103", + "quote 1.0.42", + "serde", + "serde_json", + "unicode-xid 0.2.6", +] + [[package]] name = "pezsp-staking" version = "26.0.0" @@ -21094,7 +21101,6 @@ dependencies = [ "pezsp-core", "pezsp-externalities", "pezsp-panic-handler", - "pezsp-runtime", "pezsp-trie", "pretty_assertions", "rand 0.8.5", @@ -21203,7 +21209,6 @@ version = "29.0.0" dependencies = [ "ahash 0.8.12", "array-bytes 6.2.3", - "bizinikiwi-prometheus-endpoint", "criterion", "foldhash 0.1.5", "hash-db", @@ -21214,7 +21219,6 @@ dependencies = [ "parking_lot 0.12.5", "pezsp-core", "pezsp-externalities", - "pezsp-runtime", "rand 0.8.5", "scale-info", "schnellru", @@ -28310,13 +28314,13 @@ name = "zagros-runtime" version = "7.0.0" dependencies = [ "approx", - "binary-merkle-tree", "bitvec", "bizinikiwi-wasm-builder", "frame-remote-externalities", "hex-literal", "log", "parity-scale-codec", + "pez-binary-merkle-tree", "pezframe-benchmarking", "pezframe-election-provider-support", "pezframe-executive", diff --git a/Cargo.toml b/Cargo.toml index 10475865..b35a7e1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -718,7 +718,7 @@ backoff = { version = "0.4" } backtrace = { version = "0.3.71" } base58 = { version = "0.2.0" } base64 = { version = "0.22.1", default-features = false } -binary-merkle-tree = { path = "bizinikiwi/utils/binary-merkle-tree", version = "13.0.0", default-features = false } +pez-binary-merkle-tree = { path = "bizinikiwi/utils/binary-merkle-tree", version = "14.0.1", default-features = false } bincode = { version = "1.3.3" } bip32 = { version = "0.5.2", default-features = false } bip39 = { version = "2.2.0", default-features = false } @@ -1402,8 +1402,8 @@ pezsp-tracing = { path = "bizinikiwi/primitives/tracing", version = "16.0.0", de pezsp-transaction-pool = { path = "bizinikiwi/primitives/transaction-pool", version = "26.0.0", default-features = false } pezsp-transaction-storage-proof = { path = "bizinikiwi/primitives/transaction-storage-proof", version = "26.0.0", default-features = false } pezsp-trie = { path = "bizinikiwi/primitives/trie", version = "29.0.0", default-features = false } -pezsp-version = { path = "bizinikiwi/primitives/version", default-features = false } -pezsp-version-proc-macro = { path = "bizinikiwi/primitives/version/proc-macro", default-features = false } +pezsp-version = { path = "bizinikiwi/primitives/version", version = "29.0.0", default-features = false } +pezsp-version-proc-macro = { path = "bizinikiwi/primitives/version/proc-macro", version = "13.0.0", default-features = false } pezsp-wasm-interface = { path = "bizinikiwi/primitives/wasm-interface", version = "20.0.0", default-features = false } pezsp-weights = { path = "bizinikiwi/primitives/weights", version = "27.0.0", default-features = false } pin-project = { version = "1.1.3" } @@ -1422,7 +1422,7 @@ proc-macro2 = { version = "1.0.86" } procfs = { version = "0.16.0" } prom-metrics-parser = { package = "zombienet-prom-metrics-parser", path = "vendor/pezkuwi-zombienet-sdk/crates/prom-metrics-parser" } prometheus = { version = "0.13.0", default-features = false } -prometheus-endpoint = { path = "bizinikiwi/utils/prometheus", default-features = false, package = "bizinikiwi-prometheus-endpoint" } +prometheus-endpoint = { path = "bizinikiwi/utils/prometheus", default-features = false, package = "bizinikiwi-prometheus-endpoint", version = "0.17.0" } prometheus-parse = { version = "0.2.2" } proptest = { version = "1" } prost = { version = "0.12.4" } @@ -1501,7 +1501,7 @@ soketto = { version = "0.8.0" } sp-core = { version = "38.1.0" } spinners = { version = "4.1.1" } sqlx = { version = "0.8.2" } -ss58-registry = { path = "vendor/ss58-registry", package = "pezkuwi-ss58-registry", version = "1.51.0", default-features = false } +ss58-registry = { package = "pezsp-ss58-registry", version = "1.52.0", default-features = false } ssz_rs = { version = "0.9.0", default-features = false } ssz_rs_derive = { version = "0.9.0", default-features = false } static_assertions = { version = "1.1.0", default-features = false } diff --git a/bizinikiwi/pezframe/beefy-mmr/Cargo.toml b/bizinikiwi/pezframe/beefy-mmr/Cargo.toml index 44207382..8ad3b775 100644 --- a/bizinikiwi/pezframe/beefy-mmr/Cargo.toml +++ b/bizinikiwi/pezframe/beefy-mmr/Cargo.toml @@ -14,7 +14,7 @@ workspace = true [dependencies] array-bytes = { optional = true, workspace = true, default-features = true } -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } codec = { features = ["derive"], workspace = true } log = { workspace = true } pezframe-benchmarking = { optional = true, workspace = true } @@ -41,7 +41,7 @@ pezsp-staking = { workspace = true, default-features = true } default = ["std"] std = [ "array-bytes", - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "codec/std", "log/std", "pezframe-benchmarking/std", @@ -71,7 +71,7 @@ try-runtime = [ "pezsp-runtime/try-runtime", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "pezframe-benchmarking/runtime-benchmarks", "pezframe-support/runtime-benchmarks", "pezframe-system/runtime-benchmarks", diff --git a/bizinikiwi/pezframe/beefy-mmr/src/lib.rs b/bizinikiwi/pezframe/beefy-mmr/src/lib.rs index c34ec075..fa9e928f 100644 --- a/bizinikiwi/pezframe/beefy-mmr/src/lib.rs +++ b/bizinikiwi/pezframe/beefy-mmr/src/lib.rs @@ -356,7 +356,7 @@ impl Pezpallet { len, ); } - let keyset_commitment = binary_merkle_tree::merkle_root::< + let keyset_commitment = pez_binary_merkle_tree::merkle_root::< ::Hashing, _, >(beefy_addresses) diff --git a/bizinikiwi/pezframe/beefy-mmr/src/mock.rs b/bizinikiwi/pezframe/beefy-mmr/src/mock.rs index 82b3678f..d5c0fe8e 100644 --- a/bizinikiwi/pezframe/beefy-mmr/src/mock.rs +++ b/bizinikiwi/pezframe/beefy-mmr/src/mock.rs @@ -140,7 +140,7 @@ impl BeefyDataProvider> for DummyDataProvider { fn extra_data() -> Vec { let mut col = vec![(15, vec![1, 2, 3]), (5, vec![4, 5, 6])]; col.sort(); - binary_merkle_tree::merkle_root::<::Hashing, _>( + pez_binary_merkle_tree::merkle_root::<::Hashing, _>( col.into_iter().map(|pair| pair.encode()), ) .as_ref() diff --git a/bizinikiwi/pezframe/staking-async/runtimes/rc/Cargo.toml b/bizinikiwi/pezframe/staking-async/runtimes/rc/Cargo.toml index 6fe24ff5..1be9c584 100644 --- a/bizinikiwi/pezframe/staking-async/runtimes/rc/Cargo.toml +++ b/bizinikiwi/pezframe/staking-async/runtimes/rc/Cargo.toml @@ -24,7 +24,7 @@ serde_derive = { optional = true, workspace = true } serde_json = { features = ["alloc"], workspace = true } smallvec = { workspace = true, default-features = true } -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } pezsp-api = { workspace = true } pezsp-application-crypto = { workspace = true } pezsp-arithmetic = { workspace = true } @@ -135,7 +135,7 @@ bizinikiwi-wasm-builder = { workspace = true, default-features = true } default = ["std"] no_std = [] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "bitvec/std", "codec/std", "log/std", @@ -230,7 +230,7 @@ std = [ "xcm/std", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "bizinikiwi-wasm-builder/runtime-benchmarks", "pezframe-benchmarking/runtime-benchmarks", "pezframe-election-provider-support/runtime-benchmarks", diff --git a/bizinikiwi/pezframe/staking-async/runtimes/rc/src/lib.rs b/bizinikiwi/pezframe/staking-async/runtimes/rc/src/lib.rs index 6b6e845d..d6168f6b 100644 --- a/bizinikiwi/pezframe/staking-async/runtimes/rc/src/lib.rs +++ b/bizinikiwi/pezframe/staking-async/runtimes/rc/src/lib.rs @@ -504,7 +504,7 @@ impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { let para_heads: Vec<(u32, Vec)> = teyrchains_paras::Pezpallet::::sorted_para_heads(); - binary_merkle_tree::merkle_root::( + pez_binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) .into() diff --git a/bizinikiwi/pezframe/support/Cargo.toml b/bizinikiwi/pezframe/support/Cargo.toml index bd932b48..4c29254e 100644 --- a/bizinikiwi/pezframe/support/Cargo.toml +++ b/bizinikiwi/pezframe/support/Cargo.toml @@ -18,7 +18,7 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] array-bytes = { workspace = true } -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } bitflags = { workspace = true } codec = { features = ["derive", "max-encoded-len"], workspace = true } docify = { workspace = true } @@ -63,7 +63,7 @@ pretty_assertions = { workspace = true } [features] default = ["std"] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "codec/std", "environmental/std", "frame-metadata/std", @@ -91,7 +91,7 @@ std = [ "serde_json/std", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "pezframe-support-procedural/runtime-benchmarks", "pezframe-system/runtime-benchmarks", "pezsp-api/runtime-benchmarks", diff --git a/bizinikiwi/pezframe/support/src/traits/proving.rs b/bizinikiwi/pezframe/support/src/traits/proving.rs index 22a1f02c..876c076d 100644 --- a/bizinikiwi/pezframe/support/src/traits/proving.rs +++ b/bizinikiwi/pezframe/support/src/traits/proving.rs @@ -45,7 +45,7 @@ impl VerifyExistenceProof for BinaryMerkleTreeProver where H::Out: Decode + Encode, { - type Proof = binary_merkle_tree::MerkleProof>; + type Proof = pez_binary_merkle_tree::MerkleProof>; type Hash = H::Out; fn verify_proof(proof: Self::Proof, root: &Self::Hash) -> Result, DispatchError> { @@ -53,7 +53,7 @@ where return Err(TrieError::RootMismatch.into()); } - if binary_merkle_tree::verify_proof::( + if pez_binary_merkle_tree::verify_proof::( &proof.root, proof.proof, proof.number_of_leaves, @@ -68,7 +68,7 @@ where } impl ProofToHashes for BinaryMerkleTreeProver { - type Proof = binary_merkle_tree::MerkleProof>; + type Proof = pez_binary_merkle_tree::MerkleProof>; // This base 2 merkle trie includes a `proof` field which is a `Vec`. // The length of this vector tells us the depth of the proof, and how many @@ -128,8 +128,8 @@ mod tests { }; #[test] - fn verify_binary_merkle_tree_prover_works() { - let proof = binary_merkle_tree::merkle_proof::( + fn verify_pez_binary_merkle_tree_prover_works() { + let proof = pez_binary_merkle_tree::merkle_proof::( vec![b"hey".encode(), b"yes".encode()], 1, ); @@ -208,7 +208,7 @@ mod tests { fn proof_to_hashes_binary() { let mut i: u32 = 1; while i < 10_000_000 { - let proof = binary_merkle_tree::merkle_proof::( + let proof = pez_binary_merkle_tree::merkle_proof::( (0..i).map(|i| u128::from(i).encode()), 0, ); diff --git a/bizinikiwi/primitives/api/Cargo.toml b/bizinikiwi/primitives/api/Cargo.toml index 9b448ff8..c560fd54 100644 --- a/bizinikiwi/primitives/api/Cargo.toml +++ b/bizinikiwi/primitives/api/Cargo.toml @@ -33,9 +33,6 @@ pezsp-version = { workspace = true } scale-info = { features = ["derive"], workspace = true } thiserror = { optional = true, workspace = true } -[dev-dependencies] -pezsp-test-primitives = { workspace = true } - [features] default = ["std"] std = [ @@ -50,7 +47,6 @@ std = [ "pezsp-runtime-interface/std", "pezsp-runtime/std", "pezsp-state-machine/std", - "pezsp-test-primitives/std", "pezsp-trie/std", "pezsp-version/std", "scale-info/std", @@ -71,7 +67,6 @@ runtime-benchmarks = [ "pezsp-runtime-interface/runtime-benchmarks", "pezsp-runtime/runtime-benchmarks", "pezsp-state-machine?/runtime-benchmarks", - "pezsp-test-primitives/runtime-benchmarks", "pezsp-trie?/runtime-benchmarks", "pezsp-version/runtime-benchmarks", ] diff --git a/bizinikiwi/primitives/npos-elections/Cargo.toml b/bizinikiwi/primitives/npos-elections/Cargo.toml index 6f5cd03f..b75bf278 100644 --- a/bizinikiwi/primitives/npos-elections/Cargo.toml +++ b/bizinikiwi/primitives/npos-elections/Cargo.toml @@ -24,9 +24,6 @@ pezsp-runtime = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { features = ["alloc", "derive"], optional = true, workspace = true } -[dev-dependencies] -bizinikiwi-test-utils = { workspace = true } - [features] default = ["std"] bench = [] diff --git a/bizinikiwi/primitives/runtime-interface/Cargo.toml b/bizinikiwi/primitives/runtime-interface/Cargo.toml index 7ca4e7e3..630e0e91 100644 --- a/bizinikiwi/primitives/runtime-interface/Cargo.toml +++ b/bizinikiwi/primitives/runtime-interface/Cargo.toml @@ -32,9 +32,6 @@ static_assertions = { workspace = true, default-features = true } polkavm-derive = { workspace = true } [dev-dependencies] -pezsp-io = { workspace = true, default-features = true } -pezsp-runtime-interface-test-wasm = { workspace = true } -pezsp-state-machine = { workspace = true, default-features = true } rustversion = { workspace = true } trybuild = { workspace = true } @@ -44,9 +41,6 @@ std = [ "bytes/std", "codec/std", "pezsp-externalities/std", - "pezsp-io/std", - "pezsp-runtime-interface-test-wasm/std", - "pezsp-state-machine/std", "pezsp-std/std", "pezsp-storage/std", "pezsp-tracing/std", @@ -60,7 +54,4 @@ std = [ # Disables static assertions in `impls.rs` that checks the word size. To prevent any footgun, the # check is changed into a runtime check. disable_target_static_assertions = [] -runtime-benchmarks = [ - "pezsp-io/runtime-benchmarks", - "pezsp-state-machine/runtime-benchmarks", -] +runtime-benchmarks = [] diff --git a/bizinikiwi/primitives/runtime/Cargo.toml b/bizinikiwi/primitives/runtime/Cargo.toml index 64734ea0..a7f8266c 100644 --- a/bizinikiwi/primitives/runtime/Cargo.toml +++ b/bizinikiwi/primitives/runtime/Cargo.toml @@ -9,6 +9,13 @@ repository.workspace = true description = "Runtime Modules shared primitive types." documentation.workspace = true readme = "README.md" +exclude = [ + "docs/images/*.png", + "docs/images/*.jpg", + "docs/whitepaper/*.png", + "!docs/images/Pezkuwi_Logo_Horizontal_Pink_White.png", + "!docs/images/Pezkuwi_Logo_Horizontal_Pink_Black.png", +] [lints] workspace = true @@ -17,7 +24,7 @@ workspace = true targets = ["x86_64-unknown-linux-gnu"] [dependencies] -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } bytes = { workspace = true } codec = { features = ["derive", "max-encoded-len"], workspace = true } docify = { workspace = true } @@ -43,8 +50,6 @@ simple-mermaid = { workspace = true, optional = true } tuplex = { workspace = true, default-features = false } [dev-dependencies] -bizinikiwi-test-runtime-client = { workspace = true } -pezsp-api = { workspace = true, default-features = true } pezsp-state-machine = { workspace = true, default-features = true } pezsp-tracing = { workspace = true, default-features = true } rand = { workspace = true, default-features = true } @@ -53,9 +58,6 @@ zstd = { workspace = true } [features] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", - "bizinikiwi-test-runtime-client/runtime-benchmarks", - "pezsp-api/runtime-benchmarks", "pezsp-io/runtime-benchmarks", "pezsp-state-machine/runtime-benchmarks", "pezsp-trie/runtime-benchmarks", @@ -63,7 +65,7 @@ runtime-benchmarks = [ try-runtime = [] default = ["std"] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "bytes/std", "codec/std", "either/std", @@ -71,7 +73,6 @@ std = [ "hash256-std-hasher/std", "log/std", "num-traits/std", - "pezsp-api/std", "pezsp-application-crypto/std", "pezsp-arithmetic/std", "pezsp-core/std", diff --git a/bizinikiwi/primitives/runtime/src/proving_trie/base2.rs b/bizinikiwi/primitives/runtime/src/proving_trie/base2.rs index e5bdfce5..72127c35 100644 --- a/bizinikiwi/primitives/runtime/src/proving_trie/base2.rs +++ b/bizinikiwi/primitives/runtime/src/proving_trie/base2.rs @@ -23,7 +23,7 @@ use super::{ProofToHashes, ProvingTrie, TrieError}; use crate::{Decode, DispatchError, Encode}; use alloc::{collections::BTreeMap, vec::Vec}; -use binary_merkle_tree::{merkle_proof, merkle_root, MerkleProof}; +use pez_binary_merkle_tree::{merkle_proof, merkle_root, MerkleProof}; use codec::MaxEncodedLen; /// A helper structure for building a basic base-2 merkle trie and creating compact proofs for that @@ -143,7 +143,7 @@ where return Err(TrieError::ValueMismatch.into()); } - if binary_merkle_tree::verify_proof::( + if pez_binary_merkle_tree::verify_proof::( &decoded_proof.root, decoded_proof.proof, decoded_proof.number_of_leaves, diff --git a/bizinikiwi/primitives/runtime/src/runtime_logger.rs b/bizinikiwi/primitives/runtime/src/runtime_logger.rs index c575de64..62dadb51 100644 --- a/bizinikiwi/primitives/runtime/src/runtime_logger.rs +++ b/bizinikiwi/primitives/runtime/src/runtime_logger.rs @@ -62,40 +62,3 @@ impl log::Log for RuntimeLogger { fn flush(&self) {} } - -#[cfg(test)] -mod tests { - use bizinikiwi_test_runtime_client::{ - runtime::TestAPI, DefaultTestClientBuilderExt, TestClientBuilder, TestClientBuilderExt, - }; - use pezsp_api::ProvideRuntimeApi; - use std::env; - - #[test] - fn ensure_runtime_logger_works() { - if env::var("RUN_TEST").is_ok() { - pezsp_tracing::try_init_simple(); - - let client = TestClientBuilder::new().build(); - let runtime_api = client.runtime_api(); - runtime_api - .do_trace_log(client.chain_info().genesis_hash) - .expect("Logging should not fail"); - } else { - for (level, should_print) in &[("test=trace", true), ("info", false)] { - let executable = std::env::current_exe().unwrap(); - let output = std::process::Command::new(executable) - .env("RUN_TEST", "1") - .env("RUST_LOG", level) - .args(&["--nocapture", "ensure_runtime_logger_works"]) - .output() - .unwrap(); - - let output = String::from_utf8(output.stderr).unwrap(); - assert!(output.contains("Hey I'm runtime") == *should_print); - assert!(output.contains("THIS IS TRACING") == *should_print); - assert!(output.contains("Hey, I'm tracing") == *should_print); - } - } - } -} diff --git a/bizinikiwi/primitives/state-machine/Cargo.toml b/bizinikiwi/primitives/state-machine/Cargo.toml index fcc579ee..00dc7108 100644 --- a/bizinikiwi/primitives/state-machine/Cargo.toml +++ b/bizinikiwi/primitives/state-machine/Cargo.toml @@ -36,7 +36,6 @@ trie-db = { workspace = true } arbitrary = { features = ["derive"], workspace = true } array-bytes = { workspace = true, default-features = true } assert_matches = { workspace = true } -pezsp-runtime = { workspace = true, default-features = true } pretty_assertions = { workspace = true } rand = { workspace = true, default-features = true } @@ -51,7 +50,6 @@ std = [ "pezsp-core/std", "pezsp-externalities/std", "pezsp-panic-handler", - "pezsp-runtime/std", "pezsp-trie/std", "rand", "thiserror", @@ -59,6 +57,5 @@ std = [ "trie-db/std", ] runtime-benchmarks = [ - "pezsp-runtime/runtime-benchmarks", "pezsp-trie/runtime-benchmarks", ] diff --git a/bizinikiwi/primitives/state-machine/src/fuzzing.rs b/bizinikiwi/primitives/state-machine/src/fuzzing.rs index 8571e421..3642c0df 100644 --- a/bizinikiwi/primitives/state-machine/src/fuzzing.rs +++ b/bizinikiwi/primitives/state-machine/src/fuzzing.rs @@ -25,7 +25,7 @@ use codec::Encode; use hash_db::Hasher; use pezsp_core::{storage::StateVersion, traits::Externalities}; #[cfg(test)] -use pezsp_runtime::traits::BlakeTwo256; +use pezsp_core::Blake2Hasher as BlakeTwo256; use pezsp_trie::PrefixedMemoryDB; use std::collections::BTreeMap; diff --git a/bizinikiwi/primitives/state-machine/src/in_memory_backend.rs b/bizinikiwi/primitives/state-machine/src/in_memory_backend.rs index bd14703e..33a401f2 100644 --- a/bizinikiwi/primitives/state-machine/src/in_memory_backend.rs +++ b/bizinikiwi/primitives/state-machine/src/in_memory_backend.rs @@ -197,7 +197,7 @@ mod tests { use super::*; use crate::backend::{AsTrieBackend, Backend}; use pezsp_core::storage::StateVersion; - use pezsp_runtime::traits::BlakeTwo256; + use pezsp_core::Blake2Hasher as BlakeTwo256; /// Assert in memory backend with only child trie keys works as trie backend. #[test] diff --git a/bizinikiwi/primitives/state-machine/src/lib.rs b/bizinikiwi/primitives/state-machine/src/lib.rs index 4fb95729..3c1e72e3 100644 --- a/bizinikiwi/primitives/state-machine/src/lib.rs +++ b/bizinikiwi/primitives/state-machine/src/lib.rs @@ -1103,7 +1103,7 @@ mod tests { traits::{CallContext, CodeExecutor, Externalities, RuntimeCode}, H256, }; - use pezsp_runtime::traits::BlakeTwo256; + use pezsp_core::Blake2Hasher as BlakeTwo256; use pezsp_trie::{ trie_types::{TrieDBMutBuilderV0, TrieDBMutBuilderV1}, KeySpacedDBMut, PrefixedMemoryDB, diff --git a/bizinikiwi/primitives/state-machine/src/testing.rs b/bizinikiwi/primitives/state-machine/src/testing.rs index 09501105..e27b2bd9 100644 --- a/bizinikiwi/primitives/state-machine/src/testing.rs +++ b/bizinikiwi/primitives/state-machine/src/testing.rs @@ -416,7 +416,7 @@ where mod tests { use super::*; use pezsp_core::{storage::ChildInfo, traits::Externalities, H256}; - use pezsp_runtime::traits::BlakeTwo256; + use pezsp_core::Blake2Hasher as BlakeTwo256; #[test] fn commit_should_work() { diff --git a/bizinikiwi/primitives/state-machine/src/trie_backend.rs b/bizinikiwi/primitives/state-machine/src/trie_backend.rs index 4dc94a7f..72356291 100644 --- a/bizinikiwi/primitives/state-machine/src/trie_backend.rs +++ b/bizinikiwi/primitives/state-machine/src/trie_backend.rs @@ -578,7 +578,7 @@ pub mod tests { use super::*; use codec::Encode; use pezsp_core::H256; - use pezsp_runtime::traits::BlakeTwo256; + use pezsp_core::Blake2Hasher as BlakeTwo256; use pezsp_trie::{ cache::{CacheSize, SharedTrieCache}, trie_types::{TrieDBBuilder, TrieDBMutBuilderV0, TrieDBMutBuilderV1}, diff --git a/bizinikiwi/primitives/trie/Cargo.toml b/bizinikiwi/primitives/trie/Cargo.toml index 0308e07c..806111bf 100644 --- a/bizinikiwi/primitives/trie/Cargo.toml +++ b/bizinikiwi/primitives/trie/Cargo.toml @@ -31,7 +31,6 @@ nohash-hasher = { optional = true, workspace = true } parking_lot = { optional = true, workspace = true, default-features = true } pezsp-core = { workspace = true } pezsp-externalities = { workspace = true } -prometheus-endpoint = { optional = true, workspace = true, default-features = true } rand = { optional = true, workspace = true, default-features = true } scale-info = { features = ["derive"], workspace = true } schnellru = { optional = true, workspace = true } @@ -43,7 +42,7 @@ trie-root = { workspace = true } [dev-dependencies] array-bytes = { workspace = true, default-features = true } criterion = { workspace = true, default-features = true } -pezsp-runtime = { workspace = true, default-features = true } +pezsp-core = { workspace = true, default-features = true } trie-bench = { workspace = true } trie-standardmap = { workspace = true } @@ -59,8 +58,6 @@ std = [ "parking_lot", "pezsp-core/std", "pezsp-externalities/std", - "pezsp-runtime/std", - "prometheus-endpoint", "rand", "scale-info/std", "schnellru", @@ -69,4 +66,4 @@ std = [ "trie-db/std", "trie-root/std", ] -runtime-benchmarks = ["pezsp-runtime/runtime-benchmarks"] +runtime-benchmarks = [] diff --git a/bizinikiwi/primitives/trie/benches/bench.rs b/bizinikiwi/primitives/trie/benches/bench.rs index b2f9ea84..d83a5b3c 100644 --- a/bizinikiwi/primitives/trie/benches/bench.rs +++ b/bizinikiwi/primitives/trie/benches/bench.rs @@ -21,11 +21,11 @@ criterion_main!(benches); fn benchmark(c: &mut Criterion) { trie_bench::standard_benchmark::< - pezsp_trie::LayoutV1, + pezsp_trie::LayoutV1, pezsp_trie::TrieStream, >(c, "bizinikiwi-blake2"); trie_bench::standard_benchmark::< - pezsp_trie::LayoutV1, + pezsp_trie::LayoutV1, pezsp_trie::TrieStream, >(c, "bizinikiwi-keccak"); } diff --git a/bizinikiwi/primitives/trie/src/cache/metrics.rs b/bizinikiwi/primitives/trie/src/cache/metrics.rs index 2087e85b..f04a1ab4 100644 --- a/bizinikiwi/primitives/trie/src/cache/metrics.rs +++ b/bizinikiwi/primitives/trie/src/cache/metrics.rs @@ -17,212 +17,63 @@ //! Metrics for the trie cache. -use prometheus_endpoint::{ - exponential_buckets, - prometheus::{core::Collector, HistogramTimer}, - CounterVec, GaugeVec, HistogramOpts, HistogramVec, Opts, PrometheusError, Registry, U64, -}; +#[cfg(feature = "std")] +pub use prometheus_impl::*; -// Register a metric with the given registry. -fn register( - metric: T, - registry: &Registry, -) -> Result { - registry.register(Box::new(metric.clone()))?; - Ok(metric) -} +#[cfg(feature = "std")] +mod prometheus_impl { + use super::TrieHitStatsSnapshot; -/// Metrics for the trie cache. -/// This struct is used to track the performance of the trie cache. -/// It contains histograms and counters for the shared and local caches. -#[derive(Clone)] -pub struct Metrics { - // The duration in seconds to update the shared trie caches from local to shared cache. - shared_update_duration: HistogramVec, - // Number of attempts hitting the shared trie caches. - shared_hits: CounterVec, - // Number of attempts to the shared trie caches. - shared_fetch_attempts: CounterVec, - // Number of attempts hitting the local trie caches. - local_hits: CounterVec, - // Number of attempts to the local caches. - local_fetch_attempts: CounterVec, - // Length of the local caches. - local_cache_lengths: HistogramVec, - // The inline size of the shared caches. - shared_cache_inline_size: GaugeVec, - // The heap size of the shared caches. - shared_cache_heap_size: GaugeVec, -} + /// Metrics for the trie cache - stub implementation when prometheus is disabled. + #[derive(Clone)] + pub struct Metrics; -impl Metrics { - /// Create a new instance of the metrics. - pub(crate) fn register(registry: &Registry) -> Result { - Ok(Self { - shared_update_duration: register( - HistogramVec::new( - HistogramOpts { - common_opts: Opts::new( - "trie_cache_shared_update_duration", - "Duration in seconds to update the shared trie caches from local cache to shared cache", - ), - buckets: exponential_buckets(0.001, 4.0, 9) - .expect("function parameters are constant and always valid; qed"), - }, - &["cache_type"], // node or value - )?, - registry, - )?, - shared_hits: register( - CounterVec::new( - Opts::new( - "trie_cache_shared_hits", - "Number of attempts hitting the shared trie cache", - ), - &["cache_type"], // node or value - )?, - registry, - )?, - shared_fetch_attempts: register( - CounterVec::new( - Opts::new( - "trie_cache_shared_fetch_attempts", - "Number of attempts to the shared trie cache", - ), - &["cache_type"], - )?, - registry, - )?, - local_hits: register( - CounterVec::new( - Opts::new( - "trie_cache_local_hits", - "Number of attempts hitting the local trie cache", - ), - &["cache_type"], - )?, - registry, - )?, - local_fetch_attempts: register( - CounterVec::new( - Opts::new( - "trie_cache_local_fetch_attempts", - "Number of attempts to the local cache", - ), - &["cache_type"], - )?, - registry, - )?, - local_cache_lengths: register( - HistogramVec::new( - HistogramOpts { - common_opts: Opts::new( - "trie_cache_local_cache_lengths", - "Histogram of length of the local cache", - ), - buckets: exponential_buckets(1.0, 4.0, 9) - .expect("function parameters are constant and always valid; qed"), - }, - &["cache_type"], - )?, - registry, - )?, - shared_cache_inline_size: register( - GaugeVec::new( - Opts::new( - "trie_cache_shared_cache_inline_size", - "The inline size of the shared caches", - ), - &["cache_type"], - )?, - registry, - )?, - shared_cache_heap_size: register( - GaugeVec::new( - Opts::new( - "trie_cache_shared_cache_heap_size", - "The heap size of the shared caches", - ), - &["cache_type"], - )?, - registry, - )?, - }) + /// Stub registry type when prometheus is disabled. + pub struct Registry; + + /// Stub timer type. + pub struct HistogramTimer; + + impl Drop for HistogramTimer { + fn drop(&mut self) {} } - /// Start a timer for the shared node cache update duration. - pub(crate) fn start_shared_node_update_timer(&self) -> HistogramTimer { - self.shared_update_duration.with_label_values(&["node"]).start_timer() - } + impl Metrics { + /// Create a new instance of the metrics. + pub(crate) fn register(_registry: &Registry) -> Result { + Ok(Self) + } - /// Start a timer for the shared value cache update duration. - pub(crate) fn start_shared_value_update_timer(&self) -> HistogramTimer { - self.shared_update_duration.with_label_values(&["value"]).start_timer() - } + /// Start a timer for the shared node cache update duration. + pub(crate) fn start_shared_node_update_timer(&self) -> HistogramTimer { + HistogramTimer + } - /// Observe the shared node cache length. - pub(crate) fn observe_local_node_cache_length(&self, node_cache_len: usize) { - self.local_cache_lengths - .with_label_values(&["node"]) - .observe(node_cache_len as f64); - } + /// Start a timer for the shared value cache update duration. + pub(crate) fn start_shared_value_update_timer(&self) -> HistogramTimer { + HistogramTimer + } - /// Observe the shared value cache length. - pub(crate) fn observe_local_value_cache_length(&self, value_cache_len: usize) { - self.local_cache_lengths - .with_label_values(&["value"]) - .observe(value_cache_len as f64); - } + /// Observe the shared node cache length. + pub(crate) fn observe_local_node_cache_length(&self, _node_cache_len: usize) {} - /// Observe the shared node cache inline size. - pub(crate) fn observe_node_cache_inline_size(&self, cache_size: usize) { - self.shared_cache_inline_size - .with_label_values(&["node"]) - .set(cache_size as u64); - } + /// Observe the shared value cache length. + pub(crate) fn observe_local_value_cache_length(&self, _value_cache_len: usize) {} - /// Observe the shared value cache inline size. - pub(crate) fn observe_value_cache_inline_size(&self, cache_size: usize) { - self.shared_cache_inline_size - .with_label_values(&["value"]) - .set(cache_size as u64); - } + /// Observe the shared node cache inline size. + pub(crate) fn observe_node_cache_inline_size(&self, _cache_size: usize) {} - /// Observe the shared node cache heap size. - pub(crate) fn observe_node_cache_heap_size(&self, cache_size: usize) { - self.shared_cache_heap_size.with_label_values(&["node"]).set(cache_size as u64); - } + /// Observe the shared value cache inline size. + pub(crate) fn observe_value_cache_inline_size(&self, _cache_size: usize) {} - /// Observe the shared value cache heap size. - pub(crate) fn observe_value_cache_heap_size(&self, cache_size: usize) { - self.shared_cache_heap_size.with_label_values(&["value"]).set(cache_size as u64); - } + /// Observe the shared node cache heap size. + pub(crate) fn observe_node_cache_heap_size(&self, _cache_size: usize) {} - /// Observe the hit stats from an instance of a local cache. - pub(crate) fn observe_hits_stats(&self, stats: &TrieHitStatsSnapshot) { - self.shared_hits - .with_label_values(&["node"]) - .inc_by(stats.node_cache.shared_hits); - self.shared_fetch_attempts - .with_label_values(&["node"]) - .inc_by(stats.node_cache.shared_fetch_attempts); - self.local_hits.with_label_values(&["node"]).inc_by(stats.node_cache.local_hits); - self.local_fetch_attempts - .with_label_values(&["node"]) - .inc_by(stats.node_cache.local_fetch_attempts); + /// Observe the shared value cache heap size. + pub(crate) fn observe_value_cache_heap_size(&self, _cache_size: usize) {} - self.shared_hits - .with_label_values(&["value"]) - .inc_by(stats.value_cache.shared_hits); - self.shared_fetch_attempts - .with_label_values(&["value"]) - .inc_by(stats.value_cache.shared_fetch_attempts); - self.local_hits - .with_label_values(&["value"]) - .inc_by(stats.value_cache.local_hits); - self.local_fetch_attempts - .with_label_values(&["value"]) - .inc_by(stats.value_cache.local_fetch_attempts); + /// Observe the hit stats from an instance of a local cache. + pub(crate) fn observe_hits_stats(&self, _stats: &TrieHitStatsSnapshot) {} } } diff --git a/bizinikiwi/primitives/trie/src/cache/shared_cache.rs b/bizinikiwi/primitives/trie/src/cache/shared_cache.rs index b0f04814..505e911f 100644 --- a/bizinikiwi/primitives/trie/src/cache/shared_cache.rs +++ b/bizinikiwi/primitives/trie/src/cache/shared_cache.rs @@ -26,7 +26,7 @@ use core::{hash::Hash, time::Duration}; use hash_db::Hasher; use nohash_hasher::BuildNoHashHasher; use parking_lot::{Mutex, RwLock, RwLockWriteGuard}; -use prometheus_endpoint::Registry; +use super::metrics::Registry; use schnellru::LruMap; use std::{ collections::{hash_map::Entry as SetEntry, HashMap}, diff --git a/bizinikiwi/test-utils/runtime/client/Cargo.toml b/bizinikiwi/test-utils/runtime/client/Cargo.toml index de0e8e4e..b2d9822e 100644 --- a/bizinikiwi/test-utils/runtime/client/Cargo.toml +++ b/bizinikiwi/test-utils/runtime/client/Cargo.toml @@ -29,6 +29,9 @@ pezsp-consensus = { workspace = true, default-features = true } pezsp-core = { workspace = true, default-features = true } pezsp-runtime = { workspace = true, default-features = true } +[dev-dependencies] +pezsp-tracing = { workspace = true, default-features = true } + [features] bls-experimental = ["bizinikiwi-test-runtime/bls-experimental"] runtime-benchmarks = [ diff --git a/bizinikiwi/test-utils/runtime/client/src/lib.rs b/bizinikiwi/test-utils/runtime/client/src/lib.rs index 87ed8fd6..45a82e24 100644 --- a/bizinikiwi/test-utils/runtime/client/src/lib.rs +++ b/bizinikiwi/test-utils/runtime/client/src/lib.rs @@ -23,6 +23,9 @@ pub mod trait_tests; mod block_builder_ext; +#[cfg(test)] +mod runtime_logger_tests; + pub use bizinikiwi_test_client::*; pub use bizinikiwi_test_runtime as runtime; pub use pezsc_consensus::LongestChain; diff --git a/bizinikiwi/test-utils/runtime/client/src/runtime_logger_tests.rs b/bizinikiwi/test-utils/runtime/client/src/runtime_logger_tests.rs new file mode 100644 index 00000000..d7e218b2 --- /dev/null +++ b/bizinikiwi/test-utils/runtime/client/src/runtime_logger_tests.rs @@ -0,0 +1,53 @@ +// This file is part of Bizinikiwi. + +// Copyright (C) Parity Technologies (UK) Ltd. and Dijital Kurdistan Tech Institute +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Tests for runtime logger integration. +//! +//! These tests verify that logging from within the runtime works correctly +//! with the test client infrastructure. + +use crate::{runtime::TestAPI, DefaultTestClientBuilderExt, TestClientBuilder, TestClientBuilderExt}; +use pezsp_api::ProvideRuntimeApi; +use std::env; + +#[test] +fn ensure_runtime_logger_works() { + if env::var("RUN_TEST").is_ok() { + pezsp_tracing::try_init_simple(); + + let client = TestClientBuilder::new().build(); + let runtime_api = client.runtime_api(); + runtime_api + .do_trace_log(client.chain_info().genesis_hash) + .expect("Logging should not fail"); + } else { + for (level, should_print) in &[("test=trace", true), ("info", false)] { + let executable = std::env::current_exe().unwrap(); + let output = std::process::Command::new(executable) + .env("RUN_TEST", "1") + .env("RUST_LOG", level) + .args(&["--nocapture", "ensure_runtime_logger_works"]) + .output() + .unwrap(); + + let output = String::from_utf8(output.stderr).unwrap(); + assert!(output.contains("Hey I'm runtime") == *should_print); + assert!(output.contains("THIS IS TRACING") == *should_print); + assert!(output.contains("Hey, I'm tracing") == *should_print); + } + } +} diff --git a/bizinikiwi/utils/binary-merkle-tree/Cargo.toml b/bizinikiwi/utils/binary-merkle-tree/Cargo.toml index 235da825..92726616 100644 --- a/bizinikiwi/utils/binary-merkle-tree/Cargo.toml +++ b/bizinikiwi/utils/binary-merkle-tree/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "binary-merkle-tree" -version = "13.0.0" +name = "pez-binary-merkle-tree" +version = "14.0.1" authors.workspace = true edition.workspace = true license = "Apache-2.0" @@ -21,16 +21,13 @@ log = { optional = true, workspace = true } [dev-dependencies] array-bytes = { workspace = true, default-features = true } pezsp-core = { workspace = true, default-features = true } -pezsp-runtime = { workspace = true, default-features = true } [features] debug = ["array-bytes", "log"] default = ["debug", "std"] -runtime-benchmarks = ["pezsp-runtime/runtime-benchmarks"] std = [ "codec/std", "hash-db/std", "log/std", - "pezsp-core/std", - "pezsp-runtime/std", ] +runtime-benchmarks = [] diff --git a/bizinikiwi/utils/binary-merkle-tree/src/lib.rs b/bizinikiwi/utils/binary-merkle-tree/src/lib.rs index a260d190..c2ef88ad 100644 --- a/bizinikiwi/utils/binary-merkle-tree/src/lib.rs +++ b/bizinikiwi/utils/binary-merkle-tree/src/lib.rs @@ -416,8 +416,7 @@ where #[cfg(test)] mod tests { use super::*; - use pezsp_core::H256; - use pezsp_runtime::traits::Keccak256; + use pezsp_core::{H256, KeccakHasher}; #[test] fn should_generate_empty_root() { @@ -425,7 +424,7 @@ mod tests { let data: Vec<[u8; 1]> = Default::default(); // when - let out = merkle_root::(data); + let out = merkle_root::(data); // then assert_eq!( @@ -442,7 +441,7 @@ mod tests { )]; // when - let out = merkle_root::(data); + let out = merkle_root::(data); // then assert_eq!( @@ -460,7 +459,7 @@ mod tests { ]; // when - let out = merkle_root::(data); + let out = merkle_root::(data); // then assert_eq!( @@ -472,7 +471,7 @@ mod tests { #[test] fn should_generate_root_complex() { let test = |root, data| { - assert_eq!(array_bytes::bytes2hex("", &merkle_root::(data)), root); + assert_eq!(array_bytes::bytes2hex("", &merkle_root::(data)), root); }; test( @@ -502,8 +501,8 @@ mod tests { let data = vec!["a", "b", "c"]; // when - let proof0 = merkle_proof::(data.clone(), 0); - assert!(verify_proof::( + let proof0 = merkle_proof::(data.clone(), 0); + assert!(verify_proof::( &proof0.root, proof0.proof.clone(), data.len() as _, @@ -511,8 +510,8 @@ mod tests { &proof0.leaf, )); - let proof1 = merkle_proof::(data.clone(), 1); - assert!(verify_proof::( + let proof1 = merkle_proof::(data.clone(), 1); + assert!(verify_proof::( &proof1.root, proof1.proof, data.len() as _, @@ -520,8 +519,8 @@ mod tests { &proof1.leaf, )); - let proof2 = merkle_proof::(data.clone(), 2); - assert!(verify_proof::( + let proof2 = merkle_proof::(data.clone(), 2); + assert!(verify_proof::( &proof2.root, proof2.proof, data.len() as _, @@ -539,7 +538,7 @@ mod tests { array_bytes::bytes2hex("", &proof1.root) ); - assert!(!verify_proof::( + assert!(!verify_proof::( &array_bytes::hex2array_unchecked( "fb3b3be94be9e983ba5e094c9c51a7d96a4fa2e5d8e891df00ca89ba05bb1239" ) @@ -550,7 +549,7 @@ mod tests { &proof0.leaf )); - assert!(!verify_proof::( + assert!(!verify_proof::( &proof0.root.into(), vec![], data.len() as _, @@ -566,9 +565,9 @@ mod tests { for l in 0..data.len() as u32 { // when - let proof = merkle_proof::(data.clone(), l); + let proof = merkle_proof::(data.clone(), l); // then - assert!(verify_proof::( + assert!(verify_proof::( &proof.root, proof.proof, data.len() as _, @@ -591,9 +590,9 @@ mod tests { for l in 0..data.len() as u32 { // when - let proof = merkle_proof::(data.clone(), l); + let proof = merkle_proof::(data.clone(), l); // then - assert!(verify_proof::( + assert!(verify_proof::( &proof.root, proof.proof, data.len() as _, @@ -614,9 +613,9 @@ mod tests { for l in (0..data.len() as u32).step_by(13) { // when - let proof = merkle_proof::(data.clone(), l); + let proof = merkle_proof::(data.clone(), l); // then - assert!(verify_proof::( + assert!(verify_proof::( &proof.root, proof.proof, data.len() as _, @@ -629,7 +628,7 @@ mod tests { #[test] #[should_panic] fn should_panic_on_invalid_leaf_index() { - merkle_proof::(vec!["a"], 5); + merkle_proof::(vec!["a"], 5); } #[test] @@ -815,13 +814,13 @@ mod tests { for l in 0..data.len() as u32 { // when - let proof = merkle_proof::(data.clone(), l); + let proof = merkle_proof::(data.clone(), l); assert_eq!(array_bytes::bytes2hex("", &proof.root), array_bytes::bytes2hex("", &root)); assert_eq!(proof.leaf_index, l); assert_eq!(&proof.leaf, &data[l as usize]); // then - assert!(verify_proof::( + assert!(verify_proof::( &proof.root, proof.proof, data.len() as _, @@ -830,7 +829,7 @@ mod tests { )); } - let proof = merkle_proof::(data.clone(), data.len() as u32 - 1); + let proof = merkle_proof::(data.clone(), data.len() as u32 - 1); assert_eq!( proof, diff --git a/pezbridges/primitives/beefy/Cargo.toml b/pezbridges/primitives/beefy/Cargo.toml index 376b5d3f..0813b012 100644 --- a/pezbridges/primitives/beefy/Cargo.toml +++ b/pezbridges/primitives/beefy/Cargo.toml @@ -22,7 +22,7 @@ serde = { features = ["alloc", "derive"], workspace = true } pezbp-runtime = { workspace = true } # Bizinikiwi Dependencies -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } pezframe-support = { workspace = true } pezpallet-beefy-mmr = { workspace = true } pezpallet-mmr = { workspace = true } @@ -33,7 +33,7 @@ pezsp-std = { workspace = true } [features] default = ["std"] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "codec/std", "pezbp-runtime/std", "pezframe-support/std", @@ -46,7 +46,7 @@ std = [ "serde/std", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "pezbp-runtime/runtime-benchmarks", "pezframe-support/runtime-benchmarks", "pezpallet-beefy-mmr/runtime-benchmarks", diff --git a/pezbridges/primitives/beefy/src/lib.rs b/pezbridges/primitives/beefy/src/lib.rs index 088e1c7f..bf37a47e 100644 --- a/pezbridges/primitives/beefy/src/lib.rs +++ b/pezbridges/primitives/beefy/src/lib.rs @@ -19,7 +19,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![warn(missing_docs)] -pub use binary_merkle_tree::merkle_root; +pub use pez_binary_merkle_tree::merkle_root; pub use pezpallet_beefy_mmr::BeefyEcdsaToEthereum; pub use pezpallet_mmr::{ primitives::{DataOrHash as MmrDataOrHash, LeafProof as MmrProof}, diff --git a/pezkuwi/runtime/pezkuwichain/Cargo.toml b/pezkuwi/runtime/pezkuwichain/Cargo.toml index b7f88462..6003806d 100644 --- a/pezkuwi/runtime/pezkuwichain/Cargo.toml +++ b/pezkuwi/runtime/pezkuwichain/Cargo.toml @@ -22,7 +22,7 @@ serde = { workspace = true } serde_derive = { optional = true, workspace = true } serde_json = { features = ["alloc"], workspace = true } -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } pezkuwichain-runtime-constants = { workspace = true } pezsp-api = { workspace = true } pezsp-arithmetic = { workspace = true } @@ -132,7 +132,7 @@ bizinikiwi-wasm-builder = { optional = true, workspace = true, default-features default = ["std"] no_std = [] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "bitvec/std", "bizinikiwi-wasm-builder", "codec/std", @@ -226,7 +226,7 @@ std = [ "xcm/std", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "bizinikiwi-wasm-builder?/runtime-benchmarks", "pezframe-benchmarking/runtime-benchmarks", "pezframe-election-provider-support/runtime-benchmarks", diff --git a/pezkuwi/runtime/pezkuwichain/src/lib.rs b/pezkuwi/runtime/pezkuwichain/src/lib.rs index 047570d2..52436681 100644 --- a/pezkuwi/runtime/pezkuwichain/src/lib.rs +++ b/pezkuwi/runtime/pezkuwichain/src/lib.rs @@ -1387,7 +1387,7 @@ impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { let para_heads: Vec<(u32, Vec)> = teyrchains_paras::Pezpallet::::sorted_para_heads(); - binary_merkle_tree::merkle_root::( + pez_binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) .into() diff --git a/pezkuwi/runtime/zagros/Cargo.toml b/pezkuwi/runtime/zagros/Cargo.toml index 67200ab4..e5b90a0d 100644 --- a/pezkuwi/runtime/zagros/Cargo.toml +++ b/pezkuwi/runtime/zagros/Cargo.toml @@ -22,7 +22,7 @@ serde = { workspace = true } serde_derive = { optional = true, workspace = true } serde_json = { features = ["alloc"], workspace = true } -binary-merkle-tree = { workspace = true } +pez-binary-merkle-tree = { workspace = true } pezsp-api = { workspace = true } pezsp-application-crypto = { workspace = true } pezsp-arithmetic = { workspace = true } @@ -138,7 +138,7 @@ bizinikiwi-wasm-builder = { workspace = true, default-features = true } default = ["std"] no_std = [] std = [ - "binary-merkle-tree/std", + "pez-binary-merkle-tree/std", "bitvec/std", "codec/std", "log/std", @@ -239,7 +239,7 @@ std = [ "zagros-runtime-constants/std", ] runtime-benchmarks = [ - "binary-merkle-tree/runtime-benchmarks", + "pez-binary-merkle-tree/runtime-benchmarks", "bizinikiwi-wasm-builder/runtime-benchmarks", "pezframe-benchmarking/runtime-benchmarks", "pezframe-election-provider-support/runtime-benchmarks", diff --git a/pezkuwi/runtime/zagros/src/lib.rs b/pezkuwi/runtime/zagros/src/lib.rs index e60a3c09..898af78d 100644 --- a/pezkuwi/runtime/zagros/src/lib.rs +++ b/pezkuwi/runtime/zagros/src/lib.rs @@ -461,7 +461,7 @@ impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { let para_heads: Vec<(u32, Vec)> = teyrchains_paras::Pezpallet::::sorted_para_heads(); - binary_merkle_tree::merkle_root::( + pez_binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) .into() diff --git a/publish.log b/publish.log new file mode 100644 index 00000000..412bead8 --- /dev/null +++ b/publish.log @@ -0,0 +1,33 @@ +Sat Dec 27 19:45:29 UTC 2025 - Publishing pezsp-arithmetic +Sat Dec 27 19:45:44 UTC 2025 - SUCCESS: pezsp-arithmetic +Sat Dec 27 19:46:53 UTC 2025 - Publishing pezsp-runtime-interface-proc-macro +Sat Dec 27 19:47:06 UTC 2025 - SUCCESS: pezsp-runtime-interface-proc-macro +Sat Dec 27 19:48:15 UTC 2025 - Publishing pezsp-runtime-interface +Sat Dec 27 19:48:19 UTC 2025 - FAILED: pezsp-runtime-interface + Updating crates.io index + Packaging pezsp-runtime-interface v24.0.0 (/home/mamostehp/pezkuwi-sdk/bizinikiwi/primitives/runtime-interface) + Updating crates.io index +error: failed to prepare local package for uploading + +Caused by: + no matching package named `pezsp-io` found + location searched: crates.io index + required by package `pezsp-runtime-interface v24.0.0 (/home/mamostehp/pezkuwi-sdk/bizinikiwi/primitives/runtime-interface)` +Sat Dec 27 19:49:28 UTC 2025 - Publishing pezsp-io +Sat Dec 27 19:49:31 UTC 2025 - FAILED: pezsp-io + Updating crates.io index + Packaging pezsp-io v30.0.0 (/home/mamostehp/pezkuwi-sdk/bizinikiwi/primitives/io) + Updating crates.io index +error: failed to prepare local package for uploading + +Caused by: + no matching package named `pezsp-core` found + location searched: crates.io index + required by package `pezsp-io v30.0.0 (/home/mamostehp/pezkuwi-sdk/bizinikiwi/primitives/io)` +Sat Dec 27 19:50:40 UTC 2025 - Publishing pezsp-core +Sat Dec 27 19:50:41 UTC 2025 - FAILED: pezsp-core + Updating crates.io index +error: all dependencies must have a version specified when publishing. +dependency `pezkuwi-ss58-registry` does not specify a version +Note: The published dependency will use the version from crates.io, +the `path` specification will be removed from the dependency declaration. diff --git a/publish_batch.sh b/publish_batch.sh new file mode 100755 index 00000000..3ce67cc1 --- /dev/null +++ b/publish_batch.sh @@ -0,0 +1,54 @@ +#!/bin/bash +cd /home/mamostehp/pezkuwi-sdk +LOG="/home/mamostehp/pezkuwi-sdk/publish.log" + +publish_crate() { + local crate=$1 + echo "$(date -u) - Publishing $crate" | tee -a $LOG + + OUTPUT=$(cargo publish -p "$crate" 2>&1) + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ]; then + echo "$(date -u) - SUCCESS: $crate" | tee -a $LOG + return 0 + elif echo "$OUTPUT" | grep -q "429 Too Many Requests"; then + echo "$(date -u) - RATE LIMITED: $crate - waiting 120s" | tee -a $LOG + sleep 120 + # Retry + OUTPUT=$(cargo publish -p "$crate" 2>&1) + if [ $? -eq 0 ]; then + echo "$(date -u) - SUCCESS (retry): $crate" | tee -a $LOG + return 0 + fi + elif echo "$OUTPUT" | grep -q "already uploaded"; then + echo "$(date -u) - SKIPPED: $crate (already published)" | tee -a $LOG + return 0 + fi + + echo "$(date -u) - FAILED: $crate" | tee -a $LOG + echo "$OUTPUT" >> $LOG + return 1 +} + +# Level 1 crates +CRATES=( + "pezsp-arithmetic" + "pezsp-runtime-interface-proc-macro" + "pezsp-runtime-interface" + "pezsp-io" + "pezsp-core" + "pezsp-keyring" + "pezsp-weights" + "pezsp-version-proc-macro" + "pezsp-version" + "pezsp-application-crypto" + "pezsp-metadata-ir" +) + +for crate in "${CRATES[@]}"; do + publish_crate "$crate" + sleep 65 +done + +echo "Batch complete!" | tee -a $LOG diff --git a/publish_crates.sh b/publish_crates.sh new file mode 100755 index 00000000..8c605ebb --- /dev/null +++ b/publish_crates.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# Publish crates with rate limit handling + +CRATES=( + # Level 0 remaining + "pezsp-core-hashing-proc-macro" + "pezsp-wasm-interface" + # Level 1 + "pezsp-arithmetic" + "pezsp-io" + "pezsp-runtime-interface-proc-macro" + "pezsp-runtime-interface" + "pezsp-core" + "pezsp-keyring" + "pezsp-weights" + "pezsp-version-proc-macro" + "pezsp-version" + "pezsp-application-crypto" + "pezsp-runtime" + "pezsp-staking" + "pezsp-state-machine" + "pezsp-trie" + "pezsp-database" + "pezsp-maybe-compressed-blob" +) + +PUBLISHED=0 +FAILED=0 + +for crate in "${CRATES[@]}"; do + echo "========================================" + echo "Publishing: $crate" + echo "Time: $(date -u)" + echo "========================================" + + OUTPUT=$(cargo publish -p "$crate" 2>&1) + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ]; then + echo "SUCCESS: $crate" + ((PUBLISHED++)) + elif echo "$OUTPUT" | grep -q "429 Too Many Requests"; then + # Extract wait time + WAIT_UNTIL=$(echo "$OUTPUT" | grep -oP 'after \K[^o]+') + echo "RATE LIMITED - waiting until $WAIT_UNTIL" + echo "Sleeping 120 seconds..." + sleep 120 + # Retry + echo "Retrying $crate..." + cargo publish -p "$crate" 2>&1 + if [ $? -eq 0 ]; then + echo "SUCCESS on retry: $crate" + ((PUBLISHED++)) + else + echo "FAILED on retry: $crate" + ((FAILED++)) + fi + elif echo "$OUTPUT" | grep -q "already uploaded"; then + echo "SKIPPED (already published): $crate" + else + echo "FAILED: $crate" + echo "$OUTPUT" + ((FAILED++)) + fi + + echo "Waiting 65 seconds..." + sleep 65 +done + +echo "========================================" +echo "SUMMARY" +echo "Published: $PUBLISHED" +echo "Failed: $FAILED" +echo "========================================" diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 9346d83a..46d9ed16 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -9,7 +9,7 @@ default = ["std"] std = [ "asset-test-pezutils?/std", "assets-common?/std", - "binary-merkle-tree?/std", + "pez-binary-merkle-tree?/std", "bizinikiwi-bip39?/std", "bp-header-pez-chain?/std", "bp-messages?/std", @@ -58,7 +58,7 @@ std = [ "pezkuwi-runtime-metrics?/std", "pezkuwi-runtime-teyrchains?/std", "pezkuwi-sdk-frame?/std", - "pezkuwi-ss58-registry?/std", + "pezsp-ss58-registry?/std", "pezkuwi-subxt-core?/std", "pezkuwi-subxt-metadata?/std", "pezkuwi-subxt-signer?/std", @@ -238,7 +238,7 @@ std = [ runtime-benchmarks = [ "asset-test-pezutils?/runtime-benchmarks", "assets-common?/runtime-benchmarks", - "binary-merkle-tree?/runtime-benchmarks", + "pez-binary-merkle-tree?/runtime-benchmarks", "bizinikiwi-frame-rpc-support?/runtime-benchmarks", "bizinikiwi-frame-rpc-system?/runtime-benchmarks", "bizinikiwi-rpc-client?/runtime-benchmarks", @@ -745,7 +745,7 @@ with-tracing = [ ] runtime-full = [ "assets-common", - "binary-merkle-tree", + "pez-binary-merkle-tree", "bizinikiwi-bip39", "bp-header-pez-chain", "bp-messages", @@ -797,7 +797,7 @@ runtime-full = [ "pezkuwi-runtime-metrics", "pezkuwi-runtime-teyrchains", "pezkuwi-sdk-frame", - "pezkuwi-ss58-registry", + "pezsp-ss58-registry", "pezkuwi-subxt-core", "pezkuwi-subxt-macro", "pezkuwi-subxt-metadata", @@ -1183,7 +1183,7 @@ default-features = false optional = true path = "../pezcumulus/teyrchains/runtimes/assets/common" -[dependencies.binary-merkle-tree] +[dependencies.pez-binary-merkle-tree] default-features = false optional = true path = "../bizinikiwi/utils/binary-merkle-tree" @@ -1443,7 +1443,7 @@ default-features = false optional = true path = "../bizinikiwi/pezframe" -[dependencies.pezkuwi-ss58-registry] +[dependencies.pezsp-ss58-registry] default-features = false optional = true path = "../vendor/ss58-registry" diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index 879e3d0c..3650e652 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -21,7 +21,7 @@ pub use assets_common; /// A no-std/Bizinikiwi compatible library to construct binary merkle tree. #[cfg(feature = "binary-merkle-tree")] -pub use binary_merkle_tree; +pub use pez_binary_merkle_tree; /// Converting BIP39 entropy to valid Bizinikiwi (sr25519) SecretKeys. #[cfg(feature = "bizinikiwi-bip39")] @@ -516,8 +516,8 @@ pub use pezkuwi_sdk_frame; pub use pezkuwi_service; /// Registry of known SS58 address types - PezkuwiChain fork. -#[cfg(feature = "pezkuwi-ss58-registry")] -pub use pezkuwi_ss58_registry; +#[cfg(feature = "pezsp-ss58-registry")] +pub use pezsp_ss58_registry; /// Statement Distribution Subsystem. #[cfg(feature = "pezkuwi-statement-distribution")] diff --git a/vendor/ss58-registry/Cargo.toml b/vendor/ss58-registry/Cargo.toml index 5791e2d3..db761653 100644 --- a/vendor/ss58-registry/Cargo.toml +++ b/vendor/ss58-registry/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "pezkuwi-ss58-registry" -version = "1.51.0" +name = "pezsp-ss58-registry" +version = "1.52.0" description = "Registry of known SS58 address types - PezkuwiChain fork" documentation.workspace = true license = "Apache-2.0"