From 84019630ede64ed5d60fb8a9d2009d870743817a Mon Sep 17 00:00:00 2001 From: ardocrat Date: Thu, 14 May 2026 13:58:22 +0300 Subject: [PATCH 1/5] Update rust edition to 2021 (#749) * build: update rust edition 2021 * cargo: format all * build: fix tests and warnings --- Cargo.lock | 1 - Cargo.toml | 2 +- api/Cargo.toml | 2 +- api/src/foreign.rs | 4 ++-- api/src/owner.rs | 4 ++-- config/Cargo.toml | 2 +- config/src/config.rs | 2 +- controller/Cargo.toml | 2 +- controller/src/command.rs | 2 +- controller/tests/common/mod.rs | 8 ++++++-- impls/Cargo.toml | 2 +- integration/Cargo.toml | 2 +- libwallet/Cargo.toml | 2 +- libwallet/src/mwixnet/onion/crypto/dalek.rs | 3 +++ rustfmt.toml | 2 +- tests/common/mod.rs | 1 + util/Cargo.toml | 2 +- 17 files changed, 25 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21de04bc1..a4dc53de7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1485,7 +1485,6 @@ dependencies = [ "grin_core", "grin_util", "grin_wallet_util", - "log", "pretty_assertions", "rand 0.6.5", "serde", diff --git a/Cargo.toml b/Cargo.toml index ce75779ca..e90314adc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ keywords = [ "crypto", "grin", "mimblewimble" ] readme = "README.md" exclude = ["**/*.grin", "**/*.grin2"] build = "src/build/build.rs" -edition = "2018" +edition = "2021" [[bin]] name = "grin-wallet" diff --git a/api/Cargo.toml b/api/Cargo.toml index 9beb25202..a85781ef3 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] exclude = ["**/*.grin", "**/*.grin2"] -edition = "2018" +edition = "2021" [dependencies] log = "0.4" diff --git a/api/src/foreign.rs b/api/src/foreign.rs index 77c65754e..1d96256ba 100644 --- a/api/src/foreign.rs +++ b/api/src/foreign.rs @@ -147,7 +147,7 @@ where /// // These traits can be replaced with alternative implementations if desired /// /// let mut wallet = Box::new(DefaultWalletImpl::<'static, HTTPNodeClient>::new(node_client.clone()).unwrap()) - /// as Box, HTTPNodeClient, ExtKeychain>>; + /// as Box, HTTPNodeClient, ExtKeychain>>; /// /// // Wallet LifeCycle Provider provides all functions init wallet and work with seeds, etc... /// let lc = wallet.lc_provider().unwrap(); @@ -500,7 +500,7 @@ macro_rules! doctest_helper_setup_doc_env_foreign { DefaultWalletImpl::<'static, HTTPNodeClient>::new(node_client.clone()).unwrap(), ) as Box< - WalletInst< + dyn WalletInst< 'static, DefaultLCProvider, HTTPNodeClient, diff --git a/api/src/owner.rs b/api/src/owner.rs index a749d8b87..d291b2be4 100644 --- a/api/src/owner.rs +++ b/api/src/owner.rs @@ -152,7 +152,7 @@ where /// // These traits can be replaced with alternative implementations if desired /// /// let mut wallet = Box::new(DefaultWalletImpl::<'static, HTTPNodeClient>::new(node_client.clone()).unwrap()) - /// as Box, HTTPNodeClient, ExtKeychain>>; + /// as Box, HTTPNodeClient, ExtKeychain>>; /// /// // Wallet LifeCycle Provider provides all functions init wallet and work with seeds, etc... /// let lc = wallet.lc_provider().unwrap(); @@ -2628,7 +2628,7 @@ macro_rules! doctest_helper_setup_doc_env { DefaultWalletImpl::<'static, HTTPNodeClient>::new(node_client.clone()).unwrap(), ) as Box< - WalletInst< + dyn WalletInst< 'static, DefaultLCProvider, HTTPNodeClient, diff --git a/config/Cargo.toml b/config/Cargo.toml index d1c325b00..f646b3d5c 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] workspace = ".." -edition = "2018" +edition = "2021" [dependencies] rand = "0.6" diff --git a/config/src/config.rs b/config/src/config.rs index cf8770483..2c37ae729 100644 --- a/config/src/config.rs +++ b/config/src/config.rs @@ -476,4 +476,4 @@ impl GlobalWalletConfig { .replace("WARN", "Warning") .replace("ERROR", "Error") } -} \ No newline at end of file +} diff --git a/controller/Cargo.toml b/controller/Cargo.toml index 070088e6f..6a3a5ca75 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] exclude = ["**/*.grin", "**/*.grin2"] #build = "src/build/build.rs" -edition = "2018" +edition = "2021" [dependencies] futures = "0.3" diff --git a/controller/src/command.rs b/controller/src/command.rs index 536a3f32a..77fdb791f 100644 --- a/controller/src/command.rs +++ b/controller/src/command.rs @@ -82,7 +82,7 @@ where C: NodeClient + 'static, K: keychain::Keychain + 'static, { -// Assume global chain type has already been initialized. + // Assume global chain type has already been initialized. let chain_type = global::get_chain_type(); let mut w_lock = owner_api.wallet_inst.lock(); diff --git a/controller/tests/common/mod.rs b/controller/tests/common/mod.rs index 114667a0d..24f600d60 100644 --- a/controller/tests/common/mod.rs +++ b/controller/tests/common/mod.rs @@ -96,8 +96,12 @@ pub fn setup_global_chain_type() { pub fn create_wallet_proxy( test_dir: &str, -) -> WalletProxy, LocalWalletClient, ExtKeychain> -{ +) -> WalletProxy< + '_, + DefaultLCProvider<'_, LocalWalletClient, ExtKeychain>, + LocalWalletClient, + ExtKeychain, +> { WalletProxy::new(test_dir) } diff --git a/impls/Cargo.toml b/impls/Cargo.toml index 70f7f6981..6dfc91860 100644 --- a/impls/Cargo.toml +++ b/impls/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] exclude = ["**/*.grin", "**/*.grin2"] -edition = "2018" +edition = "2021" [dependencies] blake2-rfc = "0.2" diff --git a/integration/Cargo.toml b/integration/Cargo.toml index a62457346..1230be2a3 100644 --- a/integration/Cargo.toml +++ b/integration/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" repository = "https://github.com/mimblewimble/grin" keywords = [ "crypto", "grin", "mimblewimble" ] workspace = ".." -edition = "2018" +edition = "2021" [dependencies] hyper = "0.12" diff --git a/libwallet/Cargo.toml b/libwallet/Cargo.toml index 8fd614d79..e82600437 100644 --- a/libwallet/Cargo.toml +++ b/libwallet/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] exclude = ["**/*.grin", "**/*.grin2"] #build = "src/build/build.rs" -edition = "2018" +edition = "2021" [dependencies] blake2-rfc = "0.2" diff --git a/libwallet/src/mwixnet/onion/crypto/dalek.rs b/libwallet/src/mwixnet/onion/crypto/dalek.rs index a10c65b03..38fd408cf 100644 --- a/libwallet/src/mwixnet/onion/crypto/dalek.rs +++ b/libwallet/src/mwixnet/onion/crypto/dalek.rs @@ -117,11 +117,13 @@ impl Writeable for DalekPublicKey { } /// Encapsulates an ed25519_dalek::Signature and provides (de-)serialization +#[allow(dead_code)] #[derive(Clone, Debug, PartialEq)] pub struct DalekSignature(Signature); impl DalekSignature { /// Convert hex string to DalekSignature. + #[allow(dead_code)] pub fn from_hex(hex: &str) -> Result { let bytes = grin_util::from_hex(hex) .map_err(|_| DalekError::HexError(format!("failed to decode {}", hex)))?; @@ -131,6 +133,7 @@ impl DalekSignature { } /// Verifies DalekSignature + #[allow(dead_code)] pub fn verify(&self, pk: &DalekPublicKey, msg: &[u8]) -> Result<(), DalekError> { pk.as_ref() .verify(&msg, &self.0) diff --git a/rustfmt.toml b/rustfmt.toml index b2b24311c..c691d12a1 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,2 +1,2 @@ hard_tabs = true -edition = "2018" +edition = "2021" diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 569fd330f..211645734 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -494,4 +494,5 @@ impl From for WalletAPIReturnError { } #[derive(Clone, Debug, Serialize, Deserialize)] +#[allow(dead_code)] pub struct RetrieveSummaryInfoResp(pub bool, pub WalletInfo); diff --git a/util/Cargo.toml b/util/Cargo.toml index 5242e12b1..ef22ddef2 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" repository = "https://github.com/mimblewimble/grin-wallet" keywords = [ "crypto", "grin", "mimblewimble" ] workspace = ".." -edition = "2018" +edition = "2021" [dependencies] rand = "0.6" From e9e75c5d040dd1c15028db654704339f563d8c2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 20:13:47 +0200 Subject: [PATCH 2/5] Bump openssl from 0.10.68 to 0.10.80 (#752) --- Cargo.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a4dc53de7..cab26e4e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2723,15 +2723,14 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" dependencies = [ "bitflags 2.6.0", "cfg-if 1.0.0", "foreign-types", "libc", - "once_cell", "openssl-macros", "openssl-sys", ] @@ -2755,9 +2754,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" dependencies = [ "cc", "libc", From d4867d5cd6791a6632c38e47d87bae7d947ed9b5 Mon Sep 17 00:00:00 2001 From: David Burkett Date: Wed, 10 Jun 2026 20:34:32 -0400 Subject: [PATCH 3/5] Removing some panics --- libwallet/src/slate_versions/ser.rs | 12 ++--- libwallet/src/slate_versions/v4_bin.rs | 11 +++-- libwallet/src/slatepack/armor.rs | 21 +++++++-- libwallet/src/slatepack/types.rs | 65 +++++++++++++++++++++++++- 4 files changed, 94 insertions(+), 15 deletions(-) diff --git a/libwallet/src/slate_versions/ser.rs b/libwallet/src/slate_versions/ser.rs index 58f866a08..8e3510c76 100644 --- a/libwallet/src/slate_versions/ser.rs +++ b/libwallet/src/slate_versions/ser.rs @@ -386,8 +386,8 @@ pub mod dalek_sig_serde { String::deserialize(deserializer) .and_then(|string| from_hex(&string).map_err(|err| Error::custom(err.to_string()))) .and_then(|bytes: Vec| { - let mut b = [0u8; 64]; - b.copy_from_slice(&bytes[0..64]); + let b = <[u8; 64]>::try_from(bytes.as_slice()) + .map_err(|_| Error::custom("invalid signature length"))?; DalekSignature::try_from(b).map_err(|err| Error::custom(err.to_string())) }) } @@ -422,8 +422,8 @@ pub mod option_dalek_sig_serde { Some(string) => from_hex(&string) .map_err(|err| Error::custom(err.to_string())) .and_then(|bytes: Vec| { - let mut b = [0u8; 64]; - b.copy_from_slice(&bytes[0..64]); + let b = <[u8; 64]>::try_from(bytes.as_slice()) + .map_err(|_| Error::custom("invalid signature length"))?; DalekSignature::try_from(b) .map(Some) .map_err(|err| Error::custom(err.to_string())) @@ -461,8 +461,8 @@ pub mod option_dalek_sig_base64 { Some(string) => base64::decode(&string) .map_err(|err| Error::custom(err.to_string())) .and_then(|bytes: Vec| { - let mut b = [0u8; 64]; - b.copy_from_slice(&bytes[0..64]); + let b = <[u8; 64]>::try_from(bytes.as_slice()) + .map_err(|_| Error::custom("invalid signature length"))?; DalekSignature::try_from(b) .map(Some) .map_err(|err| Error::custom(err.to_string())) diff --git a/libwallet/src/slate_versions/v4_bin.rs b/libwallet/src/slate_versions/v4_bin.rs index 68f5190b2..455af3f50 100644 --- a/libwallet/src/slate_versions/v4_bin.rs +++ b/libwallet/src/slate_versions/v4_bin.rs @@ -345,11 +345,16 @@ impl<'a> Writeable for ProofWrapRef<'a> { impl Readable for ProofWrap { fn read(reader: &mut R) -> Result { - let saddr = DalekPublicKey::from_bytes(&reader.read_fixed_bytes(32)?).unwrap(); - let raddr = DalekPublicKey::from_bytes(&reader.read_fixed_bytes(32)?).unwrap(); + let saddr = DalekPublicKey::from_bytes(&reader.read_fixed_bytes(32)?) + .map_err(|_| grin_ser::Error::CorruptedData)?; + let raddr = DalekPublicKey::from_bytes(&reader.read_fixed_bytes(32)?) + .map_err(|_| grin_ser::Error::CorruptedData)?; let rsig = match reader.read_u8()? { 0 => None, - 1 | _ => Some(DalekSignature::try_from(&reader.read_fixed_bytes(64)?[..]).unwrap()), + 1 | _ => Some( + DalekSignature::try_from(&reader.read_fixed_bytes(64)?[..]) + .map_err(|_| grin_ser::Error::CorruptedData)?, + ), }; Ok(ProofWrap(PaymentInfoV4 { saddr, raddr, rsig })) } diff --git a/libwallet/src/slatepack/armor.rs b/libwallet/src/slatepack/armor.rs index eacdf32f6..c8be2999e 100644 --- a/libwallet/src/slatepack/armor.rs +++ b/libwallet/src/slatepack/armor.rs @@ -74,7 +74,10 @@ impl SlatepackArmor { // Get the length of the header let header_len = header_bytes.len() + 1; // Skip the length of the header to read for the payload until the next period - let payload_bytes = armor_bytes[header_len as usize..] + let payload_source = armor_bytes + .get(header_len..) + .ok_or_else(|| Error::InvalidSlatepackData("Bad armor header".to_string()))?; + let payload_bytes = payload_source .iter() .take_while(|byte| **byte != b'.') .cloned() @@ -82,8 +85,14 @@ impl SlatepackArmor { // Get length of the payload to check the footer framing let payload_len = payload_bytes.len(); // Get footer bytes and verify them - let consumed_bytes = header_len + payload_len + 1; - let footer_bytes = armor_bytes[consumed_bytes as usize..] + let consumed_bytes = header_len + .checked_add(payload_len) + .and_then(|v| v.checked_add(1)) + .ok_or_else(|| Error::InvalidSlatepackData("Bad armor footer".to_string()))?; + let footer_source = armor_bytes + .get(consumed_bytes..) + .ok_or_else(|| Error::InvalidSlatepackData("Bad armor footer".to_string()))?; + let footer_bytes = footer_source .iter() .take_while(|byte| **byte != b'.') .cloned() @@ -99,8 +108,10 @@ impl SlatepackArmor { let base_decode = bs58::decode(&clean_payload) .into_vec() .map_err(|_| Error::SlatepackDeser("Bad bytes".into()))?; - let error_code = &base_decode[0..4]; - let slatepack_bytes = &base_decode[4..]; + if base_decode.len() < 4 { + return Err(Error::SlatepackDeser("Payload too short".into())); + } + let (error_code, slatepack_bytes) = base_decode.split_at(4); // Make sure the error check code is valid for the slate data error_check(error_code, slatepack_bytes)?; // Return slate as binary or string diff --git a/libwallet/src/slatepack/types.rs b/libwallet/src/slatepack/types.rs index fe08c933c..fc12f4985 100644 --- a/libwallet/src/slatepack/types.rs +++ b/libwallet/src/slatepack/types.rs @@ -208,10 +208,23 @@ impl Slatepack { reader.read_to_end(&mut decrypted)?; // Parse encrypted metadata from payload, first 4 bytes of decrypted payload // will be encrypted metadata length + if decrypted.len() < 4 { + return Err(Error::SlatepackDeser( + "Encrypted payload missing metadata length".into(), + )); + } let mut len_bytes = [0u8; 4]; len_bytes.copy_from_slice(&decrypted[0..4]); let meta_len = Cursor::new(len_bytes).read_u32::()?; - self.payload = decrypted.split_off(meta_len as usize + 4); + let payload_start = (meta_len as usize) + .checked_add(4) + .ok_or_else(|| Error::SlatepackDeser("Encrypted metadata length overflow".into()))?; + if payload_start > decrypted.len() { + return Err(Error::SlatepackDeser( + "Encrypted metadata length exceeds payload".into(), + )); + } + self.payload = decrypted.split_off(payload_start); let meta = byte_ser::from_bytes::(&decrypted) .map_err(|_| Error::SlatepackSer)? .0; @@ -848,3 +861,53 @@ fn slatepack_encrypted_meta_future() -> Result<(), Error> { Ok(()) } + +#[cfg(test)] +fn slatepack_test_decryption_key() -> (edSecretKey, SlatepackAddress) { + use ed25519_dalek::PublicKey as edDalekPublicKey; + use rand::{thread_rng, Rng}; + + let sec_key_bytes: [u8; 32] = thread_rng().gen(); + let ed_sec_key = edSecretKey::from_bytes(&sec_key_bytes).unwrap(); + let ed_pub_key = edDalekPublicKey::from(&ed_sec_key); + let addr = SlatepackAddress::new(&ed_pub_key); + + (ed_sec_key, addr) +} + +#[cfg(test)] +fn encrypt_plaintext_to_slatepack_recipient( + recipient: &SlatepackAddress, + plaintext: &[u8], +) -> Result, Error> { + let recp_key: age::x25519::Recipient = recipient.to_age_pubkey_str()?.parse()?; + let keys = vec![Box::new(recp_key) as Box]; + let encryptor = age::Encryptor::with_recipients(keys); + let mut encrypted = vec![]; + let mut writer = encryptor.wrap_output(&mut encrypted)?; + writer.write_all(plaintext)?; + writer.finish()?; + Ok(encrypted) +} + +#[test] +fn slatepack_decrypt_rejects_malformed_plaintexts() -> Result<(), Error> { + use crate::grin_core::global; + + global::set_local_chain_type(global::ChainTypes::AutomatedTesting); + let (ed_sec_key, addr) = slatepack_test_decryption_key(); + + for plaintext in vec![vec![], vec![0], vec![0, 0, 0], vec![0xff; 4]] { + let mut slatepack = Slatepack { + mode: 1, + payload: encrypt_plaintext_to_slatepack_recipient(&addr, &plaintext)?, + ..Slatepack::default() + }; + assert!(matches!( + slatepack.try_decrypt_payload(Some(&ed_sec_key)), + Err(Error::SlatepackDeser(_)) + )); + } + + Ok(()) +} From 5c20635a24a1afa48c167775081015cae6321a4f Mon Sep 17 00:00:00 2001 From: David Burkett Date: Wed, 10 Jun 2026 22:00:53 -0400 Subject: [PATCH 4/5] Bump version to 5.4.1 --- Cargo.lock | 46 +++++++++++++++++++++---------------------- Cargo.toml | 22 ++++++++++----------- api/Cargo.toml | 16 +++++++-------- config/Cargo.toml | 8 ++++---- controller/Cargo.toml | 22 ++++++++++----------- impls/Cargo.toml | 20 +++++++++---------- libwallet/Cargo.toml | 14 ++++++------- util/Cargo.toml | 4 ++-- 8 files changed, 76 insertions(+), 76 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cab26e4e8..a342a8a18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1214,9 +1214,9 @@ dependencies = [ [[package]] name = "grin_api" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f8d4159c8b006a921c0e98b34f1419c175127ee48519b8b1ad00b2036d5011" +checksum = "51cb8a36f1df7f552e7033b07800c5e54e350b06ab42ab77c209b0da2ede9547" dependencies = [ "async-stream", "bytes 1.8.0", @@ -1249,9 +1249,9 @@ dependencies = [ [[package]] name = "grin_chain" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae4110494f8864a7acaa95a6565cea73a769203353d33afa2491a0303ef5e96" +checksum = "f22a388060be19bb1fe8bcaae54e5b61726db8dae4676ff2f3f082752843bc02" dependencies = [ "bit-vec", "bitflags 1.3.2", @@ -1273,9 +1273,9 @@ dependencies = [ [[package]] name = "grin_core" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f7959afef3976c8530f39416364dd8e47c24b20774a8c5432645fc70aeba67" +checksum = "b286b10a906330569326077779fa6bcde456f5c77e54bc87aefbda308ee9b19e" dependencies = [ "blake2-rfc", "byteorder", @@ -1300,9 +1300,9 @@ dependencies = [ [[package]] name = "grin_keychain" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da89816a601ca89d9718aa3fac1ae933086d36790fb3b9d85a57b64ba20173f" +checksum = "afff7e0a383366082aad384e7b4f285519a4940a569cac793bb941354ce0e368" dependencies = [ "blake2-rfc", "byteorder", @@ -1323,9 +1323,9 @@ dependencies = [ [[package]] name = "grin_p2p" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d8ee1812124b8843de27626c5e65f43eae7ca855eeb6060286c6b3f31880548" +checksum = "69be142b76bd6472d2faab27dd3e0024a2c6818ed0e1ccc5a0e9788590949744" dependencies = [ "bitflags 1.3.2", "bytes 0.5.6", @@ -1346,9 +1346,9 @@ dependencies = [ [[package]] name = "grin_pool" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddce3861a8af1036d36746eeb80d5efc805587ab7dbc19d7bef13c127d567cc8" +checksum = "f770835a6f78de214d650f9fec066d55b854b3689c905d63e931eba05179587a" dependencies = [ "blake2-rfc", "chrono", @@ -1379,9 +1379,9 @@ dependencies = [ [[package]] name = "grin_store" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6d8762c27886d4dbeeae187e761bafef84e099096f0da4987d96dba7192e33" +checksum = "14188a453dbbb505bc068763beb4d8d9e9c18f88d8f0d950b967a13d5500882f" dependencies = [ "byteorder", "croaring", @@ -1399,9 +1399,9 @@ dependencies = [ [[package]] name = "grin_util" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ecf6160820c449a0d5a2f856cd8d9b0bacf1fff4a09785cf2b6762d9475a6a" +checksum = "1ff9437662d26682f7051a83b4da4544d42cb89966c857011768995dc7dec965" dependencies = [ "anyhow", "backtrace", @@ -1422,7 +1422,7 @@ dependencies = [ [[package]] name = "grin_wallet" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "built", "clap", @@ -1454,7 +1454,7 @@ dependencies = [ [[package]] name = "grin_wallet_api" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "base64 0.12.3", "chrono", @@ -1479,7 +1479,7 @@ dependencies = [ [[package]] name = "grin_wallet_config" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "dirs 2.0.2", "grin_core", @@ -1494,7 +1494,7 @@ dependencies = [ [[package]] name = "grin_wallet_controller" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "chrono", "easy-jsonrpc-mw", @@ -1530,7 +1530,7 @@ dependencies = [ [[package]] name = "grin_wallet_impls" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "base64 0.12.3", "blake2-rfc", @@ -1569,7 +1569,7 @@ dependencies = [ [[package]] name = "grin_wallet_libwallet" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "age", "base64 0.9.3", @@ -1607,7 +1607,7 @@ dependencies = [ [[package]] name = "grin_wallet_util" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "data-encoding", "ed25519-dalek", diff --git a/Cargo.toml b/Cargo.toml index e90314adc..d47f3bc53 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Simple, private and scalable cryptocurrency implementation based on the MimbleWimble chain format." license = "Apache-2.0" @@ -30,21 +30,21 @@ semver = "0.10" rustyline = "6" lazy_static = "1" -grin_wallet_api = { path = "./api", version = "5.4.0-alpha.1" } -grin_wallet_impls = { path = "./impls", version = "5.4.0-alpha.1" } -grin_wallet_libwallet = { path = "./libwallet", version = "5.4.0-alpha.1" } -grin_wallet_controller = { path = "./controller", version = "5.4.0-alpha.1" } -grin_wallet_config = { path = "./config", version = "5.4.0-alpha.1" } -grin_wallet_util = { path = "./util", version = "5.4.0-alpha.1" } +grin_wallet_api = { path = "./api", version = "5.4.1" } +grin_wallet_impls = { path = "./impls", version = "5.4.1" } +grin_wallet_libwallet = { path = "./libwallet", version = "5.4.1" } +grin_wallet_controller = { path = "./controller", version = "5.4.1" } +grin_wallet_config = { path = "./config", version = "5.4.1" } +grin_wallet_util = { path = "./util", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_keychain = "5.4.0" -grin_util = "5.4.0" -grin_api = "5.4.0" +grin_core = "5.4.1" +grin_keychain = "5.4.1" +grin_util = "5.4.1" +grin_api = "5.4.1" # For beta release diff --git a/api/Cargo.toml b/api/Cargo.toml index a85781ef3..c52a3810a 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_api" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Grin Wallet API" license = "Apache-2.0" @@ -22,17 +22,17 @@ ring = "0.16" base64 = "0.12" ed25519-dalek = "1.0.0-pre.4" -grin_wallet_libwallet = { path = "../libwallet", version = "5.4.0-alpha.1" } -grin_wallet_config = { path = "../config", version = "5.4.0-alpha.1" } -grin_wallet_impls = { path = "../impls", version = "5.4.0-alpha.1" } -grin_wallet_util = { path = "../util", version = "5.4.0-alpha.1" } +grin_wallet_libwallet = { path = "../libwallet", version = "5.4.1" } +grin_wallet_config = { path = "../config", version = "5.4.1" } +grin_wallet_impls = { path = "../impls", version = "5.4.1" } +grin_wallet_util = { path = "../util", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_keychain = "5.4.0" -grin_util = "5.4.0" +grin_core = "5.4.1" +grin_keychain = "5.4.1" +grin_util = "5.4.1" # For beta release diff --git a/config/Cargo.toml b/config/Cargo.toml index f646b3d5c..18bd9cb49 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_config" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Configuration for grin wallet , a simple, private and scalable cryptocurrency implementation based on the MimbleWimble chain format." license = "Apache-2.0" @@ -16,13 +16,13 @@ serde_derive = "1" toml = "0.5" dirs = "2.0" -grin_wallet_util = { path = "../util", version = "5.4.0-alpha.1" } +grin_wallet_util = { path = "../util", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_util = "5.4.0" +grin_core = "5.4.1" +grin_util = "5.4.1" # For beta release diff --git a/controller/Cargo.toml b/controller/Cargo.toml index 6a3a5ca75..578c1e863 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_controller" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Controllers for grin wallet instantiation" license = "Apache-2.0" @@ -30,19 +30,19 @@ lazy_static = "1" thiserror = "1" qr_code = "1.1.0" -grin_wallet_util = { path = "../util", version = "5.4.0-alpha.1" } -grin_wallet_api = { path = "../api", version = "5.4.0-alpha.1" } -grin_wallet_impls = { path = "../impls", version = "5.4.0-alpha.1" } -grin_wallet_libwallet = { path = "../libwallet", version = "5.4.0-alpha.1" } -grin_wallet_config = { path = "../config", version = "5.4.0-alpha.1" } +grin_wallet_util = { path = "../util", version = "5.4.1" } +grin_wallet_api = { path = "../api", version = "5.4.1" } +grin_wallet_impls = { path = "../impls", version = "5.4.1" } +grin_wallet_libwallet = { path = "../libwallet", version = "5.4.1" } +grin_wallet_config = { path = "../config", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_keychain = "5.4.0" -grin_util = "5.4.0" -grin_api = "5.4.0" +grin_core = "5.4.1" +grin_keychain = "5.4.1" +grin_util = "5.4.1" +grin_api = "5.4.1" # For beta release @@ -72,7 +72,7 @@ remove_dir_all = "0.7" ##### Grin Imports # For Release -grin_chain = "5.4.0" +grin_chain = "5.4.1" # For beta release diff --git a/impls/Cargo.toml b/impls/Cargo.toml index 6dfc91860..d7778519a 100644 --- a/impls/Cargo.toml +++ b/impls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_impls" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Concrete types derived from libwallet traits" license = "Apache-2.0" @@ -36,19 +36,19 @@ sysinfo = "0.29" base64 = "0.12.0" url = "2.1" -grin_wallet_util = { path = "../util", version = "5.4.0-alpha.1" } -grin_wallet_config = { path = "../config", version = "5.4.0-alpha.1" } -grin_wallet_libwallet = { path = "../libwallet", version = "5.4.0-alpha.1" } +grin_wallet_util = { path = "../util", version = "5.4.1" } +grin_wallet_config = { path = "../config", version = "5.4.1" } +grin_wallet_libwallet = { path = "../libwallet", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_keychain = "5.4.0" -grin_chain = "5.4.0" -grin_util = "5.4.0" -grin_api = "5.4.0" -grin_store = "5.4.0" +grin_core = "5.4.1" +grin_keychain = "5.4.1" +grin_chain = "5.4.1" +grin_util = "5.4.1" +grin_api = "5.4.1" +grin_store = "5.4.1" # For beta release diff --git a/libwallet/Cargo.toml b/libwallet/Cargo.toml index e82600437..cfed06b70 100644 --- a/libwallet/Cargo.toml +++ b/libwallet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_libwallet" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Simple, private and scalable cryptocurrency implementation based on the MimbleWimble chain format." license = "Apache-2.0" @@ -40,16 +40,16 @@ num-bigint = "0.2" chacha20 = "0.8.1" hmac = { version = "0.12.0", features = ["std"]} -grin_wallet_util = { path = "../util", version = "5.4.0-alpha.1" } -grin_wallet_config = { path = "../config", version = "5.4.0-alpha.1" } +grin_wallet_util = { path = "../util", version = "5.4.1" } +grin_wallet_config = { path = "../config", version = "5.4.1" } ##### Grin Imports # For Release -grin_core = "5.4.0" -grin_keychain = "5.4.0" -grin_util = "5.4.0" -grin_store = "5.4.0" +grin_core = "5.4.1" +grin_keychain = "5.4.1" +grin_util = "5.4.1" +grin_store = "5.4.1" # For beta release diff --git a/util/Cargo.toml b/util/Cargo.toml index ef22ddef2..be2005733 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "grin_wallet_util" -version = "5.4.0-alpha.1" +version = "5.4.1" authors = ["Grin Developers "] description = "Util, for generic utilities and to re-export grin crates" license = "Apache-2.0" @@ -21,7 +21,7 @@ thiserror = "1" ##### Grin Imports # For Release -grin_util = "5.4.0" +grin_util = "5.4.1" # For beta release From 86bae1ce1f342c2729d1d4113e8da4f1e22ec71e Mon Sep 17 00:00:00 2001 From: ardocrat Date: Tue, 23 Jun 2026 13:11:53 +0300 Subject: [PATCH 5/5] build: update cargo wallet version --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 874fb3d9e..b9896b19e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2516,7 +2516,7 @@ dependencies = [ [[package]] name = "grin_wallet" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "built", "clap", @@ -2548,7 +2548,7 @@ dependencies = [ [[package]] name = "grin_wallet_api" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "base64 0.12.3", "chrono", @@ -2573,7 +2573,7 @@ dependencies = [ [[package]] name = "grin_wallet_config" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "dirs 2.0.2", "grin_core", @@ -2588,7 +2588,7 @@ dependencies = [ [[package]] name = "grin_wallet_controller" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "chrono", "easy-jsonrpc-mw", @@ -2624,7 +2624,7 @@ dependencies = [ [[package]] name = "grin_wallet_impls" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "arti-client", "base64 0.12.3", @@ -2675,7 +2675,7 @@ dependencies = [ [[package]] name = "grin_wallet_libwallet" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "age", "base64 0.9.3", @@ -2713,7 +2713,7 @@ dependencies = [ [[package]] name = "grin_wallet_util" -version = "5.4.0-alpha.1" +version = "5.4.1" dependencies = [ "data-encoding", "ed25519-dalek 1.0.1",