Skip to content

Commit aaf74cc

Browse files
authored
Merge pull request #432 from tnull/2025-01-include-onchain-transactions-in-store
Expose onchain transactions in store
2 parents 83159d0 + 0710434 commit aaf74cc

File tree

9 files changed

+489
-94
lines changed

9 files changed

+489
-94
lines changed

bindings/kotlin/ldk-node-jvm/lib/src/test/kotlin/org/lightningdevkit/ldknode/LibraryTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ class LibraryTest {
296296
assert(paymentReceivedEvent is Event.PaymentReceived)
297297
node2.eventHandled()
298298

299-
assert(node1.listPayments().size == 1)
300-
assert(node2.listPayments().size == 1)
299+
assert(node1.listPayments().size == 3)
300+
assert(node2.listPayments().size == 2)
301301

302302
node2.closeChannel(userChannelId, nodeId1)
303303

bindings/ldk_node.udl

+7-1
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ interface ClosureReason {
358358

359359
[Enum]
360360
interface PaymentKind {
361-
Onchain();
361+
Onchain(Txid txid, ConfirmationStatus status);
362362
Bolt11(PaymentHash hash, PaymentPreimage? preimage, PaymentSecret? secret);
363363
Bolt11Jit(PaymentHash hash, PaymentPreimage? preimage, PaymentSecret? secret, LSPFeeLimits lsp_fee_limits);
364364
Bolt12Offer(PaymentHash? hash, PaymentPreimage? preimage, PaymentSecret? secret, OfferId offer_id, UntrustedString? payer_note, u64? quantity);
@@ -389,6 +389,12 @@ dictionary LSPFeeLimits {
389389
u64? max_proportional_opening_fee_ppm_msat;
390390
};
391391

392+
[Enum]
393+
interface ConfirmationStatus {
394+
Confirmed (BlockHash block_hash, u32 height, u64 timestamp);
395+
Unconfirmed ();
396+
};
397+
392398
dictionary PaymentDetails {
393399
PaymentId id;
394400
PaymentKind kind;

src/builder.rs

+11-10
Original file line numberDiff line numberDiff line change
@@ -855,11 +855,22 @@ fn build_with_store_internal(
855855

856856
let tx_broadcaster = Arc::new(TransactionBroadcaster::new(Arc::clone(&logger)));
857857
let fee_estimator = Arc::new(OnchainFeeEstimator::new());
858+
859+
let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) {
860+
Ok(payments) => {
861+
Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger)))
862+
},
863+
Err(_) => {
864+
return Err(BuildError::ReadFailed);
865+
},
866+
};
867+
858868
let wallet = Arc::new(Wallet::new(
859869
bdk_wallet,
860870
wallet_persister,
861871
Arc::clone(&tx_broadcaster),
862872
Arc::clone(&fee_estimator),
873+
Arc::clone(&payment_store),
863874
Arc::clone(&logger),
864875
));
865876

@@ -1249,16 +1260,6 @@ fn build_with_store_internal(
12491260
},
12501261
}
12511262

1252-
// Init payment info storage
1253-
let payment_store = match io::utils::read_payments(Arc::clone(&kv_store), Arc::clone(&logger)) {
1254-
Ok(payments) => {
1255-
Arc::new(PaymentStore::new(payments, Arc::clone(&kv_store), Arc::clone(&logger)))
1256-
},
1257-
Err(_) => {
1258-
return Err(BuildError::ReadFailed);
1259-
},
1260-
};
1261-
12621263
let event_queue = match io::utils::read_event_queue(Arc::clone(&kv_store), Arc::clone(&logger))
12631264
{
12641265
Ok(event_queue) => Arc::new(event_queue),

src/payment/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ pub use bolt11::Bolt11Payment;
1818
pub use bolt12::Bolt12Payment;
1919
pub use onchain::OnchainPayment;
2020
pub use spontaneous::SpontaneousPayment;
21-
pub use store::{LSPFeeLimits, PaymentDetails, PaymentDirection, PaymentKind, PaymentStatus};
21+
pub use store::{
22+
ConfirmationStatus, LSPFeeLimits, PaymentDetails, PaymentDirection, PaymentKind, PaymentStatus,
23+
};
2224
pub use unified_qr::{QrPaymentResult, UnifiedQrPayment};
2325

2426
/// Represents information used to send a payment.

0 commit comments

Comments
 (0)