From bcbdbcee4c407a4b6ad403928577f47b9e9e3101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=ADckolas=20Goline?= Date: Mon, 6 Apr 2026 10:50:53 -0300 Subject: [PATCH] update changelogs and projects to apply new version numbers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Níckolas Goline --- src/NLightning.Application/CHANGELOG.md | 41 +++++++++++++++ .../NLightning.Application.csproj | 8 +-- src/NLightning.Bolt11/CHANGELOG.md | 18 +++++++ .../NLightning.Bolt11.csproj | 8 +-- src/NLightning.Domain/CHANGELOG.md | 50 +++++++++++++++++++ .../NLightning.Domain.csproj | 8 +-- .../CHANGELOG.md | 38 ++++++++++++++ .../NLightning.Infrastructure.Bitcoin.csproj | 8 +-- src/NLightning.Infrastructure/CHANGELOG.md | 28 +++++++++++ .../NLightning.Infrastructure.csproj | 8 +-- 10 files changed, 195 insertions(+), 20 deletions(-) diff --git a/src/NLightning.Application/CHANGELOG.md b/src/NLightning.Application/CHANGELOG.md index 7ae4235c..3624b3a4 100644 --- a/src/NLightning.Application/CHANGELOG.md +++ b/src/NLightning.Application/CHANGELOG.md @@ -2,6 +2,47 @@ All notable changes to this project will be documented in this file. +## v1.0.0 + +Major release adding the full channel-opening flow, peer management, and a complete channel handler suite. + +### Added + +- Added `ChannelManager` to orchestrate channel lifecycle and persistence; +- Added channel message handlers: `AcceptChannel1MessageHandler`, `OpenChannel1MessageHandler`, + `FundingCreatedMessageHandler`, `FundingSignedMessageHandler`, `FundingConfirmedMessageHandler`, + `ChannelReadyMessageHandler`; +- Added `IChannelMessageHandler` interface for typed channel message handling; +- Added `PeerManager` for managing peer connections, reconnection, and disconnection behavior; +- Added `DependencyInjection` extension class for convenient service registration; +- Added dependencies on `NLightning.Infrastructure` and `NLightning.Infrastructure.Bitcoin`; +- Added `Microsoft.Extensions.Logging` package reference; + +### Changed + +- Moved `MessageFactory` from `NLightning.Application.Factories` to `NLightning.Application.Protocol.Factories`; +- Refactored `AcceptChannel1MessageHandler` to comply with `ChannelTypeTlv` and use `payload.ToSelfDelay` for + `ChannelConfig` creation; +- Refactored `OpenChannel1MessageHandler` to reflect latest BOLT feature flag + changes ([lightning/bolts#1310](https://github.com/lightning/bolts/pull/1310)) and refine channel opening validation; +- Improved peer exception handling and error messaging in `PeerManager`; + +### Fixed + +- Fixed `ChannelConfig` creation when initiating a channel to use `payload.ToSelfDelay` instead of + `tempChannel.ChannelConfig.ToSelfDelay`; +- Fixed MessagePack serialization warnings in `PeerManager`; + +### Removed + +- Removed stub `LightningKeyManager` (was fully commented out); + +### Breaking Changes + +- Dropped `net8.0` and `net9.0` targets; the library now requires **.NET 10.0** or later; +- `MessageFactory` namespace changed from `NLightning.Application.Factories` to + `NLightning.Application.Protocol.Factories`; + ## v0.0.1 Initial release \ No newline at end of file diff --git a/src/NLightning.Application/NLightning.Application.csproj b/src/NLightning.Application/NLightning.Application.csproj index b10d49b0..bff36fc8 100644 --- a/src/NLightning.Application/NLightning.Application.csproj +++ b/src/NLightning.Application/NLightning.Application.csproj @@ -1,18 +1,18 @@  - 0.0.1 + 1.0.0 Debug;Release;Debug.Native;Release.Native;Debug.Wasm;Release.Wasm Application Library for NLightning - 0.0.1 - 0.0.1 + 1.0.0 + 1.0.0 lightning-network,bitcoin,crypto,infrastructure,dotnet,cryptography,cross-platform,libsodium,blazor,webassembly,aot https://docs.nlightn.ing/api/NLightning.Application.html NLightning.Application - Initial release of NLightning.Application library. + Added full channel-opening handler suite, ChannelManager, PeerManager, and DependencyInjection registration. Targets .NET 10 only. See CHANGELOG.md for details. diff --git a/src/NLightning.Bolt11/CHANGELOG.md b/src/NLightning.Bolt11/CHANGELOG.md index f7e9a815..b24c4bab 100644 --- a/src/NLightning.Bolt11/CHANGELOG.md +++ b/src/NLightning.Bolt11/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes to this project will be documented in this file. +## v5.0.0 + +BOLT 11 compliance fix for unknown fallback address versions and updated package URL. + +### Fixed + +- Fixed `FallbackAddressTaggedField.FromBitReader` to return `null` instead of throwing on unknown witness + versions, complying with BOLT 11's requirement to skip `f` fields with unknown versions; +- Fixed `Invoice.FallbackAddresses` getter to handle a nullable list correctly; + +### Changed + +- Updated `PackageProjectUrl` to `https://docs.nlightn.ing`; + +### Breaking Changes + +- Dropped `net8.0` and `net9.0` targets; the library now requires **.NET 10.0** or later; + ## v4.0.5 Fixed an error when decoding `PayeePubKeyTaggedField`. diff --git a/src/NLightning.Bolt11/NLightning.Bolt11.csproj b/src/NLightning.Bolt11/NLightning.Bolt11.csproj index a56db632..64446ec2 100644 --- a/src/NLightning.Bolt11/NLightning.Bolt11.csproj +++ b/src/NLightning.Bolt11/NLightning.Bolt11.csproj @@ -7,18 +7,18 @@ true - 4.0.5 + 5.0.0 Debug;Debug.Native;Debug.Wasm;Release;Release.Native;Release.Wasm A Bitcoin Lightning Invoice Decoder/Encoder implemented in C# - 4.0.5 - 4.0.5 + 5.0.0 + 5.0.0 lightning,invoice,bolt11,encoder,decoder https://docs.nlightn.ing/api/NLightning.Bolt11.Models.Invoice.html NLightning.Bolt11 - Fixed an error when decoding `PayeePubKeyTaggedField`. + Fixed BOLT 11 compliance: unknown fallback address versions are now skipped instead of throwing. See CHANGELOG.md for details. diff --git a/src/NLightning.Domain/CHANGELOG.md b/src/NLightning.Domain/CHANGELOG.md index 5681b5bb..6e346bfc 100644 --- a/src/NLightning.Domain/CHANGELOG.md +++ b/src/NLightning.Domain/CHANGELOG.md @@ -2,6 +2,56 @@ All notable changes to this project will be documented in this file. +## v2.0.0 + +Major release introducing the Client domain, wallet domain types, channel open validation, and comprehensive interface updates. + +### Added + +- Added `Client` domain namespace with `INamedPipeIpcService`, `ClientException`, `ErrorCodes`, `ClientCommand`, + `OpenChannelClientRequest`, `OpenChannelClientSubscriptionRequest`, `OpenChannelClientResponse`, and + `OpenChannelClientSubscriptionResponse`; +- Added Bitcoin wallet types: `UtxoModel`, `WalletAddressModel`, `AddressType`, `KeyConstants`, + `IUtxoDbRepository`, `IUtxoMemoryRepository`, `IWalletAddressesDbRepository`; +- Added `FundingTransactionModel`, `FundingTransactionModelFactory`, and `IFundingTransactionModelFactory`; +- Added `WalletMovementEventArgs` for wallet event propagation; +- Added `IChannelOpenValidator` interface with `ChannelOpenValidator`, `ChannelOpenMandatoryValidationParameters`, + and `ChannelOpenOptionalValidationParameters`; +- Added `ChannelUpdatedEventArgs` and `ChannelUpgradedEventArgs` channel events; +- Added `NodeConstants` and `AttentionMessageEventArgs` to the node domain; +- Added `GetDepositP2TrKeyAtIndex` and `GetDepositP2WpkhKeyAtIndex` methods to `ISecureKeyManager`; + +### Changed + +- Updated `Feature` enum and `FeatureSet` defaults to reflect latest BOLT spec + ([lightning/bolts#1310](https://github.com/lightning/bolts/pull/1310)): `OptionDataLossProtect`, + `VarOnionOptin`, `OptionStaticRemoteKey`, and `PaymentSecret` are now set as compulsory by default; +- Simplified `FeatureSet` dependency rules, removing several previously required feature dependencies; +- `IPeerManager.ConnectToPeerAsync` now returns `Task` instead of `Task`; +- `IPeerManager.DisconnectPeer` now accepts an optional `Exception` parameter; +- `ISecureKeyManager.KeyPath` renamed to `ChannelKeyPath`; `GetNextKey`/`GetKeyAtIndex` renamed to + `GetNextChannelKey`/`GetChannelKeyAtIndex`; +- `LightningMoney.ToString()` now includes the unit by default; +- Updated `PackageProjectUrl` to `https://docs.nlightn.ing`; + +### Fixed + +- Fixed `AcceptChannel1Payload.ToSelfDelay` propagation in channel config creation; + +### Removed + +- Removed `Feature.InitialRoutingSync` (deprecated in latest BOLT spec); +- Removed `Feature.OptionAnchorOutputs` (superseded by `OptionAnchorsZeroFeeHtlcTx`); + +### Breaking Changes + +- Dropped `net8.0` and `net9.0` targets; the library now requires **.NET 10.0** or later; +- `ISecureKeyManager`: `KeyPath` → `ChannelKeyPath`; `GetNextKey`/`GetKeyAtIndex` → `GetNextChannelKey`/`GetChannelKeyAtIndex`; +- `OpenChannel1Message`: `ChannelTypeTlv` is now required (non-nullable); constructor parameter order changed; +- `ChannelConfig.ChannelReserveAmount` changed from `LightningMoney?` to `LightningMoney`; +- `Feature.InitialRoutingSync` and `Feature.OptionAnchorOutputs` removed from the `Feature` enum; +- `LightningMoney.ToString()` output now includes the unit; + ## v1.1.2 This version removes a Span size check from `BitReader` since the calculations are complex and should be done by the diff --git a/src/NLightning.Domain/NLightning.Domain.csproj b/src/NLightning.Domain/NLightning.Domain.csproj index c3f9b3bd..c3915da2 100644 --- a/src/NLightning.Domain/NLightning.Domain.csproj +++ b/src/NLightning.Domain/NLightning.Domain.csproj @@ -1,18 +1,18 @@  - 1.1.2 + 2.0.0 Debug;Release;Debug.Native;Debug.Wasm;Release.Native;Release.Wasm Domain Library for NLightning - 1.1.2 - 1.1.2 + 2.0.0 + 2.0.0 lightning-network,bitcoin,crypto,infrastructure,dotnet,cryptography,cross-platform,libsodium,blazor,webassembly,aot https://docs.nlightn.ing/api/NLightning.Domain.html NLightning.Domain - This version removes a Span size check from `BitReader` since the calculations are complex and should be done by the caller. + Added Client domain, wallet types, channel open validation, and updated feature flags to match latest BOLT spec. Contains breaking interface changes. See CHANGELOG.md for details. diff --git a/src/NLightning.Infrastructure.Bitcoin/CHANGELOG.md b/src/NLightning.Infrastructure.Bitcoin/CHANGELOG.md index 4f9c9e95..9b9842dd 100644 --- a/src/NLightning.Infrastructure.Bitcoin/CHANGELOG.md +++ b/src/NLightning.Infrastructure.Bitcoin/CHANGELOG.md @@ -2,6 +2,44 @@ All notable changes to this project will be documented in this file. +## v1.0.0 + +Major release adding wallet address management, funding transaction building, and comprehensive key management improvements. + +### Added + +- Added `FundingTransactionBuilder` and `IFundingTransactionBuilder` for constructing and signing funding transactions from UTXO sets; +- Added `BitcoinChainService` and `IBitcoinChainService` for chain-level Bitcoin operations; +- Added `IBitcoinWalletService` with `GetUnusedAddressAsync`; +- Added `IBlockchainMonitor.WatchBitcoinAddress` for watching wallet addresses; +- Added `IBlockchainMonitor.PublishAndWatchTransactionAsync` for broadcasting and tracking transactions; +- Added `IBlockchainMonitor.LastProcessedBlockHeight` property; +- Added `IBlockchainMonitor.OnWalletMovementDetected` event; +- Added `SecureKeyManager.ChannelKeyPath`, `DepositP2TrKeyPath`, `DepositP2WpkhKeyPath` key paths; +- Added `SecureKeyManager.OutputDepositP2TrDescriptor`, `OutputDepositP2WshDescriptor`, `OutputChangeP2TrDescriptor`, `OutputChangeP2WshDescriptor` output descriptors; +- Added `LocalLightningSigner` dependency on `IUtxoMemoryRepository` for UTXO selection; + +### Changed + +- `BitcoinWalletService` rewritten to use `IBlockchainMonitor` and `ISecureKeyManager` instead of direct RPC; no longer implements `IBitcoinWallet`; +- `SecureKeyManager.KeyPath` renamed to `ChannelKeyPath`; `OutputDescriptor` renamed to `OutputChannelDescriptor`; +- `CommitmentKeyDerivationService.DeriveRemoteCommitmentKeys` signature simplified: removed `localChannelKeyIndex` and `commitmentNumber` parameters; +- `DustService` now references `Domain.Protocol.Interfaces` instead of `Domain.Protocol.Services`; +- Updated `PackageProjectUrl` to `https://docs.nlightn.ing`; +- Updated `MessagePack` to `v3.1.4`, `NBitcoin` to `v9.0.5`, `NBitcoin.Secp256k1` to `v3.2.0`, `NetMQ` to `v4.0.2.2`; + +### Removed + +- Removed `IBitcoinWallet` interface (replaced by `IBitcoinWalletService`); + +### Breaking Changes + +- Dropped `net8.0` and `net9.0` targets; the library now requires **.NET 10.0** or later; +- `IBitcoinWallet` removed; use `IBitcoinWalletService` instead; +- `SecureKeyManager.KeyPath` → `ChannelKeyPath`; `OutputDescriptor` → `OutputChannelDescriptor`; +- `CommitmentKeyDerivationService.DeriveRemoteCommitmentKeys` signature changed: `localChannelKeyIndex` and `commitmentNumber` parameters removed; +- `LocalLightningSigner` constructor now requires `IUtxoMemoryRepository`; + ## v0.0.4 Bump version to use `NLightning.Infrastructure@v1.0.3`. diff --git a/src/NLightning.Infrastructure.Bitcoin/NLightning.Infrastructure.Bitcoin.csproj b/src/NLightning.Infrastructure.Bitcoin/NLightning.Infrastructure.Bitcoin.csproj index fe2b63fe..20640b4d 100644 --- a/src/NLightning.Infrastructure.Bitcoin/NLightning.Infrastructure.Bitcoin.csproj +++ b/src/NLightning.Infrastructure.Bitcoin/NLightning.Infrastructure.Bitcoin.csproj @@ -1,18 +1,18 @@  - 0.0.4 + 1.0.0 Debug;Release;Debug.Native;Debug.Wasm;Release.Native;Release.Wasm Bitcoin Infrastructure Library for NLightning - 0.0.4 - 0.0.4 + 1.0.0 + 1.0.0 lightning-network,bitcoin,crypto,infrastructure,dotnet,cryptography,cross-platform,libsodium,blazor,webassembly,aot https://docs.nlightn.ing/api/NLightning.Infrastructure.Bitcoin.html NLightning.Infrastructure.Bitcoin - Bump version to use `NLightning.Infrastructure@v1.0.3`. + Added wallet address management, funding transaction builder, and multi-path key derivation in SecureKeyManager. Contains breaking interface changes. See CHANGELOG.md for details. diff --git a/src/NLightning.Infrastructure/CHANGELOG.md b/src/NLightning.Infrastructure/CHANGELOG.md index f55933a0..43334fdd 100644 --- a/src/NLightning.Infrastructure/CHANGELOG.md +++ b/src/NLightning.Infrastructure/CHANGELOG.md @@ -2,6 +2,34 @@ All notable changes to this project will be documented in this file. +## v2.0.0 + +Peer service improvements, warning message propagation, `ChannelIdFactory` extension, and transport hardening. + +### Added + +- Added `PeerCommunicationService.SendWarningAsync` to send `WarningMessage` to peers on disconnect; +- Added `PeerService.SendWarningAsync` and `OnAttentionMessageReceived`/`OnExceptionRaised` events; +- Added `ChannelIdFactory.CreateTemporaryChannelId` for generating random temporary channel IDs; +- Added `ITcpService.ListeningTo` property exposing active listen endpoints; +- Added `host` and `port` parameters to `ConnectedPeer` constructor; + +### Changed + +- `PeerCommunicationService.DisconnectEvent` changed from `EventHandler?` to `EventHandler?`; +- `PeerCommunicationService.Disconnect` and `PeerService.Disconnect` now accept an optional `Exception` parameter and send an error/warning message before closing; +- `ITcpService.ConnectToPeerAsync` parameter changed from `PeerAddressInfo` to `PeerAddress`; +- Updated `libsodium` to `v1.0.21`; +- Updated `Microsoft.Extensions.Logging.Abstractions` and `Microsoft.Extensions.Options` to `v10.0.5`; +- Updated `PackageProjectUrl` to `https://docs.nlightn.ing`; + +### Breaking Changes + +- Dropped `net8.0` and `net9.0` targets; the library now requires **.NET 10.0** or later; +- `PeerCommunicationService.DisconnectEvent` signature changed from `EventHandler?` to `EventHandler?`; +- `ITcpService.ConnectToPeerAsync` now takes `PeerAddress` instead of `PeerAddressInfo`; +- `ConnectedPeer` constructor now requires `host` and `port` parameters; + ## v1.0.3 Fixed an error on `SodiumJsCryptoProvider` where Blazor apps whould be unable to call `Sha256.GetHashAndReset`. diff --git a/src/NLightning.Infrastructure/NLightning.Infrastructure.csproj b/src/NLightning.Infrastructure/NLightning.Infrastructure.csproj index e2beb005..645de1dd 100644 --- a/src/NLightning.Infrastructure/NLightning.Infrastructure.csproj +++ b/src/NLightning.Infrastructure/NLightning.Infrastructure.csproj @@ -7,18 +7,18 @@ true - 1.0.3 + 2.0.0 Debug;Release;Debug.Native;Debug.Wasm;Release.Native;Release.Wasm Infrastructure Library for NLightning - 1.0.3 - 1.0.3 + 2.0.0 + 2.0.0 lightning-network,bitcoin,crypto,infrastructure,dotnet,cryptography,cross-platform,libsodium,blazor,webassembly,aot https://docs.nlightn.ing/api/NLightning.Infrastructure.html NLightning.Infrastructure - Fixed an error on `SodiumJsCryptoProvider` where Blazor apps whould be unable to call `Sha256.GetHashAndReset`. + Added warning message propagation on disconnect, temporary channel ID generation, and TCP service improvements. Contains breaking interface changes. See CHANGELOG.md for details.