From 8a24fc39a61633fb774f806cd3a194e5d5a7788b Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 27 May 2023 04:13:40 -0400 Subject: [PATCH 01/20] Only scan v2 Monero TXs --- coins/monero/src/wallet/scan.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/coins/monero/src/wallet/scan.rs b/coins/monero/src/wallet/scan.rs index 9ae046ab..e4ad9dfb 100644 --- a/coins/monero/src/wallet/scan.rs +++ b/coins/monero/src/wallet/scan.rs @@ -282,6 +282,11 @@ impl Timelocked { impl Scanner { /// Scan a transaction to discover the received outputs. pub fn scan_transaction(&mut self, tx: &Transaction) -> Timelocked { + // Only scan RCT TXs since we can only spend RCT outputs + if tx.version != 2 { + return Timelocked(tx.prefix.timelock, vec![]); + } + let extra = Extra::read::<&[u8]>(&mut tx.prefix.extra.as_ref()); let extra = if let Ok(extra) = extra { extra From 1aa293cc4ad373514c1bfad69eac1d33cf5f9dad Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 27 May 2023 04:15:57 -0400 Subject: [PATCH 02/20] Fix for prior commit --- coins/monero/src/wallet/scan.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coins/monero/src/wallet/scan.rs b/coins/monero/src/wallet/scan.rs index e4ad9dfb..2f7e05a8 100644 --- a/coins/monero/src/wallet/scan.rs +++ b/coins/monero/src/wallet/scan.rs @@ -283,7 +283,7 @@ impl Scanner { /// Scan a transaction to discover the received outputs. pub fn scan_transaction(&mut self, tx: &Transaction) -> Timelocked { // Only scan RCT TXs since we can only spend RCT outputs - if tx.version != 2 { + if tx.prefix.version != 2 { return Timelocked(tx.prefix.timelock, vec![]); } From c6982b5dfcffce458f7b0237d2e982708b402d2d Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Tue, 30 May 2023 22:05:52 -0400 Subject: [PATCH 03/20] Ensure canonical points in the cross-group DLEq proof --- crypto/dleq/src/cross_group/mod.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crypto/dleq/src/cross_group/mod.rs b/crypto/dleq/src/cross_group/mod.rs index f97ee390..c08ff7b2 100644 --- a/crypto/dleq/src/cross_group/mod.rs +++ b/crypto/dleq/src/cross_group/mod.rs @@ -55,10 +55,13 @@ pub(crate) fn read_point(r: &mut R) -> std::io::Result::from(point) else { + Err(std::io::Error::new(std::io::ErrorKind::Other, "invalid point"))? + }; + if point.to_bytes().as_ref() != repr.as_ref() { + Err(std::io::Error::new(std::io::ErrorKind::Other, "non-canonical point"))?; } - Ok(point.unwrap()) + Ok(point) } /// A pair of generators, one committing to values (primary), one blinding (alt), for an elliptic From dfa3106a38b399b74d17360e0d63687682fa505c Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Thu, 8 Jun 2023 06:38:25 -0400 Subject: [PATCH 04/20] Fix incorrect sig_hash generation sig_hash was used as a challenge. challenges should be of the form H(R, A, m). These sig hashes were solely H(A, m), allowing trivial forgeries. --- coordinator/src/tributary/mod.rs | 8 +++----- .../tributary/src/tests/transaction/mod.rs | 9 ++++----- coordinator/tributary/src/transaction.rs | 16 +++++++++++++--- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/coordinator/src/tributary/mod.rs b/coordinator/src/tributary/mod.rs index 12da3220..1b718e76 100644 --- a/coordinator/src/tributary/mod.rs +++ b/coordinator/src/tributary/mod.rs @@ -458,11 +458,9 @@ impl Transaction { signed_ref.signer = Ristretto::generator() * key.deref(); signed_ref.nonce = nonce; + let sig_nonce = Zeroizing::new(::F::random(rng)); + signed(self).signature.R = ::generator() * sig_nonce.deref(); let sig_hash = self.sig_hash(genesis); - signed(self).signature = SchnorrSignature::::sign( - key, - Zeroizing::new(::F::random(rng)), - sig_hash, - ); + signed(self).signature = SchnorrSignature::::sign(key, sig_nonce, sig_hash); } } diff --git a/coordinator/tributary/src/tests/transaction/mod.rs b/coordinator/tributary/src/tests/transaction/mod.rs index ce6597a2..b264568c 100644 --- a/coordinator/tributary/src/tests/transaction/mod.rs +++ b/coordinator/tributary/src/tests/transaction/mod.rs @@ -1,3 +1,4 @@ +use core::ops::Deref; use std::{io, collections::HashMap}; use zeroize::Zeroizing; @@ -114,11 +115,9 @@ pub fn signed_transaction( let mut tx = SignedTransaction(data, Signed { signer, nonce, signature: random_signed(rng).signature }); - tx.1.signature = SchnorrSignature::sign( - key, - Zeroizing::new(::F::random(rng)), - tx.sig_hash(genesis), - ); + let sig_nonce = Zeroizing::new(::F::random(rng)); + tx.1.signature.R = Ristretto::generator() * sig_nonce.deref(); + tx.1.signature = SchnorrSignature::sign(key, sig_nonce, tx.sig_hash(genesis)); let mut nonces = HashMap::from([(signer, nonce)]); verify_transaction(&tx, genesis, &mut nonces).unwrap(); diff --git a/coordinator/tributary/src/transaction.rs b/coordinator/tributary/src/transaction.rs index d28fc3d0..f45387fd 100644 --- a/coordinator/tributary/src/transaction.rs +++ b/coordinator/tributary/src/transaction.rs @@ -98,10 +98,20 @@ pub trait Transaction: 'static + Send + Sync + Clone + Eq + Debug + ReadWrite { /// Obtain the challenge for this transaction's signature. /// /// Do not override this unless you know what you're doing. + /// + /// Panics if called on non-signed transactions. fn sig_hash(&self, genesis: [u8; 32]) -> ::F { - ::F::from_bytes_mod_order_wide( - &Blake2b512::digest([genesis, self.hash()].concat()).into(), - ) + match self.kind() { + TransactionKind::Signed(Signed { signature, .. }) => { + ::F::from_bytes_mod_order_wide( + &Blake2b512::digest( + [genesis.as_ref(), &self.hash(), signature.R.to_bytes().as_ref()].concat(), + ) + .into(), + ) + } + _ => panic!("sig_hash called on non-signed transaction"), + } } } From fca567f61d36360b36c153819c98bccbe09d858b Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Thu, 22 Jun 2023 06:25:30 -0400 Subject: [PATCH 05/20] cargo update Resolves an openssl advisory and nets ~-8 crates. --- Cargo.lock | 1124 ++++++++++++++++++++++++---------------------------- 1 file changed, 522 insertions(+), 602 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c07929ed..30cc08df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.2", + "gimli 0.27.3", ] [[package]] @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -115,12 +115,12 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" dependencies = [ "aead 0.5.2", - "aes 0.8.2", + "aes 0.8.3", "cipher 0.4.4", "ctr 0.9.2", "ghash 0.5.0", @@ -153,7 +153,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -165,7 +165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -181,13 +181,19 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -223,15 +229,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] @@ -290,9 +296,9 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii-canvas" @@ -316,7 +322,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.21", + "time 0.3.22", ] [[package]] @@ -332,7 +338,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.21", + "time 0.3.22", ] [[package]] @@ -401,9 +407,9 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.19", + "rustix 0.37.20", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", ] @@ -424,7 +430,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -497,7 +503,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide 0.6.2", - "object 0.30.3", + "object 0.30.4", "rustc-demangle", ] @@ -543,9 +549,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -653,7 +659,7 @@ dependencies = [ "secp256k1", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "tokio", "zeroize", @@ -703,7 +709,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -714,7 +720,7 @@ checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.2.5", + "constant_time_eq 0.2.6", ] [[package]] @@ -725,20 +731,20 @@ checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.2.5", + "constant_time_eq 0.2.6", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.2.5", + "constant_time_eq 0.2.6", ] [[package]] @@ -790,9 +796,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3888522b497857eb606bf51695988dba7096941822c1bcf676e3a929a9ae7a0" +checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6" dependencies = [ "log", "parity-scale-codec", @@ -811,9 +817,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" dependencies = [ "memchr", "serde", @@ -830,9 +836,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.2" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-slice-cast" @@ -945,9 +951,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.1" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" +checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c" dependencies = [ "smallvec", ] @@ -1002,13 +1008,13 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", "time 0.1.45", @@ -1063,8 +1069,8 @@ name = "ciphersuite" version = "0.3.0" dependencies = [ "dalek-ff-group", - "digest 0.10.6", - "elliptic-curve 0.13.4", + "digest 0.10.7", + "elliptic-curve 0.13.5", "ff 0.13.0", "ff-group-tests", "flexible-transcript", @@ -1074,7 +1080,7 @@ dependencies = [ "minimal-ed448", "p256 0.13.2", "rand_core 0.6.4", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "std-shims", "subtle", @@ -1094,84 +1100,45 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.25" +version = "4.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags", - "clap_derive 3.2.25", - "clap_lex 0.2.4", - "indexmap", - "once_cell", - "strsim", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap" -version = "4.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" +checksum = "2686c4115cb0810d9a984776e197823d08ec94f176549a89a9efded477c456dc" dependencies = [ "clap_builder", - "clap_derive 4.2.0", + "clap_derive", "once_cell", ] [[package]] name = "clap_builder" -version = "4.2.7" +version = "4.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +checksum = "2e53afce1efce6ed1f633cf0e57612fe51db54a1ee4fd8f8503d078fe02d69ae" dependencies = [ "anstream", "anstyle", "bitflags", - "clap_lex 0.4.1", + "clap_lex", "strsim", ] [[package]] name = "clap_derive" -version = "3.2.25" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "clap_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f" dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "clap_lex" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "codespan-reporting" @@ -1192,13 +1159,13 @@ dependencies = [ "bincode", "bs58", "coins-core", - "digest 0.10.6", - "getrandom 0.2.9", + "digest 0.10.7", + "getrandom 0.2.10", "hmac 0.12.1", "k256", "lazy_static", "serde", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", ] @@ -1210,12 +1177,12 @@ checksum = "84f4d04ee18e58356accd644896aeb2094ddeafb6a713e056cef0c0a8e468c15" dependencies = [ "bitvec 0.17.4", "coins-bip32", - "getrandom 0.2.9", + "getrandom 0.2.10", "hmac 0.12.1", "once_cell", "pbkdf2 0.12.1", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", ] @@ -1225,16 +1192,16 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b949a1c63fb7eb591eb7ba438746326aedf0ae843e51ec92ba6bec5bb382c4f" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "bech32 0.7.3", "bs58", - "digest 0.10.6", + "digest 0.10.7", "generic-array", "hex", "ripemd", "serde", "serde_derive", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "thiserror", ] @@ -1247,9 +1214,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.1.4" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" +checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" dependencies = [ "strum", "strum_macros", @@ -1265,33 +1232,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "regex", - "terminal_size", - "unicode-width", - "winapi", -] - -[[package]] -name = "console" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "windows-sys 0.42.0", -] - [[package]] name = "const-oid" version = "0.9.2" @@ -1306,9 +1246,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" [[package]] name = "coordinator" @@ -1372,9 +1312,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c" dependencies = [ "libc", ] @@ -1525,22 +1465,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.9.0", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -1667,9 +1607,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "e88abab2f5abbe4c56e8f1fb431b784d710b709888f35755a160e62e33fe38e8" dependencies = [ "cc", "cxxbridge-flags", @@ -1679,9 +1619,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "5c0c11acd0e63bae27dcd2afced407063312771212b7a823b4fd72d633be30fb" dependencies = [ "cc", "codespan-reporting", @@ -1689,24 +1629,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "cxxbridge-flags" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "8d3816ed957c008ccd4728485511e3d9aaf7db419aa321e3d2c5a2f3411e36c8" [[package]] name = "cxxbridge-macro" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "a26acccf6f445af85ea056362561a24ef56cdc15fcc685f03aec50b9c702cb6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -1715,7 +1655,7 @@ version = "0.3.0" dependencies = [ "crypto-bigint 0.5.2", "curve25519-dalek 3.2.0", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "ff-group-tests", "group 0.13.0", @@ -1763,15 +1703,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -1779,9 +1719,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", "syn 1.0.109", @@ -1800,9 +1740,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" +checksum = "56acb310e15652100da43d130af8d97b509e95af61aab1c5a7939ef24337ee17" dependencies = [ "const-oid", "zeroize", @@ -1900,18 +1840,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "dialoguer" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9dd058f8b65922819fabb4a41e7d1964e56344042c26efbccd465202c23fa0c" -dependencies = [ - "console 0.14.1", - "lazy_static", - "tempfile", - "zeroize", -] - [[package]] name = "diff" version = "0.1.13" @@ -1935,9 +1863,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", @@ -1951,11 +1879,11 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3054f4e81d395e50822796c5e99ca522e6ba7be98947d6d4b0e5e61640bdb894" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hex", "md-5", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -2017,7 +1945,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2043,7 +1971,7 @@ version = "0.3.1" dependencies = [ "blake2", "dalek-ff-group", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "flexible-transcript", "group 0.13.0", @@ -2121,15 +2049,16 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.6" +version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" dependencies = [ - "der 0.7.5", - "digest 0.10.6", - "elliptic-curve 0.13.4", + "der 0.7.6", + "digest 0.10.7", + "elliptic-curve 0.13.5", "rfc6979 0.4.0", "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -2184,7 +2113,7 @@ dependencies = [ "base16ct 0.1.1", "crypto-bigint 0.4.9", "der 0.6.1", - "digest 0.10.6", + "digest 0.10.7", "ff 0.12.1", "generic-array", "group 0.12.1", @@ -2199,13 +2128,13 @@ dependencies = [ [[package]] name = "elliptic-curve" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct 0.2.0", "crypto-bigint 0.5.2", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "generic-array", "group 0.13.0", @@ -2225,12 +2154,6 @@ dependencies = [ "log", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encoding_rs" version = "0.8.32" @@ -2316,9 +2239,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ - "aes 0.8.2", + "aes 0.8.3", "ctr 0.9.2", - "digest 0.10.6", + "digest 0.10.7", "hex", "hmac 0.12.1", "pbkdf2 0.11.0", @@ -2326,7 +2249,7 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "thiserror", "uuid 0.8.2", @@ -2377,7 +2300,7 @@ dependencies = [ "rand_core 0.6.4", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "thiserror", "tokio", @@ -2401,9 +2324,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d5486fdc149826f38c388f26a7df72534ee3f20d3a3f72539376fa7b3bbc43d" +checksum = "2a58ce802c65cf3d0756dee5a61094a92cde53c1583b246e9ee5b37226c7fc15" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -2417,9 +2340,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c66a426b824a0f6d1361ad74b6b01adfd26c44ee1e14c3662dcf28406763ec5" +checksum = "7b856b7b8ff5c961093cb8efe151fbcce724b451941ce20781de11a531ccd578" dependencies = [ "ethers-core", "once_cell", @@ -2429,9 +2352,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa43e2e69632492d7b38e59465d125a0066cf4c477390ece00d3acbd11b338b" +checksum = "e066a0d9cfc70c454672bf16bb433b0243427420076dc5b2f49c448fb5a10628" dependencies = [ "ethers-contract-abigen", "ethers-contract-derive", @@ -2448,36 +2371,31 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2edb8fdbf77459819a443234b461171a024476bfc12f1853b889a62c6e1185ff" +checksum = "c113e3e86b6bc16d98484b2c3bb2d01d6fed9f489fe2e592e5cc87c3024d616b" dependencies = [ "Inflector", "dunce", "ethers-core", - "ethers-etherscan", "eyre", - "getrandom 0.2.9", "hex", - "prettyplease 0.2.4", + "prettyplease 0.2.9", "proc-macro2", "quote", "regex", - "reqwest", "serde", "serde_json", - "syn 2.0.15", - "tokio", - "toml 0.7.3", - "url", + "syn 2.0.18", + "toml 0.7.4", "walkdir", ] [[package]] name = "ethers-contract-derive" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939b0c37746929f869285ee37d270b7c998d80cc7404c2e20dda8efe93e3b295" +checksum = "8c3fb5adee25701c79ec58fcf2c63594cd8829bc9ad6037ff862d5a111101ed2" dependencies = [ "Inflector", "ethers-contract-abigen", @@ -2486,23 +2404,22 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "ethers-core" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198ea9efa8480fa69f73d31d41b1601dace13d053c6fe4be6f5878d9dfcf0108" +checksum = "6da5fa198af0d3be20c19192df2bd9590b92ce09a8421e793bec8851270f1b05" dependencies = [ "arrayvec", "bytes", "cargo_metadata", "chrono", - "elliptic-curve 0.13.4", + "elliptic-curve 0.13.5", "ethabi", "generic-array", - "getrandom 0.2.9", "hex", "k256", "num_enum", @@ -2513,7 +2430,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.15", + "syn 2.0.18", "tempfile", "thiserror", "tiny-keccak", @@ -2522,13 +2439,12 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196a21d6939ab78b7a1e4c45c2b33b0c2dd821a2e1af7c896f06721e1ba2a0c7" +checksum = "84ebb401ba97c6f5af278c2c9936c4546cad75dec464b439ae6df249906f4caa" dependencies = [ "ethers-core", "ethers-solc", - "getrandom 0.2.9", "reqwest", "semver 1.0.17", "serde", @@ -2539,9 +2455,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75594cc450992fc7de701c9145de612325fd8a18be765b8ae78767ba2b74876f" +checksum = "740f4a773c19dd6d6a68c8c2e0996c096488d38997d524e21dc612c55da3bd24" dependencies = [ "async-trait", "auto_impl", @@ -2566,20 +2482,19 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1009041f40476b972b5d79346cc512e97c662b1a0a2f78285eabe9a122909783" +checksum = "56b498fd2a6c019d023e43e83488cd1fb0721f299055975aa6bac8dbf1e95f2c" dependencies = [ "async-trait", "auto_impl", - "base64 0.21.0", + "base64 0.21.2", "bytes", "enr", "ethers-core", "futures-core", "futures-timer", "futures-util", - "getrandom 0.2.9", "hashers", "hex", "http", @@ -2602,33 +2517,32 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd11ad6929f01f01be74bb00d02bbd6552f22de030865c898b340a3a592db1" +checksum = "02c4b7e15f212fa7cc2e1251868320221d4ff77a3d48068e69f47ce1c491df2d" dependencies = [ "async-trait", "coins-bip32", "coins-bip39", - "elliptic-curve 0.13.4", + "elliptic-curve 0.13.5", "eth-keystore", "ethers-core", "hex", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "tracing", ] [[package]] name = "ethers-solc" -version = "2.0.4" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2284784306de73d8ad1bc792ecc1b87da0268185683698d60fd096d23d168c99" +checksum = "a81c89f121595cf8959e746045bb8b25a6a38d72588561e1a3b7992fc213f674" dependencies = [ "cfg-if", "dunce", "ethers-core", - "getrandom 0.2.9", "glob", "hex", "home", @@ -2837,10 +2751,10 @@ name = "flexible-transcript" version = "0.3.1" dependencies = [ "blake2", - "digest 0.10.6", + "digest 0.10.7", "merlin", "rustversion", - "sha2 0.10.6", + "sha2 0.10.7", "subtle", "zeroize", ] @@ -2885,9 +2799,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2931,7 +2845,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.2.7", + "clap", "comfy-table", "frame-benchmarking", "frame-support", @@ -3044,7 +2958,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -3056,7 +2970,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -3066,7 +2980,7 @@ source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -3128,11 +3042,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2" +checksum = "7672706608ecb74ab2e055c68327ffc25ae4cac1e12349204fd5fb0f3487cce2" dependencies = [ - "rustix 0.37.19", + "rustix 0.37.20", "windows-sys 0.48.0", ] @@ -3224,7 +3138,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -3300,12 +3214,12 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199523ba70af2b447640715e8c4bd2b5360313a71d2d69361ae4dd1dc31487dd" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" dependencies = [ "libc", - "windows 0.48.0", + "windows-targets 0.48.0", ] [[package]] @@ -3321,9 +3235,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -3349,7 +3263,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug", - "polyval 0.6.0", + "polyval 0.6.1", ] [[package]] @@ -3365,9 +3279,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "glob" @@ -3424,9 +3338,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes", "fnv", @@ -3443,9 +3357,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.6" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" dependencies = [ "log", "pest", @@ -3595,7 +3509,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -3692,7 +3606,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.9", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3711,10 +3625,23 @@ dependencies = [ "rustls 0.20.8", "rustls-native-certs", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "webpki-roots", ] +[[package]] +name = "hyper-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7" +dependencies = [ + "http", + "hyper", + "rustls 0.21.2", + "tokio", + "tokio-rustls 0.24.1", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -3730,9 +3657,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3744,12 +3671,11 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -3771,9 +3697,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3895,18 +3821,6 @@ dependencies = [ "serde", ] -[[package]] -name = "indicatif" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" -dependencies = [ - "console 0.15.5", - "lazy_static", - "number_prefix", - "regex", -] - [[package]] name = "inout" version = "0.1.3" @@ -3955,9 +3869,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi 0.3.1", "libc", @@ -3972,14 +3886,14 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.3", "widestring", - "winapi", - "winreg", + "windows-sys 0.48.0", + "winreg 0.50.0", ] [[package]] @@ -3996,7 +3910,7 @@ checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix 0.37.19", + "rustix 0.37.20", "windows-sys 0.48.0", ] @@ -4026,9 +3940,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.62" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -4078,7 +3992,7 @@ dependencies = [ "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-util", "tracing", "webpki-roots", @@ -4120,7 +4034,7 @@ checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" dependencies = [ "async-trait", "hyper", - "hyper-rustls", + "hyper-rustls 0.23.2", "jsonrpsee-core", "jsonrpsee-types", "rustc-hash", @@ -4187,10 +4101,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" dependencies = [ "cfg-if", - "ecdsa 0.16.6", - "elliptic-curve 0.13.4", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", "once_cell", - "sha2 0.10.6", + "sha2 0.10.7", "signature 2.1.0", ] @@ -4263,9 +4177,6 @@ name = "lalrpop-util" version = "0.19.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed" -dependencies = [ - "regex", -] [[package]] name = "lazy_static" @@ -4284,9 +4195,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.144" +version = "0.2.146" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "libloading" @@ -4306,9 +4217,9 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" @@ -4319,7 +4230,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.9", + "getrandom 0.2.10", "instant", "libp2p-core 0.38.0", "libp2p-dns", @@ -4370,7 +4281,7 @@ dependencies = [ "rand 0.8.5", "rw-stream-sink", "sec1 0.3.0", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "unsigned-varint", @@ -4454,7 +4365,7 @@ dependencies = [ "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "zeroize", ] @@ -4479,7 +4390,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "uint", @@ -4501,7 +4412,7 @@ dependencies = [ "log", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "tokio", "trust-dns-proto", "void", @@ -4554,7 +4465,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "snow", "static_assertions", "thiserror", @@ -4662,7 +4573,7 @@ dependencies = [ "libc", "libp2p-core 0.38.0", "log", - "socket2", + "socket2 0.4.9", "tokio", ] @@ -4878,15 +4789,15 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -4894,12 +4805,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "lru" @@ -4994,7 +4902,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5009,7 +4917,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.37.19", + "rustix 0.37.20", ] [[package]] @@ -5032,9 +4940,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -5114,14 +5022,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -5157,7 +5064,7 @@ version = "0.7.0" dependencies = [ "ciphersuite", "dalek-ff-group", - "digest 0.10.6", + "digest 0.10.7", "dkg", "dleq", "flexible-transcript", @@ -5231,7 +5138,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "uuid 1.3.2", + "uuid 1.3.4", ] [[package]] @@ -5342,9 +5249,9 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "unsigned-varint", ] @@ -5613,7 +5520,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", - "libm 0.2.6", + "libm 0.2.7", ] [[package]] @@ -5644,15 +5551,9 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.29.0" @@ -5667,9 +5568,9 @@ dependencies = [ [[package]] name = "object" -version = "0.30.3" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ "memchr", ] @@ -5694,9 +5595,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -5731,9 +5632,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.52" +version = "0.10.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" dependencies = [ "bitflags", "cfg-if", @@ -5752,7 +5653,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -5763,9 +5664,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.87" +version = "0.9.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" dependencies = [ "cc", "libc", @@ -5773,12 +5674,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - [[package]] name = "p256" version = "0.11.1" @@ -5787,7 +5682,7 @@ checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -5796,8 +5691,8 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa 0.16.6", - "elliptic-curve 0.13.4", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", "primeorder", ] @@ -5809,7 +5704,7 @@ checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -6023,9 +5918,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd4572a52711e2ccff02b4973ec7e4a5b5c23387ebbfbd6cd42b34755714cefc" +checksum = "4890dcb9556136a4ec2b0c51fa4a08c8b733b829506af8fff2e853f3a065985b" dependencies = [ "blake2", "crc32fast", @@ -6043,9 +5938,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.5.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" +checksum = "2287753623c76f953acd29d15d8100bcab84d29db78fb6f352adb3c53e83b967" dependencies = [ "arrayvec", "bitvec 1.0.1", @@ -6058,9 +5953,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.4" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" +checksum = "2b6937b5e67bfba3351b87b040d48352a2fcb6ad72f81855412ce97b45c8f110" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6104,7 +5999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.8", ] [[package]] @@ -6123,15 +6018,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.45.0", + "windows-targets 0.48.0", ] [[package]] @@ -6178,10 +6073,10 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", "password-hash", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -6190,7 +6085,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", ] @@ -6220,15 +6115,15 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" +checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9" dependencies = [ "thiserror", "ucd-trie", @@ -6236,9 +6131,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" +checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b" dependencies = [ "pest", "pest_generator", @@ -6246,26 +6141,26 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" +checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "pest_meta" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" +checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -6341,22 +6236,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -6393,7 +6288,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.5", + "der 0.7.6", "spki 0.7.2", ] @@ -6450,14 +6345,14 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug", - "universal-hash 0.5.0", + "universal-hash 0.5.1", ] [[package]] @@ -6514,21 +6409,21 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.4" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ceca8aaf45b5c46ec7ed39fff75f57290368c1846d33d24a122ca81416ab058" +checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" dependencies = [ "proc-macro2", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "primeorder" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5" +checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" dependencies = [ - "elliptic-curve 0.13.4", + "elliptic-curve 0.13.5", ] [[package]] @@ -6587,14 +6482,14 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" dependencies = [ "unicode-ident", ] @@ -6806,9 +6701,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" dependencies = [ "proc-macro2", ] @@ -6884,7 +6779,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -6951,7 +6846,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.21", + "time 0.3.22", "x509-parser 0.13.2", "yasna", ] @@ -6964,7 +6859,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.21", + "time 0.3.22", "yasna", ] @@ -6992,7 +6887,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "redox_syscall 0.2.16", "thiserror", ] @@ -7014,7 +6909,7 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -7031,13 +6926,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ - "aho-corasick 1.0.1", + "aho-corasick 1.0.2", "memchr", - "regex-syntax 0.7.1", + "regex-syntax 0.7.2", ] [[package]] @@ -7057,9 +6952,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "region" @@ -7075,11 +6970,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.17" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", "bytes", "encoding_rs", "futures-core", @@ -7088,7 +6983,7 @@ dependencies = [ "http", "http-body", "hyper", - "hyper-rustls", + "hyper-rustls 0.24.0", "hyper-tls", "ipnet", "js-sys", @@ -7098,14 +6993,14 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite 0.2.9", - "rustls 0.20.8", + "rustls 0.21.2", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-socks", "tower-service", "url", @@ -7113,7 +7008,7 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots", - "winreg", + "winreg 0.10.1", ] [[package]] @@ -7168,7 +7063,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -7302,9 +7197,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.13" +version = "0.36.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" +checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" dependencies = [ "bitflags", "errno", @@ -7316,15 +7211,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.3.7", + "linux-raw-sys 0.3.8", "windows-sys 0.48.0", ] @@ -7354,10 +7249,22 @@ dependencies = [ ] [[package]] -name = "rustls-native-certs" -version = "0.6.2" +name = "rustls" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct 0.7.0", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -7371,7 +7278,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", ] [[package]] @@ -7399,9 +7316,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe_arch" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" +checksum = "62a7484307bd40f8f7ccbacccac730108f2cae119a3b11c74485b48aa9ea650f" dependencies = [ "bytemuck", ] @@ -7538,7 +7455,7 @@ source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d dependencies = [ "array-bytes", "chrono", - "clap 4.2.7", + "clap", "fdlimit", "futures", "libp2p", @@ -7819,7 +7736,7 @@ dependencies = [ "libc", "log", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -8042,7 +7959,7 @@ dependencies = [ "futures", "futures-timer", "hyper", - "hyper-rustls", + "hyper-rustls 0.23.2", "libp2p", "num_cpus", "once_cell", @@ -8256,7 +8173,7 @@ name = "sc-storage-monitor" version = "0.1.0" source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" dependencies = [ - "clap 4.2.7", + "clap", "fs4", "log", "sc-client-db", @@ -8343,7 +8260,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -8469,9 +8386,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdef77228a4c05dc94211441595746732131ad7f6530c6c18f045da7b7ab937" +checksum = "ad560913365790f17cbf12479491169f01b9d46d29cfc7422bf8c64bdc61b731" dependencies = [ "bitvec 1.0.1", "cfg-if", @@ -8483,9 +8400,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53012eae69e5aa5c14671942a5dd47de59d4cdcff8532a6dd0e081faf1119482" +checksum = "19df9bd9ace6cc2fe19387c96ce677e823e07d017ceed253e7bb3d1d1bd9c73b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8541,7 +8458,7 @@ dependencies = [ "hex", "multiexp", "rand_core 0.6.4", - "sha2 0.10.6", + "sha2 0.10.7", "std-shims", "zeroize", ] @@ -8584,7 +8501,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -8652,7 +8569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" dependencies = [ "base16ct 0.2.0", - "der 0.7.5", + "der 0.7.6", "generic-array", "pkcs8 0.10.2", "subtle", @@ -8691,9 +8608,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ "bitflags", "core-foundation", @@ -8704,9 +8621,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" dependencies = [ "core-foundation-sys", "libc", @@ -8792,7 +8709,7 @@ dependencies = [ name = "serai-node" version = "0.1.0" dependencies = [ - "clap 4.2.7", + "clap", "frame-benchmarking", "frame-benchmarking-cli", "futures", @@ -8883,9 +8800,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.162" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" dependencies = [ "serde_derive", ] @@ -8910,20 +8827,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.162" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a" dependencies = [ "itoa", "ryu", @@ -8932,9 +8849,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" dependencies = [ "serde", ] @@ -8972,7 +8889,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -8990,13 +8907,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -9005,7 +8922,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -9039,7 +8956,7 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -9049,7 +8966,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -9112,7 +9029,7 @@ dependencies = [ "rand_core 0.6.4", "ring", "rustc_version", - "sha2 0.10.6", + "sha2 0.10.7", "subtle", ] @@ -9126,6 +9043,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "soketto" version = "0.7.1" @@ -9145,9 +9072,9 @@ dependencies = [ [[package]] name = "solang-parser" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c5ead679f39243782be98c2689e592fc0fc9489ca2e47c9e027bd30f948df31" +checksum = "4a94494913728908efa7a25a2dd2e4f037e714897985c24273c40596638ed909" dependencies = [ "itertools", "lalrpop", @@ -9188,7 +9115,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -9378,8 +9305,8 @@ source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d dependencies = [ "blake2b_simd", "byteorder", - "digest 0.10.6", - "sha2 0.10.6", + "digest 0.10.7", + "sha2 0.10.7", "sha3", "sp-std 5.0.0", "twox-hash", @@ -9393,8 +9320,8 @@ checksum = "27449abdfbe41b473e625bce8113745e81d65777dd1d5a8462cf24137930dad8" dependencies = [ "blake2b_simd", "byteorder", - "digest 0.10.6", - "sha2 0.10.6", + "digest 0.10.7", + "sha2 0.10.7", "sha3", "sp-std 7.0.0", "twox-hash", @@ -9408,7 +9335,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing 5.0.0", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -9427,7 +9354,7 @@ source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -9605,7 +9532,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -9779,7 +9706,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -9834,7 +9761,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der 0.7.5", + "der 0.7.6", ] [[package]] @@ -9967,7 +9894,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.1", "schnorrkel", - "sha2 0.10.6", + "sha2 0.10.7", "zeroize", ] @@ -10022,7 +9949,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml 0.7.3", + "toml 0.7.4", "walkdir", "wasm-opt", ] @@ -10060,7 +9987,7 @@ dependencies = [ "either", "frame-metadata", "futures", - "getrandom 0.2.9", + "getrandom 0.2.10", "hex", "impl-serde", "jsonrpsee", @@ -10128,31 +10055,20 @@ dependencies = [ [[package]] name = "svm-rs" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01afefe60c02f4a2271fb15d1965c37856712cebb338330b06649d12afec42df" +checksum = "3a04fc4f5cd35c700153b233f5575ccb3237e0f941fa5049d9e98254d10bf2fe" dependencies = [ - "anyhow", - "cfg-if", - "clap 3.2.25", - "console 0.14.1", - "dialoguer", "fs2", "hex", "home", - "indicatif", - "itertools", "once_cell", - "rand 0.8.5", "reqwest", "semver 1.0.17", "serde", "serde_json", - "sha2 0.9.9", - "tempfile", + "sha2 0.10.7", "thiserror", - "tokio", - "tracing", "url", "zip", ] @@ -10170,9 +10086,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" dependencies = [ "proc-macro2", "quote", @@ -10193,9 +10109,9 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags", "core-foundation", @@ -10220,21 +10136,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.7" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" +checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ + "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.19", - "windows-sys 0.45.0", + "rustix 0.37.20", + "windows-sys 0.48.0", ] [[package]] @@ -10269,28 +10186,12 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "termtree" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - [[package]] name = "thiserror" version = "1.0.40" @@ -10308,7 +10209,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -10359,9 +10260,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" dependencies = [ "itoa", "serde", @@ -10396,7 +10297,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "rustc-hash", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -10464,9 +10365,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.28.1" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ "autocfg", "bytes", @@ -10476,7 +10377,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.48.0", ] @@ -10489,7 +10390,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -10513,6 +10414,16 @@ dependencies = [ "webpki 0.22.0", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.2", + "tokio", +] + [[package]] name = "tokio-socks" version = "0.5.1" @@ -10563,9 +10474,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" dependencies = [ "serde", "serde_spanned", @@ -10575,18 +10486,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.19.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" dependencies = [ "indexmap", "serde", @@ -10651,20 +10562,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -10787,7 +10698,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "thiserror", "tinyvec", "tokio", @@ -10853,7 +10764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.6", + "digest 0.10.7", "rand 0.8.5", "static_assertions", ] @@ -10890,9 +10801,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" [[package]] name = "unicode-normalization" @@ -10933,9 +10844,9 @@ dependencies = [ [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", @@ -10961,12 +10872,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", - "idna 0.3.0", + "idna 0.4.0", "percent-encoding", ] @@ -10982,17 +10893,17 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "serde", ] [[package]] name = "uuid" -version = "1.3.2" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" +checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -11076,11 +10987,10 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -11104,9 +11014,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.85" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -11114,24 +11024,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.85" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if", "js-sys", @@ -11141,9 +11051,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.85" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11151,22 +11061,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.85" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.85" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-instrument" @@ -11259,7 +11169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" dependencies = [ "downcast-rs", - "libm 0.2.6", + "libm 0.2.7", "memory_units", "num-rational", "num-traits", @@ -11325,9 +11235,9 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.13", + "rustix 0.36.14", "serde", - "sha2 0.10.6", + "sha2 0.10.7", "toml 0.5.11", "windows-sys 0.42.0", "zstd 0.11.2+zstd.1.5.2", @@ -11405,7 +11315,7 @@ checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", ] [[package]] @@ -11436,7 +11346,7 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.36.13", + "rustix 0.36.14", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", @@ -11457,9 +11367,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.62" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -11517,10 +11427,10 @@ dependencies = [ "sdp", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "stun", "thiserror", - "time 0.3.21", + "time 0.3.22", "tokio", "turn", "url", @@ -11557,7 +11467,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.10.1", + "aes-gcm 0.10.2", "async-trait", "bincode", "block-modes", @@ -11580,7 +11490,7 @@ dependencies = [ "sec1 0.3.0", "serde", "sha1", - "sha2 0.10.6", + "sha2 0.10.7", "signature 1.6.4", "subtle", "thiserror", @@ -11609,7 +11519,7 @@ dependencies = [ "tokio", "turn", "url", - "uuid 1.3.2", + "uuid 1.3.4", "waitgroup", "webrtc-mdns", "webrtc-util", @@ -11622,7 +11532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" dependencies = [ "log", - "socket2", + "socket2 0.4.9", "thiserror", "tokio", "webrtc-util", @@ -11716,9 +11626,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +checksum = "40018623e2dba2602a9790faba8d33f2ebdebf4b86561b83928db735f8784728" dependencies = [ "bytemuck", "safe_arch", @@ -11726,9 +11636,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -11962,9 +11872,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" dependencies = [ "memchr", ] @@ -11978,6 +11888,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -12044,7 +11964,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.21", + "time 0.3.22", ] [[package]] @@ -12062,7 +11982,7 @@ dependencies = [ "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.21", + "time 0.3.22", ] [[package]] @@ -12097,7 +12017,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.21", + "time 0.3.22", ] [[package]] @@ -12124,16 +12044,16 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "zip" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e92305c174683d78035cbf1b70e18db6329cc0f1b9cae0a52ca90bf5bfe7125" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.7.5", + "aes 0.8.3", "byteorder", "bzip2", "constant_time_eq 0.1.5", @@ -12143,7 +12063,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1", - "time 0.3.21", + "time 0.3.22", "zstd 0.11.2+zstd.1.5.2", ] From 385ed2e97ae1697f9ca43fce059670f834b9bd63 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 28 Jun 2023 12:26:53 -0400 Subject: [PATCH 06/20] Build no-std tests with RISC-V 32 IMAC Turns out wasm still has std, making it suboptimal to use here. --- .github/actions/build-dependencies/action.yml | 2 +- .github/workflows/no-std.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-dependencies/action.yml b/.github/actions/build-dependencies/action.yml index 2e932d17..0723aeb8 100644 --- a/.github/actions/build-dependencies/action.yml +++ b/.github/actions/build-dependencies/action.yml @@ -37,7 +37,7 @@ runs: with: toolchain: ${{ inputs.rust-toolchain }} components: ${{ inputs.rust-components }} - targets: wasm32-unknown-unknown + targets: wasm32-unknown-unknown, riscv32imac-unknown-none-elf - name: Cache Rust uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/no-std.yml b/.github/workflows/no-std.yml index e7a2639f..a90048f0 100644 --- a/.github/workflows/no-std.yml +++ b/.github/workflows/no-std.yml @@ -18,4 +18,4 @@ jobs: github-token: ${{ inputs.github-token }} - name: Verify no-std builds - run: cd tests/no-std && cargo build --target wasm32-unknown-unknown + run: cd tests/no-std && cargo build --target riscv32imac-unknown-none-elf From 21f0bb2721bd7ab133cb9907cd3b4cb16f65cd23 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 28 Jun 2023 12:28:11 -0400 Subject: [PATCH 07/20] Pin setup-protoc to v2.0.0 --- .github/actions/build-dependencies/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-dependencies/action.yml b/.github/actions/build-dependencies/action.yml index 0723aeb8..e3f66d3e 100644 --- a/.github/actions/build-dependencies/action.yml +++ b/.github/actions/build-dependencies/action.yml @@ -21,7 +21,7 @@ runs: using: "composite" steps: - name: Install Protobuf - uses: arduino/setup-protoc@master + uses: arduino/setup-protoc@v2.0.0 with: repo-token: ${{ inputs.github-token }} From 8c020abb86e553f9087bda13bc09479536d7da3e Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 28 Jun 2023 14:57:58 -0400 Subject: [PATCH 08/20] Update to substrate polkadot-v0.9.43 --- Cargo.lock | 1049 ++++++++++---------- substrate/node/src/service.rs | 11 +- substrate/validator-sets/pallet/Cargo.toml | 1 + substrate/validator-sets/pallet/src/lib.rs | 1 + 4 files changed, 531 insertions(+), 531 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30cc08df..50bae390 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,22 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli 0.26.2", -] - [[package]] name = "addr2line" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.3", + "gimli", ] [[package]] @@ -376,12 +367,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - [[package]] name = "async-channel" version = "1.8.0" @@ -430,7 +415,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -498,12 +483,12 @@ version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ - "addr2line 0.19.0", + "addr2line", "cc", "cfg-if", "libc", "miniz_oxide 0.6.2", - "object 0.30.4", + "object", "rustc-demangle", ] @@ -591,22 +576,23 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.64.0" +version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", "lazycell", "peeking_take_while", + "prettyplease 0.2.9", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 1.0.109", + "syn 2.0.22", ] [[package]] @@ -681,6 +667,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "bitvec" version = "0.17.4" @@ -1100,9 +1092,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.5" +version = "4.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2686c4115cb0810d9a984776e197823d08ec94f176549a89a9efded477c456dc" +checksum = "bba77a07e4489fb41bd90e8d4201c3eb246b3c2c9ea2ba0bddd6c1d1df87db7d" dependencies = [ "clap_builder", "clap_derive", @@ -1111,13 +1103,13 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.5" +version = "4.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e53afce1efce6ed1f633cf0e57612fe51db54a1ee4fd8f8503d078fe02d69ae" +checksum = "2c9b4a88bb4bc35d3d6f65a21b0f0bafe9c894fa00978de242c555ec28bea1c0" dependencies = [ "anstream", "anstyle", - "bitflags", + "bitflags 1.3.2", "clap_lex", "strsim", ] @@ -1131,7 +1123,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -1321,28 +1313,27 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc42ba2e232e5b20ff7dc299a812d53337dadce9a7e39a238e6a5cb82d2e57b" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" dependencies = [ - "arrayvec", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", "cranelift-isle", - "gimli 0.26.2", - "hashbrown 0.12.3", + "gimli", + "hashbrown 0.13.2", "log", "regalloc2", "smallvec", @@ -1351,33 +1342,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f2154365e2bff1b1b8537a7181591fdff50d8e27fa6e40d5c69c3bad0ca7c8" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e14e3f5775248930e0d5a84195abef8b829958e9794bf8d525104993612b4" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] name = "cranelift-entity" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42ea692c7b450ad18b8c9889661505d51c09ec4380cf1c2d278dbb2da22cae1" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8483c2db6f45fe9ace984e5adc5d058102227e4c62e5aa2054e16b0275fd3a6e" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" dependencies = [ "cranelift-codegen", "log", @@ -1387,15 +1378,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9793158837678902446c411741d87b43f57dadfb944f2440db4287cda8cbd59" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] name = "cranelift-native" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72668c7755f2b880665cb422c8ad2d56db58a88b9bebfef0b73edc2277c13c49" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" dependencies = [ "cranelift-codegen", "libc", @@ -1404,9 +1395,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852ce4b088b44ac4e29459573943009a70d1b192c8d77ef949b4e814f656fc1" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1629,7 +1620,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -1646,7 +1637,7 @@ checksum = "a26acccf6f445af85ea056362561a24ef56cdc15fcc685f03aec50b9c702cb6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -1945,7 +1936,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -2212,6 +2203,12 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" +[[package]] +name = "equivalent" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" + [[package]] name = "errno" version = "0.3.1" @@ -2386,8 +2383,8 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.18", - "toml 0.7.4", + "syn 2.0.22", + "toml 0.7.5", "walkdir", ] @@ -2404,7 +2401,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -2430,7 +2427,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.18", + "syn 2.0.22", "tempfile", "thiserror", "tiny-keccak", @@ -2792,7 +2789,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", ] @@ -2815,7 +2812,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-support-procedural", @@ -2840,7 +2837,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "Inflector", "array-bytes", @@ -2887,7 +2884,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-system", @@ -2915,9 +2912,9 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ - "bitflags", + "bitflags 1.3.2", "environmental", "frame-metadata", "frame-support-procedural", @@ -2934,6 +2931,7 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", + "sp-debug-derive", "sp-inherents", "sp-io", "sp-runtime", @@ -2948,7 +2946,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "Inflector", "cfg-expr", @@ -2958,36 +2956,37 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ + "cfg-if", "frame-support", "log", "parity-scale-codec", @@ -3004,7 +3003,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "sp-api", @@ -3138,7 +3137,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -3266,22 +3265,16 @@ dependencies = [ "polyval 0.6.1", ] -[[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - [[package]] name = "gimli" version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +dependencies = [ + "fallible-iterator", + "indexmap 1.9.3", + "stable_deref_trait", +] [[package]] name = "glob" @@ -3338,9 +3331,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ "bytes", "fnv", @@ -3348,7 +3341,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -3402,6 +3395,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "hashers" version = "1.0.1" @@ -3591,9 +3590,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -3821,6 +3820,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "inout" version = "0.1.3" @@ -3898,9 +3907,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-terminal" @@ -4138,9 +4147,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7a749456510c45f795e8b04a6a3e0976d0139213ecbf465843830ad55e2217" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", @@ -4195,9 +4204,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.146" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libloading" @@ -4223,22 +4232,24 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" -version = "0.50.1" +version = "0.51.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" +checksum = "f210d259724eae82005b5c48078619b7745edb7b76de370b03f8ba59ea103097" dependencies = [ "bytes", "futures", "futures-timer", "getrandom 0.2.10", "instant", - "libp2p-core 0.38.0", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", "libp2p-dns", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-mdns", "libp2p-metrics", - "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-quic", @@ -4249,44 +4260,32 @@ dependencies = [ "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.16.0", - "parking_lot 0.12.1", + "multiaddr", "pin-project", - "smallvec", ] [[package]] -name = "libp2p-core" -version = "0.38.0" +name = "libp2p-allow-block-list" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "log", - "multiaddr 0.16.0", - "multihash 0.16.3", - "multistream-select", - "once_cell", - "parking_lot 0.12.1", - "pin-project", - "prost", - "prost-build", - "rand 0.8.5", - "rw-stream-sink", - "sec1 0.3.0", - "sha2 0.10.7", - "smallvec", - "thiserror", - "unsigned-varint", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", "void", - "zeroize", ] [[package]] @@ -4302,7 +4301,7 @@ dependencies = [ "instant", "libp2p-identity", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "multistream-select", "once_cell", @@ -4319,12 +4318,12 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -4333,20 +4332,21 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" dependencies = [ "asynchronous-codec", + "either", "futures", "futures-timer", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "lru 0.8.1", - "prost", - "prost-build", - "prost-codec", + "lru 0.10.0", + "quick-protobuf", + "quick-protobuf-codec", "smallvec", "thiserror", "void", @@ -4361,7 +4361,7 @@ dependencies = [ "bs58", "ed25519-dalek", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", @@ -4372,9 +4372,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.42.1" +version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ "arrayvec", "asynchronous-codec", @@ -4384,11 +4384,11 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", "smallvec", @@ -4400,14 +4400,15 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ "data-encoding", "futures", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", "rand 0.8.5", @@ -4420,11 +4421,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4432,38 +4433,20 @@ dependencies = [ "prometheus-client", ] -[[package]] -name = "libp2p-mplex" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures", - "libp2p-core 0.38.0", - "log", - "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "unsigned-varint", -] - [[package]] name = "libp2p-noise" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "log", "once_cell", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.7", "snow", @@ -4475,14 +4458,15 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ + "either", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -4491,15 +4475,16 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha" +version = "0.7.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ "bytes", "futures", "futures-timer", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -4512,49 +4497,46 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" dependencies = [ "async-trait", - "bytes", "futures", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", "rand 0.8.5", "smallvec", - "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm-derive", "log", - "pin-project", "rand 0.8.5", "smallvec", - "thiserror", "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ "heck 0.4.1", "quote", @@ -4563,15 +4545,15 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ "futures", "futures-timer", "if-watch", "libc", - "libp2p-core 0.38.0", + "libp2p-core", "log", "socket2 0.4.9", "tokio", @@ -4585,7 +4567,7 @@ checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core 0.39.2", + "libp2p-core", "libp2p-identity", "rcgen 0.10.0", "ring", @@ -4598,13 +4580,13 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" dependencies = [ "futures", "js-sys", - "libp2p-core 0.38.0", + "libp2p-core", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -4612,9 +4594,9 @@ dependencies = [ [[package]] name = "libp2p-webrtc" -version = "0.4.0-alpha" +version = "0.4.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" +checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8" dependencies = [ "async-trait", "asynchronous-codec", @@ -4623,13 +4605,13 @@ dependencies = [ "futures-timer", "hex", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-noise", "log", - "multihash 0.16.3", - "prost", - "prost-build", - "prost-codec", + "multihash 0.17.0", + "quick-protobuf", + "quick-protobuf-codec", "rand 0.8.5", "rcgen 0.9.3", "serde", @@ -4643,14 +4625,14 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", @@ -4662,23 +4644,22 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "parking_lot 0.12.1", "thiserror", "yamux", ] [[package]] name = "librocksdb-sys" -version = "0.10.0+7.9.2" +version = "0.11.0+8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe4d5874f5ff2bc616e55e8c6086d478fcda13faf9495768a4aa1c22042d30b" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" dependencies = [ "bindgen", "bzip2-sys", @@ -4811,18 +4792,18 @@ checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "lru" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.13.2", ] [[package]] name = "lru" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" dependencies = [ "hashbrown 0.13.2", ] @@ -4938,6 +4919,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -5138,7 +5128,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "uuid 1.3.4", + "uuid 1.4.0", ] [[package]] @@ -5177,24 +5167,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "multiaddr" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "multibase", - "multihash 0.16.3", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - [[package]] name = "multiaddr" version = "0.17.1" @@ -5263,7 +5235,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "core2", + "digest 0.10.7", "multihash-derive", + "sha2 0.10.7", "unsigned-varint", ] @@ -5374,7 +5348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -5433,7 +5407,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -5551,19 +5525,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.18", -] - -[[package]] -name = "object" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "crc32fast", - "hashbrown 0.12.3", - "indexmap", - "memchr", + "syn 2.0.22", ] [[package]] @@ -5572,6 +5534,9 @@ version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", "memchr", ] @@ -5636,7 +5601,7 @@ version = "0.10.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "foreign-types", "libc", @@ -5653,7 +5618,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -5729,7 +5694,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-benchmarking", "frame-support", @@ -5744,7 +5709,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-system", @@ -5760,7 +5725,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-system", @@ -5774,7 +5739,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-benchmarking", "frame-support", @@ -5798,7 +5763,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-benchmarking", "frame-support", @@ -5813,7 +5778,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-benchmarking", "frame-support", @@ -5836,7 +5801,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-system", @@ -5857,7 +5822,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-benchmarking", "frame-support", @@ -5875,7 +5840,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-support", "frame-system", @@ -5891,7 +5856,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5907,7 +5872,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6029,6 +5994,12 @@ dependencies = [ "windows-targets 0.48.0", ] +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + [[package]] name = "password-hash" version = "0.4.2" @@ -6149,7 +6120,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -6170,7 +6141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -6185,35 +6156,35 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ "phf_macros", - "phf_shared 0.11.1", + "phf_shared 0.11.2", ] [[package]] name = "phf_generator" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ - "phf_shared 0.11.1", + "phf_shared 0.11.2", "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", - "phf_shared 0.11.1", + "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.22", ] [[package]] @@ -6227,9 +6198,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" dependencies = [ "siphasher", ] @@ -6251,7 +6222,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -6311,7 +6282,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", @@ -6414,7 +6385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" dependencies = [ "proc-macro2", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -6482,14 +6453,14 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "proc-macro2" -version = "1.0.60" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" +checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" dependencies = [ "unicode-ident", ] @@ -6558,21 +6529,21 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", "parking_lot 0.12.1", - "prometheus-client-derive-text-encode", + "prometheus-client-derive-encode", ] [[package]] -name = "prometheus-client-derive-text-encode" -version = "0.3.0" +name = "prometheus-client-derive-encode" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" +checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" dependencies = [ "proc-macro2", "quote", @@ -6611,19 +6582,6 @@ dependencies = [ "which", ] -[[package]] -name = "prost-codec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" -dependencies = [ - "asynchronous-codec", - "bytes", - "prost", - "thiserror", - "unsigned-varint", -] - [[package]] name = "prost-derive" version = "0.11.9" @@ -6670,6 +6628,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -6869,7 +6840,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -6878,7 +6849,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -6909,14 +6880,14 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "regalloc2" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ "fxhash", "log", @@ -6956,18 +6927,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" -[[package]] -name = "region" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] - [[package]] name = "reqwest" version = "0.11.18" @@ -7090,9 +7049,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015439787fce1e75d55f279078d33ff14b4af5d93d995e8838ee4631301c8a99" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" dependencies = [ "libc", "librocksdb-sys", @@ -7201,7 +7160,7 @@ version = "0.36.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -7215,7 +7174,7 @@ version = "0.37.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -7274,9 +7233,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ "base64 0.21.2", ] @@ -7344,7 +7303,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "log", "sp-core", @@ -7355,7 +7314,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", @@ -7363,6 +7322,7 @@ dependencies = [ "ip_network", "libp2p", "log", + "multihash 0.17.0", "parity-scale-codec", "prost", "prost-build", @@ -7383,7 +7343,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", "futures-timer", @@ -7406,7 +7366,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7421,7 +7381,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -7440,25 +7400,25 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.22", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "chrono", "clap", "fdlimit", "futures", - "libp2p", + "libp2p-identity", "log", "names", "parity-scale-codec", @@ -7491,7 +7451,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "fnv", "futures", @@ -7510,6 +7470,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-statement-store", "sp-storage", "substrate-prometheus-endpoint", ] @@ -7517,7 +7478,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "hash-db", "kvdb", @@ -7543,12 +7504,12 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p", + "libp2p-identity", "log", "mockall", "parking_lot 0.12.1", @@ -7568,7 +7529,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "fork-tree", @@ -7603,7 +7564,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7616,7 +7577,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "ahash 0.8.3", "array-bytes", @@ -7656,7 +7617,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", @@ -7679,13 +7640,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "lru 0.9.0", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", - "sc-executor-wasmi", "sc-executor-wasmtime", "sp-api", "sp-core", @@ -7697,39 +7657,24 @@ dependencies = [ "sp-version", "sp-wasm-interface", "tracing", - "wasmi", ] [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", "thiserror", "wasm-instrument", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" -dependencies = [ - "log", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmi", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "anyhow", "cfg-if", @@ -7747,7 +7692,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "anstyle", "futures", @@ -7763,7 +7708,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -7777,7 +7722,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "async-channel", @@ -7818,11 +7763,12 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ + "async-channel", "cid", "futures", - "libp2p", + "libp2p-identity", "log", "prost", "prost-build", @@ -7838,25 +7784,30 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ + "array-bytes", "async-trait", - "bitflags", + "bitflags 1.3.2", + "bytes", "futures", - "libp2p", + "futures-timer", + "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", "sc-peerset", + "smallvec", "sp-consensus", "sp-consensus-grandpa", "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "ahash 0.8.3", "futures", @@ -7875,11 +7826,12 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", + "async-channel", "futures", - "libp2p", + "libp2p-identity", "log", "parity-scale-codec", "prost", @@ -7897,9 +7849,10 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", + "async-channel", "async-trait", "fork-tree", "futures", @@ -7931,7 +7884,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "futures", @@ -7951,7 +7904,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "bytes", @@ -7982,20 +7935,23 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", - "libp2p", + "libp2p-identity", "log", + "parking_lot 0.12.1", + "partial_sort", "sc-utils", "serde_json", + "sp-arithmetic", "wasm-timer", ] [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8004,7 +7960,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", "jsonrpsee", @@ -8027,6 +7983,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", + "sp-statement-store", "sp-version", "tokio", ] @@ -8034,7 +7991,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8053,7 +8010,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "http", "jsonrpsee", @@ -8068,7 +8025,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", "futures", @@ -8094,7 +8051,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "directories", @@ -8160,7 +8117,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "log", "parity-scale-codec", @@ -8171,10 +8128,11 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "clap", "fs4", + "futures", "log", "sc-client-db", "sc-utils", @@ -8186,7 +8144,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", "libc", @@ -8205,7 +8163,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "chrono", "futures", @@ -8224,7 +8182,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "anstyle", "atty", @@ -8255,18 +8213,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", @@ -8293,7 +8251,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", @@ -8307,7 +8265,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-channel", "futures", @@ -8612,7 +8570,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -8833,14 +8791,14 @@ checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "serde_json" -version = "1.0.97" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a" +checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" dependencies = [ "itoa", "ryu", @@ -8849,9 +8807,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] @@ -9087,7 +9045,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "hash-db", "log", @@ -9107,7 +9065,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "Inflector", "blake2", @@ -9115,13 +9073,13 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9134,7 +9092,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "integer-sqrt", "num-traits", @@ -9148,7 +9106,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9161,7 +9119,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "sp-api", @@ -9173,7 +9131,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", "log", @@ -9191,7 +9149,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures", @@ -9206,7 +9164,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "parity-scale-codec", @@ -9227,7 +9185,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "finality-grandpa", "log", @@ -9245,7 +9203,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9257,10 +9215,10 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "array-bytes", - "bitflags", + "bitflags 1.3.2", "blake2", "bounded-collections", "bs58", @@ -9301,7 +9259,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "blake2b_simd", "byteorder", @@ -9330,18 +9288,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "proc-macro2", "quote", "sp-core-hashing 5.0.0", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9350,17 +9308,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "environmental", "parity-scale-codec", @@ -9371,7 +9329,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9386,7 +9344,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "bytes", "ed25519", @@ -9412,7 +9370,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "lazy_static", "sp-core", @@ -9423,7 +9381,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "futures", "parity-scale-codec", @@ -9436,7 +9394,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -9445,7 +9403,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -9456,7 +9414,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "sp-api", "sp-core", @@ -9466,7 +9424,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "backtrace", "lazy_static", @@ -9476,7 +9434,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "rustc-hash", "serde", @@ -9486,7 +9444,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "either", "hash256-std-hasher", @@ -9508,7 +9466,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -9526,19 +9484,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9552,7 +9510,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9565,7 +9523,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "hash-db", "log", @@ -9582,10 +9540,28 @@ dependencies = [ "tracing", ] +[[package]] +name = "sp-statement-store" +version = "4.0.0-dev" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-runtime-interface", + "sp-std 5.0.0", + "thiserror", +] + [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" [[package]] name = "sp-std" @@ -9596,7 +9572,7 @@ checksum = "1de8eef39962b5b97478719c493bed2926cf70cb621005bbf68ebe58252ff986" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9609,7 +9585,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "futures-timer", @@ -9624,7 +9600,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "sp-std 5.0.0", @@ -9636,7 +9612,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "sp-api", "sp-runtime", @@ -9645,7 +9621,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "async-trait", "log", @@ -9661,7 +9637,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "ahash 0.8.3", "hash-db", @@ -9684,7 +9660,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9701,18 +9677,18 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -9726,7 +9702,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "parity-scale-codec", "scale-info", @@ -9797,7 +9773,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -9901,7 +9877,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "platforms", ] @@ -9909,7 +9885,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -9928,7 +9904,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "hyper", "log", @@ -9940,7 +9916,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#476d0aee2c9dd265b88c7fd686d5b286730aecaa" +source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" dependencies = [ "anstyle", "build-helper", @@ -9949,7 +9925,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml 0.7.4", + "toml 0.7.5", "walkdir", "wasm-opt", ] @@ -10086,9 +10062,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.18" +version = "2.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" dependencies = [ "proc-macro2", "quote", @@ -10113,7 +10089,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -10209,7 +10185,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -10365,11 +10341,12 @@ dependencies = [ [[package]] name = "tokio" -version = "1.28.2" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f" dependencies = [ "autocfg", + "backtrace", "bytes", "libc", "mio", @@ -10390,7 +10367,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -10474,9 +10451,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" +checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240" dependencies = [ "serde", "serde_spanned", @@ -10486,20 +10463,20 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.10" +version = "0.19.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" +checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7" dependencies = [ - "indexmap", + "indexmap 2.0.0", "serde", "serde_spanned", "toml_datetime", @@ -10519,11 +10496,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +checksum = "a8bd22a874a2d0b70452d5597b12c537331d49060824a95f49f108994f94aa4c" dependencies = [ - "bitflags", + "bitflags 2.3.3", "bytes", "futures-core", "futures-util", @@ -10568,7 +10545,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] @@ -10899,9 +10876,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.4" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81" +checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be" dependencies = [ "getrandom 0.2.10", ] @@ -10918,6 +10895,7 @@ dependencies = [ "serai-primitives", "sp-application-crypto", "sp-core", + "sp-std 5.0.0", "validator-sets-primitives", ] @@ -11033,7 +11011,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", "wasm-bindgen-shared", ] @@ -11067,7 +11045,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11173,32 +11151,31 @@ dependencies = [ "memory_units", "num-rational", "num-traits", - "region", ] [[package]] name = "wasmparser" -version = "0.100.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ - "indexmap", + "indexmap 1.9.3", "url", ] [[package]] name = "wasmtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a222f5fa1e14b2cefc286f1b68494d7a965f4bf57ec04c59bb62673d639af6" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", "bincode", "cfg-if", - "indexmap", + "indexmap 1.9.3", "libc", "log", - "object 0.29.0", + "object", "once_cell", "paste", "psm", @@ -11211,26 +11188,26 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-asm-macros" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4407a7246e7d2f3d8fb1cf0c72fda8dbafdb6dd34d555ae8bea0e5ae031089cc" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ceb3adf61d654be0be67fffdce42447b0880481348785be5fe40b5dd7663a4c" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.13.1", + "base64 0.21.2", "bincode", "directories-next", "file-per-thread-logger", @@ -11239,15 +11216,15 @@ dependencies = [ "serde", "sha2 0.10.7", "toml 0.5.11", - "windows-sys 0.42.0", + "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "wasmtime-cranelift" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c366bb8647e01fd08cb5589976284b00abfded5529b33d7e7f3f086c68304a4" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", "cranelift-codegen", @@ -11255,27 +11232,43 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object", "target-lexicon", "thiserror", "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli", + "object", + "target-lexicon", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b8b50962eae38ee319f7b24900b7cf371f03eebdc17400c1dc8575fc10c9a7" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" dependencies = [ "anyhow", "cranelift-entity", - "gimli 0.26.2", - "indexmap", + "gimli", + "indexmap 1.9.3", "log", - "object 0.29.0", + "object", "serde", "target-lexicon", "thiserror", @@ -11285,18 +11278,18 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffaed4f9a234ba5225d8e64eac7b4a5d13b994aeb37353cde2cbeb3febda9eaa" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ - "addr2line 0.17.0", + "addr2line", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object", "rustc-demangle", "serde", "target-lexicon", @@ -11304,60 +11297,60 @@ dependencies = [ "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit-debug" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ - "object 0.29.0", + "object", "once_cell", "rustix 0.36.14", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a28ae1e648461bfdbb79db3efdaee1bca5b940872e4175390f465593a2e54c" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ "cfg-if", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-runtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e704b126e4252788ccfc3526d4d4511d4b23c521bf123e447ac726c14545217b" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ "anyhow", "cc", "cfg-if", - "indexmap", + "indexmap 1.9.3", "libc", "log", "mach", "memfd", - "memoffset 0.6.5", + "memoffset 0.8.0", "paste", "rand 0.8.5", "rustix 0.36.14", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-types" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e5572c5727c1ee7e8f28717aaa8400e4d22dcbd714ea5457d85b5005206568" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", @@ -11519,7 +11512,7 @@ dependencies = [ "tokio", "turn", "url", - "uuid 1.3.4", + "uuid 1.4.0", "waitgroup", "webrtc-mdns", "webrtc-util", @@ -11599,7 +11592,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -12044,7 +12037,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.22", ] [[package]] diff --git a/substrate/node/src/service.rs b/substrate/node/src/service.rs index c6e1b7e0..720a0f71 100644 --- a/substrate/node/src/service.rs +++ b/substrate/node/src/service.rs @@ -144,7 +144,7 @@ pub fn new_partial(config: &Configuration) -> Result Result { +pub async fn new_full(config: Configuration) -> Result { let sc_service::PartialComponents { client, backend, @@ -156,11 +156,15 @@ pub async fn new_full(mut config: Configuration) -> Result Result Date: Wed, 28 Jun 2023 20:02:57 +0300 Subject: [PATCH 09/20] fix tributary sync test --- coordinator/src/tests/tributary/sync.rs | 41 +++++++++++++++---------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/coordinator/src/tests/tributary/sync.rs b/coordinator/src/tests/tributary/sync.rs index 0c9d408e..320c296e 100644 --- a/coordinator/src/tests/tributary/sync.rs +++ b/coordinator/src/tests/tributary/sync.rs @@ -35,10 +35,11 @@ async fn sync_test() { // Have the rest form a P2P net let mut tributary_arcs = vec![]; + let mut p2p_threads = vec![]; for (i, (p2p, tributary)) in tributaries.drain(..).enumerate() { let tributary = Arc::new(RwLock::new(tributary)); tributary_arcs.push(tributary.clone()); - tokio::spawn(handle_p2p( + let thread = tokio::spawn(handle_p2p( Ristretto::generator() * *keys[i], p2p, Arc::new(RwLock::new(HashMap::from([( @@ -46,6 +47,7 @@ async fn sync_test() { ActiveTributary { spec: spec.clone(), tributary }, )]))), )); + p2p_threads.push(thread); } let tributaries = tributary_arcs; @@ -112,21 +114,28 @@ async fn sync_test() { assert!(syncer_tributary.read().await.tip().await != syncer_tip); // Verify it's now participating in consensus - // Because only `t` validators are used in a commit, check several commits - // This should be biased in favor of the syncer since we're using the syncer's view of the commit - for _ in 0 .. 10 { - let syncer_tributary = syncer_tributary.read().await; - if syncer_tributary - .reader() - .parsed_commit(&syncer_tributary.tip().await) - .unwrap() - .validators - .iter() - .any(|signer| signer == &syncer_key.to_bytes()) - { - return; - } - sleep(Duration::from_secs(block_time)).await; + // Because only `t` validators are used in a commit, take n - t nodes offline + // leaving only `t` nodes. Which should force it to participate in the consensus + // of next blocks. + let n = (spec.n() - spec.t()) as usize; + for t in p2p_threads.iter().take(n) { + t.abort(); } + + // wait for a block + sleep(Duration::from_secs(block_time)).await; + + let syncer_tributary = syncer_tributary.read().await; + if syncer_tributary + .reader() + .parsed_commit(&syncer_tributary.tip().await) + .unwrap() + .validators + .iter() + .any(|signer| signer == &syncer_key.to_bytes()) + { + return; + } + panic!("synced tributary didn't start participating in consensus"); } From f6a497f3ac74cf260a2b6e6b75e60519e55c0763 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 28 Jun 2023 15:04:48 -0400 Subject: [PATCH 10/20] Slight terminology correction in sync test Also correct a mistake from merging the most recent polkadot version. --- Cargo.lock | 236 ++++++++++++------------ coordinator/src/tests/tributary/sync.rs | 6 +- substrate/client/src/serai/tokens.rs | 5 +- 3 files changed, 124 insertions(+), 123 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50bae390..8e8f015e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2789,7 +2789,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", ] @@ -2812,7 +2812,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-support-procedural", @@ -2837,7 +2837,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "Inflector", "array-bytes", @@ -2884,7 +2884,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-system", @@ -2912,7 +2912,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "bitflags 1.3.2", "environmental", @@ -2946,7 +2946,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "Inflector", "cfg-expr", @@ -2962,7 +2962,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2974,7 +2974,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "proc-macro2", "quote", @@ -2984,7 +2984,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "cfg-if", "frame-support", @@ -3003,7 +3003,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "sp-api", @@ -3218,7 +3218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" dependencies = [ "libc", - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -5694,7 +5694,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -5709,7 +5709,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-system", @@ -5725,7 +5725,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-system", @@ -5739,7 +5739,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -5763,7 +5763,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -5778,7 +5778,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -5801,7 +5801,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-system", @@ -5822,7 +5822,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -5840,7 +5840,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-support", "frame-system", @@ -5856,7 +5856,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5872,7 +5872,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5991,7 +5991,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -7303,7 +7303,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "log", "sp-core", @@ -7314,7 +7314,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -7343,7 +7343,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "futures-timer", @@ -7366,7 +7366,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7381,7 +7381,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -7400,7 +7400,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7411,7 +7411,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "chrono", @@ -7451,7 +7451,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "fnv", "futures", @@ -7478,7 +7478,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "hash-db", "kvdb", @@ -7504,7 +7504,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -7529,7 +7529,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "fork-tree", @@ -7564,7 +7564,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7577,7 +7577,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "ahash 0.8.3", "array-bytes", @@ -7617,7 +7617,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -7640,7 +7640,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "lru 0.9.0", "parity-scale-codec", @@ -7662,7 +7662,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -7674,7 +7674,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "anyhow", "cfg-if", @@ -7692,7 +7692,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "anstyle", "futures", @@ -7708,7 +7708,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -7722,7 +7722,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "async-channel", @@ -7763,7 +7763,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-channel", "cid", @@ -7784,7 +7784,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "async-trait", @@ -7807,7 +7807,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "ahash 0.8.3", "futures", @@ -7826,7 +7826,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "async-channel", @@ -7849,7 +7849,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "async-channel", @@ -7884,7 +7884,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "futures", @@ -7904,7 +7904,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "bytes", @@ -7935,7 +7935,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "libp2p-identity", @@ -7951,7 +7951,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7960,7 +7960,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "jsonrpsee", @@ -7991,7 +7991,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8010,7 +8010,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "http", "jsonrpsee", @@ -8025,7 +8025,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "futures", @@ -8051,7 +8051,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "directories", @@ -8117,7 +8117,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "log", "parity-scale-codec", @@ -8128,7 +8128,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "clap", "fs4", @@ -8144,7 +8144,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "libc", @@ -8163,7 +8163,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "chrono", "futures", @@ -8182,7 +8182,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "anstyle", "atty", @@ -8213,7 +8213,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8224,7 +8224,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -8251,7 +8251,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -8265,7 +8265,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-channel", "futures", @@ -9045,7 +9045,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "hash-db", "log", @@ -9065,7 +9065,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "Inflector", "blake2", @@ -9079,7 +9079,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9092,7 +9092,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "integer-sqrt", "num-traits", @@ -9106,7 +9106,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9119,7 +9119,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "sp-api", @@ -9131,7 +9131,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "log", @@ -9149,7 +9149,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures", @@ -9164,7 +9164,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "parity-scale-codec", @@ -9185,7 +9185,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "finality-grandpa", "log", @@ -9203,7 +9203,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9215,7 +9215,7 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -9259,7 +9259,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "blake2b_simd", "byteorder", @@ -9288,7 +9288,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "proc-macro2", "quote", @@ -9299,7 +9299,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9308,7 +9308,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "proc-macro2", "quote", @@ -9318,7 +9318,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "environmental", "parity-scale-codec", @@ -9329,7 +9329,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9344,7 +9344,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "bytes", "ed25519", @@ -9370,7 +9370,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "lazy_static", "sp-core", @@ -9381,7 +9381,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "futures", "parity-scale-codec", @@ -9394,7 +9394,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -9403,7 +9403,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -9414,7 +9414,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "sp-api", "sp-core", @@ -9424,7 +9424,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "backtrace", "lazy_static", @@ -9434,7 +9434,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "rustc-hash", "serde", @@ -9444,7 +9444,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "either", "hash256-std-hasher", @@ -9466,7 +9466,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -9484,7 +9484,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "Inflector", "proc-macro-crate", @@ -9496,7 +9496,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9510,7 +9510,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9523,7 +9523,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "hash-db", "log", @@ -9543,7 +9543,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "log", "parity-scale-codec", @@ -9561,7 +9561,7 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" [[package]] name = "sp-std" @@ -9572,7 +9572,7 @@ checksum = "1de8eef39962b5b97478719c493bed2926cf70cb621005bbf68ebe58252ff986" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9585,7 +9585,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "futures-timer", @@ -9600,7 +9600,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "sp-std 5.0.0", @@ -9612,7 +9612,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "sp-api", "sp-runtime", @@ -9621,7 +9621,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "async-trait", "log", @@ -9637,7 +9637,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "ahash 0.8.3", "hash-db", @@ -9660,7 +9660,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9677,7 +9677,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9688,7 +9688,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -9702,7 +9702,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -9877,7 +9877,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "platforms", ] @@ -9885,7 +9885,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -9904,7 +9904,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "hyper", "log", @@ -9916,7 +9916,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#e4f4978ba66f1f1d07af8a874dbc0501f5f17037" +source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" dependencies = [ "anstyle", "build-helper", @@ -11683,7 +11683,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -11716,7 +11716,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -11736,9 +11736,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm 0.48.0", "windows_aarch64_msvc 0.48.0", diff --git a/coordinator/src/tests/tributary/sync.rs b/coordinator/src/tests/tributary/sync.rs index 320c296e..89be690d 100644 --- a/coordinator/src/tests/tributary/sync.rs +++ b/coordinator/src/tests/tributary/sync.rs @@ -117,9 +117,9 @@ async fn sync_test() { // Because only `t` validators are used in a commit, take n - t nodes offline // leaving only `t` nodes. Which should force it to participate in the consensus // of next blocks. - let n = (spec.n() - spec.t()) as usize; - for t in p2p_threads.iter().take(n) { - t.abort(); + let spares = usize::from(spec.n() - spec.t()); + for thread in p2p_threads.iter().take(spares) { + thread.abort(); } // wait for a block diff --git a/substrate/client/src/serai/tokens.rs b/substrate/client/src/serai/tokens.rs index d57ce71c..0f84ed01 100644 --- a/substrate/client/src/serai/tokens.rs +++ b/substrate/client/src/serai/tokens.rs @@ -1,3 +1,4 @@ +use sp_core::sr25519::Public; use serai_runtime::{ primitives::{SeraiAddress, SubstrateAmount, Amount, Coin, Balance}, assets::{AssetDetails, AssetAccount}, @@ -42,14 +43,14 @@ impl Serai { ) -> Result { Ok(Amount( self - .storage::>( + .storage::>( "Assets", "Account", Some(vec![scale_value(coin), scale_value(address)]), block, ) .await? - .map(|account| account.balance) + .map(|account| account.balance()) .unwrap_or(0), )) } From 8ced63eaac7b6c6166710623db336e7d2e39430d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 1 Jun 2023 02:03:47 +0000 Subject: [PATCH 11/20] Update nightly --- .github/nightly-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/nightly-version b/.github/nightly-version index 35020457..df18b6ae 100644 --- a/.github/nightly-version +++ b/.github/nightly-version @@ -1 +1 @@ -nightly-2023-05-01 +nightly-2023-06-01 From d25c668ee4192862d9dfdccf26cac8288fe6e4a6 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 28 Jun 2023 21:16:33 -0400 Subject: [PATCH 12/20] Replace lazy_static with OnceLock inside monero-serai lazy_static, if no_std environments were used, effectively required always using spin locks. This resolves the ergonomics of that while adopting Rust std code. no_std does still use a spin based solution. Theoretically, we could use atomics, yet writing our own Mutex wasn't a priority. --- Cargo.lock | 29 ++++++++-- coins/monero/Cargo.toml | 3 +- coins/monero/build.rs | 7 ++- coins/monero/generators/Cargo.toml | 3 - coins/monero/generators/src/lib.rs | 17 ++++-- coins/monero/src/lib.rs | 21 +++---- coins/monero/src/ringct/bulletproofs/core.rs | 29 +++++----- .../src/ringct/bulletproofs/original.rs | 39 +++++++------ coins/monero/src/ringct/bulletproofs/plus.rs | 38 +++++++------ coins/monero/src/ringct/clsag/mod.rs | 11 +--- coins/monero/src/wallet/decoys.rs | 23 ++++---- coins/monero/src/wallet/seed/classic.rs | 48 ++++++++-------- coins/monero/tests/runner.rs | 10 +--- common/std-shims/Cargo.toml | 3 +- common/std-shims/src/lib.rs | 1 + common/std-shims/src/sync.rs | 57 +++++++++++++++++++ tests/no-std/Cargo.toml | 2 +- 17 files changed, 212 insertions(+), 129 deletions(-) create mode 100644 common/std-shims/src/sync.rs diff --git a/Cargo.lock b/Cargo.lock index 8e8f015e..9b35a7ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -179,6 +179,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56fc6cf8dc8c4158eed8649f9b8b0ea1518eb62b544fe9490d66fa0b349eafe9" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -3400,6 +3406,10 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash 0.8.3", + "allocator-api2", +] [[package]] name = "hashers" @@ -4193,7 +4203,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" dependencies = [ - "spin", + "spin 0.5.2", ] [[package]] @@ -5105,7 +5115,6 @@ dependencies = [ "curve25519-dalek 3.2.0", "dalek-ff-group", "group 0.13.0", - "lazy_static", "sha3", "std-shims", "subtle", @@ -5147,7 +5156,6 @@ dependencies = [ "group 0.13.0", "hex", "hex-literal 0.4.1", - "lazy_static", "modular-frost", "monero-epee-bin-serde", "monero-generators", @@ -5161,6 +5169,7 @@ dependencies = [ "serde", "serde_json", "sha3", + "std-shims", "subtle", "thiserror", "tokio", @@ -7010,7 +7019,7 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", + "spin 0.5.2", "untrusted", "web-sys", "winapi", @@ -9720,6 +9729,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.6.0" @@ -9799,7 +9817,8 @@ dependencies = [ name = "std-shims" version = "0.1.0" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.0", + "spin 0.9.8", ] [[package]] diff --git a/coins/monero/Cargo.toml b/coins/monero/Cargo.toml index f3e80546..6eb567bb 100644 --- a/coins/monero/Cargo.toml +++ b/coins/monero/Cargo.toml @@ -12,9 +12,10 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] +std-shims = { path = "../../common/std-shims", version = "0.1", default-features = false } + futures = "0.3" -lazy_static = "1" async-trait = "0.1" thiserror = "1" diff --git a/coins/monero/build.rs b/coins/monero/build.rs index 2eafa201..34c34b6b 100644 --- a/coins/monero/build.rs +++ b/coins/monero/build.rs @@ -41,15 +41,16 @@ fn generators(prefix: &'static str, path: &str) { .write_all( format!( " - lazy_static! {{ - pub static ref GENERATORS: Generators = Generators {{ + pub static GENERATORS_CELL: OnceLock = OnceLock::new(); + pub fn GENERATORS() -> &'static Generators {{ + GENERATORS_CELL.get_or_init(|| Generators {{ G: [ {G_str} ], H: [ {H_str} ], - }}; + }}) }} ", ) diff --git a/coins/monero/generators/Cargo.toml b/coins/monero/generators/Cargo.toml index 9f646d73..5e221370 100644 --- a/coins/monero/generators/Cargo.toml +++ b/coins/monero/generators/Cargo.toml @@ -14,8 +14,6 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] std-shims = { path = "../../../common/std-shims", version = "0.1", default-features = false } -lazy_static = "1" - subtle = { version = "^2.4", default-features = false } sha3 = { version = "0.10", default-features = false } @@ -26,6 +24,5 @@ group = { version = "0.13", default-features = false } dalek-ff-group = { path = "../../../crypto/dalek-ff-group", version = "0.3" } [features] -alloc = ["lazy_static/spin_no_std"] std = ["std-shims/std"] default = ["std"] diff --git a/coins/monero/generators/src/lib.rs b/coins/monero/generators/src/lib.rs index d3783e14..d25d927f 100644 --- a/coins/monero/generators/src/lib.rs +++ b/coins/monero/generators/src/lib.rs @@ -1,10 +1,12 @@ //! Generators used by Monero in both its Pedersen commitments and Bulletproofs(+). +//! //! An implementation of Monero's `ge_fromfe_frombytes_vartime`, simply called //! `hash_to_point` here, is included, as needed to generate generators. #![cfg_attr(not(feature = "std"), no_std)] -use lazy_static::lazy_static; +use core::cell::OnceCell; +use std_shims::sync::Mutex; use sha3::{Digest, Keccak256}; @@ -23,13 +25,16 @@ fn hash(data: &[u8]) -> [u8; 32] { Keccak256::digest(data).into() } -lazy_static! { - /// Monero alternate generator `H`, used for amounts in Pedersen commitments. - pub static ref H: DalekPoint = +/// Monero alternate generator `H`, used for amounts in Pedersen commitments. +static H_CELL: Mutex> = Mutex::new(OnceCell::new()); +#[allow(non_snake_case)] +pub fn H() -> DalekPoint { + *H_CELL.lock().get_or_init(|| { CompressedEdwardsY(hash(&EdwardsPoint::generator().to_bytes())) .decompress() .unwrap() - .mul_by_cofactor(); + .mul_by_cofactor() + }) } const MAX_M: usize = 16; @@ -50,7 +55,7 @@ pub fn bulletproofs_generators(dst: &'static [u8]) -> Generators { for i in 0 .. MAX_MN { let i = 2 * i; - let mut even = H.compress().to_bytes().to_vec(); + let mut even = H().compress().to_bytes().to_vec(); even.extend(dst); let mut odd = even.clone(); diff --git a/coins/monero/src/lib.rs b/coins/monero/src/lib.rs index 5822ef67..05ac830e 100644 --- a/coins/monero/src/lib.rs +++ b/coins/monero/src/lib.rs @@ -1,20 +1,15 @@ #![cfg_attr(docsrs, feature(doc_auto_cfg))] #![doc = include_str!("../README.md")] -use std::io; +use std_shims::{sync::OnceLock, io}; -use lazy_static::lazy_static; use rand_core::{RngCore, CryptoRng}; use zeroize::{Zeroize, ZeroizeOnDrop}; use sha3::{Digest, Keccak256}; -use curve25519_dalek::{ - constants::ED25519_BASEPOINT_TABLE, - scalar::Scalar, - edwards::{EdwardsPoint, EdwardsBasepointTable}, -}; +use curve25519_dalek::{constants::ED25519_BASEPOINT_TABLE, scalar::Scalar, edwards::EdwardsPoint}; pub use monero_generators::H; @@ -37,6 +32,12 @@ pub mod wallet; #[cfg(test)] mod tests; +static INV_EIGHT_CELL: OnceLock = OnceLock::new(); +#[allow(non_snake_case)] +pub(crate) fn INV_EIGHT() -> Scalar { + *INV_EIGHT_CELL.get_or_init(|| Scalar::from(8u8).invert()) +} + /// Monero protocol version. v15 is omitted as v15 was simply v14 and v16 being active at the same /// time, with regards to the transactions supported. Accordingly, v16 should be used during v15. #[derive(Clone, Copy, PartialEq, Eq, Debug, Zeroize)] @@ -107,10 +108,6 @@ impl Protocol { } } -lazy_static! { - static ref H_TABLE: EdwardsBasepointTable = EdwardsBasepointTable::create(&H); -} - /// Transparent structure representing a Pedersen commitment's contents. #[allow(non_snake_case)] #[derive(Clone, PartialEq, Eq, Debug, Zeroize, ZeroizeOnDrop)] @@ -131,7 +128,7 @@ impl Commitment { /// Calculate a Pedersen commitment, as a point, from the transparent structure. pub fn calculate(&self) -> EdwardsPoint { - (&self.mask * &ED25519_BASEPOINT_TABLE) + (&Scalar::from(self.amount) * &*H_TABLE) + (&self.mask * &ED25519_BASEPOINT_TABLE) + (Scalar::from(self.amount) * H()) } } diff --git a/coins/monero/src/ringct/bulletproofs/core.rs b/coins/monero/src/ringct/bulletproofs/core.rs index 46641ade..9d2f00f9 100644 --- a/coins/monero/src/ringct/bulletproofs/core.rs +++ b/coins/monero/src/ringct/bulletproofs/core.rs @@ -1,7 +1,5 @@ -// Required to be for this entire file, which isn't an issue, as it wouldn't bind to the static -#![allow(non_upper_case_globals)] +use std_shims::sync::OnceLock; -use lazy_static::lazy_static; use rand_core::{RngCore, CryptoRng}; use subtle::{Choice, ConditionallySelectable}; @@ -15,13 +13,17 @@ use multiexp::multiexp as multiexp_const; pub(crate) use monero_generators::Generators; -use crate::{H as DALEK_H, Commitment, hash_to_scalar as dalek_hash}; +use crate::{INV_EIGHT as DALEK_INV_EIGHT, H as DALEK_H, Commitment, hash_to_scalar as dalek_hash}; pub(crate) use crate::ringct::bulletproofs::scalar_vector::*; -// Bring things into ff/group -lazy_static! { - pub(crate) static ref INV_EIGHT: Scalar = Scalar::from(8u8).invert().unwrap(); - pub(crate) static ref H: EdwardsPoint = EdwardsPoint(*DALEK_H); +#[inline] +pub(crate) fn INV_EIGHT() -> Scalar { + Scalar(DALEK_INV_EIGHT()) +} + +#[inline] +pub(crate) fn H() -> EdwardsPoint { + EdwardsPoint(DALEK_H()) } pub(crate) fn hash_to_scalar(data: &[u8]) -> Scalar { @@ -34,7 +36,7 @@ pub(crate) const LOG_N: usize = 6; // 2 << 6 == N pub(crate) const N: usize = 64; pub(crate) fn prove_multiexp(pairs: &[(Scalar, EdwardsPoint)]) -> EdwardsPoint { - multiexp_const(pairs) * *INV_EIGHT + multiexp_const(pairs) * INV_EIGHT() } pub(crate) fn vector_exponent( @@ -91,7 +93,7 @@ pub(crate) fn bit_decompose(commitments: &[Commitment]) -> (ScalarVector, Scalar pub(crate) fn hash_commitments>( commitments: C, ) -> (Scalar, Vec) { - let V = commitments.into_iter().map(|c| EdwardsPoint(c) * *INV_EIGHT).collect::>(); + let V = commitments.into_iter().map(|c| EdwardsPoint(c) * INV_EIGHT()).collect::>(); (hash_to_scalar(&V.iter().flat_map(|V| V.compress().to_bytes()).collect::>()), V) } @@ -102,7 +104,7 @@ pub(crate) fn alpha_rho( aR: &ScalarVector, ) -> (Scalar, EdwardsPoint) { let ar = Scalar::random(rng); - (ar, (vector_exponent(generators, aL, aR) + (EdwardsPoint::generator() * ar)) * *INV_EIGHT) + (ar, (vector_exponent(generators, aL, aR) + (EdwardsPoint::generator() * ar)) * INV_EIGHT()) } pub(crate) fn LR_statements( @@ -124,8 +126,9 @@ pub(crate) fn LR_statements( res } -lazy_static! { - pub(crate) static ref TWO_N: ScalarVector = ScalarVector::powers(Scalar::from(2u8), N); +static TWO_N_CELL: OnceLock = OnceLock::new(); +pub(crate) fn TWO_N() -> &'static ScalarVector { + TWO_N_CELL.get_or_init(|| ScalarVector::powers(Scalar::from(2u8), N)) } pub(crate) fn challenge_products(w: &[Scalar], winv: &[Scalar]) -> Vec { diff --git a/coins/monero/src/ringct/bulletproofs/original.rs b/coins/monero/src/ringct/bulletproofs/original.rs index 0dda32a8..3301f1b5 100644 --- a/coins/monero/src/ringct/bulletproofs/original.rs +++ b/coins/monero/src/ringct/bulletproofs/original.rs @@ -1,4 +1,5 @@ -use lazy_static::lazy_static; +use std_shims::sync::OnceLock; + use rand_core::{RngCore, CryptoRng}; use zeroize::Zeroize; @@ -14,9 +15,9 @@ use crate::{Commitment, ringct::bulletproofs::core::*}; include!(concat!(env!("OUT_DIR"), "/generators.rs")); -lazy_static! { - static ref ONE_N: ScalarVector = ScalarVector(vec![Scalar::ONE; N]); - static ref IP12: Scalar = inner_product(&ONE_N, &TWO_N); +static IP12_CELL: OnceLock = OnceLock::new(); +pub(crate) fn IP12() -> Scalar { + *IP12_CELL.get_or_init(|| inner_product(&ScalarVector(vec![Scalar::ONE; N]), TWO_N())) } #[derive(Clone, PartialEq, Eq, Debug)] @@ -48,8 +49,9 @@ impl OriginalStruct { let (sL, sR) = ScalarVector((0 .. (MN * 2)).map(|_| Scalar::random(&mut *rng)).collect::>()).split(); - let (mut alpha, A) = alpha_rho(&mut *rng, &GENERATORS, &aL, &aR); - let (mut rho, S) = alpha_rho(&mut *rng, &GENERATORS, &sL, &sR); + let generators = GENERATORS(); + let (mut alpha, A) = alpha_rho(&mut *rng, generators, &aL, &aR); + let (mut rho, S) = alpha_rho(&mut *rng, generators, &sL, &sR); let y = hash_cache(&mut cache, &[A.compress().to_bytes(), S.compress().to_bytes()]); let mut cache = hash_to_scalar(&y.to_bytes()); @@ -62,7 +64,7 @@ impl OriginalStruct { let zpow = ScalarVector::powers(z, M + 2); for j in 0 .. M { for i in 0 .. N { - zero_twos.push(zpow[j + 2] * TWO_N[i]); + zero_twos.push(zpow[j + 2] * TWO_N()[i]); } } @@ -77,8 +79,8 @@ impl OriginalStruct { let mut tau1 = Scalar::random(&mut *rng); let mut tau2 = Scalar::random(&mut *rng); - let T1 = prove_multiexp(&[(t1, *H), (tau1, EdwardsPoint::generator())]); - let T2 = prove_multiexp(&[(t2, *H), (tau2, EdwardsPoint::generator())]); + let T1 = prove_multiexp(&[(t1, H()), (tau1, EdwardsPoint::generator())]); + let T2 = prove_multiexp(&[(t2, H()), (tau2, EdwardsPoint::generator())]); let x = hash_cache(&mut cache, &[z.to_bytes(), T1.compress().to_bytes(), T2.compress().to_bytes()]); @@ -112,10 +114,10 @@ impl OriginalStruct { let yinv = y.invert().unwrap(); let yinvpow = ScalarVector::powers(yinv, MN); - let mut G_proof = GENERATORS.G[.. a.len()].to_vec(); - let mut H_proof = GENERATORS.H[.. a.len()].to_vec(); + let mut G_proof = generators.G[.. a.len()].to_vec(); + let mut H_proof = generators.H[.. a.len()].to_vec(); H_proof.iter_mut().zip(yinvpow.0.iter()).for_each(|(this_H, yinvpow)| *this_H *= yinvpow); - let U = *H * x_ip; + let U = H() * x_ip; let mut L = Vec::with_capacity(logMN); let mut R = Vec::with_capacity(logMN); @@ -230,10 +232,10 @@ impl OriginalStruct { let ip1y = ScalarVector::powers(y, M * N).sum(); let mut k = -(zpow[2] * ip1y); for j in 1 ..= M { - k -= zpow[j + 2] * *IP12; + k -= zpow[j + 2] * IP12(); } let y1 = Scalar(self.t) - ((z * ip1y) + k); - proof.push((-y1, *H)); + proof.push((-y1, H())); proof.push((-Scalar(self.taux), G)); @@ -247,7 +249,7 @@ impl OriginalStruct { proof = Vec::with_capacity(4 + (2 * (MN + logMN))); let z3 = (Scalar(self.t) - (Scalar(self.a) * Scalar(self.b))) * x_ip; - proof.push((z3, *H)); + proof.push((z3, H())); proof.push((-Scalar(self.mu), G)); proof.push((Scalar::ONE, A)); @@ -260,13 +262,14 @@ impl OriginalStruct { let w_cache = challenge_products(&w, &winv); + let generators = GENERATORS(); for i in 0 .. MN { let g = (Scalar(self.a) * w_cache[i]) + z; - proof.push((-g, GENERATORS.G[i])); + proof.push((-g, generators.G[i])); let mut h = Scalar(self.b) * yinvpow[i] * w_cache[(!i) & (MN - 1)]; - h -= ((zpow[(i / N) + 2] * TWO_N[i % N]) + (z * ypow[i])) * yinvpow[i]; - proof.push((-h, GENERATORS.H[i])); + h -= ((zpow[(i / N) + 2] * TWO_N()[i % N]) + (z * ypow[i])) * yinvpow[i]; + proof.push((-h, generators.H[i])); } } diff --git a/coins/monero/src/ringct/bulletproofs/plus.rs b/coins/monero/src/ringct/bulletproofs/plus.rs index cd07fa55..7031c179 100644 --- a/coins/monero/src/ringct/bulletproofs/plus.rs +++ b/coins/monero/src/ringct/bulletproofs/plus.rs @@ -1,4 +1,5 @@ -use lazy_static::lazy_static; +use std_shims::sync::OnceLock; + use rand_core::{RngCore, CryptoRng}; use zeroize::Zeroize; @@ -17,15 +18,17 @@ use crate::{ include!(concat!(env!("OUT_DIR"), "/generators_plus.rs")); -lazy_static! { - static ref TRANSCRIPT: [u8; 32] = - EdwardsPoint(raw_hash_to_point(hash(b"bulletproof_plus_transcript"))).compress().to_bytes(); +static TRANSCRIPT_CELL: OnceLock<[u8; 32]> = OnceLock::new(); +pub(crate) fn TRANSCRIPT() -> [u8; 32] { + *TRANSCRIPT_CELL.get_or_init(|| { + EdwardsPoint(raw_hash_to_point(hash(b"bulletproof_plus_transcript"))).compress().to_bytes() + }) } // TRANSCRIPT isn't a Scalar, so we need this alternative for the first hash fn hash_plus>(commitments: C) -> (Scalar, Vec) { let (cache, commitments) = hash_commitments(commitments); - (hash_to_scalar(&[&*TRANSCRIPT as &[u8], &cache.to_bytes()].concat()), commitments) + (hash_to_scalar(&[TRANSCRIPT().as_ref(), &cache.to_bytes()].concat()), commitments) } // d[j*N+i] = z**(2*(j+1)) * 2**i @@ -34,7 +37,7 @@ fn d(z: Scalar, M: usize, MN: usize) -> (ScalarVector, ScalarVector) { let mut d = vec![Scalar::ZERO; MN]; for j in 0 .. M { for i in 0 .. N { - d[(j * N) + i] = zpow[j] * TWO_N[i]; + d[(j * N) + i] = zpow[j] * TWO_N()[i]; } } (zpow, ScalarVector(d)) @@ -57,12 +60,14 @@ impl PlusStruct { rng: &mut R, commitments: &[Commitment], ) -> PlusStruct { + let generators = GENERATORS(); + let (logMN, M, MN) = MN(commitments.len()); let (aL, aR) = bit_decompose(commitments); let commitments_points = commitments.iter().map(Commitment::calculate).collect::>(); let (mut cache, _) = hash_plus(commitments_points.clone()); - let (mut alpha1, A) = alpha_rho(&mut *rng, &GENERATORS, &aL, &aR); + let (mut alpha1, A) = alpha_rho(&mut *rng, generators, &aL, &aR); let y = hash_cache(&mut cache, &[A.compress().to_bytes()]); let mut cache = hash_to_scalar(&y.to_bytes()); @@ -87,8 +92,8 @@ impl PlusStruct { let yinv = y.invert().unwrap(); let yinvpow = ScalarVector::powers(yinv, MN); - let mut G_proof = GENERATORS.G[.. a.len()].to_vec(); - let mut H_proof = GENERATORS.H[.. a.len()].to_vec(); + let mut G_proof = generators.G[.. a.len()].to_vec(); + let mut H_proof = generators.H[.. a.len()].to_vec(); let mut L = Vec::with_capacity(logMN); let mut R = Vec::with_capacity(logMN); @@ -105,12 +110,12 @@ impl PlusStruct { let (G_L, G_R) = G_proof.split_at(aL.len()); let (H_L, H_R) = H_proof.split_at(aL.len()); - let mut L_i = LR_statements(&(&aL * yinvpow[aL.len()]), G_R, &bR, H_L, cL, *H); + let mut L_i = LR_statements(&(&aL * yinvpow[aL.len()]), G_R, &bR, H_L, cL, H()); L_i.push((dL, G)); let L_i = prove_multiexp(&L_i); L.push(L_i); - let mut R_i = LR_statements(&(&aR * ypow[aR.len()]), G_L, &bL, H_R, cR, *H); + let mut R_i = LR_statements(&(&aR * ypow[aR.len()]), G_L, &bL, H_R, cR, H()); R_i.push((dR, G)); let R_i = prove_multiexp(&R_i); R.push(R_i); @@ -139,9 +144,9 @@ impl PlusStruct { (r, G_proof[0]), (s, H_proof[0]), (d, G), - ((r * y * b[0]) + (s * y * a[0]), *H), + ((r * y * b[0]) + (s * y * a[0]), H()), ]); - let B = prove_multiexp(&[(r * y * s, *H), (eta, G)]); + let B = prove_multiexp(&[(r * y * s, H()), (eta, G)]); let e = hash_cache(&mut cache, &[A1.compress().to_bytes(), B.compress().to_bytes()]); let r1 = (a[0] * e) + r; @@ -248,7 +253,7 @@ impl PlusStruct { let y_sum = weighted_powers(y, MN).sum(); proof.push(( Scalar(self.r1 * y.0 * self.s1) + (esq * ((yMNy * z * d_sum) + ((zsq - z) * y_sum))), - *H, + H(), )); let w_cache = challenge_products(&w, &winv); @@ -259,11 +264,12 @@ impl PlusStruct { let minus_esq_z = -esq_z; let mut minus_esq_y = minus_esq * yMN; + let generators = GENERATORS(); for i in 0 .. MN { - proof.push((e_r1_y * w_cache[i] + esq_z, GENERATORS.G[i])); + proof.push((e_r1_y * w_cache[i] + esq_z, generators.G[i])); proof.push(( (e_s1 * w_cache[(!i) & (MN - 1)]) + minus_esq_z + (minus_esq_y * d[i]), - GENERATORS.H[i], + generators.H[i], )); e_r1_y *= yinv; diff --git a/coins/monero/src/ringct/clsag/mod.rs b/coins/monero/src/ringct/clsag/mod.rs index 5c4462fb..8008e4db 100644 --- a/coins/monero/src/ringct/clsag/mod.rs +++ b/coins/monero/src/ringct/clsag/mod.rs @@ -3,7 +3,6 @@ use core::ops::Deref; use std::io::{self, Read, Write}; -use lazy_static::lazy_static; use thiserror::Error; use rand_core::{RngCore, CryptoRng}; @@ -18,8 +17,8 @@ use curve25519_dalek::{ }; use crate::{ - Commitment, random_scalar, hash_to_scalar, wallet::decoys::Decoys, ringct::hash_to_point, - serialize::*, + INV_EIGHT, Commitment, random_scalar, hash_to_scalar, wallet::decoys::Decoys, + ringct::hash_to_point, serialize::*, }; #[cfg(feature = "multisig")] @@ -29,10 +28,6 @@ pub use multisig::{ClsagDetails, ClsagAddendum, ClsagMultisig}; #[cfg(feature = "multisig")] pub(crate) use multisig::add_key_image_share; -lazy_static! { - static ref INV_EIGHT: Scalar = Scalar::from(8u8).invert(); -} - /// Errors returned when CLSAG signing fails. #[derive(Clone, Copy, PartialEq, Eq, Debug, Error)] pub enum ClsagError { @@ -103,7 +98,7 @@ fn core( let n = ring.len(); let images_precomp = VartimeEdwardsPrecomputation::new([I, D]); - let D = D * *INV_EIGHT; + let D = D * INV_EIGHT(); // Generate the transcript // Instead of generating multiple, a single transcript is created and then edited as needed diff --git a/coins/monero/src/wallet/decoys.rs b/coins/monero/src/wallet/decoys.rs index 07b05d42..09a04003 100644 --- a/coins/monero/src/wallet/decoys.rs +++ b/coins/monero/src/wallet/decoys.rs @@ -1,8 +1,6 @@ -use std::collections::HashSet; +use std_shims::{sync::OnceLock, collections::HashSet}; -use futures::lock::{Mutex, MutexGuard}; - -use lazy_static::lazy_static; +use futures::lock::Mutex; use rand_core::{RngCore, CryptoRng}; use rand_distr::{Distribution, Gamma}; @@ -23,18 +21,19 @@ const BLOCK_TIME: usize = 120; const BLOCKS_PER_YEAR: usize = 365 * 24 * 60 * 60 / BLOCK_TIME; const TIP_APPLICATION: f64 = (LOCK_WINDOW * BLOCK_TIME) as f64; -lazy_static! { - static ref GAMMA: Gamma = Gamma::new(19.28, 1.0 / 1.61).unwrap(); - // TODO: Expose an API to reset this in case a reorg occurs/the RPC fails/returns garbage - // TODO: Update this when scanning a block, as possible - static ref DISTRIBUTION: Mutex> = Mutex::new(Vec::with_capacity(3000000)); +// TODO: Expose an API to reset this in case a reorg occurs/the RPC fails/returns garbage +// TODO: Update this when scanning a block, as possible +static DISTRIBUTION_CELL: OnceLock>> = OnceLock::new(); +#[allow(non_snake_case)] +fn DISTRIBUTION() -> &'static Mutex> { + DISTRIBUTION_CELL.get_or_init(|| Mutex::new(Vec::with_capacity(3000000))) } #[allow(clippy::too_many_arguments)] async fn select_n<'a, R: RngCore + CryptoRng, RPC: RpcConnection>( rng: &mut R, rpc: &Rpc, - distribution: &MutexGuard<'a, Vec>, + distribution: &[u64], height: usize, high: u64, per_second: f64, @@ -60,7 +59,7 @@ async fn select_n<'a, R: RngCore + CryptoRng, RPC: RpcConnection>( } // Use a gamma distribution - let mut age = GAMMA.sample(rng).exp(); + let mut age = Gamma::::new(19.28, 1.0 / 1.61).unwrap().sample(rng).exp(); if age > TIP_APPLICATION { age -= TIP_APPLICATION; } else { @@ -144,7 +143,7 @@ impl Decoys { height: usize, inputs: &[SpendableOutput], ) -> Result, RpcError> { - let mut distribution = DISTRIBUTION.lock().await; + let mut distribution = DISTRIBUTION().lock().await; let decoy_count = ring_len - 1; diff --git a/coins/monero/src/wallet/seed/classic.rs b/coins/monero/src/wallet/seed/classic.rs index 6afbe91b..171b0742 100644 --- a/coins/monero/src/wallet/seed/classic.rs +++ b/coins/monero/src/wallet/seed/classic.rs @@ -1,7 +1,5 @@ use core::ops::Deref; -use std::collections::HashMap; - -use lazy_static::lazy_static; +use std_shims::{sync::OnceLock, collections::HashMap}; use zeroize::{Zeroize, Zeroizing}; use rand_core::{RngCore, CryptoRng}; @@ -47,28 +45,32 @@ impl WordList { } } -lazy_static! { - static ref LANGUAGES: HashMap = HashMap::from([ - (Language::Chinese, WordList::new(include!("./classic/zh.rs"), 1)), - (Language::English, WordList::new(include!("./classic/en.rs"), 3)), - (Language::Dutch, WordList::new(include!("./classic/nl.rs"), 4)), - (Language::French, WordList::new(include!("./classic/fr.rs"), 4)), - (Language::Spanish, WordList::new(include!("./classic/es.rs"), 4)), - (Language::German, WordList::new(include!("./classic/de.rs"), 4)), - (Language::Italian, WordList::new(include!("./classic/it.rs"), 4)), - (Language::Portuguese, WordList::new(include!("./classic/pt.rs"), 4)), - (Language::Japanese, WordList::new(include!("./classic/ja.rs"), 3)), - (Language::Russian, WordList::new(include!("./classic/ru.rs"), 4)), - (Language::Esperanto, WordList::new(include!("./classic/eo.rs"), 4)), - (Language::Lojban, WordList::new(include!("./classic/jbo.rs"), 4)), - (Language::EnglishOld, WordList::new(include!("./classic/ang.rs"), 4)), - ]); +static LANGUAGES_CELL: OnceLock> = OnceLock::new(); +#[allow(non_snake_case)] +fn LANGUAGES() -> &'static HashMap { + LANGUAGES_CELL.get_or_init(|| { + HashMap::from([ + (Language::Chinese, WordList::new(include!("./classic/zh.rs"), 1)), + (Language::English, WordList::new(include!("./classic/en.rs"), 3)), + (Language::Dutch, WordList::new(include!("./classic/nl.rs"), 4)), + (Language::French, WordList::new(include!("./classic/fr.rs"), 4)), + (Language::Spanish, WordList::new(include!("./classic/es.rs"), 4)), + (Language::German, WordList::new(include!("./classic/de.rs"), 4)), + (Language::Italian, WordList::new(include!("./classic/it.rs"), 4)), + (Language::Portuguese, WordList::new(include!("./classic/pt.rs"), 4)), + (Language::Japanese, WordList::new(include!("./classic/ja.rs"), 3)), + (Language::Russian, WordList::new(include!("./classic/ru.rs"), 4)), + (Language::Esperanto, WordList::new(include!("./classic/eo.rs"), 4)), + (Language::Lojban, WordList::new(include!("./classic/jbo.rs"), 4)), + (Language::EnglishOld, WordList::new(include!("./classic/ang.rs"), 4)), + ]) + }) } #[cfg(test)] pub(crate) fn trim_by_lang(word: &str, lang: Language) -> String { if lang != Language::EnglishOld { - word.chars().take(LANGUAGES[&lang].unique_prefix_length).collect() + word.chars().take(LANGUAGES()[&lang].unique_prefix_length).collect() } else { word.to_string() } @@ -92,7 +94,7 @@ fn key_to_seed(lang: Language, key: Zeroizing) -> ClassicSeed { let bytes = Zeroizing::new(key.to_bytes()); // get the language words - let words = &LANGUAGES[&lang].word_list; + let words = &LANGUAGES()[&lang].word_list; let list_len = u64::try_from(words.len()).unwrap(); // To store the found words & add the checksum word later. @@ -126,7 +128,7 @@ fn key_to_seed(lang: Language, key: Zeroizing) -> ClassicSeed { // create a checksum word for all languages except old english if lang != Language::EnglishOld { - let checksum = seed[checksum_index(&seed, &LANGUAGES[&lang])].clone(); + let checksum = seed[checksum_index(&seed, &LANGUAGES()[&lang])].clone(); seed.push(checksum); } @@ -154,7 +156,7 @@ pub(crate) fn seed_to_bytes(words: &str) -> Result<(Language, Zeroizing<[u8; 32] let mut matched_indices = Zeroizing::new(vec![]); // Iterate through all the languages - 'language: for (lang_name, lang) in LANGUAGES.iter() { + 'language: for (lang_name, lang) in LANGUAGES().iter() { matched_indices.zeroize(); matched_indices.clear(); diff --git a/coins/monero/tests/runner.rs b/coins/monero/tests/runner.rs index ad4e65ce..8a480563 100644 --- a/coins/monero/tests/runner.rs +++ b/coins/monero/tests/runner.rs @@ -1,7 +1,5 @@ use core::ops::Deref; -use std::collections::HashSet; - -use lazy_static::lazy_static; +use std_shims::{sync::OnceLock, collections::HashSet}; use zeroize::Zeroizing; use rand_core::OsRng; @@ -98,9 +96,7 @@ pub async fn rpc() -> Rpc { rpc } -lazy_static! { - pub static ref SEQUENTIAL: Mutex<()> = Mutex::new(()); -} +pub static SEQUENTIAL: OnceLock> = OnceLock::new(); #[macro_export] macro_rules! async_sequential { @@ -108,7 +104,7 @@ macro_rules! async_sequential { $( #[tokio::test] async fn $name() { - let guard = runner::SEQUENTIAL.lock().await; + let guard = runner::SEQUENTIAL.get_or_init(|| tokio::sync::Mutex::new(())).lock().await; let local = tokio::task::LocalSet::new(); local.run_until(async move { if let Err(err) = tokio::task::spawn_local(async move { $body }).await { diff --git a/common/std-shims/Cargo.toml b/common/std-shims/Cargo.toml index a5c3a299..0f20c333 100644 --- a/common/std-shims/Cargo.toml +++ b/common/std-shims/Cargo.toml @@ -13,7 +13,8 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -hashbrown = "0.13" +spin = "0.9" +hashbrown = "0.14" [features] std = [] diff --git a/common/std-shims/src/lib.rs b/common/std-shims/src/lib.rs index e092e04d..700c4bae 100644 --- a/common/std-shims/src/lib.rs +++ b/common/std-shims/src/lib.rs @@ -6,6 +6,7 @@ #[macro_use] pub extern crate alloc; +pub mod sync; pub mod collections; pub mod io; diff --git a/common/std-shims/src/sync.rs b/common/std-shims/src/sync.rs new file mode 100644 index 00000000..c84bba8d --- /dev/null +++ b/common/std-shims/src/sync.rs @@ -0,0 +1,57 @@ +pub use core::sync::*; + +mod mutex_shim { + #[cfg(feature = "std")] + pub use std::sync::*; + #[cfg(not(feature = "std"))] + pub use spin::*; + + #[derive(Default, Debug)] + pub struct ShimMutex(Mutex); + impl ShimMutex { + pub const fn new(value: T) -> Self { + Self(Mutex::new(value)) + } + + pub fn lock(&self) -> MutexGuard<'_, T> { + #[cfg(feature = "std")] + let res = self.0.lock().unwrap(); + #[cfg(not(feature = "std"))] + let res = self.0.lock(); + res + } + } +} +pub use mutex_shim::{ShimMutex as Mutex, MutexGuard}; + +#[cfg(feature = "std")] +pub use std::sync::OnceLock; +#[cfg(not(feature = "std"))] +mod oncelock_shim { + pub struct OnceLock(super::Mutex<()>, Option); + impl OnceLock { + pub const fn new() -> OnceLock { + OnceLock(Mutex::new(), None) + } + + pub fn get(&self) -> Option<&T> { + self.1.as_ref() + } + + pub fn get_mut(&mut self) -> Option<&mut T> { + self.1.as_mut() + } + + pub fn get_or_init T>(&self, f: F) -> &T { + let lock = self.0.lock(); + if self.1.is_none() { + self.1 = Some(f()); + } + drop(lock); + + self.1.as_ref().unwrap() + } + } +} +#[cfg(not(feature = "std"))] +pub use oncelock_shim::*; diff --git a/tests/no-std/Cargo.toml b/tests/no-std/Cargo.toml index 834ddc4e..a4ab6ddf 100644 --- a/tests/no-std/Cargo.toml +++ b/tests/no-std/Cargo.toml @@ -30,4 +30,4 @@ dkg = { path = "../../crypto/dkg", default-features = false } # modular-frost = { path = "../../crypto/frost", default-features = false } # frost-schnorrkel = { path = "../../crypto/schnorrkel", default-features = false } -monero-generators = { path = "../../coins/monero/generators", default-features = false, features = ["alloc"] } +monero-generators = { path = "../../coins/monero/generators", default-features = false } From ac708b3b2aef5b7915aa5a94b7e1b6fe8655e9a5 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Thu, 29 Jun 2023 04:14:29 -0400 Subject: [PATCH 13/20] no-std support for monero-serai (#311) * Move monero-serai from std to std-shims, where possible * no-std fixes * Make the HttpRpc its own feature, thiserror only on std * Drop monero-rs's epee for a homegrown one We only need it for a single function. While I tried jeffro's, it didn't work out of the box, had three unimplemented!s, and is no where near viable for no_std. Fixes #182, though should be further tested. * no-std monero-serai * Allow base58-monero via git * cargo fmt --- Cargo.lock | 23 +- coins/monero/Cargo.toml | 91 ++++-- coins/monero/src/block.rs | 5 +- coins/monero/src/lib.rs | 5 + coins/monero/src/ringct/bulletproofs/core.rs | 2 +- coins/monero/src/ringct/bulletproofs/mod.rs | 5 +- .../src/ringct/bulletproofs/original.rs | 2 +- coins/monero/src/ringct/bulletproofs/plus.rs | 2 +- .../src/ringct/bulletproofs/scalar_vector.rs | 1 + coins/monero/src/ringct/clsag/mod.rs | 25 +- coins/monero/src/ringct/clsag/multisig.rs | 6 +- coins/monero/src/ringct/mod.rs | 5 +- coins/monero/src/rpc/http.rs | 91 ++++++ coins/monero/src/{rpc.rs => rpc/mod.rs} | 304 ++++++++++-------- coins/monero/src/serialize.rs | 5 +- coins/monero/src/tests/bulletproofs.rs | 2 +- coins/monero/src/transaction.rs | 5 +- coins/monero/src/wallet/address.rs | 19 +- coins/monero/src/wallet/decoys.rs | 14 +- coins/monero/src/wallet/extra.rs | 5 +- coins/monero/src/wallet/mod.rs | 10 +- coins/monero/src/wallet/scan.rs | 5 +- coins/monero/src/wallet/seed/classic.rs | 7 +- coins/monero/src/wallet/seed/mod.rs | 16 +- coins/monero/src/wallet/send/mod.rs | 39 ++- coins/monero/src/wallet/send/multisig.rs | 5 +- common/std-shims/src/lib.rs | 15 +- common/std-shims/src/sync.rs | 32 +- deny.toml | 1 + tests/no-std/Cargo.toml | 1 + 30 files changed, 487 insertions(+), 261 deletions(-) create mode 100644 coins/monero/src/rpc/http.rs rename coins/monero/src/{rpc.rs => rpc/mod.rs} (66%) diff --git a/Cargo.lock b/Cargo.lock index 9b35a7ce..fc7bd417 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -529,6 +529,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d079cdf47e1ca75554200bb2f30bff5a5af16964cac4a566b18de9a5d48db2b" dependencies = [ "thiserror", +] + +[[package]] +name = "base58-monero" +version = "1.1.0" +source = "git+https://github.com/monero-rs/base58-monero?rev=5045e8d2b817b3b6c1190661f504e879bc769c29#5045e8d2b817b3b6c1190661f504e879bc769c29" +dependencies = [ "tiny-keccak", ] @@ -5086,7 +5093,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403883d12972e916dd9754cdb90c25441a9abcf435f8e09c3146de100150eeb0" dependencies = [ - "base58-monero", + "base58-monero 1.0.0", "curve25519-dalek 3.2.0", "fixed-hash 0.7.0", "hex", @@ -5098,16 +5105,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "monero-epee-bin-serde" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8a3f7f7ef5bb1fd6c953be9187e48df8cc1a0ffc7d94f9fbabd4a23e37321e" -dependencies = [ - "byteorder", - "serde", -] - [[package]] name = "monero-generators" version = "0.3.0" @@ -5145,7 +5142,7 @@ name = "monero-serai" version = "0.1.4-alpha" dependencies = [ "async-trait", - "base58-monero", + "base58-monero 1.1.0", "crc", "curve25519-dalek 3.2.0", "dalek-ff-group", @@ -5157,7 +5154,6 @@ dependencies = [ "hex", "hex-literal 0.4.1", "modular-frost", - "monero-epee-bin-serde", "monero-generators", "monero-rpc", "multiexp", @@ -8668,6 +8664,7 @@ dependencies = [ "flexible-transcript", "minimal-ed448", "monero-generators", + "monero-serai", "multiexp", "schnorr-signatures", ] diff --git a/coins/monero/Cargo.toml b/coins/monero/Cargo.toml index 6eb567bb..c0f41bd0 100644 --- a/coins/monero/Cargo.toml +++ b/coins/monero/Cargo.toml @@ -14,47 +14,51 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] std-shims = { path = "../../common/std-shims", version = "0.1", default-features = false } -futures = "0.3" +async-trait = { version = "0.1", default-features = false } +thiserror = { version = "1", optional = true } -async-trait = "0.1" -thiserror = "1" +zeroize = { version = "^1.5", default-features = false, features = ["zeroize_derive"] } +subtle = { version = "^2.4", default-features = false } -rand_core = "0.6" -rand_chacha = "0.3" -rand = "0.8" -rand_distr = "0.4" +rand_core = { version = "0.6", default-features = false } +# Used to send transactions +rand = { version = "0.8", default-features = false } +rand_chacha = { version = "0.3", default-features = false } +# Used to select decoys +rand_distr = { version = "0.4", default-features = false } -zeroize = { version = "^1.5", features = ["zeroize_derive"] } -subtle = "^2.4" +crc = { version = "3", default-features = false } +sha3 = { version = "0.10", default-features = false } -crc = "3" -sha3 = "0.10" +curve25519-dalek = { version = "^3.2", default-features = false } -curve25519-dalek = { version = "^3.2", features = ["std"] } +# Used for the hash to curve, along with the more complicated proofs +group = { version = "0.13", default-features = false } +dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.3", default-features = false } +multiexp = { path = "../../crypto/multiexp", version = "0.3", default-features = false, features = ["batch"] } -group = "0.13" -dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.3" } -multiexp = { path = "../../crypto/multiexp", version = "0.3", features = ["batch"] } - -transcript = { package = "flexible-transcript", path = "../../crypto/transcript", version = "0.3", features = ["recommended"], optional = true } -frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.7", features = ["ed25519"], optional = true } +# Needed for multisig +transcript = { package = "flexible-transcript", path = "../../crypto/transcript", version = "0.3", default-features = false, features = ["recommended"], optional = true } dleq = { path = "../../crypto/dleq", version = "0.3", features = ["serialize"], optional = true } +frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.7", features = ["ed25519"], optional = true } -monero-generators = { path = "generators", version = "0.3" } +monero-generators = { path = "generators", version = "0.3", default-features = false } -hex = "0.4" -serde = { version = "1", features = ["derive"] } -serde_json = "1" +futures = { version = "0.3", default-features = false, features = ["alloc"], optional = true } -base58-monero = "1" -monero-epee-bin-serde = "1" +hex = { version = "0.4", default-features = false, features = ["alloc"] } +serde = { version = "1", default-features = false, features = ["derive"] } +serde_json = { version = "1", default-features = false, features = ["alloc"] } -digest_auth = "0.3" -reqwest = { version = "0.11", features = ["json"] } +base58-monero = { version = "1", git = "https://github.com/monero-rs/base58-monero", rev = "5045e8d2b817b3b6c1190661f504e879bc769c29", default-features = false, features = ["check"] } + +# Used for the provided RPC +digest_auth = { version = "0.3", optional = true } +reqwest = { version = "0.11", features = ["json"], optional = true } [build-dependencies] -dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.3" } -monero-generators = { path = "generators", version = "0.3" } +dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.3", default-features = false } +monero-generators = { path = "generators", version = "0.3", default-features = false } [dev-dependencies] hex-literal = "0.4" @@ -65,4 +69,33 @@ monero-rpc = "0.3" frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.7", features = ["tests"] } [features] -multisig = ["transcript", "frost", "dleq"] +std = [ + "std-shims/std", + + "thiserror", + + "zeroize/std", + "subtle/std", + + "rand_core/std", + "rand_chacha/std", + "rand/std", + "rand_distr/std", + + "sha3/std", + + "curve25519-dalek/std", + + "multiexp/std", + + "monero-generators/std", + + "futures/std", + + "hex/std", + "serde/std", + "serde_json/std", +] +http_rpc = ["digest_auth", "reqwest"] +multisig = ["transcript", "frost", "dleq", "std"] +default = ["std", "http_rpc"] diff --git a/coins/monero/src/block.rs b/coins/monero/src/block.rs index f24519eb..4a340b27 100644 --- a/coins/monero/src/block.rs +++ b/coins/monero/src/block.rs @@ -1,4 +1,7 @@ -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use crate::{ serialize::*, diff --git a/coins/monero/src/lib.rs b/coins/monero/src/lib.rs index 05ac830e..83a0af0d 100644 --- a/coins/monero/src/lib.rs +++ b/coins/monero/src/lib.rs @@ -1,5 +1,10 @@ #![cfg_attr(docsrs, feature(doc_auto_cfg))] #![doc = include_str!("../README.md")] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(not(feature = "std"))] +#[macro_use] +extern crate alloc; use std_shims::{sync::OnceLock, io}; diff --git a/coins/monero/src/ringct/bulletproofs/core.rs b/coins/monero/src/ringct/bulletproofs/core.rs index 9d2f00f9..1f30567f 100644 --- a/coins/monero/src/ringct/bulletproofs/core.rs +++ b/coins/monero/src/ringct/bulletproofs/core.rs @@ -1,4 +1,4 @@ -use std_shims::sync::OnceLock; +use std_shims::{vec::Vec, sync::OnceLock}; use rand_core::{RngCore, CryptoRng}; diff --git a/coins/monero/src/ringct/bulletproofs/mod.rs b/coins/monero/src/ringct/bulletproofs/mod.rs index fdddca2a..c4d17369 100644 --- a/coins/monero/src/ringct/bulletproofs/mod.rs +++ b/coins/monero/src/ringct/bulletproofs/mod.rs @@ -1,6 +1,9 @@ #![allow(non_snake_case)] -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use rand_core::{RngCore, CryptoRng}; diff --git a/coins/monero/src/ringct/bulletproofs/original.rs b/coins/monero/src/ringct/bulletproofs/original.rs index 3301f1b5..3fd15ef2 100644 --- a/coins/monero/src/ringct/bulletproofs/original.rs +++ b/coins/monero/src/ringct/bulletproofs/original.rs @@ -1,4 +1,4 @@ -use std_shims::sync::OnceLock; +use std_shims::{vec::Vec, sync::OnceLock}; use rand_core::{RngCore, CryptoRng}; diff --git a/coins/monero/src/ringct/bulletproofs/plus.rs b/coins/monero/src/ringct/bulletproofs/plus.rs index 7031c179..0cccc549 100644 --- a/coins/monero/src/ringct/bulletproofs/plus.rs +++ b/coins/monero/src/ringct/bulletproofs/plus.rs @@ -1,4 +1,4 @@ -use std_shims::sync::OnceLock; +use std_shims::{vec::Vec, sync::OnceLock}; use rand_core::{RngCore, CryptoRng}; diff --git a/coins/monero/src/ringct/bulletproofs/scalar_vector.rs b/coins/monero/src/ringct/bulletproofs/scalar_vector.rs index 739e6b77..8fc9f18e 100644 --- a/coins/monero/src/ringct/bulletproofs/scalar_vector.rs +++ b/coins/monero/src/ringct/bulletproofs/scalar_vector.rs @@ -1,4 +1,5 @@ use core::ops::{Add, Sub, Mul, Index}; +use std_shims::vec::Vec; use zeroize::{Zeroize, ZeroizeOnDrop}; diff --git a/coins/monero/src/ringct/clsag/mod.rs b/coins/monero/src/ringct/clsag/mod.rs index 8008e4db..2bccc8ff 100644 --- a/coins/monero/src/ringct/clsag/mod.rs +++ b/coins/monero/src/ringct/clsag/mod.rs @@ -1,9 +1,11 @@ #![allow(non_snake_case)] use core::ops::Deref; -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; -use thiserror::Error; use rand_core::{RngCore, CryptoRng}; use zeroize::{Zeroize, ZeroizeOnDrop, Zeroizing}; @@ -29,23 +31,24 @@ pub use multisig::{ClsagDetails, ClsagAddendum, ClsagMultisig}; pub(crate) use multisig::add_key_image_share; /// Errors returned when CLSAG signing fails. -#[derive(Clone, Copy, PartialEq, Eq, Debug, Error)] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "std", derive(thiserror::Error))] pub enum ClsagError { - #[error("internal error ({0})")] + #[cfg_attr(feature = "std", error("internal error ({0})"))] InternalError(&'static str), - #[error("invalid ring")] + #[cfg_attr(feature = "std", error("invalid ring"))] InvalidRing, - #[error("invalid ring member (member {0}, ring size {1})")] + #[cfg_attr(feature = "std", error("invalid ring member (member {0}, ring size {1})"))] InvalidRingMember(u8, u8), - #[error("invalid commitment")] + #[cfg_attr(feature = "std", error("invalid commitment"))] InvalidCommitment, - #[error("invalid key image")] + #[cfg_attr(feature = "std", error("invalid key image"))] InvalidImage, - #[error("invalid D")] + #[cfg_attr(feature = "std", error("invalid D"))] InvalidD, - #[error("invalid s")] + #[cfg_attr(feature = "std", error("invalid s"))] InvalidS, - #[error("invalid c1")] + #[cfg_attr(feature = "std", error("invalid c1"))] InvalidC1, } diff --git a/coins/monero/src/ringct/clsag/multisig.rs b/coins/monero/src/ringct/clsag/multisig.rs index bf71a638..2dcacb56 100644 --- a/coins/monero/src/ringct/clsag/multisig.rs +++ b/coins/monero/src/ringct/clsag/multisig.rs @@ -1,8 +1,6 @@ use core::{ops::Deref, fmt::Debug}; -use std::{ - io::{self, Read, Write}, - sync::{Arc, RwLock}, -}; +use std_shims::io::{self, Read, Write}; +use std::sync::{Arc, RwLock}; use rand_core::{RngCore, CryptoRng, SeedableRng}; use rand_chacha::ChaCha20Rng; diff --git a/coins/monero/src/ringct/mod.rs b/coins/monero/src/ringct/mod.rs index d289b6f1..d823a03c 100644 --- a/coins/monero/src/ringct/mod.rs +++ b/coins/monero/src/ringct/mod.rs @@ -1,5 +1,8 @@ use core::ops::Deref; -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use zeroize::Zeroizing; diff --git a/coins/monero/src/rpc/http.rs b/coins/monero/src/rpc/http.rs new file mode 100644 index 00000000..f2eb1328 --- /dev/null +++ b/coins/monero/src/rpc/http.rs @@ -0,0 +1,91 @@ +use async_trait::async_trait; + +use digest_auth::AuthContext; +use reqwest::Client; + +use crate::rpc::{RpcError, RpcConnection, Rpc}; + +#[derive(Clone, Debug)] +pub struct HttpRpc { + client: Client, + userpass: Option<(String, String)>, + url: String, +} + +impl HttpRpc { + /// Create a new HTTP(S) RPC connection. + /// + /// A daemon requiring authentication can be used via including the username and password in the + /// URL. + pub fn new(mut url: String) -> Result, RpcError> { + // Parse out the username and password + let userpass = if url.contains('@') { + let url_clone = url; + let split_url = url_clone.split('@').collect::>(); + if split_url.len() != 2 { + Err(RpcError::InvalidNode)?; + } + let mut userpass = split_url[0]; + url = split_url[1].to_string(); + + // If there was additionally a protocol string, restore that to the daemon URL + if userpass.contains("://") { + let split_userpass = userpass.split("://").collect::>(); + if split_userpass.len() != 2 { + Err(RpcError::InvalidNode)?; + } + url = split_userpass[0].to_string() + "://" + &url; + userpass = split_userpass[1]; + } + + let split_userpass = userpass.split(':').collect::>(); + if split_userpass.len() != 2 { + Err(RpcError::InvalidNode)?; + } + Some((split_userpass[0].to_string(), split_userpass[1].to_string())) + } else { + None + }; + + Ok(Rpc(HttpRpc { client: Client::new(), userpass, url })) + } +} + +#[async_trait] +impl RpcConnection for HttpRpc { + async fn post(&self, route: &str, body: Vec) -> Result, RpcError> { + let mut builder = self.client.post(self.url.clone() + "/" + route).body(body); + + if let Some((user, pass)) = &self.userpass { + let req = self.client.post(&self.url).send().await.map_err(|_| RpcError::InvalidNode)?; + // Only provide authentication if this daemon actually expects it + if let Some(header) = req.headers().get("www-authenticate") { + builder = builder.header( + "Authorization", + digest_auth::parse(header.to_str().map_err(|_| RpcError::InvalidNode)?) + .map_err(|_| RpcError::InvalidNode)? + .respond(&AuthContext::new_post::<_, _, _, &[u8]>( + user, + pass, + "/".to_string() + route, + None, + )) + .map_err(|_| RpcError::InvalidNode)? + .to_header_string(), + ); + } + } + + Ok( + builder + .send() + .await + .map_err(|_| RpcError::ConnectionError)? + .bytes() + .await + .map_err(|_| RpcError::ConnectionError)? + .slice(..) + .to_vec(), + ) + } +} diff --git a/coins/monero/src/rpc.rs b/coins/monero/src/rpc/mod.rs similarity index 66% rename from coins/monero/src/rpc.rs rename to coins/monero/src/rpc/mod.rs index c6cda880..5874b0e8 100644 --- a/coins/monero/src/rpc.rs +++ b/coins/monero/src/rpc/mod.rs @@ -1,23 +1,32 @@ -use std::fmt::Debug; +use core::fmt::Debug; +#[cfg(not(feature = "std"))] +use alloc::boxed::Box; +use std_shims::{ + vec::Vec, + io, + string::{String, ToString}, +}; use async_trait::async_trait; -use thiserror::Error; use curve25519_dalek::edwards::{EdwardsPoint, CompressedEdwardsY}; use serde::{Serialize, Deserialize, de::DeserializeOwned}; use serde_json::{Value, json}; -use digest_auth::AuthContext; -use reqwest::Client; - use crate::{ Protocol, + serialize::*, transaction::{Input, Timelock, Transaction}, block::Block, wallet::Fee, }; +#[cfg(feature = "http_rpc")] +mod http; +#[cfg(feature = "http_rpc")] +pub use http::*; + #[derive(Deserialize, Debug)] pub struct EmptyResponse {} #[derive(Deserialize, Debug)] @@ -38,23 +47,24 @@ struct TransactionsResponse { txs: Vec, } -#[derive(Clone, PartialEq, Eq, Debug, Error)] +#[derive(Clone, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "std", derive(thiserror::Error))] pub enum RpcError { - #[error("internal error ({0})")] + #[cfg_attr(feature = "std", error("internal error ({0})"))] InternalError(&'static str), - #[error("connection error")] + #[cfg_attr(feature = "std", error("connection error"))] ConnectionError, - #[error("invalid node")] + #[cfg_attr(feature = "std", error("invalid node"))] InvalidNode, - #[error("unsupported protocol version ({0})")] + #[cfg_attr(feature = "std", error("unsupported protocol version ({0})"))] UnsupportedProtocol(usize), - #[error("transactions not found")] + #[cfg_attr(feature = "std", error("transactions not found"))] TransactionsNotFound(Vec<[u8; 32]>), - #[error("invalid point ({0})")] + #[cfg_attr(feature = "std", error("invalid point ({0})"))] InvalidPoint(String), - #[error("pruned transaction")] + #[cfg_attr(feature = "std", error("pruned transaction"))] PrunedTransaction, - #[error("invalid transaction ({0:?})")] + #[cfg_attr(feature = "std", error("invalid transaction ({0:?})"))] InvalidTransaction([u8; 32]), } @@ -74,6 +84,23 @@ fn rpc_point(point: &str) -> Result { .ok_or_else(|| RpcError::InvalidPoint(point.to_string())) } +// Read an EPEE VarInt, distinct from the VarInts used throughout the rest of the protocol +fn read_epee_vi(reader: &mut R) -> io::Result { + let vi_start = read_byte(reader)?; + let len = match vi_start & 0b11 { + 0 => 1, + 1 => 2, + 2 => 4, + 3 => 8, + _ => unreachable!(), + }; + let mut vi = u64::from(vi_start >> 2); + for i in 1 .. len { + vi |= u64::from(read_byte(reader)?) << (((i - 1) * 8) + 6); + } + Ok(vi) +} + #[async_trait] pub trait RpcConnection: Clone + Debug { /// Perform a POST request to the specified route with the specified body. @@ -82,91 +109,7 @@ pub trait RpcConnection: Clone + Debug { async fn post(&self, route: &str, body: Vec) -> Result, RpcError>; } -#[derive(Clone, Debug)] -pub struct HttpRpc { - client: Client, - userpass: Option<(String, String)>, - url: String, -} - -impl HttpRpc { - /// Create a new HTTP(S) RPC connection. - /// - /// A daemon requiring authentication can be used via including the username and password in the - /// URL. - pub fn new(mut url: String) -> Result, RpcError> { - // Parse out the username and password - let userpass = if url.contains('@') { - let url_clone = url; - let split_url = url_clone.split('@').collect::>(); - if split_url.len() != 2 { - Err(RpcError::InvalidNode)?; - } - let mut userpass = split_url[0]; - url = split_url[1].to_string(); - - // If there was additionally a protocol string, restore that to the daemon URL - if userpass.contains("://") { - let split_userpass = userpass.split("://").collect::>(); - if split_userpass.len() != 2 { - Err(RpcError::InvalidNode)?; - } - url = split_userpass[0].to_string() + "://" + &url; - userpass = split_userpass[1]; - } - - let split_userpass = userpass.split(':').collect::>(); - if split_userpass.len() != 2 { - Err(RpcError::InvalidNode)?; - } - Some((split_userpass[0].to_string(), split_userpass[1].to_string())) - } else { - None - }; - - Ok(Rpc(HttpRpc { client: Client::new(), userpass, url })) - } -} - -#[async_trait] -impl RpcConnection for HttpRpc { - async fn post(&self, route: &str, body: Vec) -> Result, RpcError> { - let mut builder = self.client.post(self.url.clone() + "/" + route).body(body); - - if let Some((user, pass)) = &self.userpass { - let req = self.client.post(&self.url).send().await.map_err(|_| RpcError::InvalidNode)?; - // Only provide authentication if this daemon actually expects it - if let Some(header) = req.headers().get("www-authenticate") { - builder = builder.header( - "Authorization", - digest_auth::parse(header.to_str().map_err(|_| RpcError::InvalidNode)?) - .map_err(|_| RpcError::InvalidNode)? - .respond(&AuthContext::new_post::<_, _, _, &[u8]>( - user, - pass, - "/".to_string() + route, - None, - )) - .map_err(|_| RpcError::InvalidNode)? - .to_header_string(), - ); - } - } - - Ok( - builder - .send() - .await - .map_err(|_| RpcError::ConnectionError)? - .bytes() - .await - .map_err(|_| RpcError::ConnectionError)? - .slice(..) - .to_vec(), - ) - } -} - +// TODO: Make this provided methods for RpcConnection? #[derive(Clone, Debug)] pub struct Rpc(R); impl Rpc { @@ -179,10 +122,9 @@ impl Rpc { route: &str, params: Option, ) -> Result { - self - .call_tail( - route, - self + serde_json::from_str( + std_shims::str::from_utf8( + &self .0 .post( route, @@ -194,7 +136,9 @@ impl Rpc { ) .await?, ) - .await + .map_err(|_| RpcError::InvalidNode)?, + ) + .map_err(|_| RpcError::InternalError("Failed to parse JSON response")) } /// Perform a JSON-RPC call with the specified method with the provided parameters @@ -211,26 +155,8 @@ impl Rpc { } /// Perform a binary call to the specified route with the provided parameters. - pub async fn bin_call( - &self, - route: &str, - params: Vec, - ) -> Result { - self.call_tail(route, self.0.post(route, params).await?).await - } - - async fn call_tail( - &self, - route: &str, - res: Vec, - ) -> Result { - Ok(if !route.ends_with(".bin") { - serde_json::from_str(std::str::from_utf8(&res).map_err(|_| RpcError::InvalidNode)?) - .map_err(|_| RpcError::InternalError("Failed to parse JSON response"))? - } else { - monero_epee_bin_serde::from_bytes(&res) - .map_err(|_| RpcError::InternalError("Failed to parse binary response"))? - }) + pub async fn bin_call(&self, route: &str, params: Vec) -> Result, RpcError> { + self.0.post(route, params).await } /// Get the active blockchain protocol version. @@ -391,6 +317,9 @@ impl Rpc { /// Get the output indexes of the specified transaction. pub async fn get_o_indexes(&self, hash: [u8; 32]) -> Result, RpcError> { + /* + TODO: Use these when a suitable epee serde lib exists + #[derive(Serialize, Debug)] struct Request { txid: [u8; 32], @@ -400,20 +329,125 @@ impl Rpc { #[derive(Deserialize, Debug)] struct OIndexes { o_indexes: Vec, - status: String, - untrusted: bool, - credits: usize, - top_hash: String, } + */ - let indexes: OIndexes = self - .bin_call( - "get_o_indexes.bin", - monero_epee_bin_serde::to_bytes(&Request { txid: hash }).unwrap(), - ) - .await?; + // Given the immaturity of Rust epee libraries, this is a homegrown one which is only validated + // to work against this specific function - Ok(indexes.o_indexes) + // Header for EPEE, an 8-byte magic and a version + const EPEE_HEADER: &[u8] = b"\x01\x11\x01\x01\x01\x01\x02\x01\x01"; + + let mut request = EPEE_HEADER.to_vec(); + // Number of fields (shifted over 2 bits as the 2 LSBs are reserved for metadata) + request.push(1 << 2); + // Length of field name + request.push(4); + // Field name + request.extend(b"txid"); + // Type of field + request.push(10); + // Length of string, since this byte array is technically a string + request.push(32 << 2); + // The "string" + request.extend(hash); + + let indexes_buf = self.bin_call("get_o_indexes.bin", request).await?; + let mut indexes: &[u8] = indexes_buf.as_ref(); + + (|| { + if read_bytes::<_, { EPEE_HEADER.len() }>(&mut indexes)? != EPEE_HEADER { + Err(io::Error::new(io::ErrorKind::Other, "invalid header"))?; + } + + let read_object = |reader: &mut &[u8]| { + let fields = read_byte(reader)? >> 2; + + for _ in 0 .. fields { + let name_len = read_byte(reader)?; + let name = read_raw_vec(read_byte, name_len.into(), reader)?; + + let type_with_array_flag = read_byte(reader)?; + let kind = type_with_array_flag & (!0x80); + + let iters = if type_with_array_flag != kind { read_epee_vi(reader)? } else { 1 }; + + if (&name == b"o_indexes") && (kind != 5) { + Err(io::Error::new(io::ErrorKind::Other, "o_indexes weren't u64s"))?; + } + + let f = match kind { + // i64 + 1 => |reader: &mut &[u8]| read_raw_vec(read_byte, 8, reader), + // i32 + 2 => |reader: &mut &[u8]| read_raw_vec(read_byte, 4, reader), + // i16 + 3 => |reader: &mut &[u8]| read_raw_vec(read_byte, 2, reader), + // i8 + 4 => |reader: &mut &[u8]| read_raw_vec(read_byte, 1, reader), + // u64 + 5 => |reader: &mut &[u8]| read_raw_vec(read_byte, 8, reader), + // u32 + 6 => |reader: &mut &[u8]| read_raw_vec(read_byte, 4, reader), + // u16 + 7 => |reader: &mut &[u8]| read_raw_vec(read_byte, 2, reader), + // u8 + 8 => |reader: &mut &[u8]| read_raw_vec(read_byte, 1, reader), + // double + 9 => |reader: &mut &[u8]| read_raw_vec(read_byte, 8, reader), + // string, or any collection of bytes + 10 => |reader: &mut &[u8]| { + let len = read_epee_vi(reader)?; + read_raw_vec( + read_byte, + len + .try_into() + .map_err(|_| io::Error::new(io::ErrorKind::Other, "u64 length exceeded usize"))?, + reader, + ) + }, + // bool + 11 => |reader: &mut &[u8]| read_raw_vec(read_byte, 1, reader), + // object, errors here as it shouldn't be used on this call + 12 => |_: &mut &[u8]| { + Err(io::Error::new( + io::ErrorKind::Other, + "node used object in reply to get_o_indexes", + )) + }, + // array, so far unused + 13 => |_: &mut &[u8]| { + Err(io::Error::new(io::ErrorKind::Other, "node used the unused array type")) + }, + _ => { + |_: &mut &[u8]| Err(io::Error::new(io::ErrorKind::Other, "node used an invalid type")) + } + }; + + let mut res = vec![]; + for _ in 0 .. iters { + res.push(f(reader)?); + } + + let mut actual_res = Vec::with_capacity(res.len()); + if &name == b"o_indexes" { + for o_index in res { + actual_res.push(u64::from_le_bytes(o_index.try_into().map_err(|_| { + io::Error::new(io::ErrorKind::Other, "node didn't provide 8 bytes for a u64") + })?)); + } + return Ok(actual_res); + } + } + + // Didn't return a response with o_indexes + // TODO: Check if this didn't have o_indexes because it's an error response + Err(io::Error::new(io::ErrorKind::Other, "response didn't contain o_indexes")) + }; + + read_object(&mut indexes) + })() + .map_err(|_| RpcError::InvalidNode) } /// Get the output distribution, from the specified height to the specified height (both diff --git a/coins/monero/src/serialize.rs b/coins/monero/src/serialize.rs index aec745bc..89f72d68 100644 --- a/coins/monero/src/serialize.rs +++ b/coins/monero/src/serialize.rs @@ -1,4 +1,7 @@ -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use curve25519_dalek::{ scalar::Scalar, diff --git a/coins/monero/src/tests/bulletproofs.rs b/coins/monero/src/tests/bulletproofs.rs index efa97fae..f054acbf 100644 --- a/coins/monero/src/tests/bulletproofs.rs +++ b/coins/monero/src/tests/bulletproofs.rs @@ -1,5 +1,5 @@ use hex_literal::hex; -use rand::rngs::OsRng; +use rand_core::OsRng; use curve25519_dalek::{scalar::Scalar, edwards::CompressedEdwardsY}; use multiexp::BatchVerifier; diff --git a/coins/monero/src/transaction.rs b/coins/monero/src/transaction.rs index 4417588d..203edb72 100644 --- a/coins/monero/src/transaction.rs +++ b/coins/monero/src/transaction.rs @@ -1,5 +1,8 @@ use core::cmp::Ordering; -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use zeroize::Zeroize; diff --git a/coins/monero/src/wallet/address.rs b/coins/monero/src/wallet/address.rs index 9a232d2a..bfd0096e 100644 --- a/coins/monero/src/wallet/address.rs +++ b/coins/monero/src/wallet/address.rs @@ -1,7 +1,5 @@ use core::{marker::PhantomData, fmt::Debug}; -use std::string::ToString; - -use thiserror::Error; +use std_shims::string::{String, ToString}; use zeroize::Zeroize; @@ -114,19 +112,20 @@ impl Zeroize for AddressMeta { } /// Error when decoding an address. -#[derive(Clone, Copy, PartialEq, Eq, Debug, Error)] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "std", derive(thiserror::Error))] pub enum AddressError { - #[error("invalid address byte")] + #[cfg_attr(feature = "std", error("invalid address byte"))] InvalidByte, - #[error("invalid address encoding")] + #[cfg_attr(feature = "std", error("invalid address encoding"))] InvalidEncoding, - #[error("invalid length")] + #[cfg_attr(feature = "std", error("invalid length"))] InvalidLength, - #[error("invalid key")] + #[cfg_attr(feature = "std", error("invalid key"))] InvalidKey, - #[error("unknown features")] + #[cfg_attr(feature = "std", error("unknown features"))] UnknownFeatures, - #[error("different network than expected")] + #[cfg_attr(feature = "std", error("different network than expected"))] DifferentNetwork, } diff --git a/coins/monero/src/wallet/decoys.rs b/coins/monero/src/wallet/decoys.rs index 09a04003..8c8f6ebb 100644 --- a/coins/monero/src/wallet/decoys.rs +++ b/coins/monero/src/wallet/decoys.rs @@ -1,11 +1,16 @@ -use std_shims::{sync::OnceLock, collections::HashSet}; +use std_shims::{sync::OnceLock, vec::Vec, collections::HashSet}; +#[cfg(not(feature = "std"))] +use std_shims::sync::Mutex; +#[cfg(feature = "std")] use futures::lock::Mutex; +use zeroize::{Zeroize, ZeroizeOnDrop}; + use rand_core::{RngCore, CryptoRng}; use rand_distr::{Distribution, Gamma}; - -use zeroize::{Zeroize, ZeroizeOnDrop}; +#[cfg(not(feature = "std"))] +use rand_distr::num_traits::Float; use curve25519_dalek::edwards::EdwardsPoint; @@ -143,6 +148,9 @@ impl Decoys { height: usize, inputs: &[SpendableOutput], ) -> Result, RpcError> { + #[cfg(not(feature = "std"))] + let mut distribution = DISTRIBUTION().lock(); + #[cfg(feature = "std")] let mut distribution = DISTRIBUTION().lock().await; let decoy_count = ring_len - 1; diff --git a/coins/monero/src/wallet/extra.rs b/coins/monero/src/wallet/extra.rs index d5330f84..2a694b6f 100644 --- a/coins/monero/src/wallet/extra.rs +++ b/coins/monero/src/wallet/extra.rs @@ -1,5 +1,8 @@ use core::ops::BitXor; -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use zeroize::Zeroize; diff --git a/coins/monero/src/wallet/mod.rs b/coins/monero/src/wallet/mod.rs index b7322d84..acab7ca1 100644 --- a/coins/monero/src/wallet/mod.rs +++ b/coins/monero/src/wallet/mod.rs @@ -1,5 +1,5 @@ use core::ops::Deref; -use std::collections::{HashSet, HashMap}; +use std_shims::collections::{HashSet, HashMap}; use zeroize::{Zeroize, ZeroizeOnDrop, Zeroizing}; @@ -28,15 +28,15 @@ pub(crate) mod decoys; pub(crate) use decoys::Decoys; mod send; -pub use send::{ - Fee, TransactionError, Change, SignableTransaction, SignableTransactionBuilder, Eventuality, -}; +pub use send::{Fee, TransactionError, Change, SignableTransaction, Eventuality}; +#[cfg(feature = "std")] +pub use send::SignableTransactionBuilder; #[cfg(feature = "multisig")] pub(crate) use send::InternalPayment; #[cfg(feature = "multisig")] pub use send::TransactionMachine; -fn key_image_sort(x: &EdwardsPoint, y: &EdwardsPoint) -> std::cmp::Ordering { +fn key_image_sort(x: &EdwardsPoint, y: &EdwardsPoint) -> core::cmp::Ordering { x.compress().to_bytes().cmp(&y.compress().to_bytes()).reverse() } diff --git a/coins/monero/src/wallet/scan.rs b/coins/monero/src/wallet/scan.rs index 2f7e05a8..89e9b5fb 100644 --- a/coins/monero/src/wallet/scan.rs +++ b/coins/monero/src/wallet/scan.rs @@ -1,5 +1,8 @@ use core::ops::Deref; -use std::io::{self, Read, Write}; +use std_shims::{ + vec::Vec, + io::{self, Read, Write}, +}; use zeroize::{Zeroize, ZeroizeOnDrop}; diff --git a/coins/monero/src/wallet/seed/classic.rs b/coins/monero/src/wallet/seed/classic.rs index 171b0742..74e87c8b 100644 --- a/coins/monero/src/wallet/seed/classic.rs +++ b/coins/monero/src/wallet/seed/classic.rs @@ -1,5 +1,10 @@ use core::ops::Deref; -use std_shims::{sync::OnceLock, collections::HashMap}; +use std_shims::{ + sync::OnceLock, + vec::Vec, + string::{String, ToString}, + collections::HashMap, +}; use zeroize::{Zeroize, Zeroizing}; use rand_core::{RngCore, CryptoRng}; diff --git a/coins/monero/src/wallet/seed/mod.rs b/coins/monero/src/wallet/seed/mod.rs index e34852eb..3e4aca6c 100644 --- a/coins/monero/src/wallet/seed/mod.rs +++ b/coins/monero/src/wallet/seed/mod.rs @@ -1,25 +1,25 @@ use core::fmt; +use std_shims::string::String; use zeroize::{Zeroize, ZeroizeOnDrop, Zeroizing}; use rand_core::{RngCore, CryptoRng}; -use thiserror::Error; - pub(crate) mod classic; use classic::{CLASSIC_SEED_LENGTH, CLASSIC_SEED_LENGTH_WITH_CHECKSUM, ClassicSeed}; /// Error when decoding a seed. -#[derive(Clone, Copy, PartialEq, Eq, Debug, Error)] +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "std", derive(thiserror::Error))] pub enum SeedError { - #[error("invalid number of words in seed")] + #[cfg_attr(feature = "std", error("invalid number of words in seed"))] InvalidSeedLength, - #[error("unknown language")] + #[cfg_attr(feature = "std", error("unknown language"))] UnknownLanguage, - #[error("invalid checksum")] + #[cfg_attr(feature = "std", error("invalid checksum"))] InvalidChecksum, - #[error("english old seeds don't support checksums")] + #[cfg_attr(feature = "std", error("english old seeds don't support checksums"))] EnglishOldWithChecksum, - #[error("invalid seed")] + #[cfg_attr(feature = "std", error("invalid seed"))] InvalidSeed, } diff --git a/coins/monero/src/wallet/send/mod.rs b/coins/monero/src/wallet/send/mod.rs index d71398b1..cecd897d 100644 --- a/coins/monero/src/wallet/send/mod.rs +++ b/coins/monero/src/wallet/send/mod.rs @@ -1,7 +1,9 @@ use core::{ops::Deref, fmt}; -use std::io; - -use thiserror::Error; +use std_shims::{ + vec::Vec, + io, + string::{String, ToString}, +}; use rand_core::{RngCore, CryptoRng, SeedableRng}; use rand_chacha::ChaCha20Rng; @@ -42,7 +44,9 @@ use crate::{ }, }; +#[cfg(feature = "std")] mod builder; +#[cfg(feature = "std")] pub use builder::SignableTransactionBuilder; #[cfg(feature = "multisig")] @@ -116,34 +120,35 @@ impl SendOutput { } } -#[derive(Clone, PartialEq, Eq, Debug, Error)] +#[derive(Clone, PartialEq, Eq, Debug)] +#[cfg_attr(feature = "std", derive(thiserror::Error))] pub enum TransactionError { - #[error("multiple addresses with payment IDs")] + #[cfg_attr(feature = "std", error("multiple addresses with payment IDs"))] MultiplePaymentIds, - #[error("no inputs")] + #[cfg_attr(feature = "std", error("no inputs"))] NoInputs, - #[error("no outputs")] + #[cfg_attr(feature = "std", error("no outputs"))] NoOutputs, - #[error("only one output and no change address")] + #[cfg_attr(feature = "std", error("only one output and no change address"))] NoChange, - #[error("too many outputs")] + #[cfg_attr(feature = "std", error("too many outputs"))] TooManyOutputs, - #[error("too much data")] + #[cfg_attr(feature = "std", error("too much data"))] TooMuchData, - #[error("too many inputs/too much arbitrary data")] + #[cfg_attr(feature = "std", error("too many inputs/too much arbitrary data"))] TooLargeTransaction, - #[error("not enough funds (in {0}, out {1})")] + #[cfg_attr(feature = "std", error("not enough funds (in {0}, out {1})"))] NotEnoughFunds(u64, u64), - #[error("wrong spend private key")] + #[cfg_attr(feature = "std", error("wrong spend private key"))] WrongPrivateKey, - #[error("rpc error ({0})")] + #[cfg_attr(feature = "std", error("rpc error ({0})"))] RpcError(RpcError), - #[error("clsag error ({0})")] + #[cfg_attr(feature = "std", error("clsag error ({0})"))] ClsagError(ClsagError), - #[error("invalid transaction ({0})")] + #[cfg_attr(feature = "std", error("invalid transaction ({0})"))] InvalidTransaction(RpcError), #[cfg(feature = "multisig")] - #[error("frost error {0}")] + #[cfg_attr(feature = "std", error("frost error {0}"))] FrostError(FrostError), } diff --git a/coins/monero/src/wallet/send/multisig.rs b/coins/monero/src/wallet/send/multisig.rs index cfe499f4..bb249bc4 100644 --- a/coins/monero/src/wallet/send/multisig.rs +++ b/coins/monero/src/wallet/send/multisig.rs @@ -1,8 +1,9 @@ -use std::{ +use std_shims::{ + vec::Vec, io::{self, Read}, - sync::{Arc, RwLock}, collections::HashMap, }; +use std::sync::{Arc, RwLock}; use zeroize::Zeroizing; diff --git a/common/std-shims/src/lib.rs b/common/std-shims/src/lib.rs index 700c4bae..3eb2ec72 100644 --- a/common/std-shims/src/lib.rs +++ b/common/std-shims/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(docsrs, feature(doc_auto_cfg))] +#![doc = include_str!("../README.md")] #![cfg_attr(not(feature = "std"), no_std)] #[cfg(not(feature = "std"))] @@ -10,6 +12,13 @@ pub mod sync; pub mod collections; pub mod io; +pub mod vec { + #[cfg(not(feature = "std"))] + pub use alloc::vec::*; + #[cfg(feature = "std")] + pub use std::vec::*; +} + pub mod str { #[cfg(not(feature = "std"))] pub use alloc::str::*; @@ -17,9 +26,9 @@ pub mod str { pub use std::str::*; } -pub mod vec { +pub mod string { #[cfg(not(feature = "std"))] - pub use alloc::vec::*; + pub use alloc::string::*; #[cfg(feature = "std")] - pub use std::vec::*; + pub use std::string::*; } diff --git a/common/std-shims/src/sync.rs b/common/std-shims/src/sync.rs index c84bba8d..05cf80ab 100644 --- a/common/std-shims/src/sync.rs +++ b/common/std-shims/src/sync.rs @@ -28,28 +28,42 @@ pub use mutex_shim::{ShimMutex as Mutex, MutexGuard}; pub use std::sync::OnceLock; #[cfg(not(feature = "std"))] mod oncelock_shim { - pub struct OnceLock(super::Mutex<()>, Option); + use super::Mutex; + + pub struct OnceLock(Mutex, Option); impl OnceLock { pub const fn new() -> OnceLock { - OnceLock(Mutex::new(), None) + OnceLock(Mutex::new(false), None) } + // These return a distinct Option in case of None so another caller using get_or_init doesn't + // transform it from None to Some pub fn get(&self) -> Option<&T> { - self.1.as_ref() + if !*self.0.lock() { + None + } else { + self.1.as_ref() + } } - pub fn get_mut(&mut self) -> Option<&mut T> { - self.1.as_mut() + if !*self.0.lock() { + None + } else { + self.1.as_mut() + } } pub fn get_or_init T>(&self, f: F) -> &T { - let lock = self.0.lock(); - if self.1.is_none() { - self.1 = Some(f()); + let mut lock = self.0.lock(); + if !*lock { + unsafe { + (core::ptr::addr_of!(self.1) as *mut Option<_>).write_unaligned(Some(f())); + } } + *lock = true; drop(lock); - self.1.as_ref().unwrap() + self.get().unwrap() } } } diff --git a/deny.toml b/deny.toml index 9287a959..d2cd61da 100644 --- a/deny.toml +++ b/deny.toml @@ -83,4 +83,5 @@ allow-registry = ["https://github.com/rust-lang/crates.io-index"] allow-git = [ "https://github.com/serai-dex/substrate-bip39", "https://github.com/serai-dex/substrate", + "https://github.com/monero-rs/base58-monero", ] diff --git a/tests/no-std/Cargo.toml b/tests/no-std/Cargo.toml index a4ab6ddf..6b29278a 100644 --- a/tests/no-std/Cargo.toml +++ b/tests/no-std/Cargo.toml @@ -31,3 +31,4 @@ dkg = { path = "../../crypto/dkg", default-features = false } # frost-schnorrkel = { path = "../../crypto/schnorrkel", default-features = false } monero-generators = { path = "../../coins/monero/generators", default-features = false } +monero-serai = { path = "../../coins/monero", default-features = false } From a95ecc25123b000e77df711997d4f59872f12385 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Thu, 29 Jun 2023 13:16:51 -0400 Subject: [PATCH 14/20] Represent RCT amounts with None, not 0. Fixes #282. Does allow any v1 TXs which exist, and v2 miner-TXs, to specify Some(0). As far as I can tell, both were/are theoreitcally possible. --- coins/monero/src/transaction.rs | 61 +++++++++++++++++------- coins/monero/src/wallet/scan.rs | 10 ++-- coins/monero/src/wallet/send/mod.rs | 8 ++-- coins/monero/src/wallet/send/multisig.rs | 4 +- 4 files changed, 55 insertions(+), 28 deletions(-) diff --git a/coins/monero/src/transaction.rs b/coins/monero/src/transaction.rs index 203edb72..c5c9d0ee 100644 --- a/coins/monero/src/transaction.rs +++ b/coins/monero/src/transaction.rs @@ -20,7 +20,7 @@ use crate::{ #[derive(Clone, PartialEq, Eq, Debug)] pub enum Input { Gen(u64), - ToKey { amount: u64, key_offsets: Vec, key_image: EdwardsPoint }, + ToKey { amount: Option, key_offsets: Vec, key_image: EdwardsPoint }, } impl Input { @@ -40,7 +40,7 @@ impl Input { Input::ToKey { amount, key_offsets, key_image } => { w.write_all(&[2])?; - write_varint(amount, w)?; + write_varint(&amount.unwrap_or(0), w)?; write_vec(write_varint, key_offsets, w)?; write_point(key_image, w) } @@ -53,14 +53,18 @@ impl Input { res } - pub fn read(r: &mut R) -> io::Result { + pub fn read(interpret_as_rct: bool, r: &mut R) -> io::Result { Ok(match read_byte(r)? { 255 => Input::Gen(read_varint(r)?), - 2 => Input::ToKey { - amount: read_varint(r)?, - key_offsets: read_vec(read_varint, r)?, - key_image: read_torsion_free_point(r)?, - }, + 2 => { + let amount = read_varint(r)?; + let amount = if (amount == 0) && interpret_as_rct { None } else { Some(amount) }; + Input::ToKey { + amount, + key_offsets: read_vec(read_varint, r)?, + key_image: read_torsion_free_point(r)?, + } + } _ => { Err(io::Error::new(io::ErrorKind::Other, "Tried to deserialize unknown/unused input type"))? } @@ -71,7 +75,7 @@ impl Input { // Doesn't bother moving to an enum for the unused Script classes #[derive(Clone, PartialEq, Eq, Debug)] pub struct Output { - pub amount: u64, + pub amount: Option, pub key: CompressedEdwardsY, pub view_tag: Option, } @@ -82,7 +86,7 @@ impl Output { } pub fn write(&self, w: &mut W) -> io::Result<()> { - write_varint(&self.amount, w)?; + write_varint(&self.amount.unwrap_or(0), w)?; w.write_all(&[2 + u8::from(self.view_tag.is_some())])?; w.write_all(&self.key.to_bytes())?; if let Some(view_tag) = self.view_tag { @@ -97,8 +101,17 @@ impl Output { res } - pub fn read(r: &mut R) -> io::Result { + pub fn read(interpret_as_rct: bool, r: &mut R) -> io::Result { let amount = read_varint(r)?; + let amount = if interpret_as_rct { + if amount != 0 { + Err(io::Error::new(io::ErrorKind::Other, "RCT TX output wasn't 0"))?; + } + None + } else { + Some(amount) + }; + let view_tag = match read_byte(r)? { 2 => false, 3 => true, @@ -194,11 +207,25 @@ impl TransactionPrefix { } pub fn read(r: &mut R) -> io::Result { + let version = read_varint(r)?; + // TODO: Create an enum out of version + if (version == 0) || (version > 2) { + Err(io::Error::new(io::ErrorKind::Other, "unrecognized transaction version"))?; + } + + let timelock = Timelock::from_raw(read_varint(r)?); + + let inputs = read_vec(|r| Input::read(version == 2, r), r)?; + if inputs.is_empty() { + Err(io::Error::new(io::ErrorKind::Other, "transaction had no inputs"))?; + } + let is_miner_tx = matches!(inputs[0], Input::Gen { .. }); + let mut prefix = TransactionPrefix { - version: read_varint(r)?, - timelock: Timelock::from_raw(read_varint(r)?), - inputs: read_vec(Input::read, r)?, - outputs: read_vec(Output::read, r)?, + version, + timelock, + inputs, + outputs: read_vec(|r| Output::read((!is_miner_tx) && (version == 2), r), r)?, extra: vec![], }; prefix.extra = read_vec(read_byte, r)?; @@ -263,10 +290,10 @@ impl Transaction { .iter() .map(|input| match input { Input::Gen(..) => 0, - Input::ToKey { amount, .. } => *amount, + Input::ToKey { amount, .. } => amount.unwrap(), }) .sum::() - .saturating_sub(prefix.outputs.iter().map(|output| output.amount).sum()); + .saturating_sub(prefix.outputs.iter().map(|output| output.amount.unwrap()).sum()); } else if prefix.version == 2 { rct_signatures = RctSignatures::read( prefix diff --git a/coins/monero/src/wallet/scan.rs b/coins/monero/src/wallet/scan.rs index 89e9b5fb..5f217fda 100644 --- a/coins/monero/src/wallet/scan.rs +++ b/coins/monero/src/wallet/scan.rs @@ -375,8 +375,8 @@ impl Scanner { let mut commitment = Commitment::zero(); // Miner transaction - if output.amount != 0 { - commitment.amount = output.amount; + if let Some(amount) = output.amount { + commitment.amount = amount; // Regular transaction } else { let amount = match tx.rct_signatures.base.ecdh_info.get(o) { @@ -458,10 +458,10 @@ impl Scanner { tx.prefix .outputs .iter() - // Filter to miner TX outputs/0-amount outputs since we're tacking the 0-amount index - // This will fail to scan blocks containing pre-RingCT miner TXs + // Filter to v2 miner TX outputs/RCT outputs since we're tracking the RCT output index .filter(|output| { - matches!(tx.prefix.inputs.get(0), Some(Input::Gen(..))) || (output.amount == 0) + ((tx.prefix.version == 2) && matches!(tx.prefix.inputs.get(0), Some(Input::Gen(..)))) || + output.amount.is_none() }) .count(), ) diff --git a/coins/monero/src/wallet/send/mod.rs b/coins/monero/src/wallet/send/mod.rs index cecd897d..e722df2a 100644 --- a/coins/monero/src/wallet/send/mod.rs +++ b/coins/monero/src/wallet/send/mod.rs @@ -184,7 +184,7 @@ async fn prepare_inputs( )); tx.prefix.inputs.push(Input::ToKey { - amount: 0, + amount: None, key_offsets: decoys[i].offsets.clone(), key_image: signable[i].1, }); @@ -633,7 +633,7 @@ impl SignableTransaction { for output in &outputs { fee -= output.commitment.amount; tx_outputs.push(Output { - amount: 0, + amount: None, key: output.dest.compress(), view_tag: Some(output.view_tag).filter(|_| matches!(self.protocol, Protocol::v16)), }); @@ -691,7 +691,7 @@ impl SignableTransaction { uniqueness( &images .iter() - .map(|image| Input::ToKey { amount: 0, key_offsets: vec![], key_image: *image }) + .map(|image| Input::ToKey { amount: None, key_offsets: vec![], key_image: *image }) .collect::>(), ), ); @@ -750,7 +750,7 @@ impl Eventuality { for (o, (expected, actual)) in outputs.iter().zip(tx.prefix.outputs.iter()).enumerate() { // Verify the output, commitment, and encrypted amount. if (&Output { - amount: 0, + amount: None, key: expected.dest.compress(), view_tag: Some(expected.view_tag).filter(|_| matches!(self.protocol, Protocol::v16)), } != actual) || diff --git a/coins/monero/src/wallet/send/multisig.rs b/coins/monero/src/wallet/send/multisig.rs index bb249bc4..42c1073b 100644 --- a/coins/monero/src/wallet/send/multisig.rs +++ b/coins/monero/src/wallet/send/multisig.rs @@ -340,7 +340,7 @@ impl SignMachine for TransactionSignMachine { uniqueness( &sorted_images .iter() - .map(|image| Input::ToKey { amount: 0, key_offsets: vec![], key_image: *image }) + .map(|image| Input::ToKey { amount: None, key_offsets: vec![], key_image: *image }) .collect::>(), ), ) @@ -373,7 +373,7 @@ impl SignMachine for TransactionSignMachine { } tx.prefix.inputs.push(Input::ToKey { - amount: 0, + amount: None, key_offsets: value.2.offsets.clone(), key_image: value.0, }); From 6267acf3df876643b3ee7a267c7a8a934a5dae59 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 1 Jul 2023 08:53:46 -0400 Subject: [PATCH 15/20] Add a message queue This is intended to be a reliable transport between the processors and coordinator. Since it'll be intranet only, it's written as never fail. Primarily needs testing and a proper ID. --- Cargo.lock | 18 ++++ Cargo.toml | 2 + crypto/ciphersuite/Cargo.toml | 2 +- crypto/schnorr/Cargo.toml | 2 +- message-queue/Cargo.toml | 38 +++++++++ message-queue/LICENSE | 15 ++++ message-queue/README.md | 14 ++++ message-queue/src/lib.rs | 2 + message-queue/src/main.rs | 152 ++++++++++++++++++++++++++++++++++ message-queue/src/messages.rs | 40 +++++++++ message-queue/src/queue.rs | 57 +++++++++++++ 11 files changed, 340 insertions(+), 2 deletions(-) create mode 100644 message-queue/Cargo.toml create mode 100644 message-queue/LICENSE create mode 100644 message-queue/README.md create mode 100644 message-queue/src/lib.rs create mode 100644 message-queue/src/main.rs create mode 100644 message-queue/src/messages.rs create mode 100644 message-queue/src/queue.rs diff --git a/Cargo.lock b/Cargo.lock index fc7bd417..8e88fcbc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8653,6 +8653,24 @@ dependencies = [ name = "serai-db" version = "0.1.0" +[[package]] +name = "serai-message-queue" +version = "0.1.0" +dependencies = [ + "ciphersuite", + "flexible-transcript", + "hex", + "jsonrpsee", + "lazy_static", + "log", + "schnorr-signatures", + "serai-db", + "serai-primitives", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "serai-no-std" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 614426d2..8b859d90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,8 @@ members = [ "coins/monero/generators", "coins/monero", + "message-queue", + "processor/messages", "processor", diff --git a/crypto/ciphersuite/Cargo.toml b/crypto/ciphersuite/Cargo.toml index 538e1fa0..d6dfdbfe 100644 --- a/crypto/ciphersuite/Cargo.toml +++ b/crypto/ciphersuite/Cargo.toml @@ -45,7 +45,7 @@ ff-group-tests = { version = "0.13", path = "../ff-group-tests" } [features] alloc = ["std-shims"] -std = ["std-shims/std"] +std = ["zeroize/std", "std-shims/std"] dalek = ["sha2", "dalek-ff-group"] ed25519 = ["dalek"] diff --git a/crypto/schnorr/Cargo.toml b/crypto/schnorr/Cargo.toml index 06d34158..f687ad5a 100644 --- a/crypto/schnorr/Cargo.toml +++ b/crypto/schnorr/Cargo.toml @@ -35,5 +35,5 @@ dalek-ff-group = { path = "../dalek-ff-group", version = "0.3" } ciphersuite = { path = "../ciphersuite", version = "0.3", features = ["ed25519"] } [features] -std = ["std-shims/std", "ciphersuite/std"] +std = ["std-shims/std", "ciphersuite/std", "multiexp/std"] default = ["std"] diff --git a/message-queue/Cargo.toml b/message-queue/Cargo.toml new file mode 100644 index 00000000..cadefb37 --- /dev/null +++ b/message-queue/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "serai-message-queue" +version = "0.1.0" +description = "A message queue focused on safety" +license = "AGPL-3.0-only" +repository = "https://github.com/serai-dex/serai/tree/develop/message-log" +authors = ["Luke Parker "] +keywords = [] +edition = "2021" +publish = false + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] + +[dependencies] +# Macros +lazy_static = "1" +serde = { version = "1", features = ["derive"] } + +# Encoders +hex = "0.4" +serde_json = "1" + +# Cryptography +transcript = { package = "flexible-transcript", path = "../crypto/transcript", features = ["recommended"] } +ciphersuite = { path = "../crypto/ciphersuite", features = ["ristretto"] } +schnorr-signatures = { path = "../crypto/schnorr" } + +# Application +log = "0.4" +tokio = { version = "1", features = ["full"] } + +serai-db = { path = "../common/db" } + +serai-primitives = { path = "../substrate/primitives" } + +jsonrpsee = { version = "0.16", features = ["server"] } diff --git a/message-queue/LICENSE b/message-queue/LICENSE new file mode 100644 index 00000000..f684d027 --- /dev/null +++ b/message-queue/LICENSE @@ -0,0 +1,15 @@ +AGPL-3.0-only license + +Copyright (c) 2023 Luke Parker + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License Version 3 as +published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . diff --git a/message-queue/README.md b/message-queue/README.md new file mode 100644 index 00000000..7f4b02e5 --- /dev/null +++ b/message-queue/README.md @@ -0,0 +1,14 @@ +# Message Log + +A message log for various services to communicate over. + +Each message is checked to be of the claimed origin. Then, it's added to the +recipient's message queue. This queue is sequentially handled, FIFO, only +dropping messages once the recipient acknowledges it's been handled. + +A client which publishes an event specifies its own ID for the publication. If +multiple publications with the same ID occur, they are assumed repeats and +dropped. + +This library always panics as its error-cases should be unreachable, given its +intranet status. diff --git a/message-queue/src/lib.rs b/message-queue/src/lib.rs new file mode 100644 index 00000000..8bcb12a2 --- /dev/null +++ b/message-queue/src/lib.rs @@ -0,0 +1,2 @@ +mod messages; +pub use messages::*; diff --git a/message-queue/src/main.rs b/message-queue/src/main.rs new file mode 100644 index 00000000..a94fc5d2 --- /dev/null +++ b/message-queue/src/main.rs @@ -0,0 +1,152 @@ +use std::{ + sync::{Arc, RwLock}, + collections::HashMap, +}; + +use ciphersuite::{group::GroupEncoding, Ciphersuite, Ristretto}; +use schnorr_signatures::SchnorrSignature; + +use serai_primitives::NetworkId; + +use jsonrpsee::{RpcModule, server::ServerBuilder}; + +mod messages; +use messages::*; + +mod queue; +use queue::Queue; + +lazy_static::lazy_static! { + static ref KEYS: Arc::G>>> = + Arc::new(RwLock::new(HashMap::new())); + static ref QUEUES: Arc>>>> = + Arc::new(RwLock::new(HashMap::new())); +} + +// queue RPC method +fn queue_message(meta: Metadata, msg: Vec, sig: SchnorrSignature) { + { + let from = (*KEYS).read().unwrap()[&meta.from]; + assert!(sig.verify(from, message_challenge(from, &msg, sig.R))); + } + + // Assert one, and only one of these, is the coordinator + assert!(matches!(meta.from, Service::Coordinator) ^ matches!(meta.to, Service::Coordinator)); + + // TODO: Verify the from_id hasn't been prior seen + + // Queue it + (*QUEUES).read().unwrap()[&meta.to].write().unwrap().queue_message(QueuedMessage { + from: meta.from, + msg, + sig: sig.serialize(), + }); +} + +// get RPC method +fn get_next_message( + service: Service, + _expected: u64, + _signature: SchnorrSignature, +) -> Option { + // TODO: Verify the signature + + // TODO: Verify the expected next message ID matches + + let queue_outer = (*QUEUES).read().unwrap(); + let queue = queue_outer[&service].read().unwrap(); + let next = queue.last_acknowledged().map(|i| i + 1).unwrap_or(0); + queue.get_message(next) +} + +// ack RPC method +fn ack_message(service: Service, id: u64, _signature: SchnorrSignature) { + // TODO: Verify the signature + + // Is it: + // The acknowledged message should be > last acknowledged OR + // The acknowledged message should be >= + // It's the first if we save messages as acknowledged before acknowledging them + // It's the second if we acknowledge messages before saving them as acknowledged + // TODO: Check only a proper message is being acked + + (*QUEUES).read().unwrap()[&service].write().unwrap().ack_message(id) +} + +#[tokio::main] +async fn main() { + // Open the DB + // TODO + let db = serai_db::MemDb::new(); + + let read_key = |str| { + let Ok(key) = std::env::var(str) else { None? }; + + let mut repr = <::G as GroupEncoding>::Repr::default(); + repr.as_mut().copy_from_slice(&hex::decode(key).unwrap()); + Some(::G::from_bytes(&repr).unwrap()) + }; + + let register_service = |service, key| { + (*KEYS).write().unwrap().insert(service, key); + (*QUEUES).write().unwrap().insert(service, RwLock::new(Queue(db.clone(), service))); + }; + + // Make queues for each NetworkId, other than Serai + for network in [NetworkId::Bitcoin, NetworkId::Ethereum, NetworkId::Monero] { + // Use a match so we error if the list of NetworkIds changes + let Some(key) = read_key(match network { + NetworkId::Serai => unreachable!(), + NetworkId::Bitcoin => "BITCOIN_KEY", + NetworkId::Ethereum => "ETHEREUM_KEY", + NetworkId::Monero => "MONERO_KEY", + }) else { continue }; + + register_service(Service::Processor(network), key); + } + + // And the coordinator's + register_service(Service::Coordinator, read_key("COORDINATOR_KEY").unwrap()); + + // Start server + let builder = ServerBuilder::new(); + // TODO: Set max request/response size + let listen_on: &[std::net::SocketAddr] = &["0.0.0.0".parse().unwrap()]; + let server = builder.build(listen_on).await.unwrap(); + + let mut module = RpcModule::new(()); + module + .register_method("queue", |args, _| { + let args = args.parse::<(Metadata, Vec, Vec)>().unwrap(); + queue_message( + args.0, + args.1, + SchnorrSignature::::read(&mut args.2.as_slice()).unwrap(), + ); + Ok(()) + }) + .unwrap(); + module + .register_method("next", |args, _| { + let args = args.parse::<(Service, u64, Vec)>().unwrap(); + get_next_message( + args.0, + args.1, + SchnorrSignature::::read(&mut args.2.as_slice()).unwrap(), + ); + Ok(()) + }) + .unwrap(); + module + .register_method("ack", |args, _| { + let args = args.parse::<(Service, u64, Vec)>().unwrap(); + ack_message( + args.0, + args.1, + SchnorrSignature::::read(&mut args.2.as_slice()).unwrap(), + ); + Ok(()) + }) + .unwrap(); + server.start(module).unwrap(); +} diff --git a/message-queue/src/messages.rs b/message-queue/src/messages.rs new file mode 100644 index 00000000..87bb54c1 --- /dev/null +++ b/message-queue/src/messages.rs @@ -0,0 +1,40 @@ +use transcript::{Transcript, RecommendedTranscript}; +use ciphersuite::{group::GroupEncoding, Ciphersuite, Ristretto}; + +use serde::{Serialize, Deserialize}; + +use serai_primitives::NetworkId; + +#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Serialize, Deserialize)] +pub enum Service { + Processor(NetworkId), + Coordinator, +} + +#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)] +pub struct QueuedMessage { + pub from: Service, + pub msg: Vec, + pub sig: Vec, +} + +#[derive(Clone, Copy, PartialEq, Eq, Debug, Serialize, Deserialize)] +pub struct Metadata { + pub from: Service, + pub to: Service, + pub from_id: u64, +} + +pub fn message_challenge( + from: ::G, + msg: &[u8], + nonce: ::G, +) -> ::F { + let mut transcript = RecommendedTranscript::new(b"Serai Message Queue v0.1"); + transcript.domain_separate(b"message"); + transcript.append_message(b"from", from.to_bytes()); + transcript.append_message(b"msg", msg); + transcript.domain_separate(b"signature"); + transcript.append_message(b"nonce", nonce.to_bytes()); + ::hash_to_F(b"challenge", &transcript.challenge(b"challenge")) +} diff --git a/message-queue/src/queue.rs b/message-queue/src/queue.rs new file mode 100644 index 00000000..76599446 --- /dev/null +++ b/message-queue/src/queue.rs @@ -0,0 +1,57 @@ +use serai_db::{DbTxn, Db}; + +use crate::messages::*; + +#[derive(Clone, Debug)] +pub(crate) struct Queue(pub(crate) D, pub(crate) Service); +impl Queue { + fn key(domain: &'static [u8], key: impl AsRef<[u8]>) -> Vec { + [&[u8::try_from(domain.len()).unwrap()], domain, key.as_ref()].concat() + } + + fn message_count_key(&self) -> Vec { + Self::key(b"message_count", serde_json::to_vec(&self.1).unwrap()) + } + pub(crate) fn message_count(&self) -> u64 { + self + .0 + .get(self.message_count_key()) + .map(|bytes| u64::from_le_bytes(bytes.try_into().unwrap())) + .unwrap_or(0) + } + + fn last_acknowledged_key(&self) -> Vec { + Self::key(b"last_acknowledged", serde_json::to_vec(&self.1).unwrap()) + } + pub(crate) fn last_acknowledged(&self) -> Option { + self + .0 + .get(self.last_acknowledged_key()) + .map(|bytes| u64::from_le_bytes(bytes.try_into().unwrap())) + } + + fn message_key(&self, id: u64) -> Vec { + Self::key(b"message", serde_json::to_vec(&(self.1, id)).unwrap()) + } + pub(crate) fn queue_message(&mut self, msg: QueuedMessage) { + let id = self.message_count(); + let msg_key = self.message_key(id); + let msg_count_key = self.message_count_key(); + + let mut txn = self.0.txn(); + txn.put(msg_key, serde_json::to_vec(&msg).unwrap()); + txn.put(msg_count_key, (id + 1).to_le_bytes()); + txn.commit(); + } + + pub(crate) fn get_message(&self, id: u64) -> Option { + self.0.get(self.message_key(id)).map(|bytes| serde_json::from_slice(&bytes).unwrap()) + } + + pub(crate) fn ack_message(&mut self, id: u64) { + let ack_key = self.last_acknowledged_key(); + let mut txn = self.0.txn(); + txn.put(ack_key, id.to_le_bytes()); + txn.commit(); + } +} From acf2469dd84e1804b15770cc90438df506bc95ec Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sat, 1 Jul 2023 20:27:03 -0400 Subject: [PATCH 16/20] cargo update Resolves https://github.com/serai-dex/serai/security/dependabot/29 --- Cargo.lock | 411 ++++++++++++++++++++++++++--------------------------- 1 file changed, 204 insertions(+), 207 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8e88fcbc..ad89271f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,6 +21,15 @@ dependencies = [ "gimli", ] +[[package]] +name = "addr2line" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -398,7 +407,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.20", + "rustix 0.37.21", "slab", "socket2 0.4.9", "waker-fn", @@ -454,17 +463,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_impl" version = "1.1.0" @@ -485,16 +483,16 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ - "addr2line", + "addr2line 0.20.0", "cc", "cfg-if", "libc", - "miniz_oxide 0.6.2", - "object", + "miniz_oxide", + "object 0.31.1", "rustc-demangle", ] @@ -1105,9 +1103,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.9" +version = "4.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bba77a07e4489fb41bd90e8d4201c3eb246b3c2c9ea2ba0bddd6c1d1df87db7d" +checksum = "384e169cc618c613d5e3ca6404dda77a8685a63e08660dcc64abaf7da7cb0c7a" dependencies = [ "clap_builder", "clap_derive", @@ -1116,13 +1114,12 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.3.9" +version = "4.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9b4a88bb4bc35d3d6f65a21b0f0bafe9c894fa00978de242c555ec28bea1c0" +checksum = "ef137bbe35aab78bdb468ccfba75a5f4d8321ae011d34063770780545176af2d" dependencies = [ "anstream", "anstyle", - "bitflags 1.3.2", "clap_lex", "strsim", ] @@ -1239,9 +1236,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +checksum = "6340df57935414636969091153f35f68d9f00bbc8fb4a9c6054706c213e6c6bc" [[package]] name = "constant_time_eq" @@ -1744,9 +1741,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56acb310e15652100da43d130af8d97b509e95af61aab1c5a7939ef24337ee17" +checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" dependencies = [ "const-oid", "zeroize", @@ -2057,7 +2054,7 @@ version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" dependencies = [ - "der 0.7.6", + "der 0.7.7", "digest 0.10.7", "elliptic-curve 0.13.5", "rfc6979 0.4.0", @@ -2753,7 +2750,7 @@ checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.7.1", + "miniz_oxide", ] [[package]] @@ -2802,7 +2799,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", ] @@ -2825,7 +2822,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-support-procedural", @@ -2850,7 +2847,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "Inflector", "array-bytes", @@ -2897,7 +2894,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-system", @@ -2925,7 +2922,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "bitflags 1.3.2", "environmental", @@ -2959,7 +2956,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "Inflector", "cfg-expr", @@ -2975,7 +2972,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2987,7 +2984,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "proc-macro2", "quote", @@ -2997,7 +2994,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "cfg-if", "frame-support", @@ -3016,7 +3013,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "sp-api", @@ -3058,7 +3055,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7672706608ecb74ab2e055c68327ffc25ae4cac1e12349204fd5fb0f3487cce2" dependencies = [ - "rustix 0.37.20", + "rustix 0.37.21", "windows-sys 0.48.0", ] @@ -3442,24 +3439,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - [[package]] name = "hermit-abi" version = "0.3.1" @@ -3899,7 +3878,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi", "libc", "windows-sys 0.48.0", ] @@ -3930,13 +3909,12 @@ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-terminal" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix 0.37.20", + "hermit-abi", + "rustix 0.38.1", "windows-sys 0.48.0", ] @@ -4361,7 +4339,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "lru 0.10.0", + "lru 0.10.1", "quick-protobuf", "quick-protobuf-codec", "smallvec", @@ -4791,6 +4769,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +[[package]] +name = "linux-raw-sys" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" + [[package]] name = "lock_api" version = "0.4.10" @@ -4818,9 +4802,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" dependencies = [ "hashbrown 0.13.2", ] @@ -4915,7 +4899,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.37.20", + "rustix 0.37.21", ] [[package]] @@ -5009,15 +4993,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -5504,11 +5479,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi", "libc", ] @@ -5545,6 +5520,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +dependencies = [ + "memchr", +] + [[package]] name = "oid-registry" version = "0.4.0" @@ -5699,7 +5683,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5714,7 +5698,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-system", @@ -5730,7 +5714,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-system", @@ -5744,7 +5728,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5768,7 +5752,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5783,7 +5767,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5806,7 +5790,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-system", @@ -5827,7 +5811,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5845,7 +5829,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-support", "frame-system", @@ -5861,7 +5845,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5877,7 +5861,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5908,9 +5892,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.1" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2287753623c76f953acd29d15d8100bcab84d29db78fb6f352adb3c53e83b967" +checksum = "d7467bc45fea3d77e829a4df331b9e969e2ec6a4dcd4e126e660f8509b40a475" dependencies = [ "arrayvec", "bitvec 1.0.1", @@ -5923,9 +5907,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.1" +version = "3.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b6937b5e67bfba3351b87b040d48352a2fcb6ad72f81855412ce97b45c8f110" +checksum = "2c9de611934c78014c455793552d0bf7d65a58211179c49996fde925aa667c38" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6212,18 +6196,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +checksum = "6e138fdd8263907a2b0e1b4e80b7e58c721126479b6e6eedfb1b402acea7b9bd" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +checksum = "d1fef411b303e3e12d534fb6e7852de82da56edd937d895125821fb7c09436c7" dependencies = [ "proc-macro2", "quote", @@ -6264,7 +6248,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.6", + "der 0.7.7", "spki 0.7.2", ] @@ -6677,9 +6661,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.28" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" dependencies = [ "proc-macro2", ] @@ -7175,9 +7159,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.20" +version = "0.37.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" +checksum = "62f25693a73057a1b4cb56179dd3c7ea21a7c6c5ee7d85781f5749b46f34b79c" dependencies = [ "bitflags 1.3.2", "errno", @@ -7187,6 +7171,19 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "rustix" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc6396159432b5c8490d4e301d8c705f61860b8b6c863bf79942ce5401968f3" +dependencies = [ + "bitflags 2.3.3", + "errno", + "libc", + "linux-raw-sys 0.4.3", + "windows-sys 0.48.0", +] + [[package]] name = "rustls" version = "0.19.1" @@ -7308,7 +7305,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "log", "sp-core", @@ -7319,7 +7316,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -7348,7 +7345,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "futures-timer", @@ -7371,7 +7368,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7386,7 +7383,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -7405,7 +7402,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7416,7 +7413,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "chrono", @@ -7456,7 +7453,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "fnv", "futures", @@ -7483,7 +7480,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "hash-db", "kvdb", @@ -7509,7 +7506,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -7534,7 +7531,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "fork-tree", @@ -7569,7 +7566,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7582,7 +7579,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "ahash 0.8.3", "array-bytes", @@ -7622,7 +7619,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -7645,7 +7642,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "lru 0.9.0", "parity-scale-codec", @@ -7667,7 +7664,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -7679,7 +7676,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "anyhow", "cfg-if", @@ -7697,7 +7694,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "anstyle", "futures", @@ -7713,7 +7710,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -7727,7 +7724,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "async-channel", @@ -7768,7 +7765,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-channel", "cid", @@ -7789,7 +7786,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "async-trait", @@ -7812,7 +7809,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "ahash 0.8.3", "futures", @@ -7831,7 +7828,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "async-channel", @@ -7854,7 +7851,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "async-channel", @@ -7889,7 +7886,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "futures", @@ -7909,7 +7906,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "bytes", @@ -7940,7 +7937,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "libp2p-identity", @@ -7956,7 +7953,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7965,7 +7962,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "jsonrpsee", @@ -7996,7 +7993,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8015,7 +8012,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "http", "jsonrpsee", @@ -8030,7 +8027,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "futures", @@ -8056,7 +8053,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "directories", @@ -8122,7 +8119,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "log", "parity-scale-codec", @@ -8133,7 +8130,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "clap", "fs4", @@ -8149,7 +8146,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "libc", @@ -8168,7 +8165,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "chrono", "futures", @@ -8187,11 +8184,11 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "anstyle", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", @@ -8218,7 +8215,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8229,7 +8226,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -8256,7 +8253,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -8270,7 +8267,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-channel", "futures", @@ -8532,7 +8529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" dependencies = [ "base16ct 0.2.0", - "der 0.7.6", + "der 0.7.7", "generic-array", "pkcs8 0.10.2", "subtle", @@ -9069,7 +9066,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "hash-db", "log", @@ -9089,7 +9086,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "Inflector", "blake2", @@ -9103,7 +9100,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9116,7 +9113,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "integer-sqrt", "num-traits", @@ -9130,7 +9127,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9143,7 +9140,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "sp-api", @@ -9155,7 +9152,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "log", @@ -9173,7 +9170,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures", @@ -9188,7 +9185,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "parity-scale-codec", @@ -9209,7 +9206,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "finality-grandpa", "log", @@ -9227,7 +9224,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9239,7 +9236,7 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "array-bytes", "bitflags 1.3.2", @@ -9283,7 +9280,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "blake2b_simd", "byteorder", @@ -9312,7 +9309,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "proc-macro2", "quote", @@ -9323,7 +9320,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9332,7 +9329,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "proc-macro2", "quote", @@ -9342,7 +9339,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "environmental", "parity-scale-codec", @@ -9353,7 +9350,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9368,7 +9365,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "bytes", "ed25519", @@ -9394,7 +9391,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "lazy_static", "sp-core", @@ -9405,7 +9402,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "futures", "parity-scale-codec", @@ -9418,7 +9415,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -9427,7 +9424,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -9438,7 +9435,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "sp-api", "sp-core", @@ -9448,7 +9445,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "backtrace", "lazy_static", @@ -9458,7 +9455,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "rustc-hash", "serde", @@ -9468,7 +9465,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "either", "hash256-std-hasher", @@ -9490,7 +9487,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -9508,7 +9505,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "Inflector", "proc-macro-crate", @@ -9520,7 +9517,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9534,7 +9531,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9547,7 +9544,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "hash-db", "log", @@ -9567,7 +9564,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "log", "parity-scale-codec", @@ -9585,7 +9582,7 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" [[package]] name = "sp-std" @@ -9596,7 +9593,7 @@ checksum = "1de8eef39962b5b97478719c493bed2926cf70cb621005bbf68ebe58252ff986" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9609,7 +9606,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "futures-timer", @@ -9624,7 +9621,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "sp-std 5.0.0", @@ -9636,7 +9633,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "sp-api", "sp-runtime", @@ -9645,7 +9642,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "async-trait", "log", @@ -9661,7 +9658,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "ahash 0.8.3", "hash-db", @@ -9684,7 +9681,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9701,7 +9698,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9712,7 +9709,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -9726,7 +9723,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "parity-scale-codec", "scale-info", @@ -9770,7 +9767,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der 0.7.6", + "der 0.7.7", ] [[package]] @@ -9911,7 +9908,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "platforms", ] @@ -9919,7 +9916,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -9938,7 +9935,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "hyper", "log", @@ -9950,7 +9947,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/serai-dex/substrate#dee9807d68193c1244fdfbe439059078e0ecd1ef" +source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290f43c169d709dd" dependencies = [ "anstyle", "build-helper", @@ -10160,7 +10157,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.20", + "rustix 0.37.21", "windows-sys 0.48.0", ] @@ -10375,9 +10372,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.29.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374442f06ee49c3a28a8fc9f01a2596fed7559c6b99b31279c3261778e77d84f" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg", "backtrace", @@ -11209,7 +11206,7 @@ dependencies = [ "indexmap 1.9.3", "libc", "log", - "object", + "object 0.30.4", "once_cell", "paste", "psm", @@ -11268,7 +11265,7 @@ dependencies = [ "cranelift-wasm", "gimli", "log", - "object", + "object 0.30.4", "target-lexicon", "thiserror", "wasmparser", @@ -11286,7 +11283,7 @@ dependencies = [ "cranelift-codegen", "cranelift-native", "gimli", - "object", + "object 0.30.4", "target-lexicon", "wasmtime-environ", ] @@ -11302,7 +11299,7 @@ dependencies = [ "gimli", "indexmap 1.9.3", "log", - "object", + "object 0.30.4", "serde", "target-lexicon", "thiserror", @@ -11316,14 +11313,14 @@ version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ - "addr2line", + "addr2line 0.19.0", "anyhow", "bincode", "cfg-if", "cpp_demangle", "gimli", "log", - "object", + "object 0.30.4", "rustc-demangle", "serde", "target-lexicon", @@ -11340,7 +11337,7 @@ version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ - "object", + "object 0.30.4", "once_cell", "rustix 0.36.14", ] From c7b232949a14198b309aead584a74cdaa9622139 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Mon, 3 Jul 2023 07:09:35 -0400 Subject: [PATCH 17/20] Correct deny.toml with inclusion of message-queue --- deny.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deny.toml b/deny.toml index d2cd61da..61d2154f 100644 --- a/deny.toml +++ b/deny.toml @@ -45,6 +45,8 @@ default = "deny" exceptions = [ { allow = ["AGPL-3.0"], name = "ethereum-serai" }, + { allow = ["AGPL-3.0"], name = "message-queue" }, + { allow = ["AGPL-3.0"], name = "processor-messages" }, { allow = ["AGPL-3.0"], name = "processor" }, From d928b787f734b8ca56b25d58d0358243641fa7c2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Sat, 1 Jul 2023 01:56:28 +0000 Subject: [PATCH 18/20] Update nightly --- .github/nightly-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/nightly-version b/.github/nightly-version index df18b6ae..a658497f 100644 --- a/.github/nightly-version +++ b/.github/nightly-version @@ -1 +1 @@ -nightly-2023-06-01 +nightly-2023-07-01 From 30834fe4d267fa799054d62353e41d0ef720348a Mon Sep 17 00:00:00 2001 From: Boog900 <54e72d8a-345f-4599-bd90-c6b9bc7d0ec5@aleeas.com> Date: Mon, 3 Jul 2023 00:35:31 +0100 Subject: [PATCH 19/20] std-shims: six `Read` for &[u8] --- common/std-shims/src/io.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/std-shims/src/io.rs b/common/std-shims/src/io.rs index ef98d1eb..4d33f135 100644 --- a/common/std-shims/src/io.rs +++ b/common/std-shims/src/io.rs @@ -53,7 +53,7 @@ mod shims { impl Read for &[u8] { fn read(&mut self, buf: &mut [u8]) -> Result { - let mut read = 0; + let mut read = buf.len(); if self.len() < buf.len() { read = self.len(); } From d49c636f0fff85b10fef37fd6d8cf86ef9f325b9 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Mon, 3 Jul 2023 08:09:41 -0400 Subject: [PATCH 20/20] Use serai- prefixes on Serai-specific packages Fixes deny.toml, also runs a minor cargo update shrinking the tree. --- Cargo.lock | 576 ++++++++++-------- coordinator/Cargo.toml | 4 +- deny.toml | 14 +- processor/Cargo.toml | 7 +- processor/messages/Cargo.toml | 8 +- substrate/in-instructions/pallet/Cargo.toml | 8 +- .../in-instructions/primitives/Cargo.toml | 4 +- substrate/runtime/Cargo.toml | 8 +- substrate/tokens/pallet/Cargo.toml | 4 +- substrate/tokens/primitives/Cargo.toml | 2 +- substrate/validator-sets/pallet/Cargo.toml | 4 +- .../validator-sets/primitives/Cargo.toml | 2 +- 12 files changed, 347 insertions(+), 294 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ad89271f..7841935d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -407,7 +407,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.21", + "rustix 0.37.22", "slab", "socket2 0.4.9", "waker-fn", @@ -424,13 +424,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "7b2d0f03b3640e3a630367e40c468cb7f309529c708ed1d88597047b0e7c6ef7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -454,7 +454,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", ] [[package]] @@ -603,7 +603,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -1133,7 +1133,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -1252,32 +1252,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" -[[package]] -name = "coordinator" -version = "0.1.0" -dependencies = [ - "async-trait", - "blake2", - "ciphersuite", - "flexible-transcript", - "futures", - "hex", - "lazy_static", - "log", - "modular-frost", - "parity-scale-codec", - "processor-messages", - "rand_core 0.6.4", - "schnorr-signatures", - "schnorrkel", - "serai-client", - "serai-db", - "sp-application-crypto", - "tokio", - "tributary-chain", - "zeroize", -] - [[package]] name = "core-foundation" version = "0.9.3" @@ -1630,7 +1604,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -1647,7 +1621,7 @@ checksum = "a26acccf6f445af85ea056362561a24ef56cdc15fcc685f03aec50b9c702cb6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -1946,7 +1920,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -1999,9 +1973,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" +checksum = "c904bbebf8a5ecde84d81e5d3e5fe085104462a4bec7888608a4b408b117fecf" [[package]] name = "dunce" @@ -2393,7 +2367,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.22", + "syn 2.0.23", "toml 0.7.5", "walkdir", ] @@ -2411,7 +2385,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -2437,7 +2411,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.22", + "syn 2.0.23", "tempfile", "thiserror", "tiny-keccak", @@ -2966,7 +2940,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -2978,7 +2952,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -2988,7 +2962,7 @@ source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290 dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -3055,7 +3029,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7672706608ecb74ab2e055c68327ffc25ae4cac1e12349204fd5fb0f3487cce2" dependencies = [ - "rustix 0.37.21", + "rustix 0.37.22", "windows-sys 0.48.0", ] @@ -3125,7 +3099,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "waker-fn", ] @@ -3147,7 +3121,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -3196,7 +3170,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "pin-utils", "slab", ] @@ -3305,6 +3279,26 @@ dependencies = [ "regex", ] +[[package]] +name = "gloo-net" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "gloo-timers" version = "0.2.6" @@ -3317,6 +3311,19 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-utils" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "group" version = "0.12.1" @@ -3557,7 +3564,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", ] [[package]] @@ -3600,7 +3607,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "socket2 0.4.9", "tokio", "tower-service", @@ -3767,38 +3774,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "in-instructions-pallet" -version = "0.1.0" -dependencies = [ - "frame-support", - "frame-system", - "in-instructions-primitives", - "parity-scale-codec", - "scale-info", - "serai-primitives", - "sp-application-crypto", - "sp-runtime", - "thiserror", - "tokens-pallet", - "validator-sets-pallet", -] - -[[package]] -name = "in-instructions-primitives" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serai-primitives", - "serde", - "sp-application-crypto", - "sp-runtime", - "sp-std 5.0.0", - "tokens-primitives", - "zeroize", -] - [[package]] name = "indenter" version = "0.3.3" @@ -3914,7 +3889,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb" dependencies = [ "hermit-abi", - "rustix 0.38.1", + "rustix 0.38.2", "windows-sys 0.48.0", ] @@ -3929,9 +3904,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "c0aa48fab2893d8a49caa94082ae8488f4e1050d73b367881dcd2198f4199fd8" [[package]] name = "jobserver" @@ -3978,6 +3953,8 @@ dependencies = [ "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", "tracing", ] @@ -3987,7 +3964,11 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" dependencies = [ + "anyhow", + "futures-channel", + "futures-timer", "futures-util", + "gloo-net", "http", "jsonrpsee-core", "jsonrpsee-types", @@ -4028,6 +4009,7 @@ dependencies = [ "thiserror", "tokio", "tracing", + "wasm-bindgen-futures", ] [[package]] @@ -4098,6 +4080,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-wasm-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77310456f43c6c89bcba1f6b2fc2a28300da7c341f320f5128f8c83cc63232d" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + [[package]] name = "k256" version = "0.13.1" @@ -4899,7 +4904,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.37.21", + "rustix 0.37.22", ] [[package]] @@ -5505,7 +5510,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -5607,7 +5612,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -5892,9 +5897,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.2" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7467bc45fea3d77e829a4df331b9e969e2ec6a4dcd4e126e660f8509b40a475" +checksum = "756d439303e94fae44f288ba881ad29670c65b0c4b0e05674ca81061bb65f2c5" dependencies = [ "arrayvec", "bitvec 1.0.1", @@ -5907,9 +5912,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.2" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9de611934c78014c455793552d0bf7d65a58211179c49996fde925aa667c38" +checksum = "9d884d78fcf214d70b1e239fcd1c6e5e95aa3be1881918da2e488cc946c7a476" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6109,7 +6114,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6173,7 +6178,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6196,22 +6201,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e138fdd8263907a2b0e1b4e80b7e58c721126479b6e6eedfb1b402acea7b9bd" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1fef411b303e3e12d534fb6e7852de82da56edd937d895125821fb7c09436c7" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6222,9 +6227,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" [[package]] name = "pin-utils" @@ -6276,7 +6281,7 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "windows-sys 0.48.0", ] @@ -6374,7 +6379,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" dependencies = [ "proc-macro2", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6442,7 +6447,7 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6454,54 +6459,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "processor" -version = "0.1.0" -dependencies = [ - "async-trait", - "bincode", - "bitcoin-serai", - "dalek-ff-group", - "env_logger", - "flexible-transcript", - "frost-schnorrkel", - "futures", - "group 0.13.0", - "hex", - "k256", - "lazy_static", - "log", - "modular-frost", - "monero-serai", - "parity-scale-codec", - "processor-messages", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "secp256k1", - "serai-client", - "serai-db", - "serde", - "serde_json", - "sp-application-crypto", - "thiserror", - "tokio", - "zeroize", -] - -[[package]] -name = "processor-messages" -version = "0.1.0" -dependencies = [ - "bincode", - "dkg", - "in-instructions-primitives", - "serai-primitives", - "serde", - "tokens-primitives", - "validator-sets-primitives", - "zeroize", -] - [[package]] name = "prometheus" version = "0.13.3" @@ -6869,7 +6826,7 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -6940,7 +6897,7 @@ dependencies = [ "native-tls", "once_cell", "percent-encoding", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "rustls 0.21.2", "rustls-pemfile", "serde", @@ -7159,9 +7116,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.21" +version = "0.37.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25693a73057a1b4cb56179dd3c7ea21a7c6c5ee7d85781f5749b46f34b79c" +checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c" dependencies = [ "bitflags 1.3.2", "errno", @@ -7173,9 +7130,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc6396159432b5c8490d4e301d8c705f61860b8b6c863bf79942ce5401968f3" +checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4" dependencies = [ "bitflags 2.3.3", "errno", @@ -7407,7 +7364,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -8220,7 +8177,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -8390,11 +8347,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -8646,10 +8603,68 @@ dependencies = [ "zeroize", ] +[[package]] +name = "serai-coordinator" +version = "0.1.0" +dependencies = [ + "async-trait", + "blake2", + "ciphersuite", + "flexible-transcript", + "futures", + "hex", + "lazy_static", + "log", + "modular-frost", + "parity-scale-codec", + "rand_core 0.6.4", + "schnorr-signatures", + "schnorrkel", + "serai-client", + "serai-db", + "serai-processor-messages", + "sp-application-crypto", + "tokio", + "tributary-chain", + "zeroize", +] + [[package]] name = "serai-db" version = "0.1.0" +[[package]] +name = "serai-in-instructions-pallet" +version = "0.1.0" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serai-in-instructions-primitives", + "serai-primitives", + "serai-tokens-pallet", + "serai-validator-sets-pallet", + "sp-application-crypto", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "serai-in-instructions-primitives" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serai-primitives", + "serai-tokens-primitives", + "serde", + "sp-application-crypto", + "sp-runtime", + "sp-std 5.0.0", + "zeroize", +] + [[package]] name = "serai-message-queue" version = "0.1.0" @@ -8737,6 +8752,56 @@ dependencies = [ "zeroize", ] +[[package]] +name = "serai-processor" +version = "0.1.0" +dependencies = [ + "async-trait", + "bincode", + "bitcoin-serai", + "dalek-ff-group", + "env_logger", + "flexible-transcript", + "frost-schnorrkel", + "futures", + "group 0.13.0", + "hex", + "jsonrpsee", + "k256", + "lazy_static", + "log", + "modular-frost", + "monero-serai", + "parity-scale-codec", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "secp256k1", + "serai-client", + "serai-db", + "serai-message-queue", + "serai-processor-messages", + "serde", + "serde_json", + "sp-application-crypto", + "thiserror", + "tokio", + "zeroize", +] + +[[package]] +name = "serai-processor-messages" +version = "0.1.0" +dependencies = [ + "bincode", + "dkg", + "serai-in-instructions-primitives", + "serai-primitives", + "serai-tokens-primitives", + "serai-validator-sets-primitives", + "serde", + "zeroize", +] + [[package]] name = "serai-runtime" version = "0.1.0" @@ -8746,7 +8811,6 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "in-instructions-pallet", "pallet-assets", "pallet-authority-discovery", "pallet-babe", @@ -8758,7 +8822,10 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "scale-info", + "serai-in-instructions-pallet", "serai-primitives", + "serai-tokens-pallet", + "serai-validator-sets-pallet", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -8773,15 +8840,69 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", - "tokens-pallet", - "validator-sets-pallet", +] + +[[package]] +name = "serai-tokens-pallet" +version = "0.1.0" +dependencies = [ + "frame-support", + "frame-system", + "pallet-assets", + "parity-scale-codec", + "scale-info", + "serai-primitives", + "serai-tokens-primitives", +] + +[[package]] +name = "serai-tokens-primitives" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serai-primitives", + "serde", + "sp-runtime", + "zeroize", +] + +[[package]] +name = "serai-validator-sets-pallet" +version = "0.1.0" +dependencies = [ + "frame-support", + "frame-system", + "hashbrown 0.13.2", + "parity-scale-codec", + "scale-info", + "serai-primitives", + "serai-validator-sets-primitives", + "sp-application-crypto", + "sp-core", + "sp-std 5.0.0", +] + +[[package]] +name = "serai-validator-sets-primitives" +version = "0.1.0" +dependencies = [ + "ciphersuite", + "dkg", + "parity-scale-codec", + "scale-info", + "serai-primitives", + "serde", + "sp-core", + "sp-std 5.0.0", + "zeroize", ] [[package]] name = "serde" -version = "1.0.164" +version = "1.0.165" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +checksum = "c939f902bb7d0ccc5bce4f03297e161543c2dcb30914faf032c2bd0b7a0d48fc" dependencies = [ "serde_derive", ] @@ -8806,13 +8927,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.164" +version = "1.0.165" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +checksum = "6eaae920e25fffe4019b75ff65e7660e72091e59dd204cb5849bbd6a3fd343d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9094,7 +9215,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9314,7 +9435,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing 5.0.0", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9333,7 +9454,7 @@ source = "git+https://github.com/serai-dex/substrate#4b81dab20bed5fb232e3daf6290 dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9511,7 +9632,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9703,7 +9824,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -9772,9 +9893,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47a8ad42e5fc72d5b1eb104a5546937eaf39843499948bb666d6e93c62423b" +checksum = "bfc443bad666016e012538782d9e3006213a7db43e9fb1dda91657dc06a6fa08" dependencies = [ "Inflector", "num-format", @@ -10093,9 +10214,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.22" +version = "2.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" +checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737" dependencies = [ "proc-macro2", "quote", @@ -10157,7 +10278,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.21", + "rustix 0.37.22", "windows-sys 0.48.0", ] @@ -10216,7 +10337,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -10345,31 +10466,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "tokens-pallet" -version = "0.1.0" -dependencies = [ - "frame-support", - "frame-system", - "pallet-assets", - "parity-scale-codec", - "scale-info", - "serai-primitives", - "tokens-primitives", -] - -[[package]] -name = "tokens-primitives" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serai-primitives", - "serde", - "sp-runtime", - "zeroize", -] - [[package]] name = "tokio" version = "1.29.1" @@ -10383,7 +10479,7 @@ dependencies = [ "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "signal-hook-registry", "socket2 0.4.9", "tokio-macros", @@ -10398,7 +10494,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -10451,7 +10547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tokio", "tokio-util", ] @@ -10466,7 +10562,7 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tokio", "tracing", ] @@ -10538,7 +10634,7 @@ dependencies = [ "http", "http-body", "http-range-header", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tower-layer", "tower-service", ] @@ -10563,7 +10659,7 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tracing-attributes", "tracing-core", ] @@ -10576,7 +10672,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] @@ -10914,37 +11010,6 @@ dependencies = [ "getrandom 0.2.10", ] -[[package]] -name = "validator-sets-pallet" -version = "0.1.0" -dependencies = [ - "frame-support", - "frame-system", - "hashbrown 0.13.2", - "parity-scale-codec", - "scale-info", - "serai-primitives", - "sp-application-crypto", - "sp-core", - "sp-std 5.0.0", - "validator-sets-primitives", -] - -[[package]] -name = "validator-sets-primitives" -version = "0.1.0" -dependencies = [ - "ciphersuite", - "dkg", - "parity-scale-codec", - "scale-info", - "serai-primitives", - "serde", - "sp-core", - "sp-std 5.0.0", - "zeroize", -] - [[package]] name = "valuable" version = "0.1.0" @@ -11042,7 +11107,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", "wasm-bindgen-shared", ] @@ -11076,7 +11141,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11717,21 +11782,6 @@ dependencies = [ "windows-targets 0.48.1", ] -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -12068,7 +12118,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.22", + "syn 2.0.23", ] [[package]] diff --git a/coordinator/Cargo.toml b/coordinator/Cargo.toml index 199d1076..ab0a08da 100644 --- a/coordinator/Cargo.toml +++ b/coordinator/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "coordinator" +name = "serai-coordinator" version = "0.1.0" description = "Serai coordinator to prepare batches and sign transactions" license = "AGPL-3.0-only" @@ -34,7 +34,7 @@ sp-application-crypto = { git = "https://github.com/serai-dex/substrate", defaul serai-db = { path = "../common/db" } -processor-messages = { package = "processor-messages", path = "../processor/messages" } +processor-messages = { package = "serai-processor-messages", path = "../processor/messages" } tributary = { package = "tributary-chain", path = "./tributary" } serai-client = { path = "../substrate/client", features = ["serai"] } diff --git a/deny.toml b/deny.toml index 61d2154f..015970b3 100644 --- a/deny.toml +++ b/deny.toml @@ -45,19 +45,19 @@ default = "deny" exceptions = [ { allow = ["AGPL-3.0"], name = "ethereum-serai" }, - { allow = ["AGPL-3.0"], name = "message-queue" }, + { allow = ["AGPL-3.0"], name = "serai-message-queue" }, - { allow = ["AGPL-3.0"], name = "processor-messages" }, - { allow = ["AGPL-3.0"], name = "processor" }, + { allow = ["AGPL-3.0"], name = "serai-processor-messages" }, + { allow = ["AGPL-3.0"], name = "serai-processor" }, { allow = ["AGPL-3.0"], name = "tributary-chain" }, - { allow = ["AGPL-3.0"], name = "coordinator" }, + { allow = ["AGPL-3.0"], name = "serai-coordinator" }, - { allow = ["AGPL-3.0"], name = "tokens-pallet" }, + { allow = ["AGPL-3.0"], name = "serai-tokens-pallet" }, - { allow = ["AGPL-3.0"], name = "in-instructions-pallet" }, + { allow = ["AGPL-3.0"], name = "serai-in-instructions-pallet" }, - { allow = ["AGPL-3.0"], name = "validator-sets-pallet" }, + { allow = ["AGPL-3.0"], name = "serai-validator-sets-pallet" }, { allow = ["AGPL-3.0"], name = "serai-runtime" }, { allow = ["AGPL-3.0"], name = "serai-node" }, diff --git a/processor/Cargo.toml b/processor/Cargo.toml index aaf00973..19c879f5 100644 --- a/processor/Cargo.toml +++ b/processor/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "processor" +name = "serai-processor" version = "0.1.0" description = "Multichain processor premised on canonicity to reach distributed consensus automatically" license = "AGPL-3.0-only" @@ -57,7 +57,10 @@ tokio = { version = "1", features = ["full"] } serai-db = { path = "../common/db", default-features = false } serai-client = { path = "../substrate/client", default-features = false } -messages = { package = "processor-messages", path = "./messages" } +messages = { package = "serai-processor-messages", path = "./messages" } + +jsonrpsee = { version = "0.16", features = ["client"] } +message-queue = { package = "serai-message-queue", path = "../message-queue" } [dev-dependencies] futures = "0.3" diff --git a/processor/messages/Cargo.toml b/processor/messages/Cargo.toml index 3086a3cd..26699467 100644 --- a/processor/messages/Cargo.toml +++ b/processor/messages/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "processor-messages" +name = "serai-processor-messages" version = "0.1.0" description = "Messages sent and received by the processor" license = "AGPL-3.0-only" @@ -22,6 +22,6 @@ bincode = "1" dkg = { path = "../../crypto/dkg", features = ["serde"] } serai-primitives = { path = "../../substrate/primitives" } -in-instructions-primitives = { path = "../../substrate/in-instructions/primitives" } -tokens-primitives = { path = "../../substrate/tokens/primitives" } -validator-sets-primitives = { path = "../../substrate/validator-sets/primitives" } +serai-in-instructions-primitives = { path = "../../substrate/in-instructions/primitives" } +serai-tokens-primitives = { path = "../../substrate/tokens/primitives" } +serai-validator-sets-primitives = { path = "../../substrate/validator-sets/primitives" } diff --git a/substrate/in-instructions/pallet/Cargo.toml b/substrate/in-instructions/pallet/Cargo.toml index 1dedc2fd..ea9dab34 100644 --- a/substrate/in-instructions/pallet/Cargo.toml +++ b/substrate/in-instructions/pallet/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "in-instructions-pallet" +name = "serai-in-instructions-pallet" version = "0.1.0" description = "Execute calls via In Instructions from unsigned transactions" license = "AGPL-3.0-only" @@ -24,10 +24,10 @@ frame-system = { git = "https://github.com/serai-dex/substrate", default-feature frame-support = { git = "https://github.com/serai-dex/substrate", default-features = false } serai-primitives = { path = "../../primitives", default-features = false } -in-instructions-primitives = { path = "../primitives", default-features = false } +in-instructions-primitives = { package = "serai-in-instructions-primitives", path = "../primitives", default-features = false } -tokens-pallet = { path = "../../tokens/pallet", default-features = false } -validator-sets-pallet = { path = "../../validator-sets/pallet", default-features = false } +tokens-pallet = { package = "serai-tokens-pallet", path = "../../tokens/pallet", default-features = false } +validator-sets-pallet = { package = "serai-validator-sets-pallet", path = "../../validator-sets/pallet", default-features = false } [features] std = [ diff --git a/substrate/in-instructions/primitives/Cargo.toml b/substrate/in-instructions/primitives/Cargo.toml index b97ad5fe..d01fa3d1 100644 --- a/substrate/in-instructions/primitives/Cargo.toml +++ b/substrate/in-instructions/primitives/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "in-instructions-primitives" +name = "serai-in-instructions-primitives" version = "0.1.0" description = "Serai instructions library, enabling encoding and decoding" license = "MIT" @@ -23,7 +23,7 @@ sp-std = { git = "https://github.com/serai-dex/substrate", default-features = fa sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features = false } serai-primitives = { path = "../../primitives", default-features = false } -tokens-primitives = { path = "../../tokens/primitives", default-features = false } +tokens-primitives = { package = "serai-tokens-primitives", path = "../../tokens/primitives", default-features = false } [features] std = [ diff --git a/substrate/runtime/Cargo.toml b/substrate/runtime/Cargo.toml index 1c21d84d..4bac075d 100644 --- a/substrate/runtime/Cargo.toml +++ b/substrate/runtime/Cargo.toml @@ -39,7 +39,7 @@ frame-support = { git = "https://github.com/serai-dex/substrate", default-featur frame-executive = { git = "https://github.com/serai-dex/substrate", default-features = false } frame-benchmarking = { git = "https://github.com/serai-dex/substrate", default-features = false, optional = true } -serai-primitives = { path = "..//primitives", default-features = false } +serai-primitives = { path = "../primitives", default-features = false } pallet-timestamp = { git = "https://github.com/serai-dex/substrate", default-features = false } @@ -47,10 +47,10 @@ pallet-balances = { git = "https://github.com/serai-dex/substrate", default-feat pallet-assets = { git = "https://github.com/serai-dex/substrate", default-features = false } pallet-transaction-payment = { git = "https://github.com/serai-dex/substrate", default-features = false } -tokens-pallet = { path = "../tokens/pallet", default-features = false } -in-instructions-pallet = { path = "../in-instructions/pallet", default-features = false } +tokens-pallet = { package = "serai-tokens-pallet", path = "../tokens/pallet", default-features = false } +in-instructions-pallet = { package = "serai-in-instructions-pallet", path = "../in-instructions/pallet", default-features = false } -validator-sets-pallet = { path = "../validator-sets/pallet", default-features = false } +validator-sets-pallet = { package = "serai-validator-sets-pallet", path = "../validator-sets/pallet", default-features = false } pallet-session = { git = "https://github.com/serai-dex/substrate", default-features = false } pallet-babe = { git = "https://github.com/serai-dex/substrate", default-features = false } pallet-grandpa = { git = "https://github.com/serai-dex/substrate", default-features = false } diff --git a/substrate/tokens/pallet/Cargo.toml b/substrate/tokens/pallet/Cargo.toml index 9dc2af94..6c0e6595 100644 --- a/substrate/tokens/pallet/Cargo.toml +++ b/substrate/tokens/pallet/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "tokens-pallet" +name = "serai-tokens-pallet" version = "0.1.0" description = "Mint and burn Serai tokens" license = "AGPL-3.0-only" @@ -21,7 +21,7 @@ frame-support = { git = "https://github.com/serai-dex/substrate", default-featur pallet-assets = { git = "https://github.com/serai-dex/substrate", default-features = false } serai-primitives = { path = "../../primitives", default-features = false } -tokens-primitives = { path = "../primitives", default-features = false } +tokens-primitives = { package = "serai-tokens-primitives", path = "../primitives", default-features = false } [features] std = [ diff --git a/substrate/tokens/primitives/Cargo.toml b/substrate/tokens/primitives/Cargo.toml index 60b85c56..0aae37b2 100644 --- a/substrate/tokens/primitives/Cargo.toml +++ b/substrate/tokens/primitives/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "tokens-primitives" +name = "serai-tokens-primitives" version = "0.1.0" description = "Serai tokens primitives" license = "MIT" diff --git a/substrate/validator-sets/pallet/Cargo.toml b/substrate/validator-sets/pallet/Cargo.toml index aaf13fb8..7ecfc0fe 100644 --- a/substrate/validator-sets/pallet/Cargo.toml +++ b/substrate/validator-sets/pallet/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "validator-sets-pallet" +name = "serai-validator-sets-pallet" version = "0.1.0" description = "Validator sets pallet" license = "AGPL-3.0-only" @@ -25,7 +25,7 @@ frame-system = { git = "https://github.com/serai-dex/substrate", default-feature frame-support = { git = "https://github.com/serai-dex/substrate", default-features = false } serai-primitives = { path = "../../primitives", default-features = false } -validator-sets-primitives = { path = "../primitives", default-features = false } +validator-sets-primitives = { package = "serai-validator-sets-primitives", path = "../primitives", default-features = false } [features] std = [ diff --git a/substrate/validator-sets/primitives/Cargo.toml b/substrate/validator-sets/primitives/Cargo.toml index 791fa8c7..cef5df9a 100644 --- a/substrate/validator-sets/primitives/Cargo.toml +++ b/substrate/validator-sets/primitives/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "validator-sets-primitives" +name = "serai-validator-sets-primitives" version = "0.1.0" description = "Primitives for validator sets" license = "MIT"