From a48924a66484387917713113fed17fe2d476ca12 Mon Sep 17 00:00:00 2001 From: George Tsagkarelis Date: Mon, 29 May 2023 13:23:55 +0300 Subject: [PATCH] liquidity: get autoloop flag directly from params Previously we would exclusively pass the autoloop boolean to multiple functions while they had directly access to the manager's parameters. With this commit we remove this explicit flag from the various function interfaces and retrieve the value directly from the parameters. --- liquidity/interface.go | 2 +- liquidity/liquidity.go | 15 +++++++-------- liquidity/liquidity_test.go | 2 +- liquidity/loopin_builder.go | 4 ++-- liquidity/loopin_builder_test.go | 2 +- liquidity/loopout_builder.go | 4 ++-- loopd/swapclient_server.go | 2 +- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/liquidity/interface.go b/liquidity/interface.go index c035a07b..1da7e875 100644 --- a/liquidity/interface.go +++ b/liquidity/interface.go @@ -62,7 +62,7 @@ type swapBuilder interface { // is just for a dry run. buildSwap(ctx context.Context, peer route.Vertex, channels []lnwire.ShortChannelID, amount btcutil.Amount, - autoloop bool, params Parameters) (swapSuggestion, error) + params Parameters) (swapSuggestion, error) } // swapSuggestion is an interface implemented by suggested swaps for our diff --git a/liquidity/liquidity.go b/liquidity/liquidity.go index 4d371e3e..891baec6 100644 --- a/liquidity/liquidity.go +++ b/liquidity/liquidity.go @@ -417,7 +417,7 @@ func (m *Manager) autoloop(ctx context.Context) error { // swaps for autoloop. m.refreshAutoloopBudget(ctx) - suggestion, err := m.SuggestSwaps(ctx, true) + suggestion, err := m.SuggestSwaps(ctx) if err != nil { return err } @@ -613,7 +613,7 @@ func (m *Manager) dispatchBestEasyAutoloopSwap(ctx context.Context) error { } suggestion, err := builder.buildSwap( - ctx, channel.PubKeyBytes, outgoing, swapAmt, true, easyParams, + ctx, channel.PubKeyBytes, outgoing, swapAmt, easyParams, ) if err != nil { return err @@ -697,7 +697,7 @@ func (m *Manager) singleReasonSuggestion(reason Reason) *Suggestions { // suggestions are being used for our internal autolooper. This boolean is used // to determine the information we add to our swap suggestion and whether we // return any suggestions. -func (m *Manager) SuggestSwaps(ctx context.Context, autoloop bool) ( +func (m *Manager) SuggestSwaps(ctx context.Context) ( *Suggestions, error) { m.paramsLock.Lock() @@ -794,7 +794,7 @@ func (m *Manager) SuggestSwaps(ctx context.Context, autoloop bool) ( suggestion, err := m.suggestSwap( ctx, traffic, balances, rule, outRestrictions, - inRestrictions, autoloop, + inRestrictions, ) var reasonErr *reasonError if errors.As(err, &reasonErr) { @@ -820,7 +820,7 @@ func (m *Manager) SuggestSwaps(ctx context.Context, autoloop bool) ( suggestion, err := m.suggestSwap( ctx, traffic, balance, rule, outRestrictions, - inRestrictions, autoloop, + inRestrictions, ) var reasonErr *reasonError @@ -922,7 +922,7 @@ func (m *Manager) SuggestSwaps(ctx context.Context, autoloop bool) ( // swap request for the rule provided. func (m *Manager) suggestSwap(ctx context.Context, traffic *swapTraffic, balance *balances, rule *SwapRule, outRestrictions *Restrictions, - inRestrictions *Restrictions, autoloop bool) (swapSuggestion, error) { + inRestrictions *Restrictions) (swapSuggestion, error) { var ( builder swapBuilder @@ -967,8 +967,7 @@ func (m *Manager) suggestSwap(ctx context.Context, traffic *swapTraffic, } return builder.buildSwap( - ctx, balance.pubkey, balance.channels, amount, autoloop, - m.params, + ctx, balance.pubkey, balance.channels, amount, m.params, ) } diff --git a/liquidity/liquidity_test.go b/liquidity/liquidity_test.go index 0dcad208..7ca97863 100644 --- a/liquidity/liquidity_test.go +++ b/liquidity/liquidity_test.go @@ -1846,7 +1846,7 @@ func testSuggestSwaps(t *testing.T, setup *testSuggestSwapsSetup, err := manager.setParameters(context.Background(), setup.params) require.NoError(t, err) - actual, err := manager.SuggestSwaps(context.Background(), false) + actual, err := manager.SuggestSwaps(context.Background()) require.Equal(t, expectedErr, err) require.Equal(t, expected, actual) } diff --git a/liquidity/loopin_builder.go b/liquidity/loopin_builder.go index 175ce5bc..cfe75f0b 100644 --- a/liquidity/loopin_builder.go +++ b/liquidity/loopin_builder.go @@ -84,7 +84,7 @@ func (b *loopInBuilder) inUse(traffic *swapTraffic, peer route.Vertex, // For loop in, we do not add the autoloop label for dry runs. func (b *loopInBuilder) buildSwap(ctx context.Context, pubkey route.Vertex, _ []lnwire.ShortChannelID, amount btcutil.Amount, - autoloop bool, params Parameters) (swapSuggestion, error) { + params Parameters) (swapSuggestion, error) { quote, err := b.cfg.LoopInQuote(ctx, &loop.LoopInQuoteRequest{ Amount: amount, @@ -116,7 +116,7 @@ func (b *loopInBuilder) buildSwap(ctx context.Context, pubkey route.Vertex, Initiator: autoloopSwapInitiator, } - if autoloop { + if params.Autoloop { request.Label = labels.AutoloopLabel(swap.TypeIn) } diff --git a/liquidity/loopin_builder_test.go b/liquidity/loopin_builder_test.go index ae109649..3a3d16f3 100644 --- a/liquidity/loopin_builder_test.go +++ b/liquidity/loopin_builder_test.go @@ -183,7 +183,7 @@ func TestLoopinBuildSwap(t *testing.T) { swap, err := builder.buildSwap( context.Background(), peer1, []lnwire.ShortChannelID{ chan1, - }, swapAmt, false, params, + }, swapAmt, params, ) assert.Equal(t, testCase.expectedSwap, swap) assert.Equal(t, testCase.expectedErr, err) diff --git a/liquidity/loopout_builder.go b/liquidity/loopout_builder.go index 0b8aa637..424a9774 100644 --- a/liquidity/loopout_builder.go +++ b/liquidity/loopout_builder.go @@ -94,7 +94,7 @@ func (b *loopOutBuilder) inUse(traffic *swapTraffic, peer route.Vertex, // dry-run, and we do not add the autoloop label to the recommended swap. func (b *loopOutBuilder) buildSwap(ctx context.Context, pubkey route.Vertex, channels []lnwire.ShortChannelID, amount btcutil.Amount, - autoloop bool, params Parameters) (swapSuggestion, error) { + params Parameters) (swapSuggestion, error) { quote, err := b.cfg.LoopOutQuote( ctx, &loop.LoopOutQuoteRequest{ @@ -147,7 +147,7 @@ func (b *loopOutBuilder) buildSwap(ctx context.Context, pubkey route.Vertex, Initiator: autoloopSwapInitiator, } - if autoloop { + if params.Autoloop { request.Label = labels.AutoloopLabel(swap.TypeOut) addr, err := b.cfg.Lnd.WalletKit.NextAddr( diff --git a/loopd/swapclient_server.go b/loopd/swapclient_server.go index 628ebaaf..90a97c61 100644 --- a/loopd/swapclient_server.go +++ b/loopd/swapclient_server.go @@ -844,7 +844,7 @@ func (s *swapClientServer) SetLiquidityParams(ctx context.Context, func (s *swapClientServer) SuggestSwaps(ctx context.Context, _ *clientrpc.SuggestSwapsRequest) (*clientrpc.SuggestSwapsResponse, error) { - suggestions, err := s.liquidityMgr.SuggestSwaps(ctx, false) + suggestions, err := s.liquidityMgr.SuggestSwaps(ctx) switch err { case liquidity.ErrNoRules: return nil, status.Error(codes.FailedPrecondition, err.Error())