2
0
mirror of https://github.com/lightninglabs/loop synced 2024-11-16 00:12:52 +00:00
Commit Graph

846 Commits

Author SHA1 Message Date
carla
a9e774898f
swapserverrpc: make swapserverrpc its own module
To make it possible to replace the swapserverrpc module in the server,
we declare it as its own submodule. This allows the server to make
changes to its local protos (and replace loop's copy with the local
version), to use changes that are not yet merged to the client repo.
2021-12-13 13:59:16 +02:00
carla
dad103530f
multi: move server proto files to their own directory
Protobuf does not allow naming conflicts for files within the same
process, because all proto messages register themselves in a global
registry.

This is problematic because the server's itests import the client's
looprpc package to make rpc queries to the loopd client, thus importing
duplicate common.proto and server.proto from the client's looprc package
(since they're both in there as well).

This change moves the server's proto files into their own directory so
that they are not imported when we want to use the client's files. We
cannot change the package name for the server, because that would be
a breaking change (the package name is included in URIS). Fortunately,
we have the go_package option which allows us to place generated files
in a different location.
2021-12-13 13:56:40 +02:00
Carla Kirk-Cohen
f01f440715
Merge pull request #444 from carlaKC/loopin-removeshadowedvar
multi: remove shadowed label variable in loopin swaps
2021-12-13 08:37:07 +02:00
carla
26886731d4
multi: remove shadowed label variable in loopin swaps
We already have a Label field in the embedded SwapContract
field for loop in swaps. This commit removes an erroneously
added Label field in LoopInContract which may be a cause of
ambiguity when referencing this field.
2021-12-09 13:40:34 +02:00
Harsha Goli
52087c8bb4
Merge pull request #434 from arshbot/default-macaroon-locations
loopd: Consider network when making LND paths
2021-12-08 17:11:34 -05:00
Harsha Goli
b7ba19394b
Merge pull request #415 from lightninglabs/routehints
loopin: Add --private parameter
2021-12-08 13:54:39 -05:00
Harsha Goli
bf84aef4be
release_notes: add release notes for bugfix 2021-12-08 13:54:03 -05:00
Harsha Goli
3fb75131ea
loopd: Consider network when making LND paths
In this commit we consider the passed network options when assuming the
LND macaroon path if not passed by user
2021-12-08 13:54:03 -05:00
Harsha Goli
05693411f7
Merge pull request #436 from arshbot/assume-yes
main: add --force to loop in/loop out
2021-12-08 13:51:45 -05:00
Harsha Goli
8dba29ad3e
docs: updated release notes 2021-12-07 21:04:08 -05:00
Harsha Goli
f1a7d8fb49
multi: pass private, routehints from loopcli - loopd - loop server
This commit passes routehints all the way from when/if the user passes
them from the cli all the way to the backend loop server. If private is
used, this commit passes that boolean down to different stages, where it
is then converted into routehints.

main: add --private and --route_hints to quote

Adds --private and --route_hints flags to quote cli
2021-12-07 21:04:07 -05:00
Harsha Goli
4299147895
main: add --private flag to loop in
Adding the --private flag informs loopd that the connected node is
considered private (all channels are marked private) and the loop in
server may have trouble routing the payment. To handle this, loopd will
construct some hophints that will be sent to the loopin server to help
route. This commit merely adds the flag to the cli.
2021-12-07 14:23:41 -05:00
Harsha Goli
9db43a4dbd
loop: Reimplement SelectHopHints from lnd
In this commit, instead of importing SelectHopHints from lnd, we chose
to reimplement the functionality here, for the purpose of adding hop
hints in case the user informs us the client node is considered private.

In the future, we should modify the origin SelectHopHints to take
closures for all it's data sources, so we can use it's logic external
2021-12-07 14:23:41 -05:00
Harsha Goli
5504368844
loopin: Add --route_hints parameter
Adds the --route_hints parameter to loop quote
2021-12-07 14:23:40 -05:00
Carla Kirk-Cohen
2e6adeaa3f
Merge pull request #433 from carlaKC/419-swaptype
liquidity: add swap type and loop in fee logic
2021-12-02 09:27:42 +02:00
carla
8113c34bce
liquidity: add failed loop in swaps to swap traffic 2021-11-30 13:18:32 +02:00
carla
965b99d455
liquidity: add existing loop in swaps to budget calculations 2021-11-30 13:18:32 +02:00
carla
0f0be28599
liquidity: add loop in fees to fee categories 2021-11-30 13:18:31 +02:00
carla
c067169e6f
liquidity: add loop fee estimation and swap interface impl
Add an implementation of our swap interface which can be used for
loop in, and fee estimation. For fee estimation, we always want to
calculate worst case loop in fees, so that autoloop never goes over
its budget. However, for loop in we can't estimate how much a
timeout would cost, because we must sweep the output (can't set
a limit like loop out), and fee estimation in a few hundred blocks
(when we'd sweep the timeout) is totally unreliable.

Instead, we use a high fee rate as our best-effort fee rate for
the future. We can also be confident that that loop in swaps will
succeed, since once the htlc is locked in, all that is required
is for the server to sweep.
2021-11-30 13:18:30 +02:00
carla
3e7782e1ab
liquidity: use builder in single place
In preparation of supporting multiple swap types, we move our swap
builder into a single place, so that we can check our `maySwap`
restriction per-swap (since we'll now have different checks for
different swap types.

To save ourselves from making multiple calls to the loop server for
the restrictions placed on each swap type, we still pass a single
set of restrictions in.
2021-11-30 13:18:29 +02:00
carla
91a90968d0
multi: surface swap type on rpc 2021-11-30 13:18:28 +02:00
carla
25b8d20f75
liquidity: add type to rules
In preparation for adding loop in swaps, we relate liquidity rules
to a specific type of swap that we want to dispatch. This allows us
to use a single rule format for multiple swap types.
2021-11-30 13:18:27 +02:00
carla
00c2d4e5f0
liquidity: generalize threshold rule variable names
The current wording in this function is very specific to loop out.
In this commit, we refactor to use `target` and `reserve` rather
than inbound and outbound so that it can be used more generically.
2021-11-30 13:18:26 +02:00
András Bánki-Horváth
06c4c347fd
Merge pull request #440 from bhandras/lnd_bump-0.14.1-beta
mod: bump lnd to v0.14.1-beta
2021-11-29 17:13:54 +01:00
Andras Banki-Horvath
9e227fc1ee
build: adding clean 2021-11-29 16:36:50 +01:00
Andras Banki-Horvath
daa62b8ea2
mod: bump lnd to v0.14.1-beta 2021-11-29 16:33:21 +01:00
Oliver Gugger
18395d143a
Merge pull request #438 from guggero/lnd-14-final
multi: bump lnd to v0.14.0-beta final, release v0.15.1-beta
2021-11-18 14:53:24 +01:00
Oliver Gugger
f0b2bb0888
release_notes: clear on release of new version 2021-11-18 14:10:58 +01:00
Oliver Gugger
0ea64e81fb
multi: bump lnd to v0.14.0-beta final, release v0.15.1-beta
With this PR we include the final version of the lnd v0.14.0-beta
release to ensure compatibility.
The rationale for choosing Loop version 0.15.1 instead of 0.16.0 is that
this doesn't add any major new features.
2021-11-18 13:53:48 +01:00
Carla Kirk-Cohen
04b4f0a389
Merge pull request #432 from carlaKC/export-listnerconfig
loopd: export NewListenerConfig
2021-11-18 10:03:33 +01:00
Harsha Goli
e52f6eff47
main: add --force to loop in/loop out
--force skips the confirmation prompt when performing loops. This is
super userful for scripts and negates the use of gnu yes
2021-11-17 16:30:31 -05:00
carla
618310fe6f
loopd: export NewListenerConfig 2021-11-12 11:26:07 +02:00
András Bánki-Horváth
9f399c56a5
Merge pull request #431 from arshbot/loopserver-update-lnd
bump lnd versions from 12.1-beta to 13.4-beta
2021-11-12 09:52:14 +01:00
Harsha Goli
2558478707
bump lnd versions from 12.1-beta to 13.4-beta 2021-11-11 16:40:27 -05:00
Oliver Gugger
7c4d8f601e
Merge pull request #428 from lightninglabs/macaroon-stateless
Macaroon stateless
2021-11-05 10:47:08 +01:00
Turtle
1503001ee5
loopd: conditionally create default macaroon file
In some cases we don't want the default macaroon file to be created on
disk, so we allow passing in a boolean that toggles the macaroon
creation.
2021-11-04 14:09:27 +01:00
Oliver Gugger
139eac6feb
Merge pull request #426 from lightninglabs/lnd-14
multi: bump lnd compile time dependency to v0.14.0-beta.rc1
2021-11-04 11:22:29 +01:00
Oliver Gugger
2c6e035235
multi: bump lnd compile time dependency to v0.14.0-beta.rc1 2021-11-03 19:31:21 +01:00
Carla Kirk-Cohen
6b04d8ecb0
Merge pull request #425 from carlaKC/lndclient-bump
multi: bump lndclient to v0.12.0-13
2021-10-25 11:28:57 +02:00
carla
cca5926263
multi: bump lndclient to v0.12.0-13
To allow code with more up-to-date dependencies to import loop, we
bump our lndclient version. The minimum loop version remains 11.1
since we're not using any new apis.
2021-10-24 10:22:30 +02:00
Carla Kirk-Cohen
4c58d0c5e8
Merge pull request #418 from carlaKC/autoloop-builder
liquidity: add swap builder interface
2021-10-14 11:13:50 +02:00
carla
8bd7ee35be
liquidity: add swap builder interface 2021-09-28 10:31:04 +02:00
carla
4df6a4e7ca
liquidity: move loopout swap suggestion out of interface file 2021-09-17 12:50:39 +02:00
Carla Kirk-Cohen
7ac6e26e90
Merge pull request #413 from Kixunil/config-file-error-handling
Improve error handling of config file
2021-08-11 10:20:39 +02:00
Martin Habovstiak
158e22f2a7 Documented the menaing of returned bool 2021-08-10 08:25:32 +02:00
Martin Habovstiak
c00da1cf09 Renamed explicitConfig to hasExplicitConfig
`hasExplicitConfig` is considered cleaner.
2021-08-10 08:25:32 +02:00
Martin Habovštiak
2c1e437f26
Remove extra space
Co-authored-by: Yong <yy2452@columbia.edu>
2021-08-10 08:19:27 +02:00
Martin Habovstiak
84582bbb88 Improve error handling of config file
This makes two changes to handling of errors when configuration file
could not be loaded:

1. Only NotFound errors are considered OK - access errors and other FS
   issues are now treated as fatal.
2. Failing to load config file specified explicitly via `--configfile`
   option is alway a fatal error.

Rationale: If the configfile was specified explicitly then it indicates
the user really wishes to load it. While the user could want it to be
optionally loaded for extra configuration options, this can be
accomplished using an empty file.

If the config file was not specified explicitly then its' path was
computed from loop directory. If the file is inaccessible due to
permissions or other FS errors it's nearly certain other following
operations will fail as well. Failing early with a clear message is thus
beneficial.

This still leaves room for uncaught user error (e.g. mistakenly naming
config file inside loop dir as `loop.conf` instead of `loopd.conf`) but
it's greatly reduced and such error should be easier to identify.

(Indirectly) closes #412
2021-08-05 18:19:52 +02:00
Oliver Gugger
a5aec7b2e9
Merge pull request #411 from guggero/falafel-js-stubs
looprpc: add JSON stubs for interacting with looprpc from a WASM context
2021-08-05 09:37:49 +02:00
Alex Bosworth
63f34ec45c
Merge pull request #410 from lightninglabs/update-to-v0.15.0-beta
version: bump version to v0.15.0-beta
2021-08-03 07:30:29 -07:00