Skip to content

Commit

Permalink
Merge pull request #30 from lightninglabs/bump-lnd-v17
Browse files Browse the repository at this point in the history
deps: update lnd to v0.17.0-beta
  • Loading branch information
jamaljsr authored Oct 30, 2023
2 parents f04f38b + bab2965 commit d0bc2ae
Show file tree
Hide file tree
Showing 26 changed files with 989 additions and 121 deletions.
125 changes: 112 additions & 13 deletions lib/types/proto/lnd/lightning.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ export enum CommitmentType {
* channel before its maturity date.
*/
SCRIPT_ENFORCED_LEASE = 'SCRIPT_ENFORCED_LEASE',
/** SIMPLE_TAPROOT - TODO(roasbeef): need script enforce mirror type for the above as well? */
SIMPLE_TAPROOT = 'SIMPLE_TAPROOT',
UNRECOGNIZED = 'UNRECOGNIZED'
}

Expand Down Expand Up @@ -995,6 +997,12 @@ export interface Channel {
peerAlias: string;
/** This is the peer SCID alias. */
peerScidAlias: string;
/**
* An optional note-to-self to go along with the channel containing some
* useful information. This is only ever stored locally and in no way impacts
* the channel's operation.
*/
memo: string;
}

export interface ListChannelsRequest {
Expand Down Expand Up @@ -1460,6 +1468,61 @@ export interface BatchOpenChannel {
* the remote peer supports explicit channel negotiation.
*/
commitmentType: CommitmentType;
/**
* The maximum amount of coins in millisatoshi that can be pending within
* the channel. It only applies to the remote party.
*/
remoteMaxValueInFlightMsat: string;
/**
* The maximum number of concurrent HTLCs we will allow the remote party to add
* to the commitment transaction.
*/
remoteMaxHtlcs: number;
/**
* Max local csv is the maximum csv delay we will allow for our own commitment
* transaction.
*/
maxLocalCsv: number;
/** If this is true, then a zero-conf channel open will be attempted. */
zeroConf: boolean;
/**
* If this is true, then an option-scid-alias channel-type open will be
* attempted.
*/
scidAlias: boolean;
/** The base fee charged regardless of the number of milli-satoshis sent. */
baseFee: string;
/**
* The fee rate in ppm (parts per million) that will be charged in
* proportion of the value of each forwarded HTLC.
*/
feeRate: string;
/**
* If use_base_fee is true the open channel announcement will update the
* channel base fee with the value specified in base_fee. In the case of
* a base_fee of 0 use_base_fee is needed downstream to distinguish whether
* to use the default base fee value specified in the config or 0.
*/
useBaseFee: boolean;
/**
* If use_fee_rate is true the open channel announcement will update the
* channel fee rate with the value specified in fee_rate. In the case of
* a fee_rate of 0 use_fee_rate is needed downstream to distinguish whether
* to use the default fee rate value specified in the config or 0.
*/
useFeeRate: boolean;
/**
* The number of satoshis we require the remote peer to reserve. This value,
* if specified, must be above the dust limit and below 20% of the channel
* capacity.
*/
remoteChanReserveSat: string;
/**
* An optional note-to-self to go along with the channel containing some
* useful information. This is only ever stored locally and in no way impacts
* the channel's operation.
*/
memo: string;
}

export interface BatchOpenChannelResponse {
Expand Down Expand Up @@ -1608,6 +1671,14 @@ export interface OpenChannelRequest {
* be zero and is ignored.
*/
fundMax: boolean;
/**
* An optional note-to-self to go along with the channel containing some
* useful information. This is only ever stored locally and in no way impacts
* the channel's operation.
*/
memo: string;
/** A list of selected outpoints that are allocated for channel funding. */
outpoints: OutPoint[];
}

export interface OpenStatusUpdate {
Expand Down Expand Up @@ -1674,6 +1745,8 @@ export interface ChanPointShim {
* the value is less than 500,000, or as an absolute height otherwise.
*/
thawHeight: number;
/** Indicates that the funding output is using a MuSig2 multi-sig output. */
musig2: boolean;
}

export interface PsbtShim {
Expand Down Expand Up @@ -1850,6 +1923,12 @@ export interface PendingChannelsResponse_PendingChannel {
chanStatusFlags: string;
/** Whether this channel is advertised to the network or not. */
private: boolean;
/**
* An optional note-to-self to go along with the channel containing some
* useful information. This is only ever stored locally and in no way
* impacts the channel's operation.
*/
memo: string;
}

export interface PendingChannelsResponse_PendingOpenChannel {
Expand All @@ -1871,6 +1950,18 @@ export interface PendingChannelsResponse_PendingOpenChannel {
* transaction. This value can later be updated once the channel is open.
*/
feePerKw: string;
/**
* The number of blocks until the funding transaction is considered
* expired. If this value gets close to zero, there is a risk that the
* channel funding will be canceled by the channel responder. The
* channel should be fee bumped using CPFP (see walletrpc.BumpFee) to
* ensure that the channel confirms in time. Otherwise a force-close
* will be necessary if the channel confirms after the funding
* transaction expires. A negative value means the channel responder has
* very likely canceled the funding and the channel will never become
* fully operational.
*/
fundingExpiryBlocks: number;
}

export interface PendingChannelsResponse_WaitingCloseChannel {
Expand Down Expand Up @@ -1983,7 +2074,13 @@ export interface WalletAccountBalance {
unconfirmedBalance: string;
}

export interface WalletBalanceRequest {}
export interface WalletBalanceRequest {
/**
* The wallet account the balance is shown for.
* If this is not specified, the balance of the "default" account is shown.
*/
account: string;
}

export interface WalletBalanceResponse {
/** The balance of the wallet */
Expand Down Expand Up @@ -2691,21 +2788,21 @@ export interface Invoice {
amtPaid: string;
/**
* The amount that was accepted for this invoice, in satoshis. This will ONLY
* be set if this invoice has been settled. We provide this field as if the
* invoice was created with a zero value, then we need to record what amount
* was ultimately accepted. Additionally, it's possible that the sender paid
* MORE that was specified in the original invoice. So we'll record that here
* as well.
* be set if this invoice has been settled or accepted. We provide this field
* as if the invoice was created with a zero value, then we need to record what
* amount was ultimately accepted. Additionally, it's possible that the sender
* paid MORE that was specified in the original invoice. So we'll record that
* here as well.
* Note: Output only, don't specify for creating an invoice.
*/
amtPaidSat: string;
/**
* The amount that was accepted for this invoice, in millisatoshis. This will
* ONLY be set if this invoice has been settled. We provide this field as if
* the invoice was created with a zero value, then we need to record what
* amount was ultimately accepted. Additionally, it's possible that the sender
* paid MORE that was specified in the original invoice. So we'll record that
* here as well.
* ONLY be set if this invoice has been settled or accepted. We provide this
* field as if the invoice was created with a zero value, then we need to
* record what amount was ultimately accepted. Additionally, it's possible that
* the sender paid MORE that was specified in the original invoice. So we'll
* record that here as well.
* Note: Output only, don't specify for creating an invoice.
*/
amtPaidMsat: string;
Expand Down Expand Up @@ -3878,8 +3975,10 @@ export interface Lightning {
): Promise<SignMessageResponse>;
/**
* lncli: `verifymessage`
* VerifyMessage verifies a signature over a msg. The signature must be
* zbase32 encoded and signed by an active node in the resident node's
* VerifyMessage verifies a signature over a message and recovers the signer's
* public key. The signature is only deemed valid if the recovered public key
* corresponds to a node key in the public Lightning network. The signature
* must be zbase32 encoded and signed by an active node in the resident node's
* channel database. In addition to returning the validity of the signature,
* VerifyMessage also returns the recovered pubkey from the signature.
*/
Expand Down
9 changes: 9 additions & 0 deletions lib/types/proto/lnd/signrpc/signer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,15 @@ export interface MuSig2SessionRequest {
* combined key and nonces are created.
*/
version: MuSig2Version;
/**
* A set of pre generated secret local nonces to use in the musig2 session.
* This field is optional. This can be useful for protocols that need to send
* nonces ahead of time before the set of signer keys are known. This value
* MUST be 97 bytes and be the concatenation of two CSPRNG generated 32 byte
* values and local public key used for signing as specified in the key_loc
* field.
*/
pregeneratedLocalNonce: Uint8Array | string;
}

export interface MuSig2SessionResponse {
Expand Down
6 changes: 5 additions & 1 deletion lib/types/proto/lnd/walletrpc/walletkit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,11 @@ export interface ImportTapscriptResponse {
}

export interface Transaction {
/** The raw serialized transaction. */
/**
* The raw serialized transaction. Despite the field name, this does need to be
* specified in raw bytes (or base64 encoded when using REST) and not in hex.
* To not break existing software, the field can't simply be renamed.
*/
txHex: Uint8Array | string;
/** An optional label to save with the transaction. Limited to 500 characters. */
label: string;
Expand Down
14 changes: 14 additions & 0 deletions lib/types/proto/tapd/assetwalletrpc/assetwallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,13 @@ export interface VerifyAssetOwnershipResponse {
validProof: boolean;
}

export interface RemoveUTXOLeaseRequest {
/** The outpoint of the UTXO to remove the lease for. */
outpoint: OutPoint | undefined;
}

export interface RemoveUTXOLeaseResponse {}

export interface AssetWallet {
/**
* FundVirtualPsbt selects inputs from the available asset commitments to fund
Expand Down Expand Up @@ -183,6 +190,13 @@ export interface AssetWallet {
verifyAssetOwnership(
request?: DeepPartial<VerifyAssetOwnershipRequest>
): Promise<VerifyAssetOwnershipResponse>;
/**
* RemoveUTXOLease removes the lease/lock/reservation of the given managed
* UTXO.
*/
removeUTXOLease(
request?: DeepPartial<RemoveUTXOLeaseRequest>
): Promise<RemoveUTXOLeaseResponse>;
}

type Builtin =
Expand Down
40 changes: 30 additions & 10 deletions lib/types/proto/tapd/mintrpc/mint.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint-disable */
import type { AssetType, AssetMeta } from '../taprootassets';
import type { AssetType, AssetVersion, AssetMeta } from '../taprootassets';

export enum BatchState {
BATCH_STATE_UNKNOWN = 'BATCH_STATE_UNKNOWN',
Expand Down Expand Up @@ -36,6 +36,8 @@ export interface MintAsset {
* This asset will be minted with the same group key as the anchor asset.
*/
groupAnchor: string;
/** The version of asset to mint. */
assetVersion: AssetVersion;
}

export interface MintAssetRequest {
Expand All @@ -46,31 +48,46 @@ export interface MintAssetRequest {
* future asset issuance.
*/
enableEmission: boolean;
/**
* If true, then the assets currently in the batch won't be returned in the
* response. This is mainly to avoid a lot of data being transmitted and
* possibly printed on the command line in the case of a very large batch.
*/
shortResponse: boolean;
}

export interface MintAssetResponse {
/** The pending batch the asset was added to. */
pendingBatch: MintingBatch | undefined;
}

export interface MintingBatch {
/**
* A public key serialized in compressed format that can be used to uniquely
* identify a pending minting batch. Responses that share the same key will be
* batched into the same minting transaction.
*/
batchKey: Uint8Array | string;
}

export interface MintingBatch {
/** The internal public key of the batch. */
batchKey: Uint8Array | string;
/** The assets that are part of the batch. */
assets: MintAsset[];
/** The state of the batch. */
state: BatchState;
}

export interface FinalizeBatchRequest {}
export interface FinalizeBatchRequest {
/**
* If true, then the assets currently in the batch won't be returned in the
* response. This is mainly to avoid a lot of data being transmitted and
* possibly printed on the command line in the case of a very large batch.
*/
shortResponse: boolean;
/** The optional fee rate to use for the minting transaction, in sat/kw. */
feeRate: number;
}

export interface FinalizeBatchResponse {
/** The internal public key of the batch. */
batchKey: Uint8Array | string;
/** The finalized batch. */
batch: MintingBatch | undefined;
}

export interface CancelBatchRequest {}
Expand Down Expand Up @@ -101,7 +118,10 @@ export interface Mint {
/**
* tapcli: `assets mint`
* MintAsset will attempt to mint the set of assets (async by default to
* ensure proper batching) specified in the request.
* ensure proper batching) specified in the request. The pending batch is
* returned that shows the other pending assets that are part of the next
* batch. This call will block until the operation succeeds (asset is staged
* in the batch) or fails.
*/
mintAsset(
request?: DeepPartial<MintAssetRequest>
Expand Down
Loading

0 comments on commit d0bc2ae

Please sign in to comment.