diff --git a/backends/CLNRest.ts b/backends/CLNRest.ts index 9b5167f73..cc5587360 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); }; @@ -420,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 914234e06..52fcd6ae0 100644 --- a/views/OpenChannel.tsx +++ b/views/OpenChannel.tsx @@ -604,7 +604,7 @@ export default class OpenChannel extends React.Component< )} - {BackendUtils.isLNDBased() && + {BackendUtils.supportsChannelFundMax() && additionalChannels.length === 0 && ( <>