Skip to content

Commit e5f3a6b

Browse files
committed
f
1 parent 3292bd3 commit e5f3a6b

6 files changed

+59
-40
lines changed

src/builder.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -491,8 +491,8 @@ impl ArcedNodeBuilder {
491491
}
492492

493493
/// Configures the [`Node`] instance to enable payjoin transactions.
494-
pub fn set_payjoin_config(&self, payjoin_relay: String) -> Result<(), BuildError> {
495-
self.inner.write().unwrap().set_payjoin_config(payjoin_relay).map(|_| ())
494+
pub fn set_payjoin_config(&self, payjoin_directory: String, payjoin_relay: String, ohttp_keys: Option<String>) -> Result<(), BuildError> {
495+
self.inner.write().unwrap().set_payjoin_config(payjoin_directory, payjoin_relay, ohttp_keys).map(|_| ())
496496
}
497497

498498
/// Configures the [`Node`] instance to source its gossip data from the given RapidGossipSync
@@ -1016,6 +1016,8 @@ fn build_with_store_internal(
10161016
Arc::clone(&logger),
10171017
pj_config.payjoin_relay.clone(),
10181018
)));
1019+
dbg!("directory", pj_config.payjoin_directory.clone());
1020+
dbg!("relay", pj_config.payjoin_relay.clone());
10191021
payjoin_receiver = Some(Arc::new(PayjoinReceiver::new(
10201022
Arc::clone(&logger),
10211023
Arc::clone(&wallet),

src/payjoin_receiver.rs

+4
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ impl PayjoinReceiver {
354354
let payjoin_directory = match payjoin_directory.join("/ohttp-keys") {
355355
Ok(payjoin_directory) => payjoin_directory,
356356
Err(e) => {
357+
dbg!(&e);
357358
log_info!(
358359
self.logger,
359360
"Payjoin Receiver: Unable to construct ohttp keys url {}",
@@ -365,6 +366,7 @@ impl PayjoinReceiver {
365366
let proxy = match reqwest::Proxy::all(self.payjoin_relay.to_string()) {
366367
Ok(proxy) => proxy,
367368
Err(e) => {
369+
dbg!(&e);
368370
log_info!(
369371
self.logger,
370372
"Payjoin Receiver: Unable to construct reqwest proxy {}",
@@ -376,6 +378,7 @@ impl PayjoinReceiver {
376378
let client = match reqwest::Client::builder().proxy(proxy).build() {
377379
Ok(client) => client,
378380
Err(e) => {
381+
dbg!(&e);
379382
log_info!(
380383
self.logger,
381384
"Payjoin Receiver: Unable to construct reqwest client {}",
@@ -387,6 +390,7 @@ impl PayjoinReceiver {
387390
let response = match client.get(payjoin_directory).send().await {
388391
Ok(response) => response,
389392
Err(e) => {
393+
dbg!(&e);
390394
log_info!(
391395
self.logger,
392396
"Payjoin Receiver: Unable to make request to fetch ohttp keys {}",

src/payment/payjoin/mod.rs

+13
Original file line numberDiff line numberDiff line change
@@ -340,3 +340,16 @@ impl PayjoinPayment {
340340
}
341341
}
342342
}
343+
344+
// use crate::lightning::chain::{Filter, WatchedOutput};
345+
346+
// impl Filter for PayjoinPayment {
347+
// fn register_tx(&self, txid: &bitcoin::Txid, script_pubkey: &bitcoin::Script) {
348+
// if let Some(receiver) = &self.receiver {
349+
// receiver.register_tx(txid);
350+
// }
351+
// }
352+
// fn register_output(&self, output: WatchOutput) {
353+
// }
354+
// }
355+

tests/common/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,10 @@ macro_rules! expect_payment_successful_event {
147147

148148
pub(crate) use expect_payment_successful_event;
149149

150-
macro_rules! expect_payjoin_tx_sent_successfully_event {
150+
macro_rules! expect_payjoin_payment_pending_event {
151151
($node: expr) => {{
152152
match $node.wait_next_event() {
153-
ref e @ Event::PayjoinTxSendSuccess { txid } => {
153+
ref e @ Event::PayjoinPaymentPending { txid } => {
154154
println!("{} got event {:?}", $node.node_id(), e);
155155
$node.event_handled();
156156
txid
@@ -162,7 +162,7 @@ macro_rules! expect_payjoin_tx_sent_successfully_event {
162162
}};
163163
}
164164

165-
pub(crate) use expect_payjoin_tx_sent_successfully_event;
165+
pub(crate) use expect_payjoin_payment_pending_event;
166166

167167
pub(crate) fn setup_bitcoind_and_electrsd() -> (BitcoinD, ElectrsD) {
168168
let bitcoind_exe =

tests/integration_tests_payjoin.rs

+33-33
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
mod common;
22

33
use common::{
4-
expect_payjoin_tx_sent_successfully_event, generate_blocks_and_wait,
4+
expect_payjoin_payment_pending_event, generate_blocks_and_wait,
55
premine_and_distribute_funds, setup_bitcoind_and_electrsd, setup_two_payjoin_nodes,
66
wait_for_tx,
77
};
@@ -33,42 +33,42 @@ fn send_receive_regular_payjoin_transaction() {
3333
dbg!(&payjoin_uri);
3434
let sender_payjoin_payment = node_b_pj_sender.payjoin_payment();
3535
assert!(sender_payjoin_payment.send(payjoin_uri).is_ok());
36-
let txid = expect_payjoin_tx_sent_successfully_event!(node_b_pj_sender);
36+
let txid = expect_payjoin_payment_pending_event!(node_b_pj_sender);
3737
wait_for_tx(&electrsd.client, txid);
3838
generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
3939
node_b_pj_sender.sync_wallets().unwrap();
4040
let node_b_balance = node_b_pj_sender.list_balances();
4141
assert!(node_b_balance.total_onchain_balance_sats < premine_amount_sat - 80000);
4242
}
4343

44-
#[test]
45-
fn send_payjoin_with_amount() {
46-
let (bitcoind, electrsd) = setup_bitcoind_and_electrsd();
47-
let (node_a_pj_receiver, node_b_pj_sender) = setup_two_payjoin_nodes(&electrsd, false);
48-
let addr_b = node_b_pj_sender.onchain_payment().new_address().unwrap();
49-
let addr_a = node_a_pj_receiver.onchain_payment().new_address().unwrap();
50-
let premine_amount_sat = 100_000_00;
51-
premine_and_distribute_funds(
52-
&bitcoind.client,
53-
&electrsd.client,
54-
vec![addr_b, addr_a],
55-
Amount::from_sat(premine_amount_sat),
56-
);
57-
node_a_pj_receiver.sync_wallets().unwrap();
58-
node_b_pj_sender.sync_wallets().unwrap();
59-
assert_eq!(node_b_pj_sender.list_balances().spendable_onchain_balance_sats, premine_amount_sat);
60-
assert_eq!(node_a_pj_receiver.list_balances().spendable_onchain_balance_sats, 100_000_00);
61-
assert_eq!(node_a_pj_receiver.next_event(), None);
62-
let payjoin_payment = node_a_pj_receiver.payjoin_payment();
63-
let payjoin_uri = payjoin_payment.receive(Amount::from_sat(100_000_000)).unwrap();
64-
let payjoin_uri = payjoin_uri.to_string();
65-
dbg!(&payjoin_uri);
66-
let sender_payjoin_payment = node_b_pj_sender.payjoin_payment();
67-
assert!(sender_payjoin_payment.send_with_amount(payjoin_uri, 80_000).is_ok());
68-
let txid = expect_payjoin_tx_sent_successfully_event!(node_b_pj_sender);
69-
wait_for_tx(&electrsd.client, txid);
70-
generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
71-
node_b_pj_sender.sync_wallets().unwrap();
72-
let node_b_balance = node_b_pj_sender.list_balances();
73-
assert!(node_b_balance.total_onchain_balance_sats < premine_amount_sat - 80000);
74-
}
44+
// #[test]
45+
// fn send_payjoin_with_amount() {
46+
// let (bitcoind, electrsd) = setup_bitcoind_and_electrsd();
47+
// let (node_a_pj_receiver, node_b_pj_sender) = setup_two_payjoin_nodes(&electrsd, false);
48+
// let addr_b = node_b_pj_sender.onchain_payment().new_address().unwrap();
49+
// let addr_a = node_a_pj_receiver.onchain_payment().new_address().unwrap();
50+
// let premine_amount_sat = 100_000_00;
51+
// premine_and_distribute_funds(
52+
// &bitcoind.client,
53+
// &electrsd.client,
54+
// vec![addr_b, addr_a],
55+
// Amount::from_sat(premine_amount_sat),
56+
// );
57+
// node_a_pj_receiver.sync_wallets().unwrap();
58+
// node_b_pj_sender.sync_wallets().unwrap();
59+
// assert_eq!(node_b_pj_sender.list_balances().spendable_onchain_balance_sats, premine_amount_sat);
60+
// assert_eq!(node_a_pj_receiver.list_balances().spendable_onchain_balance_sats, 100_000_00);
61+
// assert_eq!(node_a_pj_receiver.next_event(), None);
62+
// let payjoin_payment = node_a_pj_receiver.payjoin_payment();
63+
// let payjoin_uri = payjoin_payment.receive(Amount::from_sat(100_000_000)).unwrap();
64+
// let payjoin_uri = payjoin_uri.to_string();
65+
// dbg!(&payjoin_uri);
66+
// let sender_payjoin_payment = node_b_pj_sender.payjoin_payment();
67+
// assert!(sender_payjoin_payment.send_with_amount(payjoin_uri, 80_000).is_ok());
68+
// let txid = expect_payjoin_tx_sent_successfully_event!(node_b_pj_sender);
69+
// wait_for_tx(&electrsd.client, txid);
70+
// generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
71+
// node_b_pj_sender.sync_wallets().unwrap();
72+
// let node_b_balance = node_b_pj_sender.list_balances();
73+
// assert!(node_b_balance.total_onchain_balance_sats < premine_amount_sat - 80000);
74+
// }

tests/integration_tests_payjoin_with_channel_opening.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ mod common;
22

33
use common::{
44
expect_channel_pending_event, expect_channel_ready_event,
5-
expect_payjoin_tx_sent_successfully_event, generate_blocks_and_wait,
5+
expect_payjoin_payment_pending_event, generate_blocks_and_wait,
66
premine_and_distribute_funds, setup_bitcoind_and_electrsd, setup_two_payjoin_nodes,
77
wait_for_tx,
88
};
@@ -46,7 +46,7 @@ fn send_receive_payjoin_transaction_with_channel_opening() {
4646
assert!(sender_payjoin_payment.send(payjoin_uri).is_ok());
4747
expect_channel_pending_event!(node_a_pj_receiver, node_b_pj_sender.node_id());
4848
expect_channel_pending_event!(node_b_pj_sender, node_a_pj_receiver.node_id());
49-
let txid = expect_payjoin_tx_sent_successfully_event!(node_b_pj_sender);
49+
let txid = expect_payjoin_payment_pending_event!(node_b_pj_sender);
5050
wait_for_tx(&electrsd.client, txid);
5151
generate_blocks_and_wait(&bitcoind.client, &electrsd.client, 6);
5252
node_a_pj_receiver.sync_wallets().unwrap();

0 commit comments

Comments
 (0)