mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
Merge pull request #591 from GeorgeTsagk/autoloop-easy-tag
Autoloop easy tag
This commit is contained in:
commit
319a519309
4 changed files with 48 additions and 2 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue