Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e388880
feat: add GetByOutpoint method to ChannelRepository and IChannelRepos…
markettes May 6, 2026
7b4f707
feat: add SetChannelFeePolicy method to ILightningClientService and i…
markettes May 6, 2026
a46b83a
feat: implement SetChannelFeePolicy method in LightningService to man…
markettes May 6, 2026
79cd124
feat: add SetChannelFeePolicy RPC method and request/response message…
markettes May 6, 2026
af71241
feat: add unit tests for SetChannelFeePolicy and GetByOutpoint method…
markettes May 6, 2026
bf09174
Merge branch 'main' into feat/set-channel-fee-policy
markettes May 13, 2026
a9e00a8
Merge branch 'main' into feat/set-channel-fee-policy
markettes May 13, 2026
f52022e
fix: control node is a channel participant
markettes May 14, 2026
0a3afb2
test: add test for not participant node
markettes May 14, 2026
d53536c
feat: add details for the fields
markettes May 14, 2026
f894922
feat: add validation for inbound fee policy parameters in SetChannelF…
markettes May 14, 2026
db6c3ba
Merge branch 'main' into feat/set-channel-fee-policy
markettes May 14, 2026
b11ca57
feat: add UI to change fee settings for a channel
markettes May 15, 2026
b0d508b
Merge branch 'main' into feat/UI-change-channel-fees
markettes May 19, 2026
927b09d
fix: allow only negative values for inbound fees
markettes May 19, 2026
c8b1e91
feat: add default channel fee policy timelock delta blocks
markettes May 19, 2026
e400cb3
feat: Add Initial Channel Fee Policy to Channel Operation Requests
markettes May 22, 2026
29b06ae
Add InitialChannelFees migration and update model snapshot
markettes May 25, 2026
e98375b
feat: enhance channel node management checks with macaroon validation
markettes May 26, 2026
b8678e0
Merge branch 'main' into feat/UI-change-channel-fees
markettes May 29, 2026
1694aab
feat: add GetChannelFeePolicy method to retrieve channel fee policies
markettes May 29, 2026
7f5df90
feat: add GetChannelFeePolicy tests for channel fee retrieval and err…
markettes May 29, 2026
c373ac5
feat: add the current fee rate to management tab and channels datagrid
markettes May 29, 2026
1c551a8
feat: add default values for the channel fees
markettes May 29, 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
10 changes: 10 additions & 0 deletions src/Data/Models/ChannelOperationRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,16 @@ public decimal Amount
/// </summary>
public decimal? FeeRate { get; set; }

/// <summary>
/// Initial base fee in millisatoshis to be applied when the channel is opened.
/// </summary>
public long? InitialChannelBaseFeeMsat { get; set; }

/// <summary>
/// Initial fee rate in parts per million to be applied when the channel is opened.
/// </summary>
public long? InitialChannelFeeRatePpm { get; set; }

[Column(TypeName = "jsonb")]
public List<ChannelStatusLog>? StatusLogs { get; set; } = new();

Expand Down
12 changes: 12 additions & 0 deletions src/Helpers/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ public class Constants
public static readonly decimal MINIMUM_WITHDRAWAL_BTC_AMOUNT = 0.0m;
public static readonly decimal MAXIMUM_WITHDRAWAL_BTC_AMOUNT = 21_000_000;
public static readonly int TRANSACTION_CONFIRMATION_MINIMUM_BLOCKS;
public static int DEFAULT_CHANNEL_FEE_POLICY_TIMELOCK_DELTA_BLOCKS = 40;
public static long DEFAULT_CHANNEL_FEE_POLICY_BASE_FEE_MSAT = 1000;
public static long DEFAULT_CHANNEL_FEE_POLICY_FEE_RATE_PPM = 500; // 500 ppm = 0.05%
public static readonly long ANCHOR_CLOSINGS_MINIMUM_SATS;
public static readonly long MINIMUM_SWEEP_TRANSACTION_AMOUNT_SATS = 25_000_000; //25M sats
public static readonly string DEFAULT_DERIVATION_PATH = "48'/1'";
Expand Down Expand Up @@ -354,6 +357,15 @@ static Constants()
var transactionConfBlocks = GetEnvironmentalVariableOrThrowIfNotTesting("TRANSACTION_CONFIRMATION_MINIMUM_BLOCKS");
if (transactionConfBlocks != null) TRANSACTION_CONFIRMATION_MINIMUM_BLOCKS = int.Parse(transactionConfBlocks);

var defaultChannelFeePolicyTimelockDeltaBlocks = Environment.GetEnvironmentVariable("DEFAULT_CHANNEL_FEE_POLICY_TIMELOCK_DELTA_BLOCKS");
if (defaultChannelFeePolicyTimelockDeltaBlocks != null) DEFAULT_CHANNEL_FEE_POLICY_TIMELOCK_DELTA_BLOCKS = int.Parse(defaultChannelFeePolicyTimelockDeltaBlocks);
Comment thread
Jossec101 marked this conversation as resolved.

var defaultChannelFeePolicyBaseFeeMsat = Environment.GetEnvironmentVariable("DEFAULT_CHANNEL_FEE_POLICY_BASE_FEE_MSAT");
if (defaultChannelFeePolicyBaseFeeMsat != null) DEFAULT_CHANNEL_FEE_POLICY_BASE_FEE_MSAT = long.Parse(defaultChannelFeePolicyBaseFeeMsat);

var defaultChannelFeePolicyFeeRatePpm = Environment.GetEnvironmentVariable("DEFAULT_CHANNEL_FEE_POLICY_FEE_RATE_PPM");
if (defaultChannelFeePolicyFeeRatePpm != null) DEFAULT_CHANNEL_FEE_POLICY_FEE_RATE_PPM = long.Parse(defaultChannelFeePolicyFeeRatePpm);

var anchorClosingMinSats = GetEnvironmentalVariableOrThrowIfNotTesting("ANCHOR_CLOSINGS_MINIMUM_SATS");
if (anchorClosingMinSats != null) ANCHOR_CLOSINGS_MINIMUM_SATS = long.Parse(anchorClosingMinSats); // Check https://github.com/lightningnetwork/lnd/issues/6505#issuecomment-1120364460 to understand, we need 100K+ to support anchor channel closings

Expand Down
Loading
Loading