From c8bfb70613cdc473b51b2ff438f6c29ccb3e72de Mon Sep 17 00:00:00 2001 From: Yuki Kishimoto Date: Thu, 6 Nov 2025 14:12:36 +0100 Subject: [PATCH] Bump nostr and nwc to 0.44.0 Signed-off-by: Yuki Kishimoto --- Cargo.lock | 87 +++++++++-------------------- Cargo.toml | 4 +- crates/enostr/src/keypair.rs | 7 +-- crates/enostr/src/relay/pool.rs | 2 +- crates/notedeck/src/note/context.rs | 7 ++- crates/notedeck/src/wallet.rs | 50 ++--------------- 6 files changed, 43 insertions(+), 114 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6cdd5079f..0677afe4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -666,7 +666,6 @@ dependencies = [ "hex-conservative 0.2.1", "hex_lit", "secp256k1 0.29.1", - "serde", ] [[package]] @@ -680,9 +679,6 @@ name = "bitcoin-internals" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" -dependencies = [ - "serde", -] [[package]] name = "bitcoin-io" @@ -697,7 +693,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ "bitcoin-internals 0.3.0", - "serde", ] [[package]] @@ -1640,7 +1635,7 @@ dependencies = [ "hashbrown 0.15.4", "hex", "mio", - "nostr 0.37.0", + "nostr", "nostrdb", "serde", "serde_derive", @@ -3154,6 +3149,12 @@ dependencies = [ "imgref", ] +[[package]] +name = "lru" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" + [[package]] name = "lru-slab" version = "0.1.2" @@ -3372,18 +3373,6 @@ dependencies = [ "jni-sys 0.3.0", ] -[[package]] -name = "negentropy" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e664971378a3987224f7a0e10059782035e89899ae403718ee07de85bec42afe" - -[[package]] -name = "negentropy" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a88da9dd148bbcdce323dd6ac47d369b4769d4a3b78c6c52389b9269f77932" - [[package]] name = "negentropy" version = "0.5.0" @@ -3442,35 +3431,9 @@ dependencies = [ [[package]] name = "nostr" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aad4b767bbed24ac5eb4465bfb83bc1210522eb99d67cf4e547ec2ec7e47786" -dependencies = [ - "async-trait", - "base64 0.22.1", - "bech32", - "bip39", - "bitcoin", - "cbc", - "chacha20", - "chacha20poly1305", - "getrandom 0.2.16", - "instant", - "negentropy 0.3.1", - "negentropy 0.4.3", - "once_cell", - "scrypt", - "serde", - "serde_json", - "unicode-normalization", - "url", -] - -[[package]] -name = "nostr" -version = "0.39.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d90b55eff1f0747d9e423972179672e1aacac3d3ccee4c1281147eaa90d6491e" +checksum = "767549d0bc88d1cfe39b33b8633f54092184f12d7bbdc66984869676f4c0e252" dependencies = [ "aes", "base64 0.22.1", @@ -3481,6 +3444,7 @@ dependencies = [ "chacha20", "chacha20poly1305", "getrandom 0.2.16", + "hex", "instant", "scrypt", "secp256k1 0.29.1", @@ -3492,26 +3456,28 @@ dependencies = [ [[package]] name = "nostr-database" -version = "0.39.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce07b47c77b8e5a856727885fe0ae47b9aa53d8d853a2190dd479b5a0d6e4f52" +checksum = "7462c9d8ae5ef6a28d66a192d399ad2530f1f2130b13186296dbb11bdef5b3d1" dependencies = [ - "nostr 0.39.0", + "lru", + "nostr", "tokio", ] [[package]] name = "nostr-relay-pool" -version = "0.39.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "211ac5bbdda1a8eec0c21814a838da832038767a5d354fe2fcc1ca438cae56fd" +checksum = "4b1073ccfbaea5549fb914a9d52c68dab2aecda61535e5143dd73e95445a804b" dependencies = [ "async-utility", "async-wsocket", "atomic-destructor", - "negentropy 0.3.1", - "negentropy 0.5.0", - "nostr 0.39.0", + "hex", + "lru", + "negentropy", + "nostr", "nostr-database", "tokio", "tracing", @@ -3563,7 +3529,7 @@ dependencies = [ "md5", "mime_guess", "ndk-context", - "nostr 0.37.0", + "nostr", "nostrdb", "nwc", "once_cell", @@ -3853,13 +3819,13 @@ dependencies = [ [[package]] name = "nwc" -version = "0.39.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4cf4f37803a8c4f5c6e2964947d9346227eea1ed57ce1d1c7fe9c33ff8ed59" +checksum = "f651e3c28dd9da0873151233e804a92b6240a1db1260f3c9d727950adb8e9036" dependencies = [ - "async-utility", - "nostr 0.39.0", + "nostr", "nostr-relay-pool", + "tracing", ] [[package]] @@ -5458,7 +5424,6 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.9.0", "itoa", "memchr", "ryu", @@ -6284,7 +6249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "319c70195101a93f56db4c74733e272d720768e13471f400c78406a326b172b0" dependencies = [ "cc", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index f26504816..27369eb53 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,8 +43,8 @@ image = { version = "0.25", features = ["jpeg", "png", "webp"] } indexmap = "2.6.0" log = "0.4.17" md5 = "0.7.0" -nostr = { version = "0.37.0", default-features = false, features = ["std", "nip49"] } -nwc = "0.39.0" +nostr = { version = "0.44.0", default-features = false, features = ["std", "nip49"] } +nwc = "0.44.0" mio = { version = "1.0.3", features = ["os-poll", "net"] } nostrdb = { git = "https://github.com/damus-io/nostrdb-rs", rev = "2b2e5e43c019b80b98f1db6a03a1b88ca699bfa3" } #nostrdb = "0.6.1" diff --git a/crates/enostr/src/keypair.rs b/crates/enostr/src/keypair.rs index 21ee9f154..c783e4b23 100644 --- a/crates/enostr/src/keypair.rs +++ b/crates/enostr/src/keypair.rs @@ -105,7 +105,7 @@ impl FullKeypair { pub fn generate() -> Self { let mut rng = nostr::secp256k1::rand::rngs::OsRng; let (secret_key, _) = &nostr::SECP256K1.generate_keypair(&mut rng); - let (xopk, _) = secret_key.x_only_public_key(&nostr::SECP256K1); + let (xopk, _) = secret_key.x_only_public_key(nostr::SECP256K1); let secret_key = nostr::SecretKey::from(*secret_key); FullKeypair { pubkey: Pubkey::new(xopk.serialize()), @@ -160,8 +160,7 @@ impl SerializableKeypair { pub fn to_keypair(&self, pass: &str) -> Keypair { Keypair::new( self.pubkey, - self.encrypted_secret_key - .and_then(|e| e.to_secret_key(pass).ok()), + self.encrypted_secret_key.and_then(|e| e.decrypt(pass).ok()), ) } } @@ -236,7 +235,7 @@ fn parse_seckey<'a>(parser: &mut TokenParser<'a>) -> Result>, - balance: Option>>, + balance: Option>>, } impl Clone for Wallet { @@ -116,7 +116,7 @@ impl Wallet { }) } - pub fn get_balance(&mut self) -> Option<&Result> { + pub fn get_balance(&mut self) -> Option<&Result> { if self.balance.is_none() { self.balance = Some(get_balance(self.wallet.clone())); return None; @@ -138,51 +138,11 @@ impl Wallet { } } -#[derive(Clone)] -pub enum NwcError { - /// NIP47 error - NIP47(String), - /// Relay - Relay(String), - /// Premature exit - PrematureExit, - /// Request timeout - Timeout, -} - -impl From for NwcError { - fn from(value: nwc::Error) -> Self { - match value { - nwc::error::Error::NIP47(error) => NwcError::NIP47(error.to_string()), - nwc::error::Error::Relay(error) => NwcError::Relay(error.to_string()), - nwc::error::Error::PrematureExit => NwcError::PrematureExit, - nwc::error::Error::Timeout => NwcError::Timeout, - } - } -} - -impl Display for NwcError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - NwcError::NIP47(err) => write!(f, "NIP47 error: {err}"), - NwcError::Relay(err) => write!(f, "Relay error: {err}"), - NwcError::PrematureExit => write!(f, "Premature exit"), - NwcError::Timeout => write!(f, "Request timed out"), - } - } -} - -fn get_balance(nwc: Arc>) -> Promise> { +fn get_balance(nwc: Arc>) -> Promise> { let (sender, promise) = Promise::new(); tokio::spawn(async move { - sender.send( - nwc.read() - .await - .get_balance() - .await - .map_err(nwc::Error::into), - ); + sender.send(nwc.read().await.get_balance().await); }); promise