Commit Graph

1313 Commits

Author SHA1 Message Date
ziggie
6387c0ab50 walletrpc: error out for non-anchor chans.
Return an error if a non-anchor channel is tried to be fee-bumped.
2024-10-03 00:37:49 +02:00
Elle Mouton
7dc86acb8c multi: update PaymentAddr to use fn.Option
Since it is allowed to not be set and so can lead to nil deref panics if
it is a pointer.
2024-09-25 11:14:35 +09:00
Oliver Gugger
e0b4601fb9 multi: add co-op close custom data to close update
With this commit we populate additional information about the close
outputs (including potential custom channel data) in the close update
RPC message.
This will allow custom channels to find out how the additional close
outputs look like on chain and what data they might commit to.

We also hook up the aux custom data formatter, so it can format the
custom channel data to JSON.
2024-09-19 10:18:41 +02:00
Oliver Gugger
d37df75bc0 lnrpc+rpcserver: encode custom records as custom channel data
With this commit we encode the custom records as a TLV stream into the
custom channel data field of the invoice HTLC.
This allows the custom data parser to parse those records and replace it
with human-readable JSON on the RPC interface.
2024-09-19 09:21:38 +02:00
ffranr
1975fa60e2 invoicesrpc: add HtlcModifier RPC endpoint and modifier RPC server
This commit introduces a singleton invoice HTLC modifier RPC server and
an endpoint to activate it. The server interfaces with the internal
invoice HTLC modifier interpreter, handling the marshalling between RPC
types and internal formats.
2024-09-19 09:21:37 +02:00
ffranr
008d265cdb invoicesrpc: add HTLC modifier to invoices RPC server
This commit integrates the HTLC modifier service into the
invoices RPC server.
2024-09-19 09:21:37 +02:00
Oliver Gugger
cdad5d988d Merge pull request #9072 from lightningnetwork/extract-part3-from-staging-branch
[custom channels 3/5]: Extract PART3 from mega staging branch
2024-09-19 01:20:55 -06:00
Oliver Gugger
d49da574e3 lnd: add aux data parser
This commit adds an optional data parser that can inspect and in-place
format custom data of certain RPC messages.
We don't add an implementation of the interface itself, as that will be
provided by external components when packaging up lnd as a bundle with
other software.
2024-09-18 19:07:27 +02:00
Oliver Gugger
5e1a98cd43 lnrpc+rpcserver: add and populate custom channel data 2024-09-18 19:07:26 +02:00
Elle Mouton
60f331edb1 multi: rename ChannelUpdate to ChannelUpdate1
In preparation for adding a new ChannelUpdate2 message and a
ChannelUpdate interface, we rename the existing message to
ChannelUpdate1.
2024-09-18 16:13:17 +02:00
Oliver Gugger
81c8331f82 lnrpc: add first hop custom data to route 2024-09-05 18:00:53 +02:00
Oliver Gugger
afdceab400 lnrpc: add first hop custom records to RPC payment info 2024-09-05 11:18:16 +02:00
George Tsagkarelis
42e358e3d3 lnrpc: add wire records fields to payment+interceptor RPCs 2024-09-05 11:18:16 +02:00
George Tsagkarelis
878f964a33 multi: use wire records on payment and intercept flows 2024-09-05 11:18:16 +02:00
ffranr
fb14d8c96e routerrpc: extend HTLC forward interceptor resp with modification fields
This commit extends the forward HTLC intercept response with fields that
can be used in conjunction with a `ResumeModified` action to modify the
intercepted HTLC p2p message.
2024-09-05 11:18:15 +02:00
George Tsagkarelis
70f82bc4ff routerrpc: add XAddLocalChanAliases & XDeleteLocalChanAliases 2024-09-05 10:29:42 +02:00
Oliver Gugger
61edb36283 routing+lnrpc: fix log statements 2024-08-23 10:58:14 +02:00
ffranr
7df093b3b1 multi: improve comment grammar 2024-08-22 18:33:24 +02:00
Olaoluwa Osuntokun
cc9e2b783e Merge pull request #8961 from yyforyongyu/fix-leaseoutput
Improve the performace of `LeaseOutput`
2024-08-21 16:31:26 -07:00
Olaoluwa Osuntokun
19b5a1fb05 build: set min build version to Go 1.22.6
Go 1.23 was released this week, so with this PR we update the build
system to officially support the last two releases.
2024-08-20 19:13:23 +02:00
ziggie
07b18c1c86 multi: add bumpforceclosefee rpc endpoint.
Add a new bumpforceclosefee rpc endpoint to the wallet server.
Move the logic from the lncli level to the wallet server rpc level.
This is more in line with a proper client-server design.

wallet lncli: use new bumpforceclosefee endpoint.

Besides using the new bumpforceclosefee rpc endpoint we also enable the
bumping of taproot anchor channels.
2024-08-09 18:54:56 +02:00
yyforyongyu
3e36adf476 mulit: remove ListLeasedOutputs in LeaseOutput
This commit removes the call toe `ListLeasedOutputs` in `LeaseOutput` -
the returned info from `ListLeasedOutputs` can easily be accessed via
`FetchInputInfo` and this info is only used at one callsite.
`ListLeasedOutputs` then becomes unnecessary here, plus it's very slow
and needs to be refactored in `btcwallet` instead.
2024-08-09 22:01:57 +08:00
yyforyongyu
f70c919164 lnrpc: fetch utxo info in lockInputs
This commit prepares the following commit where we change the
`LeaseOutput` to be more efficient.
2024-08-09 22:01:57 +08:00
yyforyongyu
aba8507b2a lnrpc+lnwallet: replace FetchInputInfo with new methods
This commit replaces the usage of `FetchInputInfo` with
`FetchOutpointInfo` and `FetchDerivationInfo` to remove unncessary
fetching of the derivation path.
2024-08-09 21:51:18 +08:00
Elle Mouton
5e84ba92af multi: add IsBlinded to lnrpc.Invoice for nicer UX
The BlindedPathConfig struct is nice for invoice creation but when we
use the Invoice message for viewing an invoice, it would be nicer to see
an "is_blinded" field.
2024-08-08 16:46:01 +02:00
Olaoluwa Osuntokun
5a84ca8032 Merge pull request #8986 from Roasbeef/min-relay-fee-rpc
lnrpc: add new min_relay_fee response to EstimateFee
2024-08-07 21:01:54 -07:00
Olaoluwa Osuntokun
7f96d10dd3 lnrpc: add new min_relay_fee response to EstimateFee
We also start using a pattern of making new messages for types/units
instead of adding a suffix to a field.
2024-08-07 17:51:35 -07:00
Elle Mouton
e4619afc08 multi: add node omission list for blinded paths 2024-08-07 17:03:11 +02:00
Elle Mouton
3de6c5415a multi: let blinded path invoice options be set per addinvoice call
Extend the configurability of blinded paths in invoices by adding the
ability to change the global config options on a per-RPC basis.
2024-08-07 17:02:55 +02:00
Elle Mouton
ca91e17115 invoicesrpc: move blinded path config to AddInvoiceData
since `AddInvoiceData` is config _per invoice_ where as `AddInvoiceConfig`
is config for the invoice server itself and so pretty much should stay
the same for the lifetime of LND. This change sets us up for moving some
of the blinded path config options to be changeable per AddInvoice call
rather that having fixed config values in the config file.
2024-08-07 17:01:21 +02:00
Oliver Gugger
d77617461d Merge pull request #8955 from yyforyongyu/cr-8516-240729-sendcoins
Allow selecting coins in `sendcoins`
2024-08-07 08:42:25 -06:00
Oliver Gugger
b63e5decad Merge pull request #8886 from bitromortac/buildroute-inbound-fees
routing: inbound fees support for BuildRoute
2024-08-07 08:11:17 -06:00
Ononiwu Maureen
99339f706f multi: expand SendOutputs and CreateSimpleTx to take utxos
This commit updates the interface methods from
`lnwallet.WalletController` to take optional input set which can be used
to create the tx.
2024-08-07 20:42:27 +08:00
Ononiwu Maureen
468ca87499 lnrpc: Add Outpoint field in SendCoinsRequest
Signed-off-by: Ononiwu Maureen <59079323+Chinwendu20@users.noreply.github.com>
2024-08-07 20:42:27 +08:00
bitromortac
b0e1a722c6 routerrpc: add check for empty hops 2024-08-07 14:24:59 +02:00
bitromortac
452db01ad7 lnrpc+routing: convert amt pointer to fn.Option 2024-08-07 14:24:56 +02:00
Oliver Gugger
63af63dfa8 lnrpc: avoid needing to download Golang
Because the Go version used to run the `go list` commands is below the
minimum version specified in the main go.mod file, every time the `make
rpc` command is executed, the Golang runtime is downloaded twice, which
looks like this and takes a couple of seconds at least:

go: downloading go1.21.4 (linux/amd64)
go: downloading go1.21.4 (linux/amd64)

We fix this by using the correct minimum version.
2024-08-06 18:38:10 +02:00
Elle Mouton
e8da2fa0bd lnrpc/gen_protos: remove manual_imports
With the updated falafel version, there is no longer a need to specify
manual imports.
2024-08-05 16:00:00 +02:00
Elle Mouton
58317e66d3 lnrpc/Dockerfile: update falafel version
Update the falafel version.
2024-08-05 15:59:50 +02:00
Oliver Gugger
546c8ebb99 Merge pull request #8954 from ffranr/check-go-versions
Linter checks go versions in Dockerfile and YAML files
2024-08-05 02:01:00 -06:00
Slyghtning
2e3c96f986 routing: new failure reason for cancelled payments 2024-08-01 10:24:08 +02:00
Slyghtning
d18c4d61ce lnrpc: payment failure reason canceled 2024-08-01 10:24:07 +02:00
ffranr
d7a81a1fe3 multi: use Go version 1.22.5 throughout 2024-07-31 16:53:47 +01:00
Elle Mouton
4a22ec8413 routing: pass BlindedPaymentPathSet around everywhere
Building on from the previous commit, here we pass the PathSet around
everywhere where we previously passed around the single BlindedPayment.
2024-07-31 09:14:28 +02:00
Elle Mouton
3d5f20b70f multi: introduce BlindedPaymentPathSet
This commit introduces a new type, `BlindedPaymentPathSet`. For now, it
holds only a single `BlindedPayment` but eventually it will hold and
manage a set of blinded payments provided for a specific payment. To
make the PR easier to follow though, we start off just letting it hold a
single one and do some basic replacements.
2024-07-31 09:11:49 +02:00
Elle Mouton
c490279002 blindedpath: smarter dummy hop policy selection
This commit introduces more sophisticated code for selecting dummy hop
policy values for dummy hops in blinded paths.

For the case where the path does contain real hops, the dummy hop policy
values are derived by taking the average of those hop polices. For the
case where there are no real hops (in other words, we are the
introduction node), we use the default policy values used for normal
ChannelUpdates but then for the MaxHTLC value, we take the average of
all our open channel capacities.
2024-07-26 13:03:07 +02:00
Elle Mouton
398623bde5 blindedpath: move blinded path logic to own pkg 2024-07-26 09:54:59 +02:00
Elle Mouton
735d7d9738 multi: send to a blinded path in an invoice
Update the SendPayment flow so that it is able to send to an invoice
containing a blinded path.
2024-07-26 09:54:37 +02:00
Elle Mouton
de975334cd multi: add blinded paths to invoices
Expose the ability to add blinded paths to an invoice. Also expose
various configuration values.

We also let the lncfg.Invoices struct satisfy the Validator interface so
that we can verify all its config values in one place.
2024-07-26 09:54:17 +02:00
Elle Mouton
9787ae9c89 lnrpc/invoicesrpc: prep AddInvoice for blinded routes
Here we add a new `Blind` option to the `AddInvoiceData` which will
signal that the new invoice should encode a blinded route.

Certain other changes are also made in the case that this invoice
contains a blinded route:
1) the payment address/secret no longer needs to be in the invoice
   itself since it will be put in the `PathID` recored of the encrypted
   recipient record for our hop.
2) When we sign the invoice, we now use an ephemeral key since we dont
   want the sender to be able to derive our real node pub key from the
   invoice signature.
3) The invoice's FinalCLTV field should be zero for blinded invoices
   since the CLTV delta info will be communicated in the accumulated
   route policy values.
2024-07-26 09:54:17 +02:00