From 8763889084d066e9570225ec8518ca8142e8686f Mon Sep 17 00:00:00 2001 From: sha-265 <4103710+sha-265@users.noreply.github.com> Date: Fri, 10 Jan 2025 22:15:06 +0200 Subject: [PATCH 1/2] Add option to use all funds for channel with CLN --- backends/CLNRest.ts | 28 ++++++++++------------------ views/OpenChannel.tsx | 3 ++- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/backends/CLNRest.ts b/backends/CLNRest.ts index 9b5167f73..6fb085574 100644 --- a/backends/CLNRest.ts +++ b/backends/CLNRest.ts @@ -280,24 +280,16 @@ export default class CLNRest { const feeRate = `${new BigNumber(data.sat_per_vbyte || 0) .times(1000) .toString()}perkb`; - if (data.utxos && data.utxos.length > 0) { - request = { - id: data.id, - amount: data.satoshis, - feerate: feeRate, - announce: !data.privateChannel ? true : false, - minconf: data.min_confs, - utxos: data.utxos - }; - } else { - request = { - id: data.id, - amount: data.satoshis, - feerate: feeRate, - announce: !data.privateChannel ? true : false, - minconf: data.min_confs - }; - } + + request = { + id: data.id, + amount: data.fundMax ? 'all' : data.satoshis, + feerate: feeRate, + announce: !data.privateChannel ? true : false, + minconf: data.min_confs + }; + + if (data.utxos && data.utxos.length > 0) request.utxos = data.utxos; return this.postRequest('/v1/fundchannel', request); }; diff --git a/views/OpenChannel.tsx b/views/OpenChannel.tsx index 914234e06..0344eb395 100644 --- a/views/OpenChannel.tsx +++ b/views/OpenChannel.tsx @@ -604,7 +604,8 @@ export default class OpenChannel extends React.Component< )} - {BackendUtils.isLNDBased() && + {(BackendUtils.isLNDBased() || + implementation === 'cln-rest') && additionalChannels.length === 0 && ( <> Date: Sat, 11 Jan 2025 12:48:52 +0200 Subject: [PATCH 2/2] Add support flag function for max channel funding --- backends/CLNRest.ts | 1 + backends/EmbeddedLND.ts | 1 + backends/LND.ts | 1 + backends/LightningNodeConnect.ts | 1 + utils/BackendUtils.ts | 1 + views/OpenChannel.tsx | 3 +-- 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backends/CLNRest.ts b/backends/CLNRest.ts index 6fb085574..cc5587360 100644 --- a/backends/CLNRest.ts +++ b/backends/CLNRest.ts @@ -412,6 +412,7 @@ export default class CLNRest { supportsOnchainSendMax = () => true; supportsOnchainBatching = () => false; supportsChannelBatching = () => false; + supportsChannelFundMax = () => true; supportsLSPS1customMessage = () => false; supportsLSPS1rest = () => true; supportsBolt11BlindedRoutes = () => false; diff --git a/backends/EmbeddedLND.ts b/backends/EmbeddedLND.ts index b267f0dfb..1dfaea042 100644 --- a/backends/EmbeddedLND.ts +++ b/backends/EmbeddedLND.ts @@ -317,6 +317,7 @@ export default class EmbeddedLND extends LND { supportsOnchainSendMax = () => this.supports('v0.18.3'); supportsOnchainBatching = () => true; supportsChannelBatching = () => true; + supportsChannelFundMax = () => true; supportsLSPS1customMessage = () => true; supportsLSPS1rest = () => false; supportsOffers = () => false; diff --git a/backends/LND.ts b/backends/LND.ts index db5321cd6..844cf456d 100644 --- a/backends/LND.ts +++ b/backends/LND.ts @@ -703,6 +703,7 @@ export default class LND { supportsOnchainSendMax = () => this.supports('v0.18.3'); supportsOnchainBatching = () => true; supportsChannelBatching = () => true; + supportsChannelFundMax = () => true; supportsLSPS1customMessage = () => false; supportsLSPS1rest = () => true; supportsOffers = (): Promise | boolean => false; diff --git a/backends/LightningNodeConnect.ts b/backends/LightningNodeConnect.ts index 034623fd2..ba0bf4d9f 100644 --- a/backends/LightningNodeConnect.ts +++ b/backends/LightningNodeConnect.ts @@ -543,6 +543,7 @@ export default class LightningNodeConnect { supportsOnchainSendMax = () => this.supports('v0.18.3'); supportsOnchainBatching = () => true; supportsChannelBatching = () => true; + supportsChannelFundMax = () => true; supportsLSPS1customMessage = () => false; supportsLSPS1rest = () => true; supportsOffers = () => false; diff --git a/utils/BackendUtils.ts b/utils/BackendUtils.ts index cc27df9bf..afec8d280 100644 --- a/utils/BackendUtils.ts +++ b/utils/BackendUtils.ts @@ -175,6 +175,7 @@ class BackendUtils { supportsOnchainSendMax = () => this.call('supportsOnchainSendMax'); supportsOnchainBatching = () => this.call('supportsOnchainBatching'); supportsChannelBatching = () => this.call('supportsChannelBatching'); + supportsChannelFundMax = () => this.call('supportsChannelFundMax'); supportsOffers = () => this.call('supportsOffers'); supportsBolt11BlindedRoutes = () => this.call('supportsBolt11BlindedRoutes'); diff --git a/views/OpenChannel.tsx b/views/OpenChannel.tsx index 0344eb395..52fcd6ae0 100644 --- a/views/OpenChannel.tsx +++ b/views/OpenChannel.tsx @@ -604,8 +604,7 @@ export default class OpenChannel extends React.Component< )} - {(BackendUtils.isLNDBased() || - implementation === 'cln-rest') && + {BackendUtils.supportsChannelFundMax() && additionalChannels.length === 0 && ( <>