Merge pull request #591 from GeorgeTsagk/autoloop-easy-tag

Autoloop easy tag
pull/596/head
George Tsagkarelis 11 months ago committed by GitHub
commit 319a519309
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,6 +23,14 @@ const (
// autoIn is the label used for loop in swaps that are automatically
// dispatched.
autoIn = "autoloop-in"
// easyAutoOut is the label used for easy loop out swaps that are
// automatically dispatched.
easyAutoOut = "easy-autoloop-out"
// easyAutoIn is the label used for easy loop in swaps that are
// automatically dispatched.
easyAutoIn = "easy-autoloop-in"
)
var (
@ -44,6 +52,16 @@ func AutoloopLabel(swapType swap.Type) string {
return fmt.Sprintf("%v: %v", Reserved, autoIn)
}
// EasyAutoloopLabel returns a label with the reserved prefix that identifies
// automatically dispatched swaps depending on the type of swap being executed.
func EasyAutoloopLabel(swapType swap.Type) string {
if swapType == swap.TypeOut {
return fmt.Sprintf("%v: %v", Reserved, easyAutoOut)
}
return fmt.Sprintf("%v: %v", Reserved, easyAutoIn)
}
// Validate checks that a label is of appropriate length and is not in our list
// of reserved labels.
func Validate(label string) error {

@ -1052,7 +1052,7 @@ func (m *Manager) checkExistingAutoLoops(ctx context.Context,
var summary existingAutoLoopSummary
for _, out := range loopOuts {
if out.Contract.Label != labels.AutoloopLabel(swap.TypeOut) {
if !isAutoloopLabel(out.Contract.Label) {
continue
}
@ -1082,7 +1082,7 @@ func (m *Manager) checkExistingAutoLoops(ctx context.Context,
}
for _, in := range loopIns {
if in.Contract.Label != labels.AutoloopLabel(swap.TypeIn) {
if !isAutoloopLabel(in.Contract.Label) {
continue
}
@ -1466,6 +1466,26 @@ func (m *Manager) checkSummaryInflight(
return allowedSwaps, nil
}
// isAutoloopLabel is a helper function that returns a flag indicating whether
// the provided label corresponds to an autoloop swap.
func isAutoloopLabel(label string) bool {
switch label {
case labels.AutoloopLabel(swap.TypeOut):
return true
case labels.AutoloopLabel(swap.TypeIn):
return true
case labels.EasyAutoloopLabel(swap.TypeOut):
return true
case labels.EasyAutoloopLabel(swap.TypeIn):
return true
}
return false
}
// swapTraffic contains a summary of our current and previously failed swaps.
type swapTraffic struct {
ongoingLoopOut map[lnwire.ShortChannelID]bool

@ -118,6 +118,10 @@ func (b *loopInBuilder) buildSwap(ctx context.Context, pubkey route.Vertex,
if params.Autoloop {
request.Label = labels.AutoloopLabel(swap.TypeIn)
if params.EasyAutoloop {
request.Label = labels.EasyAutoloopLabel(swap.TypeIn)
}
}
return &loopInSwapSuggestion{

@ -150,6 +150,10 @@ func (b *loopOutBuilder) buildSwap(ctx context.Context, pubkey route.Vertex,
if params.Autoloop {
request.Label = labels.AutoloopLabel(swap.TypeOut)
if params.EasyAutoloop {
request.Label = labels.EasyAutoloopLabel(swap.TypeOut)
}
addr, err := b.cfg.Lnd.WalletKit.NextAddr(
ctx, "", walletrpc.AddressType_WITNESS_PUBKEY_HASH,
false,

Loading…
Cancel
Save