2
0
mirror of https://github.com/lightninglabs/loop synced 2024-11-04 06:00:21 +00:00
Commit Graph

20 Commits

Author SHA1 Message Date
Andras Banki-Horvath
bf59159ddb
client: LoopOutQuote to support estimate using v3 htlc 2022-06-30 16:59:56 +02:00
Carla Kirk-Cohen
c7ef4297c0
multi: update sweeping to allow different sighashes and claim scripts
Taproot spends require a different sighash, so we update our HtlcScript
interface to provide the appropriate sighash when sweeping. We also add
distinct Timeout/Success Script functions to allow for tapleaf spends
which have different locking scripts for different paths. Note that the
timeout and success paths will be the same for segwit v0 htlcs, because
it has a single branched script containing all spend paths.

In future iterations, this differentiation of claim scripts can also
be used to use musig2 to collaboratively keyspend P2TR htlcs with the
server. This script can be expressed as PriorityScript (because we'll
try to keyspend as a priority, and then fall back to a tap leaf spend).
As we've done here, segwit v0 spends would just return their single
script for PriorityScript, and the claim would be no different from
our other claims.
2022-06-09 10:20:16 +02:00
Andras Banki-Horvath
9610becebd
multi: add the aggregate internal pubkey to the v3 htlc 2022-06-09 10:20:16 +02:00
Carla Kirk-Cohen
638973dce2
swap: add locking conditions to HtlcScript interface
Use of the Script() function is problematic when we introduce taproot
because our script will vary depending whether we use keyspend or a
tapleaf spend path (and on the tapleaf spent). This has not previously
been a problem for segwitv0 scripts, because they contain all of the
logical branches for each of our spend conditions in a single script.

This commit prepares for removal of the Script() function by moving
our address/pkScript/sigScript generation (which need Script()) into
each script's implementation of the HtlcScript interface so that
they have access to the script directly.
2022-06-09 10:20:13 +02:00
Oliver Gugger
d5952f1202
multi: bump all dependency to use lnd 0.15.0-beta.rc4
This commit bumps all dependencies to be in line with what's required
for the current release candidate of lnd 0.15.0-beta.
2022-06-03 10:50:47 +02:00
sputn1ck
a1271fee40
multi: fix linter issues 2022-05-20 10:16:46 +02:00
Harsha Goli
dec6dd7e70
swap: HTLCV3 added
In this commit we add the version 3 htlc, which is implemented with
taproot script spending the two payment paths: the claim path case, and
the timeout case.
2022-04-22 11:36:09 -04:00
Harsha Goli
7a16e3b25d
multi: bump btcec/v2 and btcutil to new versions 2022-03-25 11:00:16 +01:00
Andras Banki-Horvath
ffd52aba2f
loopout: add low/high routing plugin 2022-02-14 10:14:47 +01:00
Andras Banki-Horvath
1943edfd78
loopout: use optional routing plugin for the main swap invoice 2022-02-14 10:14:46 +01:00
Andras Banki-Horvath
64991813ed
test: spend tests for the new v2 htlc 2020-08-27 16:21:52 +02:00
Andras Banki-Horvath
cd0a5f9f06
swap: extend swap to be able to create the V2 htlc 2020-08-27 16:21:51 +02:00
Andras Banki-Horvath
9fdd531130
swap: add HTLC script version 2020-08-27 16:21:47 +02:00
Joost Jager
0c9fcd790e
lndclient: move to github.com/lightninglabs/lndclient 2020-06-18 14:27:52 +02:00
Andras Banki-Horvath
60661504a5 htlc: add string representation for HtlcOutputType enum 2020-05-04 23:18:15 +02:00
Oliver Gugger
69f2af9fdc
loop+cmd: extract types into swap module 2019-10-09 16:14:06 +02:00
Bjorn Olav Jalborg
8d7a272fdd loop+loopout: validate hash of swap invoice
This commit fixes a possible exploit by the loop server, where
- in a loop out - the server could claim money off-chain, without
publishing an on-chain swap htlc.

The server could do this by responding with a regular invoice, whose hash
is different than the hash in the NewLoopOutSwap request. To prevent
the exploit, we validate that the hash of the swap invoice is equal to the
hash the client generated.
2019-07-31 11:01:42 +02:00
Joost Jager
753429547d
swap: fix htlc address generation
This commit fixes the generation of the htlc address. This bug didn't
affect the swap execution, because the htlc address is only used for
display to the user/caller.
2019-05-03 10:52:23 +02:00
Joost Jager
30c7d71c57
use np2wsh for loop in htlc 2019-04-04 15:49:02 +02:00
Olaoluwa Osuntokun
f552bc06b1
utils: remove utils package in favor of new swap package 2019-03-06 20:34:00 -08:00