Repository: lndk-org/lndk
Pull request #209: chore: use corepc-node instead of bitcoind
Author: login: a-mpch
Created: 2025-04-17T22:37:12Z | Merged: 2025-04-23T19:39:12Z

Follow @dunxen comment https://github.com/lndk-org/lndk/pull/206#pullrequestreview-2771557060.
This PR upgrades bitcoind, then remove the dependency in favor of corepc-node.


Diff:
diff --git a/Cargo.lock b/Cargo.lock
index 95c56cd0..5e711259 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -102,6 +102,12 @@ version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
+[[package]]
+name = "arrayvec"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+
 [[package]]
 name = "asn1-rs"
 version = "0.6.1"
@@ -240,6 +246,16 @@ dependencies = [
  "rustc-demangle",
 ]
 
+[[package]]
+name = "base58ck"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f"
+dependencies = [
+ "bitcoin-internals",
+ "bitcoin_hashes 0.14.0",
+]
+
 [[package]]
 name = "base64"
 version = "0.13.1"
@@ -270,6 +286,12 @@ version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445"
 
+[[package]]
+name = "bech32"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d"
+
 [[package]]
 name = "bitcoin"
 version = "0.30.2"
@@ -278,10 +300,28 @@ checksum = "1945a5048598e4189e239d3f809b19bdad4845c4b2ba400d304d2dcf26d2c462"
 dependencies = [
  "bech32 0.9.1",
  "bitcoin-private",
- "bitcoin_hashes",
+ "bitcoin_hashes 0.12.0",
  "bitcoinconsensus",
  "hex_lit",
- "secp256k1",
+ "secp256k1 0.27.0",
+]
+
+[[package]]
+name = "bitcoin"
+version = "0.32.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6bc65742dea50536e35ad42492b234c27904a27f0abdcbce605015cb4ea026"
+dependencies = [
+ "base58ck",
+ "base64 0.21.7",
+ "bech32 0.11.0",
+ "bitcoin-internals",
+ "bitcoin-io",
+ "bitcoin-units",
+ "bitcoin_hashes 0.14.0",
+ "hex-conservative 0.2.1",
+ "hex_lit",
+ "secp256k1 0.29.1",
  "serde",
 ]
 
@@ -294,12 +334,37 @@ dependencies = [
  "bech32 0.8.1",
 ]
 
+[[package]]
+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"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf"
+
 [[package]]
 name = "bitcoin-private"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57"
 
+[[package]]
+name = "bitcoin-units"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2"
+dependencies = [
+ "bitcoin-internals",
+ "serde",
+]
+
 [[package]]
 name = "bitcoin_hashes"
 version = "0.12.0"
@@ -307,6 +372,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501"
 dependencies = [
  "bitcoin-private",
+]
+
+[[package]]
+name = "bitcoin_hashes"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16"
+dependencies = [
+ "bitcoin-io",
+ "hex-conservative 0.2.1",
  "serde",
 ]
 
@@ -321,21 +396,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "bitcoind"
-version = "0.30.0"
+name = "bitcoincore-rpc"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4a98e66bb7c1f81abf4f8d992e1839fc0f9cbc627effbff122aae7d5e493a0"
+checksum = "aedd23ae0fd321affb4bbbc36126c6f49a32818dc6b979395d24da8c9d4e80ee"
 dependencies = [
- "anyhow",
- "bitcoin_hashes",
- "core-rpc",
- "flate2",
+ "bitcoincore-rpc-json",
+ "jsonrpc",
  "log",
- "minreq",
- "tar",
- "tempfile",
- "which",
- "zip",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "bitcoincore-rpc-json"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8909583c5fab98508e80ef73e5592a651c954993dc6b7739963257d19f0e71a"
+dependencies = [
+ "bitcoin 0.32.5",
+ "serde",
+ "serde_json",
 ]
 
 [[package]]
@@ -515,13 +596,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
-name = "core-rpc"
-version = "0.17.0"
+name = "corepc-client"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d77079e1b71c2778d6e1daf191adadcd4ff5ec3ccad8298a79061d865b235b"
+checksum = "7c6b8eaeccd3df6c1f264cd6ff8cf5df7d056029473ce9551b2a6257832d38e0"
 dependencies = [
- "bitcoin-private",
- "core-rpc-json",
+ "bitcoin 0.32.5",
+ "corepc-types",
  "jsonrpc",
  "log",
  "serde",
@@ -529,13 +610,31 @@ dependencies = [
 ]
 
 [[package]]
-name = "core-rpc-json"
-version = "0.17.0"
+name = "corepc-node"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "581898ed9a83f31c64731b1d8ca2dfffcfec14edf1635afacd5234cddbde3a41"
+checksum = "b6cb0b5b9e99b8290eeac6cdccfa4f86821fb49011480d86111d85e26287d128"
 dependencies = [
- "bitcoin",
- "bitcoin-private",
+ "anyhow",
+ "bitcoin_hashes 0.14.0",
+ "corepc-client",
+ "flate2",
+ "log",
+ "minreq",
+ "serde_json",
+ "tar",
+ "tempfile",
+ "which",
+ "zip",
+]
+
+[[package]]
+name = "corepc-types"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4bc664fdaeeae1eaf459edb88650af3009b758010fc69b423c5b38142446cfb"
+dependencies = [
+ "bitcoin 0.32.5",
  "serde",
  "serde_json",
 ]
@@ -887,6 +986,15 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20"
 
+[[package]]
+name = "hex-conservative"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd"
+dependencies = [
+ "arrayvec",
+]
+
 [[package]]
 name = "hex_lit"
 version = "0.1.1"
@@ -1076,11 +1184,12 @@ dependencies = [
 
 [[package]]
 name = "jsonrpc"
-version = "0.13.0"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd8d6b3f301ba426b30feca834a2a18d48d5b54e5065496b5c1b05537bee3639"
+checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf"
 dependencies = [
  "base64 0.13.1",
+ "minreq",
  "serde",
  "serde_json",
 ]
@@ -1098,7 +1207,7 @@ source = "git+https://github.com/lndk-org/ldk-sample?rev=57b5e50c8dc306ece286547
 dependencies = [
  "base64 0.13.1",
  "bech32 0.8.1",
- "bitcoin",
+ "bitcoin 0.30.2",
  "bitcoin-bech32",
  "chrono",
  "libc",
@@ -1128,8 +1237,8 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5fd92d4aa159374be430c7590e169b4a6c0fb79018f5bc4ea1bffde536384db3"
 dependencies = [
- "bitcoin",
- "hex-conservative",
+ "bitcoin 0.30.2",
+ "hex-conservative 0.1.2",
  "regex",
 ]
 
@@ -1139,7 +1248,7 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb1c2c64050e37cee7c3b6b022106523784055ac3ee572d360780a1d6fe8062c"
 dependencies = [
- "bitcoin",
+ "bitcoin 0.30.2",
  "lightning",
  "lightning-rapid-gossip-sync",
 ]
@@ -1150,9 +1259,9 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61e1e70fa351daccede0c366cf16320b16a3e42b05ae3c7ec9c0df6b5d3a3e18"
 dependencies = [
- "bitcoin",
+ "bitcoin 0.30.2",
  "chunked_transfer",
- "hex-conservative",
+ "hex-conservative 0.1.2",
  "lightning",
  "serde_json",
  "tokio",
@@ -1165,9 +1274,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "26d07d01cf197bf2184b929b7dc94aa70d935aac6df896c256a3a9475b7e9d40"
 dependencies = [
  "bech32 0.9.1",
- "bitcoin",
+ "bitcoin 0.30.2",
  "lightning",
- "secp256k1",
+ "secp256k1 0.27.0",
 ]
 
 [[package]]
@@ -1176,7 +1285,7 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f9e6a4d49c50a1344916d080dc8c012ce3a778cdd45de8def75350b2b40fe018"
 dependencies = [
- "bitcoin",
+ "bitcoin 0.30.2",
  "lightning",
  "tokio",
 ]
@@ -1187,7 +1296,7 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a8dd33971815fa074b05678e09a6d4b15c78225ea34d66ed4f17c35a53467a9"
 dependencies = [
- "bitcoin",
+ "bitcoin 0.30.2",
  "lightning",
  "windows-sys 0.48.0",
 ]
@@ -1198,7 +1307,7 @@ version = "0.0.123"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d861b0f0cd5f8fe8c63760023c4fd4fd32c384881b41780b62ced2a8a619f91"
 dependencies = [
- "bitcoin",
+ "bitcoin 0.30.2",
  "lightning",
 ]
 
@@ -1213,14 +1322,14 @@ name = "lndk"
 version = "0.2.0"
 dependencies = [
  "async-trait",
- "bitcoin",
- "bitcoind",
+ "bitcoin 0.30.2",
+ "bitcoincore-rpc",
  "bytes",
  "chrono",
  "clap",
  "configure_me",
  "configure_me_codegen",
- "core-rpc",
+ "corepc-node",
  "fedimint-tonic-lnd",
  "futures",
  "hex",
@@ -1346,6 +1455,8 @@ dependencies = [
  "once_cell",
  "rustls 0.21.12",
  "rustls-webpki 0.101.7",
+ "serde",
+ "serde_json",
  "webpki-roots",
 ]
 
@@ -1984,9 +2095,20 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f"
 dependencies = [
- "bitcoin_hashes",
+ "bitcoin_hashes 0.12.0",
  "rand 0.8.5",
- "secp256k1-sys",
+ "secp256k1-sys 0.8.1",
+]
+
+[[package]]
+name = "secp256k1"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113"
+dependencies = [
+ "bitcoin_hashes 0.14.0",
+ "rand 0.8.5",
+ "secp256k1-sys 0.10.1",
  "serde",
 ]
 
@@ -1999,6 +2121,15 @@ dependencies = [
  "cc",
 ]
 
+[[package]]
+name = "secp256k1-sys"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9"
+dependencies = [
+ "cc",
+]
+
 [[package]]
 name = "serde"
 version = "1.0.204"
@@ -2637,14 +2768,11 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "which"
-version = "4.4.2"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
 dependencies = [
- "either",
- "home",
- "once_cell",
- "rustix",
+ "libc",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 073f5d78..6c4fa278 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
 chrono = { version = "0.4.26" }
 ldk-sample = { git = "https://github.com/lndk-org/ldk-sample", rev = "57b5e50c8dc306ece28654777b1cfc4792b35df0" }
 mockall = "0.11.3"
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index a331d898..d547482c 100644
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -2,9 +2,8 @@ mod test_utils;
 
 use bitcoin::network::constants::Network;
 use bitcoin::secp256k1::PublicKey;
-use bitcoincore_rpc::{bitcoin::Network as BitcoindNetwork, json, RpcApi};
-use bitcoind::{get_available_port, BitcoinD, Conf, ConnectParams};
 use chrono::Utc;
+use corepc_node::{get_available_port, Conf, ConnectParams, Node};
 use ldk_sample::config::LdkUserInfo;
 use ldk_sample::node_api::Node as LdkNode;
 use lightning::util::logger::Level;
@@ -41,9 +40,11 @@ pub async fn setup_test_infrastructure(
 
     let port = get_available_port().unwrap();
     let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), port);
+    let cookie_values = connect_params.unwrap();
+
     let ldk1_config = LdkUserInfo {
-        bitcoind_rpc_username: connect_params.0.clone().unwrap(),
-        bitcoind_rpc_password: connect_params.1.clone().unwrap(),
+        bitcoind_rpc_username: cookie_values.user.clone(),
+        bitcoind_rpc_password: cookie_values.password.clone(),
         bitcoind_rpc_host: String::from("localhost"),
         bitcoind_rpc_port: bitcoind.node.params.rpc_socket.port(),
         ldk_data_dir: ldk_test_dir.clone(),
@@ -58,8 +59,8 @@ pub async fn setup_test_infrastructure(
     let port = get_available_port().unwrap();
     let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), port);
     let ldk2_config = LdkUserInfo {
-        bitcoind_rpc_username: connect_params.0.unwrap(),
-        bitcoind_rpc_password: connect_params.1.unwrap(),
+        bitcoind_rpc_username: cookie_values.user.clone(),
+        bitcoind_rpc_password: cookie_values.password.clone(),
         bitcoind_rpc_host: String::from("localhost"),
         bitcoind_rpc_port: bitcoind.node.params.rpc_socket.port(),
         ldk_data_dir: ldk_test_dir,
@@ -104,13 +105,13 @@ pub async fn connect_network(
 
     // We need to convert funding addresses to the form that the bitcoincore_rpc library recognizes.
     let ldk2_addr_string = ldk2_fund_addr.to_string();
-    let ldk2_addr = bitcoind::bitcoincore_rpc::bitcoin::Address::from_str(&ldk2_addr_string)
+    let ldk2_addr = bitcoincore_rpc::bitcoin::Address::from_str(&ldk2_addr_string)
         .unwrap()
-        .require_network(BitcoindNetwork::Regtest)
+        .require_network(bitcoincore_rpc::bitcoin::Network::Regtest)
         .unwrap();
-    let lnd_addr = bitcoind::bitcoincore_rpc::bitcoin::Address::from_str(&lnd_fund_addr)
+    let lnd_addr = bitcoincore_rpc::bitcoin::Address::from_str(&lnd_fund_addr)
         .unwrap()
-        .require_network(BitcoindNetwork::Regtest)
+        .require_network(bitcoincore_rpc::bitcoin::Network::Regtest)
         .unwrap();
     let lnd_network_addr = lnd
         .address
@@ -239,7 +240,7 @@ fn setup_test_dirs(test_name: &str) -> (PathBuf, PathBuf, PathBuf) {
 
 // BitcoindNode holds the tools we need to interact with a Bitcoind node.
 pub struct BitcoindNode {
-    pub node: BitcoinD,
+    pub node: Node,
     _data_dir: TempDir,
     zmq_block_port: u16,
     zmq_tx_port: u16,
@@ -255,15 +256,11 @@ pub async fn setup_bitcoind() -> BitcoindNode {
     let zmq_tx_port_arg = &format!("-zmqpubrawtx=tcp://127.0.0.1:{zmq_tx_port}");
     conf.tmpdir = Some(data_dir_path);
     conf.args = vec!["-regtest", zmq_block_port_arg, zmq_tx_port_arg];
-    let bitcoind = BitcoinD::from_downloaded_with_conf(&conf).unwrap();
+    let bitcoind = Node::from_downloaded_with_conf(&conf).unwrap();
 
     // Mine 101 blocks in our little regtest network so that the funds are spendable.
     // (See https://bitcoin.stackexchange.com/questions/1991/what-is-the-block-maturation-time)
-    let address = bitcoind
-        .client
-        .get_new_address(None, Some(json::AddressType::Bech32))
-        .unwrap();
-    let address = address.require_network(BitcoindNetwork::Regtest).unwrap();
+    let address = bitcoind.client.new_address().unwrap();
     bitcoind.client.generate_to_address(101, &address).unwrap();
 
     BitcoindNode {
@@ -315,10 +312,11 @@ impl LndNode {
 
         // Have node run on a randomly assigned grpc port. That way, if we run more than one lnd
         // node, they won't clash.
-        let port = bitcoind::get_available_port().unwrap();
+        let port = corepc_node::get_available_port().unwrap();
         let rpc_addr = format!("localhost:{}", port);
-        let lnd_port = bitcoind::get_available_port().unwrap();
+        let lnd_port = corepc_node::get_available_port().unwrap();
         let lnd_addr = format!("localhost:{}", lnd_port);
+        let cookie_values = connect_params.unwrap();
         let args = [
             format!("--listen={}", lnd_addr),
             format!("--rpclisten={}", rpc_addr),
@@ -333,8 +331,8 @@ impl LndNode {
             format!("--tlskeypath={}", key_path),
             format!("--logdir={}", log_dir.display()),
             format!("--debuglevel=info,PEER=info"),
-            format!("--bitcoind.rpcuser={}", connect_params.0.unwrap()),
-            format!("--bitcoind.rpcpass={}", connect_params.1.unwrap()),
+            format!("--bitcoind.rpcuser={}", cookie_values.user),
+            format!("--bitcoind.rpcpass={}", cookie_values.password),
             format!(
                 "--bitcoind.zmqpubrawblock=tcp://127.0.0.1:{}",
                 zmq_block_port
diff --git a/tests/integration_tests.rs b/tests/integration_tests.rs
index ec644021..3d91c84c 100644
--- a/tests/integration_tests.rs
+++ b/tests/integration_tests.rs
@@ -5,7 +5,6 @@ use lndk;
 use bitcoin::secp256k1::{PublicKey, Secp256k1};
 use bitcoin::Network;
 use bitcoincore_rpc::bitcoin::Network as RpcNetwork;
-use bitcoincore_rpc::RpcApi;
 use ldk_sample::node_api::Node as LdkNode;
 use lightning::blinded_path::{BlindedPath, IntroductionNode};
 use lightning::offers::offer::Quantity;
@@ -115,7 +114,7 @@ async fn test_lndk_send_invoice_request() {
 
     // We need to convert funding addresses to the form that the bitcoincore_rpc library recognizes.
     let ldk2_addr_string = ldk2_fund_addr.to_string();
-    let ldk2_addr = bitcoind::bitcoincore_rpc::bitcoin::Address::from_str(&ldk2_addr_string)
+    let ldk2_addr = bitcoincore_rpc::bitcoin::Address::from_str(&ldk2_addr_string)
         .unwrap()
         .require_network(RpcNetwork::Regtest)
         .unwrap();


Reviews:
user: login: dunxen
body: Thanks! This LGTM.

Just one question.
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-04-23T10:15:45Z
user: login: a-mpch
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-23T14:57:50Z
user: login: a-mpch
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-23T14:58:26Z
user: login: a-mpch
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-23T15:55:33Z
user: login: a-mpch
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-23T16:28:20Z
user: login: dunxen
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-23T19:45:11Z

Review comments:
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: dunxen
body: Any reason we can't bump to bitcoin core 28 with the [`28_0` feature](https://github.com/rust-bitcoin/corepc/blob/2643b9d5c0bfaf3277848eba22cff6c9b8a16b96/node/Cargo.toml#L48)?

I see since April 14th, v29 is also out, but that's too recent for the feature to be available in `corerpc-node`, I guess!
created_at: 2025-04-23T10:15:28Z
author_association: COLLABORATOR
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: a-mpch
body: yes 😅, all our tests panic with 28_0, I tried to debug it but thought that we could live with 27_2 for now and then I could figure out what's the problem
created_at: 2025-04-23T14:57:50Z
author_association: COLLABORATOR
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: a-mpch
body: might be related to https://github.com/rust-bitcoin/corepc/pull/46 but not really sure
created_at: 2025-04-23T14:58:26Z
author_association: COLLABORATOR
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: a-mpch
body: oh no, I dig a bit more on this and it is just our version of lnd. I feel like I'm in a spiral of dependencies.
In another PR we can upgrade lnd tag and move to 28_0, so we can merge this. What do you think @dunxen?
created_at: 2025-04-23T15:55:33Z
author_association: COLLABORATOR
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: a-mpch
body: opened #210 on top of this one
created_at: 2025-04-23T16:28:20Z
author_association: COLLABORATOR
diff_hunk: @@ -34,8 +34,8 @@ triggered = "0.1.2"
 prost = "0.12"
 
 [dev-dependencies]
-bitcoincore-rpc = { package="core-rpc", version = "0.17.0" }
-bitcoind = { version = "0.30.0", features = [ "22_0" ] }
+bitcoincore-rpc = "0.19.0"
+corepc-node = { version = "0.7.0", features = [ "27_2", "download"] }
path: Cargo.toml
user: login: dunxen
body: yeah, no stress! was just curious :)
created_at: 2025-04-23T19:45:11Z
author_association: COLLABORATOR

PR comments:
user: login: codecov[bot]
created_at: 2025-04-17T22:39:58Z
body: ## [Codecov](https://app.codecov.io/gh/lndk-org/lndk/pull/209?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=lndk-org) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 0.00%. Comparing base [(`075f135`)](https://app.codecov.io/gh/lndk-org/lndk/commit/075f135b2f7af2a138078437e905c45ba45e1585?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=lndk-org) to head [(`7e330c0`)](https://app.codecov.io/gh/lndk-org/lndk/commit/7e330c0cad2f012da72979b48abde8b1e1554367?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=lndk-org).
> Report is 2 commits behind head on master.

<details><summary>Additional details and impacted files</summary>


```diff
@@          Coverage Diff           @@
##           master    #209   +/-   ##
======================================
  Coverage    0.00%   0.00%           
======================================
  Files           1       1           
  Lines         149     149           
======================================
  Misses        149     149           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/lndk-org/lndk/pull/209?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=lndk-org).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=lndk-org).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
author_association: NONE
user: login: dunxen
created_at: 2025-04-18T13:03:16Z
body: Thank you! I will review next week when I'm back from Easter break.
author_association: COLLABORATOR