Skip to content

Commit

Permalink
Merge pull request #1624 from kaloudis/lnd-v0.17.0
Browse files Browse the repository at this point in the history
LND v0.17.0 + Simple Taproot Channels, UTXO selection, send max for channel opens
  • Loading branch information
kaloudis committed Aug 28, 2023
2 parents 8cff7f1 + 9092cc5 commit 8b39ac2
Show file tree
Hide file tree
Showing 130 changed files with 36,892 additions and 369 deletions.
1 change: 1 addition & 0 deletions backends/CLightningREST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -261,5 +261,6 @@ export default class CLightningREST extends LND {
supportsBumpFee = () => false;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => false;
isLNDBased = () => false;
}
1 change: 1 addition & 0 deletions backends/Eclair.ts
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,7 @@ export default class Eclair {
supportsBumpFee = () => false;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => false;
isLNDBased = () => false;
}

Expand Down
6 changes: 5 additions & 1 deletion backends/EmbeddedLND.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ export default class EmbeddedLND extends LND {
data.sat_per_vbyte ? Number(data.sat_per_vbyte) : undefined,
data.scidAlias,
data.min_confs,
data.spend_unconfirmed
data.spend_unconfirmed,
data.simpleTaprootChannel,
data.fundMax,
data.utxos
);
connectPeer = async (data: any) =>
await connectPeer(data.addr.pubkey, data.addr.host, data.perm);
Expand Down Expand Up @@ -185,5 +188,6 @@ export default class EmbeddedLND extends LND {
supportsBumpFee = () => true;
supportsLSPs = () => true;
supportsNetworkInfo = () => true;
supportsSimpleTaprootChannels = () => this.supports('v0.16.99');
isLNDBased = () => true;
}
55 changes: 46 additions & 9 deletions backends/LND.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,15 +251,51 @@ export default class LND {
getPayments = () => this.getRequest('/v1/payments');
getNewAddress = (data: any) => this.getRequest('/v1/newaddress', data);
openChannel = (data: OpenChannelRequest) =>
this.postRequest('/v1/channels', {
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed
});
this.postRequest(
'/v1/channels',
data.simpleTaprootChannel
? {
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed,
fund_max: data.fundMax,
outpoints: data.utxos
? data.utxos.map((utxo: string) => {
const [txid_str, output_index] =
utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined,
commitment_type: 'SIMPLE_TAPROOT'
}
: {
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed,
fund_max: data.fundMax,
outpoints: data.utxos
? data.utxos.map((utxo: string) => {
const [txid_str, output_index] =
utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined
}
);
openChannelStream = (data: OpenChannelRequest) =>
this.wsReq('/v1/channels/stream', 'POST', data);
connectPeer = (data: any) => this.postRequest('/v1/peers', data);
Expand Down Expand Up @@ -394,5 +430,6 @@ export default class LND {
supportsBumpFee = () => true;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => this.supports('v0.17.0');
isLNDBased = () => true;
}
55 changes: 46 additions & 9 deletions backends/LightningNodeConnect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,51 @@ export default class LightningNodeConnect {

openChannel = async (data: OpenChannelRequest) =>
await this.lnc.lnd.lightning
.openChannelSync({
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed
})
.openChannelSync(
data.simpleTaprootChannel
? {
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed,
fund_max: data.fundMax,
outpoints: data.utxos
? data.utxos.map((utxo: string) => {
const [txid_str, output_index] =
utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined,
commitment_type:
lnrpc.CommitmentType['SIMPLE_TAPROOT']
}
: {
private: data.privateChannel,
scid_alias: data.scidAlias,
local_funding_amount: data.local_funding_amount,
min_confs: data.min_confs,
node_pubkey_string: data.node_pubkey_string,
sat_per_vbyte: data.sat_per_vbyte,
spend_unconfirmed: data.spend_unconfirmed,
fund_max: data.fundMax,
outpoints: data.utxos
? data.utxos.map((utxo: string) => {
const [txid_str, output_index] =
utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined
}
)
.then((data: lnrpc.ChannelPoint) => snakeize(data));
// TODO add with external accounts
// openChannelStream = (data: OpenChannelRequest) =>
Expand Down Expand Up @@ -348,5 +384,6 @@ export default class LightningNodeConnect {
supportsBumpFee = () => true;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => this.supports('v0.17.0');
isLNDBased = () => true;
}
1 change: 1 addition & 0 deletions backends/LndHub.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,5 +140,6 @@ export default class LndHub extends LND {
supportsBumpFee = () => false;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => false;
isLNDBased = () => false;
}
1 change: 1 addition & 0 deletions backends/Spark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -373,5 +373,6 @@ export default class Spark {
supportsBumpFee = () => false;
supportsLSPs = () => false;
supportsNetworkInfo = () => false;
supportsSimpleTaprootChannels = () => false;
isLNDBased = () => false;
}
6 changes: 4 additions & 2 deletions components/UTXOPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,8 @@ export default class UTXOPicker extends React.Component<
style={{
...styles.text,
color: themeColor('text'),
padding: 10,
paddingTop: 10,
paddingLeft: 10,
fontSize: 16
}}
>
Expand All @@ -289,7 +290,8 @@ export default class UTXOPicker extends React.Component<
style={{
...styles.text,
color: themeColor('text'),
padding: 10,
paddingTop: 10,
paddingLeft: 10,
fontSize: 16
}}
>
Expand Down
6 changes: 3 additions & 3 deletions fetch-libraries.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
VERSION=v0.16.4-beta-zeus
VERSION=v0.17.0-beta.rc1-zeus

ANDROID_FILE=Lndmobile.aar
IOS_FILE=Lndmobile.xcframework

ANDROID_SHA256='0d95ef47f057c5d1a4722261d79da5beee55c9d9100c63743027f01a2ba9aea0'
IOS_SHA256='f350ef9587f326fd38a33f4a31c36a52e3b7b013058cd9ac0b6c249f761308eb'
ANDROID_SHA256='929ac1fe51f63ecb6e531af9d388ca1b722a571c088c6ecabf43f3bd12642992'
IOS_SHA256='55c424348a6151ccf3751efe68c0c34b398ba55ed8d37b0760ab78abd48895d9'

FILE_PATH=https://github.com/ZeusLN/lnd/releases/download/$VERSION/

Expand Down
5 changes: 4 additions & 1 deletion lndmobile/LndMobileInjection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,10 @@ export interface ILndMobileInjections {
feeRateSat?: number,
scidAlias?: boolean,
min_confs?: number,
spend_unconfirmed?: boolean
spend_unconfirmed?: boolean,
simpleTaprootChannel?: boolean,
fund_max?: boolean,
utxos?: Array<string>
) => Promise<lnrpc.ChannelPoint>;
openChannelAll: (
pubkey: string,
Expand Down
67 changes: 54 additions & 13 deletions lndmobile/channel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@ export const openChannel = async (
fee_rate_sat?: number,
scidAlias?: boolean,
min_confs?: number,
spend_unconfirmed?: boolean
spend_unconfirmed?: boolean,
simpleTaprootChannel?: boolean,
fund_max?: boolean,
utxos?: Array<string>
): Promise<lnrpc.ChannelPoint> => {
const response = await sendCommand<
lnrpc.IOpenChannelRequest,
Expand All @@ -29,18 +32,56 @@ export const openChannel = async (
request: lnrpc.OpenChannelRequest,
response: lnrpc.ChannelPoint,
method: 'OpenChannelSync',
options: {
node_pubkey_string: pubkey,
local_funding_amount: Long.fromValue(amount),
target_conf: fee_rate_sat ? undefined : 2,
private: private_channel,
sat_per_vbyte: fee_rate_sat
? Long.fromValue(fee_rate_sat)
: undefined,
scid_alias: scidAlias,
min_confs,
spend_unconfirmed
}
options: simpleTaprootChannel
? {
node_pubkey_string: pubkey,
local_funding_amount: amount
? Long.fromValue(amount)
: undefined,
target_conf: fee_rate_sat ? undefined : 2,
private: private_channel,
sat_per_vbyte: fee_rate_sat
? Long.fromValue(fee_rate_sat)
: undefined,
scid_alias: scidAlias,
min_confs,
spend_unconfirmed,
fund_max,
outpoints: utxos
? utxos.map((utxo: string) => {
const [txid_str, output_index] = utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined,
commitment_type: lnrpc.CommitmentType.SIMPLE_TAPROOT
}
: {
node_pubkey_string: pubkey,
local_funding_amount: amount
? Long.fromValue(amount)
: undefined,
target_conf: fee_rate_sat ? undefined : 2,
private: private_channel,
sat_per_vbyte: fee_rate_sat
? Long.fromValue(fee_rate_sat)
: undefined,
scid_alias: scidAlias,
min_confs,
spend_unconfirmed,
outpoints: utxos
? utxos.map((utxo: string) => {
const [txid_str, output_index] = utxo.split(':');
return {
txid_str,
output_index: Number(output_index)
};
})
: undefined,
fund_max
}
});
return response;
};
Expand Down
4 changes: 4 additions & 0 deletions locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"general.off": "Off",
"general.close": "Close",
"general.learnMore": "Learn more",
"general.advancedSettings": "Advanced settings",
"components.CollapsedQr.show": "Show QR",
"components.CollapsedQr.hide": "Hide QR",
"components.CollapsedQr.startNfc": "Start NFC broadcast",
Expand Down Expand Up @@ -209,8 +210,10 @@
"views.Wallet.Channels.filters": "Filters",
"views.OpenChannel.announceChannel": "Announce channel",
"views.OpenChannel.scidAlias": "Attempt to use SCID alias",
"views.OpenChannel.simpleTaprootChannel": "Simple Taproot Channel",
"views.OpenChannel.openChannelToOlympus": "Open channel to Olympus",
"views.OpenChannel.peerToOlympus": "Peer to Olympus",
"views.OpenChannel.fundMax": "Use all possible funds",
"views.Wallet.BalancePane.sync.title": "Finishing sync",
"views.Wallet.BalancePane.sync.text": "Hang on tight! You will be ready to use Zeus soon.",
"views.Wallet.BalancePane.backup.title": "Back up your funds",
Expand Down Expand Up @@ -326,6 +329,7 @@
"views.Channel.Total.inbound": "Total inbound",
"views.Channel.Total.offline": "Total offline",
"views.Channel.zeroConf": "Zero conf",
"views.Channel.commitmentType": "Commitment Type",
"views.UTXOs.CoinControl.noUTXOs": "No UTXOs available",
"views.EditFee.mainText": "Edit network fee",
"views.EditFee.fastestFee": "Fastest fee",
Expand Down
1 change: 1 addition & 0 deletions models/Channel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export default class Channel extends BaseModel {
local_chan_reserve_sat?: string;
remote_chan_reserve_sat?: string;
zero_conf?: boolean;
commitment_type?: string;
// c-lightning
@observable
state: string;
Expand Down
2 changes: 2 additions & 0 deletions models/OpenChannelRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export default class OpenChannelRequest extends BaseModel {
public utxos?: string[];
public privateChannel?: boolean;
public scidAlias?: boolean;
public simpleTaprootChannel?: boolean;
public fundMax?: boolean;

constructor(data?: any) {
super(data);
Expand Down
2 changes: 1 addition & 1 deletion proto/autopilotrpc/autopilot.proto
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ message SetScoresRequest {
}

message SetScoresResponse {
}
}
2 changes: 1 addition & 1 deletion proto/chainrpc/chainnotifier.proto
Original file line number Diff line number Diff line change
Expand Up @@ -197,4 +197,4 @@ message BlockEpoch {

// The height of the block.
uint32 height = 2;
}
}
2 changes: 1 addition & 1 deletion proto/invoicesrpc/invoices.proto
Original file line number Diff line number Diff line change
Expand Up @@ -172,4 +172,4 @@ message LookupInvoiceMsg {
}

LookupModifier lookup_modifier = 4;
}
}

0 comments on commit 8b39ac2

Please sign in to comment.