From c079f9e7c0a28b9053dc056f136c3886696e4dc1 Mon Sep 17 00:00:00 2001
From: "hinto.janai" <hinto.janai@protonmail.com>
Date: Thu, 19 Sep 2024 18:26:36 -0400
Subject: [PATCH] fixes

---
 Cargo.lock                                        |  2 ++
 Cargo.toml                                        |  1 -
 consensus/Cargo.toml                              |  1 +
 consensus/rules/Cargo.toml                        |  7 ++++---
 consensus/rules/src/lib.rs                        | 14 ++++++++------
 .../rules/src/transactions/contextual_data.rs     |  2 +-
 consensus/src/context/task.rs                     |  2 +-
 consensus/src/lib.rs                              | 15 ++++++++-------
 consensus/tests/verify_correct_txs.rs             |  6 +-----
 9 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index 5bb97776..d5c6a23b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -552,6 +552,7 @@ dependencies = [
 name = "cuprate-consensus"
 version = "0.1.0"
 dependencies = [
+ "cfg-if",
  "cuprate-consensus-rules",
  "cuprate-helper",
  "cuprate-test-utils",
@@ -579,6 +580,7 @@ dependencies = [
 name = "cuprate-consensus-rules"
 version = "0.1.0"
 dependencies = [
+ "cfg-if",
  "crypto-bigint",
  "cuprate-cryptonight",
  "cuprate-helper",
diff --git a/Cargo.toml b/Cargo.toml
index f991f73d..2554fbde 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -210,7 +210,6 @@ unseparated_literal_suffix = "deny"
 unnecessary_safety_doc = "deny"
 unnecessary_safety_comment = "deny"
 unnecessary_self_imports = "deny"
-tests_outside_test_module = "deny"
 string_to_string = "deny"
 rest_pat_in_fully_bound_structs = "deny"
 redundant_type_annotations = "deny"
diff --git a/consensus/Cargo.toml b/consensus/Cargo.toml
index 91932d74..12d97eed 100644
--- a/consensus/Cargo.toml
+++ b/consensus/Cargo.toml
@@ -12,6 +12,7 @@ cuprate-helper = { path = "../helper", default-features = false, features = ["st
 cuprate-consensus-rules = { path = "./rules", features = ["rayon"] }
 cuprate-types = { path = "../types" }
 
+cfg-if = { workspace = true }
 thiserror = { workspace = true }
 tower = { workspace = true, features = ["util"] }
 tracing = { workspace = true, features = ["std", "attributes"] }
diff --git a/consensus/rules/Cargo.toml b/consensus/rules/Cargo.toml
index ede4350b..575bed70 100644
--- a/consensus/rules/Cargo.toml
+++ b/consensus/rules/Cargo.toml
@@ -24,15 +24,16 @@ hex = { workspace = true, features = ["std"] }
 hex-literal = { workspace = true }
 crypto-bigint = { workspace = true }
 
+cfg-if = { workspace = true }
 tracing = { workspace = true, features = ["std"] }
 thiserror = { workspace = true }
 
 rayon = { workspace = true, optional = true }
 
 [dev-dependencies]
-proptest = {workspace = true}
-proptest-derive = {workspace = true}
-tokio = {version = "1.35.0", features = ["rt-multi-thread", "macros"]}
+proptest = { workspace = true }
+proptest-derive = { workspace = true }
+tokio = { version = "1.35.0", features = ["rt-multi-thread", "macros"] }
 
 [lints]
 workspace = true
\ No newline at end of file
diff --git a/consensus/rules/src/lib.rs b/consensus/rules/src/lib.rs
index 2d54a818..876e2f7f 100644
--- a/consensus/rules/src/lib.rs
+++ b/consensus/rules/src/lib.rs
@@ -1,9 +1,11 @@
-#[cfg(test)]
-use proptest as _;
-#[cfg(test)]
-use proptest_derive as _;
-#[cfg(test)]
-use tokio as _;
+cfg_if::cfg_if! {
+    // Used in external `tests/`.
+    if #[cfg(test)] {
+        use proptest as _;
+        use proptest_derive as _;
+        use tokio as _;
+    }
+}
 
 use std::time::{SystemTime, UNIX_EPOCH};
 
diff --git a/consensus/rules/src/transactions/contextual_data.rs b/consensus/rules/src/transactions/contextual_data.rs
index 74dcb5b7..73bc12ec 100644
--- a/consensus/rules/src/transactions/contextual_data.rs
+++ b/consensus/rules/src/transactions/contextual_data.rs
@@ -103,7 +103,7 @@ impl DecoyInfo {
     ///
     /// So:
     ///
-    /// `amount_outs_on_chain(inputs``[X]`) == `outputs_with_amount``[X]`
+    /// `amount_outs_on_chain(inputs[X]) == outputs_with_amount[X]`
     ///
     /// Do not rely on this function to do consensus checks!
     ///
diff --git a/consensus/src/context/task.rs b/consensus/src/context/task.rs
index 32ee77f1..82b466c4 100644
--- a/consensus/src/context/task.rs
+++ b/consensus/src/context/task.rs
@@ -333,7 +333,7 @@ impl<D: Database + Clone + Send + 'static> ContextTask<D> {
     pub(crate) async fn run(mut self, mut rx: mpsc::Receiver<ContextTaskRequest>) {
         while let Some(req) = rx.recv().await {
             let res = self.handle_req(req.req).instrument(req.span).await;
-            let _unused = req.tx.send(res);
+            drop(req.tx.send(res));
         }
 
         tracing::info!("Shutting down blockchain context task.");
diff --git a/consensus/src/lib.rs b/consensus/src/lib.rs
index d522b6c1..e104cec9 100644
--- a/consensus/src/lib.rs
+++ b/consensus/src/lib.rs
@@ -11,13 +11,14 @@
 //! with [`BlockchainResponse`].
 //!
 
-// Used in external `tests/`.
-#[cfg(test)]
-use cuprate_test_utils as _;
-#[cfg(test)]
-use curve25519_dalek as _;
-#[cfg(test)]
-use hex_literal as _;
+cfg_if::cfg_if! {
+    // Used in external `tests/`.
+    if #[cfg(test)] {
+        use cuprate_test_utils as _;
+        use curve25519_dalek as _;
+        use hex_literal as _;
+    }
+}
 
 use cuprate_consensus_rules::ConsensusError;
 
diff --git a/consensus/tests/verify_correct_txs.rs b/consensus/tests/verify_correct_txs.rs
index 0eb3cb21..4d6c1793 100644
--- a/consensus/tests/verify_correct_txs.rs
+++ b/consensus/tests/verify_correct_txs.rs
@@ -1,8 +1,4 @@
-#![expect(
-    clippy::tests_outside_test_module,
-    unused_crate_dependencies,
-    reason = "external test module"
-)]
+#![expect(unused_crate_dependencies, reason = "external test module")]
 #![expect(clippy::allow_attributes, reason = "usage inside macro")]
 
 use std::{