Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
323 commits
Select commit Hold shift + click to select a range
cafbd56
Add logger to monitor_updating_paused
joostjager Jan 5, 2026
88485d2
Consume vectors in monitor_updating_paused
joostjager Jan 6, 2026
8ae40ee
Rustfmt channel methods
joostjager Jan 5, 2026
51b5ef7
Simplify error return patterns in channel.rs
joostjager Jan 6, 2026
5b21115
Make test block connect style configurable for deterministic runs
joostjager Jan 5, 2026
5236dba
Merge pull request #4294 from TheBlueMatt/2025-12-gossip-validate-arc…
tnull Jan 8, 2026
075bc34
Make test hash map iteration order configurable for deterministic runs
joostjager Jan 7, 2026
94cc358
Merge pull request #4296 from joostjager/connect-style-var
TheBlueMatt Jan 8, 2026
5fbbd41
Parallelize `ChannelMonitor` loading from async `KVStore`s
TheBlueMatt Oct 8, 2025
b4eab2c
Allow `FutureSpawner` to return the result of the spawned future
TheBlueMatt Oct 9, 2025
18f7a8f
Add an option to deserialize monitors in parallel in async load
TheBlueMatt Oct 12, 2025
7471d05
Avoid a storage RTT when loading `ChannelMonitor`s without updates
TheBlueMatt Oct 8, 2025
6ef22ba
Parallelize `ChannelMonitorUpdate` loading
TheBlueMatt Oct 9, 2025
f1755b1
Merge pull request #4298 from joostjager/add-monitor-logging
valentinewallace Jan 8, 2026
b858b44
util: add support for option with custom encoding
carlaKC Dec 16, 2025
46aa1cf
ln: add experimental accountable signal to update_add_htlc
carlaKC Oct 23, 2025
413aa95
ln: add incoming_accountable to PendingHTLCInfo
carlaKC Oct 23, 2025
d084a9d
ln: add accountable signal to HTLCUpdateAwaitingACK::AddHTLC
carlaKC Oct 23, 2025
d3b58e3
ln: add accountable signal to OutboundHTLCOutput
carlaKC Jan 8, 2026
c9f022b
Merge pull request #4147 from TheBlueMatt/2025-10-parallel-reads
TheBlueMatt Jan 8, 2026
7c97f3c
Remove unnecessary update_add clone on Channel ser
valentinewallace Dec 16, 2025
351bd3c
ln/test: add test coverage for accountable signal propagation
carlaKC Nov 12, 2025
c722443
Merge pull request #4232 from carlaKC/4181-experimental-accountable
tnull Jan 9, 2026
6578b88
Clarify splicing feature flag requirements
tankyleo Dec 10, 2025
cef001b
Merge pull request #4274 from tankyleo/25-12-02-splicing-docs
TheBlueMatt Jan 12, 2026
2a1273b
Move is_chan_closed check into loop
valentinewallace Jan 5, 2026
55f8911
Don't double-forward HTLCs in rebuilt update_adds map
valentinewallace Dec 12, 2025
03882bd
Optimize dedup_decode_update_add_htlcs
valentinewallace Dec 16, 2025
e76159a
Prefer legacy forward maps on manager read
valentinewallace Dec 16, 2025
5a4912c
Update outdated comment due to var renames
valentinewallace Jan 12, 2026
b6b622f
Convert internal update handling fns to methods
joostjager Dec 19, 2025
b540cd6
Refactor monitor update completion into helper methods
joostjager Jan 8, 2026
d89a1af
Inline handle_monitor_update_completion! macro
joostjager Jan 8, 2026
a9656dd
Remove handle_new_monitor_update_locked_actions_handled_by_caller macro
joostjager Jan 8, 2026
d0cc60f
Remove handle_initial_monitor macro
joostjager Jan 8, 2026
d0dc4f0
Remove handle_post_close_monitor_update macro
joostjager Jan 8, 2026
a160bbf
Remove handle_new_monitor_update macro
joostjager Jan 8, 2026
c5d7b13
Merge pull request #4289 from valentinewallace/2025-12-reconstruct-fw…
TheBlueMatt Jan 13, 2026
b524b9b
Remove spurious debug assertion added in 0.2
TheBlueMatt Jan 14, 2026
20e8526
Rename update_channel_monitor to handle_new_monitor_update_locked_act…
joostjager Jan 14, 2026
b4fb555
Merge pull request #4312 from TheBlueMatt/2026-01-spurious-debug-asse…
wpaulino Jan 14, 2026
bf6017d
`NetworkGraph`: Update node and channel count estimates for Jan 2026
tnull Jan 12, 2026
9859bb9
fuzz: document -D flag for faster development builds
joostjager Jan 15, 2026
1f2e903
fuzz: support initial async monitor persistence in chanmon_consistency
joostjager Jan 15, 2026
5a81e17
Merge pull request #4291 from joostjager/update-handling-refactor
TheBlueMatt Jan 15, 2026
429a55a
`NetworkGraph`: Determine pre-allocations using actual numbers when r…
tnull Jan 12, 2026
39ca7cb
`NetworkGraph`: One pre-allocate memory on mainnet
tnull Jan 14, 2026
4281e49
Merge pull request #4306 from tnull/2026-01-allow-empty-network-graph
TheBlueMatt Jan 16, 2026
94078ca
Use struct instead of enum for SpliceContribution
jkczyz Dec 2, 2025
76e73a4
Use Amount in calculate_change_output_value
jkczyz Dec 4, 2025
e58cfbc
Check change value in test_splice_in
jkczyz Dec 4, 2025
900ffda
Introduce Dummy BlindedPaymentTlv
shaavan Oct 9, 2025
cad88af
Free holding cells immediately rather than in message sending
TheBlueMatt Jan 17, 2026
09b3bef
Merge pull request #4315 from joostjager/async-fuzz
TheBlueMatt Jan 17, 2026
923949b
Introduce Dummy Hop support in Blinded Path Constructor
shaavan Oct 9, 2025
d2def54
Introduce Payment Dummy Hop parsing mechanism
shaavan Oct 20, 2025
6abf36e
Update PaymentPath, and ClaimAlongRoute arguments
shaavan Oct 21, 2025
5981c17
Introduce payment dummy hops in DefaultRouter
shaavan Nov 18, 2025
2a34be1
Introduce Blinded Payment Dummy Path test
shaavan Oct 21, 2025
105521f
net-tokio: add `fn tor_connect_outbound`
tankyleo Jan 12, 2026
2d54669
Merge pull request #4152 from shaavan/pay-dummy
TheBlueMatt Jan 20, 2026
8eb9e70
Mixed mode splicing
jkczyz Dec 4, 2025
b9c1a72
Merge pull request #4305 from tankyleo/26-01-socks5-outbound
TheBlueMatt Jan 20, 2026
e9ce486
Merge pull request #4261 from jkczyz/2025-12-splice-in-and-out
TheBlueMatt Jan 20, 2026
7785360
Merge pull request #4320 from TheBlueMatt/2026-01-live-holding-cells
tnull Jan 21, 2026
8bdd1fa
Add `total_consistency_lock` check in `handle_post_event_actions`
TheBlueMatt Jan 21, 2026
8cdc86a
Merge pull request #4329 from TheBlueMatt/2026-01-actions-lock-assert
wpaulino Jan 22, 2026
24c61fa
fuzz: consolidate payment counters into single counter
joostjager Jan 19, 2026
7d51892
fuzz: simplify get_payment_secret_hash return type
joostjager Jan 19, 2026
151762c
fuzz: rename chan_id to scid in hop payment functions
joostjager Jan 19, 2026
ecf502a
fuzz: add transaction broadcast assertions
joostjager Jan 19, 2026
0a48663
fuzz: convert send helpers to closures with node indices
joostjager Jan 19, 2026
246083e
fuzz: track pending and resolved payments
joostjager Jan 19, 2026
5da7499
Drop unnecessary Rust install in SemVer CI
tnull Jan 23, 2026
194678d
Set dont_forward on private channel updates and add tests
Thrishalmadasu Jan 23, 2026
b0883ba
rustfmt: format priv_short_conf_tests
Thrishalmadasu Jan 23, 2026
feef6a4
Merge pull request #4339 from tnull/2026-01-run-semver-checks-on-msrv
TheBlueMatt Jan 23, 2026
cc1eb16
`ElectrumSyncClient`: Skip unconfirmed `get_history` entries
tnull Jan 23, 2026
16973b2
Merge pull request #4321 from joostjager/fuzz-improvements
TheBlueMatt Jan 23, 2026
1a50684
Merge pull request #4341 from tnull/2026-01-electrum-improvements
TheBlueMatt Jan 23, 2026
3fee76b
Merge pull request #4293 from psychemist/change-bolt11invoice-payment…
TheBlueMatt Jan 25, 2026
cea1c72
BOLT 12: Validate bech32 padding per BIP-173
vincenzopalazzo Jan 26, 2026
9e91b2e
Merge pull request #4349 from vincenzopalazzo/macros/bolt12-invalid-p…
TheBlueMatt Jan 26, 2026
653692e
Drop lockorder comments on `ChannelManager`
TheBlueMatt Jan 4, 2026
b5d1f7e
Move HTLC holding into HTLC decode from `forward_htlcs`
TheBlueMatt Jan 3, 2026
d497ec2
Fix the HTLC failure reason reported when a peer is offline
TheBlueMatt Jan 3, 2026
4d5b0a6
DRY HTLC failure paths in `process_pending_update_add_htlcs`
TheBlueMatt Jan 5, 2026
04351fd
Move HTLC interception decisions to `forward_htlcs` callsites
TheBlueMatt Jan 14, 2026
a0723ad
Support generic HTLC interception
TheBlueMatt Jan 13, 2026
ce91315
Expose the outgoing HTLC's CLTV expiry in `Event::HTLCIntercepted`
TheBlueMatt Jan 23, 2026
8b1386c
Add basic `CLAUDE.md` file
tnull Jan 27, 2026
e8a9303
Merge pull request #4300 from TheBlueMatt/2025-12-full-interception
tnull Jan 28, 2026
beccec2
Refactor monitor file listing in tests to filter .tmp files
joostjager Jan 28, 2026
7fe3268
Merge pull request #4352 from tnull/2026-01-add-claude-md
tnull Jan 28, 2026
0f253c0
Use a single `WithContext` wrapper rather than several log-wrappers
TheBlueMatt Jan 25, 2026
5e64c40
Require `WithContext` log wrappers on `OutboundPayments` calls
TheBlueMatt Jan 25, 2026
253ceed
Add `PaymentId` to logging `Record`s
TheBlueMatt Jan 25, 2026
878e632
Don't override log context set by inner `WithContext`s
TheBlueMatt Jan 28, 2026
821559b
Remove `rustfmt::skip` from `utxo.rs`
tnull Jan 26, 2026
114f6b5
Fix race condition in async `UtxoFuture` resolution
tnull Jan 28, 2026
a58e7f0
Merge pull request #4348 from tnull/2026-01-fix-gossip-verification
TheBlueMatt Jan 29, 2026
9df0280
Merge pull request #4342 from TheBlueMatt/2026-01-decode-log-payment-…
valentinewallace Jan 29, 2026
83b2d3e
Rework ChannelManager::funding_transaction_signed
wpaulino Jan 22, 2026
7e226a0
Buffer interactive-tx initial commitment signed from counterparty
wpaulino Jan 22, 2026
be67c67
Support funding_transaction_signed for unfunded dual-funded channels
wpaulino Jan 22, 2026
fcc3d33
Merge pull request #4336 from wpaulino/funding-transaction-signed-rework
TheBlueMatt Jan 30, 2026
b52b069
Extend full_stack fuzz test to cover splicing
wpaulino Jan 29, 2026
4f9d651
Log unknown channel_update with dont_forward at debug level instead o…
Thrishalmadasu Jan 30, 2026
f9ad345
Merge pull request #4361 from wpaulino/full-stack-splice
TheBlueMatt Jan 30, 2026
26f6cbb
Bump lightning-liquidity version
valentinewallace Jan 14, 2026
aa9feac
Drop Deref indirection for BroadcasterInterface
valentinewallace Jan 13, 2026
32e6e10
Drop Deref indirection for EntropySource
valentinewallace Jan 14, 2026
fb2759e
Drop Deref indirection for NodeSigner
valentinewallace Jan 14, 2026
b6f3670
Drop Deref indirection for FeeEstimator
valentinewallace Jan 14, 2026
3f8f1ba
Drop Deref indirection for Router
valentinewallace Jan 14, 2026
dcb81f9
Drop Deref indirection for MessageRouter
valentinewallace Jan 15, 2026
ac8074e
Drop Deref indirection for Logger
valentinewallace Jan 15, 2026
9432adb
Drop Deref indirection for SignerProvider
valentinewallace Jan 15, 2026
54a8858
Drop Deref indirection for chain::Watch
valentinewallace Jan 15, 2026
75b29b8
Drop Deref indirection for KVStore
valentinewallace Jan 15, 2026
9e81ce9
Drop Deref indirection for NodeIdLookup
valentinewallace Jan 15, 2026
c35b41b
Drop Deref indirection for message handler traits
valentinewallace Jan 15, 2026
f60a33f
Drop Deref indirection for chain::Filter
valentinewallace Jan 17, 2026
644ca0c
Drop Deref indirection for OutputSpender
valentinewallace Jan 20, 2026
101d206
Drop Deref indirection for UtxoLookup
valentinewallace Jan 20, 2026
e9c6bbc
Centralize custom TLV validation behind `CustomTlvs`
shaavan Jan 23, 2026
6b20fee
Introduce custom TLVs in `pay_for_bolt11_invoice`
shaavan Dec 5, 2025
53e668b
Expand test to cover Bolt11 custom TLVs
shaavan Dec 6, 2025
6447d98
Merge pull request #4356 from joostjager/fix-windows-assertion
TheBlueMatt Jan 30, 2026
f42b9f6
Add CHANGELOG entries for 0.1.9 and 0.2.1
TheBlueMatt Jan 30, 2026
44b9529
Merge pull request #4311 from valentinewallace/2026-01-avoid-derefs
valentinewallace Jan 30, 2026
2962de8
Merge pull request #4364 from TheBlueMatt/2026-01-1.9-and-2.1
TheBlueMatt Jan 31, 2026
5e32d69
Ignore channel_update with dont_forward bit set in P2PGossipSync
Thrishalmadasu Jan 31, 2026
16a6916
Remove spurious universality comment on `KVStore`
TheBlueMatt Jan 31, 2026
8679d8d
Merge pull request #4263 from shaavan/payment-custom
TheBlueMatt Feb 1, 2026
3deecd4
Split ChannelManager::read into two stages
joostjager Jan 22, 2026
fe6fd64
Unwrap TLV fields with initialized defaults in ChannelManagerData
joostjager Jan 28, 2026
f08f4b4
Extract second stage of ChannelManager::read into from_channel_manage…
joostjager Jan 28, 2026
d2c55dd
Resolve legacy TLV fields during ChannelManagerData deserialization
joostjager Jan 28, 2026
397cc1d
Simplify legacy TLV resolution in ChannelManagerData::read
joostjager Jan 29, 2026
9a05daf
Resolve optional hash map TLV fields during ChannelManagerData deseri…
joostjager Jan 30, 2026
0bc5c95
Export `outbound_payments` directly rather than via re-exports
TheBlueMatt Feb 2, 2026
d652d86
invoice: Use PaymentHash in raw invoice types
jgmcalpine Jan 30, 2026
988f1b1
Refactor `BroadcasterInterface` to include `TransactionType`
tnull Jan 27, 2026
32a801e
Add test coverage for `TransactionType::Splice`
tnull Feb 2, 2026
0715f4a
Drop unused imports
tnull Feb 2, 2026
d2eeb0a
Use `--quiet` not `--verbose` on `cargo` calls in `ci-tests.sh`
TheBlueMatt Feb 2, 2026
fdacec8
Merge pull request #4340 from Thrishalmadasu/issue-1672-dont-forward-bit
TheBlueMatt Feb 2, 2026
1f6095b
Add Utxo::new_v1_p2tr
wvanlint Jan 31, 2026
d555994
Merge pull request #4332 from joostjager/split-chanmgr-read
joostjager Feb 2, 2026
35ab03f
Merge pull request #4370 from TheBlueMatt/2026-02-no-re-exports
tnull Feb 3, 2026
4800a47
Add AChainMonitor trait and use it in background processor
joostjager Feb 2, 2026
3b02885
Merge pull request #4368 from TheBlueMatt/2026-02-quieter-ci
TheBlueMatt Feb 3, 2026
5d914e9
Merge pull request #4369 from TheBlueMatt/2026-01-spurious-doc
tnull Feb 3, 2026
57ff0c7
Merge pull request #4371 from joostjager/achainmonitor
TheBlueMatt Feb 3, 2026
784b85c
Correct crate version numbers that have broken semver
TheBlueMatt Feb 3, 2026
a123cfa
Check semver of all workspace crates rather than an explicit list
TheBlueMatt Feb 3, 2026
65b6494
Merge pull request #4365 from wvanlint/wvanlint/new_v1_p2tr
TheBlueMatt Feb 3, 2026
817ab5e
Merge pull request #4363 from jgmcalpine/invoice-raw-use-payment-hash
TheBlueMatt Feb 3, 2026
f43803d
Merge pull request #4375 from TheBlueMatt/2026-02-version-bumps-as-re…
wpaulino Feb 4, 2026
2d948fd
Use SignedAmount::unsigned_abs to avoid overflow
jkczyz Feb 4, 2026
7fcfb39
Merge pull request #4383 from jkczyz/2026-02-unsigned-abs
TheBlueMatt Feb 4, 2026
05c9a03
Add a `custom` TLV read/write variant
TheBlueMatt Feb 1, 2026
77be67b
Group legacy fields in ChannelManagerData to deduplicate comment
joostjager Feb 3, 2026
4a640d1
Use consistent unwrap_or_else pattern for optional TLV fields
joostjager Feb 3, 2026
4790153
Simplify peer_storage_dir from Option<Vec> to Vec in ChannelManagerData
joostjager Feb 4, 2026
07bcba9
Combine claimable HTLCs with purposes in ChannelManagerData
joostjager Feb 5, 2026
b509c4a
Simplify in_flight_monitor_updates from Option<HashMap> to HashMap
joostjager Feb 4, 2026
dde2c82
fuzz: fix ChaCha20 encrypt_single_block to preserve data
joostjager Feb 5, 2026
86f914c
Merge pull request #4374 from joostjager/chanmgr-read-2
valentinewallace Feb 5, 2026
ee74209
Support async signing of interactive-tx initial commitment signatures
wpaulino Jan 27, 2026
98c3cff
Switch `SplicePrototype` feature flag to the prod feature bit
TheBlueMatt Feb 5, 2026
5427b0d
Drop `SplicePrototype` feature
TheBlueMatt Feb 5, 2026
b6bd386
Fix off-by-one for unfunded channel peers
elnosh Feb 5, 2026
cad035d
Remove automatic channel acceptance
elnosh Jan 28, 2026
aebcd1f
Default to anchor channels
elnosh Jan 28, 2026
306eea7
Rename test default channel config
elnosh Feb 4, 2026
bbb5ed5
Merge pull request #4353 from tnull/2026-01-broadcast-type-refactor
TheBlueMatt Feb 5, 2026
ee768f4
Merge pull request #4385 from joostjager/fuzz-no-pending-payments
TheBlueMatt Feb 6, 2026
372ba65
Merge pull request #4355 from wpaulino/splice-async-signing
TheBlueMatt Feb 6, 2026
60b5d66
Make get_latest_mon_update_id a helper on TestChainMonitor
wpaulino Feb 6, 2026
7e84268
Hold in-flight monitor updates until background event processing
wpaulino Feb 4, 2026
f128b85
Rustfmt ChannelManager::process_background_events
wpaulino Feb 5, 2026
924f77f
Let Claude run per-crate/feature tests
tnull Feb 6, 2026
24c492d
fuzz: expand chanmon_consistency to 6 channels (3 per peer pair)
joostjager Jan 30, 2026
61caa03
fuzz: add MPP payment support to chanmon_consistency
joostjager Feb 6, 2026
0a6b6d4
fuzz: assert no stuck payments in chanmon_consistency
joostjager Feb 6, 2026
e9fd567
Merge pull request #4387 from TheBlueMatt/2026-02-stop-squatting-feat…
TheBlueMatt Feb 6, 2026
830e1b3
Add `counterparty_node_id` to `Event::SpendableOutputs`
tnull Feb 6, 2026
da9ddd2
Add `counterparty_node_id` to `TrackedSpendableOutput`
tnull Feb 6, 2026
56f12c8
Add `counterparty_node_id` to `TransactionType` variants
tnull Feb 6, 2026
29f5f85
Merge pull request #4377 from wpaulino/hold-in-flight-updates-until-b…
valentinewallace Feb 6, 2026
1d90fce
fix: test_payment_path_scoring failing
okekefrancis112 Feb 6, 2026
d9d632f
Merge pull request #4392 from tnull/2026-02-claude-no-full-tests
TheBlueMatt Feb 6, 2026
a36c85a
Trivial: document some fields on MonitorRestoreUpdates
valentinewallace Jan 5, 2026
56b9f41
De-dup decode_htlcs from monitor only if channel is closed
valentinewallace Jan 16, 2026
7304cc9
Simplify channel_closed check on manager read
valentinewallace Feb 2, 2026
37375ca
Don't double-forward inbounds resolved in holding cell
valentinewallace Jan 29, 2026
a5c8bce
Mark legacy pre-0.3 inbound htlcs on persist
valentinewallace Jan 21, 2026
3cc64f0
Prune inbound HTLC onions once forwarded
valentinewallace Jan 5, 2026
d435e5b
Deterministic reconstruct_manager option in tests
valentinewallace Feb 2, 2026
30dbf40
Trivially refactor reload_node macro
valentinewallace Feb 3, 2026
94d1e5e
Merge pull request #4393 from tnull/2026-02-include-counterparty-node-id
TheBlueMatt Feb 6, 2026
979d564
Check pruned HTLCs were resolved on startup
valentinewallace Jan 23, 2026
0ca79af
Support deleting legacy forward map persistence in 0.5
valentinewallace Jan 16, 2026
3b75eee
Fix docs on ChannelMonitor::payment_preimages
valentinewallace Feb 6, 2026
1829dc9
Fix thread starvation in test_single_channel_multiple_mpp
jkczyz Feb 6, 2026
92a8c88
Merge pull request #4396 from jkczyz/2026-02-fix-hanging-test
TheBlueMatt Feb 7, 2026
e71ad81
Add a read closure to the `legacy` TLV variant
jkczyz Feb 5, 2026
2424c4a
Merge pull request #4395 from okekefrancis112/test_payment_path_scoring
TheBlueMatt Feb 7, 2026
2e4a2ac
Merge pull request #4390 from jkczyz/2026-02-legacy-tlv-read
TheBlueMatt Feb 8, 2026
3661783
Use `DirEntry::file_type` rather than `metadata...` in `list`
TheBlueMatt Feb 9, 2026
6f315f2
Pass the `addr` field of `tor_connect_outbound` to connection setup
tankyleo Feb 2, 2026
7baafe2
Merge pull request #4354 from elnosh/manual-channel-acceptance
valentinewallace Feb 9, 2026
7044bc7
Merge pull request #4367 from joostjager/fuzz-multi-channels
TheBlueMatt Feb 9, 2026
927edf1
Merge pull request #4372 from tankyleo/2026-02-setup-outbound-remote-…
TheBlueMatt Feb 9, 2026
bd358f3
Drop `proptest`s in `lightning-liquidity`
TheBlueMatt Feb 10, 2026
4deb2f7
Bump `lightning-types` crate version to fix semver tests
TheBlueMatt Feb 10, 2026
db2a7eb
Update changelog and remove manually_accept references
elnosh Feb 10, 2026
8edfc91
Use handle_and_accept_open_channel in async_signer test
elnosh Feb 10, 2026
4e32d10
Remove explicit usage of test_default_channel_config
elnosh Feb 10, 2026
c2eb68f
Merge pull request #4406 from TheBlueMatt/2026-02-fix-msrv
tnull Feb 10, 2026
b6c17c5
Merge pull request #4404 from TheBlueMatt/2026-02-list-race-some-fs
tnull Feb 10, 2026
4b1cbf7
Merge pull request #4303 from valentinewallace/2025-12-reconstruct-fw…
TheBlueMatt Feb 10, 2026
caf0aac
Merge pull request #4407 from elnosh/4354-followup
valentinewallace Feb 10, 2026
eb31aeb
Trivial: use full path in test macros
valentinewallace Feb 6, 2026
07b3def
Split method to reconstruct pending HTLCs into two
valentinewallace Feb 9, 2026
d3e9cd0
Dedup data in InboundUpdateAdd::Forwarded::hop_data
valentinewallace Feb 9, 2026
1685661
Restrict CI build matrix to Linux+MSRV for PRs
joostjager Feb 11, 2026
2647583
Merge pull request #4410 from joostjager/pr-matrix
TheBlueMatt Feb 11, 2026
13a83d5
Refactor missing peer/channel error from ChannelManager message handlers
wpaulino Feb 6, 2026
b967390
Refactor missing peer/channel APIError from ChannelManager methods
wpaulino Feb 6, 2026
4d35de5
Rustfmt ChannelManager::internal_tx_complete
wpaulino Feb 10, 2026
146f29a
Rustfmt ChannelManager::internal_tx_signatures
wpaulino Feb 10, 2026
0eadc17
Rustfmt ChannelManager::internal_tx_abort
wpaulino Feb 10, 2026
e1d0566
Rustfmt ChannelManager::internal_splice_ack
wpaulino Feb 10, 2026
7752619
Rustfmt ChannelManager::internal_splice_init
wpaulino Feb 10, 2026
fb6d61a
Rustfmt ChannelManager::internal_commitment_signed
wpaulino Feb 10, 2026
4bb33b2
Drop `ChannelHandshakeLimits::max_funding_satoshis`
tnull Jan 16, 2026
e3f64fd
Merge pull request #4318 from tnull/2026-01-drop-max-funding-satoshis
valentinewallace Feb 12, 2026
3246010
Trivial: ChannelManager::read var rename prefactor
valentinewallace Feb 12, 2026
70ae54f
Trivial: user_channel_id in pending_claims_to_replay
valentinewallace Feb 12, 2026
b3b59e6
Persist outbound channel info in inbound HTLCs
valentinewallace Feb 10, 2026
48010cb
Fix PaymentForwarded fields on restart claim
valentinewallace Feb 10, 2026
0d6dcc9
Fix missing user_channel_id in PaymentForwarded
valentinewallace Feb 10, 2026
5daf51c
Test restart-claim of two MPP holding cell HTLCs
valentinewallace Feb 11, 2026
ab0ba65
Update RECONSTRUCT_HTLCS_FROM_CHANS_VERSION 5 -> 2
valentinewallace Feb 12, 2026
0b45bfd
Merge pull request #4412 from wpaulino/rustfmt-channelmanager-splice-…
TheBlueMatt Feb 12, 2026
5ec66dc
Merge pull request #4405 from valentinewallace/2026-02-dedup-htlc-fwd…
valentinewallace Feb 13, 2026
d79566b
channelmanager: improve block connection logging for easier debugging…
Samarth-Goyal-1401 Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 29 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,14 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ self-hosted, windows-latest, macos-latest ]
toolchain: [ stable, beta, 1.75.0 ] # 1.75.0 is the MSRV for all crates
platform: >-
${{ github.event_name == 'push' && github.ref == 'refs/heads/main'
&& fromJSON('["self-hosted","windows-latest","macos-latest"]')
|| fromJSON('["self-hosted"]') }}
toolchain: >-
${{ github.event_name == 'push' && github.ref == 'refs/heads/main'
&& fromJSON('["stable","beta","1.75.0"]')
|| fromJSON('["1.75.0"]') }}
exclude:
- platform: windows-latest
toolchain: 1.75.0
Expand Down Expand Up @@ -62,52 +68,35 @@ jobs:
- name: Set RUSTFLAGS to deny warnings
if: "matrix.toolchain == '1.75.0'"
run: echo "RUSTFLAGS=-D warnings" >> "$GITHUB_ENV"
- name: Run CI script
shell: bash # Default on Winblows is powershell
run: CI_ENV=1 CI_MINIMIZE_DISK_USAGE=1 ./ci/ci-tests.sh

build-tx-sync:
strategy:
fail-fast: false
matrix:
platform: [ ubuntu-latest, macos-latest ]
toolchain: [ stable, beta, 1.75.0 ]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install Rust ${{ matrix.toolchain }} toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain ${{ matrix.toolchain }}
- name: Set RUSTFLAGS to deny warnings
if: "matrix.toolchain == '1.75.0'"
run: echo "RUSTFLAGS=-D warnings" >> "$GITHUB_ENV"
- name: Enable caching for bitcoind
if: matrix.platform != 'windows-latest'
id: cache-bitcoind
uses: actions/cache@v4
with:
path: bin/bitcoind-${{ runner.os }}-${{ runner.arch }}
key: bitcoind-${{ runner.os }}-${{ runner.arch }}
- name: Enable caching for electrs
if: matrix.platform != 'windows-latest'
id: cache-electrs
uses: actions/cache@v4
with:
path: bin/electrs-${{ runner.os }}-${{ runner.arch }}
key: electrs-${{ runner.os }}-${{ runner.arch }}
- name: Download bitcoind/electrs
if: "steps.cache-bitcoind.outputs.cache-hit != 'true' || steps.cache-electrs.outputs.cache-hit != 'true'"
if: "matrix.platform != 'windows-latest' && (steps.cache-bitcoind.outputs.cache-hit != 'true' || steps.cache-electrs.outputs.cache-hit != 'true')"
run: |
source ./contrib/download_bitcoind_electrs.sh
mkdir bin
mv "$BITCOIND_EXE" bin/bitcoind-${{ runner.os }}-${{ runner.arch }}
mv "$ELECTRS_EXE" bin/electrs-${{ runner.os }}-${{ runner.arch }}
- name: Set bitcoind/electrs environment variables
if: matrix.platform != 'windows-latest'
run: |
echo "BITCOIND_EXE=$( pwd )/bin/bitcoind-${{ runner.os }}-${{ runner.arch }}" >> "$GITHUB_ENV"
echo "ELECTRS_EXE=$( pwd )/bin/electrs-${{ runner.os }}-${{ runner.arch }}" >> "$GITHUB_ENV"
- name: Run CI script
shell: bash # Default on Winblows is powershell
run: CI_ENV=1 CI_MINIMIZE_DISK_USAGE=1 ./ci/ci-tx-sync-tests.sh
run: CI_ENV=1 CI_MINIMIZE_DISK_USAGE=1 ./ci/ci-tests.sh

coverage:
needs: fuzz
Expand Down Expand Up @@ -337,3 +326,19 @@ jobs:
run: cargo fmt --check
- name: Run rustfmt checks on lightning-tests
run: cd lightning-tests && cargo fmt --check
tor-connect:
runs-on: ubuntu-latest
env:
TOOLCHAIN: 1.75.0
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install tor
run: |
sudo apt install -y tor
- name: Install Rust ${{ env.TOOLCHAIN }} toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain ${{ env.TOOLCHAIN }}
- name: Test tor connections using lightning-net-tokio
run: |
TOR_PROXY="127.0.0.1:9050" RUSTFLAGS="--cfg=tor" cargo test --verbose --color always -p lightning-net-tokio
13 changes: 13 additions & 0 deletions .github/workflows/ldk-node-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ jobs:
lightning-transaction-sync = { path = "../rust-lightning/lightning-transaction-sync" }
lightning-liquidity = { path = "../rust-lightning/lightning-liquidity" }
lightning-macros = { path = "../rust-lightning/lightning-macros" }

[patch."https://github.com/lightningdevkit/rust-lightning"]
lightning = { path = "../rust-lightning/lightning" }
lightning-types = { path = "../rust-lightning/lightning-types" }
lightning-invoice = { path = "../rust-lightning/lightning-invoice" }
lightning-net-tokio = { path = "../rust-lightning/lightning-net-tokio" }
lightning-persister = { path = "../rust-lightning/lightning-persister" }
lightning-background-processor = { path = "../rust-lightning/lightning-background-processor" }
lightning-rapid-gossip-sync = { path = "../rust-lightning/lightning-rapid-gossip-sync" }
lightning-block-sync = { path = "../rust-lightning/lightning-block-sync" }
lightning-transaction-sync = { path = "../rust-lightning/lightning-transaction-sync" }
lightning-liquidity = { path = "../rust-lightning/lightning-liquidity" }
lightning-macros = { path = "../rust-lightning/lightning-macros" }
EOF
cargo check
cargo check --features uniffi
43 changes: 6 additions & 37 deletions .github/workflows/semver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,9 @@ jobs:
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain stable
rustup override set stable
- name: Check SemVer with default features
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
feature-group: default-features
- name: Check SemVer *without* default features
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
feature-group: only-explicit-features
- name: Check lightning-background-processor SemVer
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
package: lightning-background-processor
feature-group: only-explicit-features
- name: Check lightning-block-sync SemVer
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
package: lightning-block-sync
feature-group: only-explicit-features
features: rpc-client,rest-client
- name: Check lightning-transaction-sync electrum SemVer
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: lightning-transaction-sync/Cargo.toml
feature-group: only-explicit-features
features: electrum
- name: Check lightning-transaction-sync esplora-blocking SemVer
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: lightning-transaction-sync/Cargo.toml
feature-group: only-explicit-features
features: esplora-blocking
- name: Check lightning-transaction-sync esplora-async SemVer
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: lightning-transaction-sync/Cargo.toml
feature-group: only-explicit-features
features: esplora-async
- name: Install SemVer Checker
run: cargo install cargo-semver-checks --locked
- name: Check SemVer with all features
run: cargo semver-checks
- name: Check SemVer without any non-default features
run: cargo semver-checks --only-explicit-features
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ lightning-dns-resolver/target
ext-functional-test-demo/target
no-std-check/target
msrv-no-dev-deps-check/target
lightning-tests/target
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
# 0.2.1 - Jan 29, 2025 - "Electrum Confirmations Logged"

## API Updates
* The `AttributionData` struct is now public, correcting an issue where it was
accidentally sealed preventing construction of some messages (#4268).
* The async background processor now exits even if work remains to be done as
soon as the sleeper returns the exit flag (#4259).

## Bug Fixes
* The presence of unconfirmed transactions no longer causes
`ElectrumSyncClient` to spuriously fail to sync (#4341).
* `ChannelManager::splice_channel` now properly fails immediately if the
peer does not support splicing (#4262, #4274).
* A spurious debug assertion was removed which could fail in cases where an
HTLC fails to be forwarded after being accepted (#4312).
* Many log calls related to outbound payments were corrected to include a
`payment_hash` field (#4342).


# 0.1.9 - Jan 26, 2026 - "Electrum Confirmations"

## Bug Fixes
* The presence of unconfirmed transactions no longer causes
`ElectrumSyncClient` to spuriously fail to sync (#4341).


# 0.2 - Dec 2, 2025 - "Natively Asynchronous Splicing"

## API Updates
Expand Down
21 changes: 21 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

See [CONTRIBUTING.md](CONTRIBUTING.md) for build commands, testing, code style, and development workflow.

## Workspace Structure

See [README.md](README.md) for the workspace layout and [ARCH.md](ARCH.md) for some additional remark regarding important parts of LDK's architecture.

## Development Rules

- Always ensure tests pass before committing. To this end, you should run
`cargo +1.75.0 test` for all affected crates and/or features. Upon completion
of the full task you might prompt the user whether they want you to run the
full CI tests via `./ci/ci-tests.sh`. Note however that this script will run
for a very long time, so please don't timeout when you do.
- Run `cargo +1.75.0 fmt --all` after every code change
- Never add new dependencies unless explicitly requested
- Please always disclose the use of any AI tools in commit messages and PR descriptions using a `Co-Authored-By:` line.
- When adding new `.rs` files, please ensure to always add the licensing header as found, e.g., in `lightning/src/lib.rs` and other files.
22 changes: 22 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,28 @@ Fuzzing is heavily encouraged: you will find all related material under `fuzz/`
Mutation testing is work-in-progress; any contribution there would be warmly
welcomed.

### Environment Variables

* `LDK_TEST_CONNECT_STYLE` - Override the random block connect style used in tests for deterministic runs. Valid values:
* `BEST_BLOCK_FIRST`
* `BEST_BLOCK_FIRST_SKIPPING_BLOCKS`
* `BEST_BLOCK_FIRST_REORGS_ONLY_TIP`
* `TRANSACTIONS_FIRST`
* `TRANSACTIONS_FIRST_SKIPPING_BLOCKS`
* `TRANSACTIONS_DUPLICATIVELY_FIRST_SKIPPING_BLOCKS`
* `HIGHLY_REDUNDANT_TRANSACTIONS_FIRST_SKIPPING_BLOCKS`
* `TRANSACTIONS_FIRST_REORGS_ONLY_TIP`
* `FULL_BLOCK_VIA_LISTEN`
* `FULL_BLOCK_DISCONNECTIONS_SKIPPING_VIA_LISTEN`

* `LDK_TEST_DETERMINISTIC_HASHES` - When set to `1`, uses deterministic hash map iteration order in tests. This ensures consistent test output across runs, useful for comparing logs before and after changes.

* `LDK_TEST_REBUILD_MGR_FROM_MONITORS` - If set to `1`, on test node reload the `ChannelManager`'s
HTLC set will be reconstructed from `Channel{Monitor}` persisted data. If `0`, test nodes will be
reloaded from persisted `ChannelManager` data using legacy code paths. This ensures consistent
test output across runs, useful for comparing logs before and after changes, since otherwise the
selection of which codepaths to be used on reload will be chosen randomly.

C/C++ Bindings
--------------

Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ members = [
"lightning-macros",
"lightning-dns-resolver",
"lightning-liquidity",
"lightning-transaction-sync",
"possiblyrandom",
]

exclude = [
"lightning-transaction-sync",
"lightning-tests",
"ext-functional-test-demo",
"no-std-check",
Expand Down Expand Up @@ -67,4 +67,5 @@ check-cfg = [
"cfg(require_route_graph_test)",
"cfg(simple_close)",
"cfg(peer_storage)",
"cfg(tor)",
]
4 changes: 3 additions & 1 deletion ci/check-lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ CLIPPY() {
-A clippy::unwrap-or-default \
-A clippy::upper_case_acronyms \
-A clippy::swap-with-temporary \
-A clippy::assertions-on-constants \
`# Things where we do odd stuff on purpose ` \
-A clippy::unusual_byte_groupings \
-A clippy::unit_arg \
Expand Down Expand Up @@ -107,7 +108,8 @@ CLIPPY() {
-A clippy::useless_conversion \
-A clippy::manual_repeat_n `# to be removed once we hit MSRV 1.86` \
-A clippy::manual_is_multiple_of `# to be removed once we hit MSRV 1.87` \
-A clippy::uninlined-format-args
-A clippy::uninlined-format-args \
-A clippy::manual-async-fn # Not really sure why this is even a warning when there's a Send bound
}

CLIPPY
Expand Down
Loading