diff --git a/Cargo.lock b/Cargo.lock index cb32126..9ceba99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1451,6 +1451,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1875,6 +1885,41 @@ dependencies = [ "smallvec", ] +[[package]] +name = "rust-embed" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" +dependencies = [ + "proc-macro2", + "quote", + "rust-embed-utils", + "syn", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" +dependencies = [ + "mime_guess", + "sha2", + "walkdir", +] + [[package]] name = "rustc-hash" version = "2.1.1" @@ -1919,9 +1964,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "ring", "rustls-pki-types", @@ -1949,6 +1994,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2523,6 +2577,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-ident" version = "1.0.24" @@ -2609,6 +2669,16 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -2754,6 +2824,15 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "windows-core" version = "0.62.2" @@ -3184,8 +3263,10 @@ dependencies = [ "hex", "lightning", "lightning-invoice", + "mime_guess", "nostr-sdk", "parking_lot", + "rust-embed", "serde", "serde_json", "thiserror 2.0.18", diff --git a/crates/wolfe-node/src/sync.rs b/crates/wolfe-node/src/sync.rs index baea9b4..72f961f 100644 --- a/crates/wolfe-node/src/sync.rs +++ b/crates/wolfe-node/src/sync.rs @@ -544,11 +544,9 @@ impl SyncEngine { debug!(%hash, "new block announced"); has_block_announcement = true; } - Inventory::Transaction(txid) => { - if !self.known_txids.contains(txid) { - tx_requests.push(Inventory::WitnessTransaction(*txid)); - self.known_txids.insert(*txid); - } + Inventory::Transaction(txid) if !self.known_txids.contains(txid) => { + tx_requests.push(Inventory::WitnessTransaction(*txid)); + self.known_txids.insert(*txid); } Inventory::WTx(wtxid) => { // Convert wtxid to txid for dedup (best effort — they may differ for segwit) diff --git a/crates/wolfe-store/src/peers.rs b/crates/wolfe-store/src/peers.rs index 6ea959b..e558ae4 100644 --- a/crates/wolfe-store/src/peers.rs +++ b/crates/wolfe-store/src/peers.rs @@ -135,7 +135,7 @@ impl PeerStore { let record: PeerRecord = serde_json::from_slice(val_guard.value())?; records.push(record); } - records.sort_by(|a, b| b.last_seen.cmp(&a.last_seen)); + records.sort_by_key(|r| std::cmp::Reverse(r.last_seen)); Ok(records) }