Skip to content

Commit df47d33

Browse files
committed
Prefactor: Upgrade to electrum-client v0.22
We upgrade our tests to use `electrum-client` v0.22 and `electrsd` v0.31 to ensure compatibility with `bdk_electrum` were about to start using.
1 parent 3bf6e0a commit df47d33

File tree

5 files changed

+34
-52
lines changed

5 files changed

+34
-52
lines changed

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,16 @@ winapi = { version = "0.3", features = ["winbase"] }
9292
lightning = { version = "0.1.0", features = ["std", "_test_utils"] }
9393
#lightning = { git = "https://github.com/lightningdevkit/rust-lightning", branch="main", features = ["std", "_test_utils"] }
9494
#lightning = { path = "../rust-lightning/lightning", features = ["std", "_test_utils"] }
95-
electrum-client = { version = "0.21.0", default-features = true }
96-
bitcoincore-rpc = { version = "0.19.0", default-features = false }
95+
electrum-client = { version = "0.22.0", default-features = true }
9796
proptest = "1.0.0"
9897
regex = "1.5.6"
9998

10099
[target.'cfg(not(no_download))'.dev-dependencies]
101-
electrsd = { version = "0.29.0", features = ["legacy", "esplora_a33e97e1", "bitcoind_25_0"] }
100+
electrsd = { version = "0.33.0", default-features = false, features = ["legacy", "esplora_a33e97e1", "corepc-node_27_2"] }
102101

103102
[target.'cfg(no_download)'.dev-dependencies]
104-
electrsd = { version = "0.29.0", features = ["legacy"] }
103+
electrsd = { version = "0.33.0", default-features = false, features = ["legacy"] }
104+
corepc-node = { version = "0.7.0", default-features = false, features = ["27_2"] }
105105

106106
[target.'cfg(cln_test)'.dev-dependencies]
107107
clightningrpc = { version = "0.3.0-beta.8", default-features = false }

tests/common/mod.rs

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,9 @@ use bitcoin::hashes::sha256::Hash as Sha256;
3333
use bitcoin::hashes::Hash;
3434
use bitcoin::{Address, Amount, Network, OutPoint, Txid};
3535

36-
use bitcoincore_rpc::bitcoincore_rpc_json::AddressType;
37-
use bitcoincore_rpc::Client as BitcoindClient;
38-
use bitcoincore_rpc::RpcApi;
39-
40-
use electrsd::{bitcoind, bitcoind::BitcoinD, ElectrsD};
36+
use electrsd::corepc_node::Client as BitcoindClient;
37+
use electrsd::corepc_node::Node as BitcoinD;
38+
use electrsd::{corepc_node, ElectrsD};
4139
use electrum_client::ElectrumApi;
4240

4341
use rand::distributions::Alphanumeric;
@@ -171,10 +169,10 @@ pub(crate) use expect_payment_successful_event;
171169

172170
pub(crate) fn setup_bitcoind_and_electrsd() -> (BitcoinD, ElectrsD) {
173171
let bitcoind_exe =
174-
env::var("BITCOIND_EXE").ok().or_else(|| bitcoind::downloaded_exe_path().ok()).expect(
172+
env::var("BITCOIND_EXE").ok().or_else(|| corepc_node::downloaded_exe_path().ok()).expect(
175173
"you need to provide an env var BITCOIND_EXE or specify a bitcoind version feature",
176174
);
177-
let mut bitcoind_conf = bitcoind::Conf::default();
175+
let mut bitcoind_conf = corepc_node::Conf::default();
178176
bitcoind_conf.network = "regtest";
179177
let bitcoind = BitcoinD::with_conf(bitcoind_exe, &bitcoind_conf).unwrap();
180178

@@ -359,17 +357,14 @@ pub(crate) fn setup_node(
359357
pub(crate) fn generate_blocks_and_wait<E: ElectrumApi>(
360358
bitcoind: &BitcoindClient, electrs: &E, num: usize,
361359
) {
362-
let _ = bitcoind.create_wallet("ldk_node_test", None, None, None, None);
360+
let _ = bitcoind.create_wallet("ldk_node_test");
363361
let _ = bitcoind.load_wallet("ldk_node_test");
364362
print!("Generating {} blocks...", num);
365-
let cur_height = bitcoind.get_block_count().expect("failed to get current block height");
366-
let address = bitcoind
367-
.get_new_address(Some("test"), Some(AddressType::Legacy))
368-
.expect("failed to get new address")
369-
.require_network(bitcoin::Network::Regtest)
370-
.expect("failed to get new address");
363+
let blockchain_info = bitcoind.get_blockchain_info().expect("failed to get blockchain info");
364+
let cur_height = blockchain_info.blocks;
365+
let address = bitcoind.new_address().expect("failed to get new address");
371366
// TODO: expect this Result once the WouldBlock issue is resolved upstream.
372-
let _block_hashes_res = bitcoind.generate_to_address(num as u64, &address);
367+
let _block_hashes_res = bitcoind.generate_to_address(num, &address);
373368
wait_for_block(electrs, cur_height as usize + num);
374369
print!(" Done!");
375370
println!("\n");
@@ -450,13 +445,12 @@ where
450445
pub(crate) fn premine_and_distribute_funds<E: ElectrumApi>(
451446
bitcoind: &BitcoindClient, electrs: &E, addrs: Vec<Address>, amount: Amount,
452447
) {
453-
let _ = bitcoind.create_wallet("ldk_node_test", None, None, None, None);
448+
let _ = bitcoind.create_wallet("ldk_node_test");
454449
let _ = bitcoind.load_wallet("ldk_node_test");
455450
generate_blocks_and_wait(bitcoind, electrs, 101);
456451

457452
for addr in addrs {
458-
let txid =
459-
bitcoind.send_to_address(&addr, amount, None, None, None, None, None, None).unwrap();
453+
let txid = bitcoind.send_to_address(&addr, amount).unwrap().0.parse().unwrap();
460454
wait_for_tx(electrs, txid);
461455
}
462456

tests/integration_tests_cln.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ use lightning_invoice::{Bolt11InvoiceDescription, Description};
1818
use clightningrpc::lightningrpc::LightningRPC;
1919
use clightningrpc::responses::NetworkAddress;
2020

21-
use bitcoincore_rpc::Auth;
22-
use bitcoincore_rpc::Client as BitcoindClient;
21+
use electrsd::corepc_client::client_sync::Auth;
22+
use electrsd::corepc_node::Client as BitcoindClient;
2323

2424
use electrum_client::Client as ElectrumClient;
2525
use lightning_invoice::Bolt11Invoice;
@@ -33,8 +33,8 @@ use std::str::FromStr;
3333
#[test]
3434
fn test_cln() {
3535
// Setup bitcoind / electrs clients
36-
let bitcoind_client = BitcoindClient::new(
37-
"127.0.0.1:18443",
36+
let bitcoind_client = BitcoindClient::new_with_auth(
37+
"http://127.0.0.1:18443",
3838
Auth::UserPass("user".to_string(), "pass".to_string()),
3939
)
4040
.unwrap();

tests/integration_tests_lnd.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ use lnd_grpc_rust::lnrpc::{
1515
};
1616
use lnd_grpc_rust::{connect, LndClient};
1717

18-
use bitcoincore_rpc::Auth;
19-
use bitcoincore_rpc::Client as BitcoindClient;
18+
use electrsd::corepc_client::client_sync::Auth;
19+
use electrsd::corepc_node::Client as BitcoindClient;
2020

2121
use electrum_client::Client as ElectrumClient;
2222
use lightning_invoice::{Bolt11InvoiceDescription, Description};
@@ -30,8 +30,8 @@ use tokio::fs;
3030
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
3131
async fn test_lnd() {
3232
// Setup bitcoind / electrs clients
33-
let bitcoind_client = BitcoindClient::new(
34-
"127.0.0.1:18443",
33+
let bitcoind_client = BitcoindClient::new_with_auth(
34+
"http://127.0.0.1:18443",
3535
Auth::UserPass("user".to_string(), "pass".to_string()),
3636
)
3737
.unwrap();

tests/integration_tests_rust.rs

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ use lightning::ln::channelmanager::PaymentId;
2828
use lightning::routing::gossip::{NodeAlias, NodeId};
2929
use lightning::util::persist::KVStore;
3030

31-
use bitcoincore_rpc::RpcApi;
31+
use lightning_invoice::{Bolt11InvoiceDescription, Description};
3232

3333
use bitcoin::hashes::Hash;
3434
use bitcoin::Amount;
35-
use lightning_invoice::{Bolt11InvoiceDescription, Description};
35+
3636
use log::LevelFilter;
3737

3838
use std::sync::Arc;
@@ -500,16 +500,10 @@ fn onchain_wallet_recovery() {
500500

501501
let txid = bitcoind
502502
.client
503-
.send_to_address(
504-
&addr_2,
505-
Amount::from_sat(premine_amount_sat),
506-
None,
507-
None,
508-
None,
509-
None,
510-
None,
511-
None,
512-
)
503+
.send_to_address(&addr_2, Amount::from_sat(premine_amount_sat))
504+
.unwrap()
505+
.0
506+
.parse()
513507
.unwrap();
514508
wait_for_tx(&electrsd.client, txid);
515509

@@ -542,16 +536,10 @@ fn onchain_wallet_recovery() {
542536

543537
let txid = bitcoind
544538
.client
545-
.send_to_address(
546-
&addr_6,
547-
Amount::from_sat(premine_amount_sat),
548-
None,
549-
None,
550-
None,
551-
None,
552-
None,
553-
None,
554-
)
539+
.send_to_address(&addr_6, Amount::from_sat(premine_amount_sat))
540+
.unwrap()
541+
.0
542+
.parse()
555543
.unwrap();
556544
wait_for_tx(&electrsd.client, txid);
557545

0 commit comments

Comments
 (0)