Add Lightning payout support (#2517)

* Add Lightning payout support

* Adjust Greenfield API to allow other payment types for Payouts

* Pull payment view: Improve payment method select

* Pull payments view: Update JS

* Pull payments view: Table improvements

* Pull payment form: Remove duplicate name field

* Cleanup Lightning branch after rebasing

* Update swagger documnetation for Lightning support

* Remove required requirement for amount in pull payments

* Adapt Refund endpoint to support multiple playment methods

* Support LNURL Pay for Pull Payments

* Revert "Remove required requirement for amount in pull payments"

This reverts commit 96cb78939d43b7be61ee2d257800ccd1cce45c4c.

* Support Lightning address payout claims

* Fix lightning claim handling and provide better error messages

* Fix tests

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
This commit is contained in:
Andrew Camilleri
2021-10-18 05:37:59 +02:00
committed by GitHub
parent 5ac4135a13
commit cf206e64a7
33 changed files with 925 additions and 172 deletions

View File

@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
using BTCPayServer.Abstractions.Extensions;
using System.Linq;
using BTCPayServer.Client.Models;
using BTCPayServer.Data;
using BTCPayServer.Payments;
using BTCPayServer.Services.Rates;
using PullPaymentData = BTCPayServer.Data.PullPaymentData;
@@ -18,6 +20,8 @@ namespace BTCPayServer.Models
{
Id = data.Id;
var blob = data.GetBlob();
PaymentMethods = blob.SupportedPaymentMethods;
SelectedPaymentMethod = PaymentMethods.First().ToString();
Archived = data.Archived;
Title = blob.View.Title;
Amount = blob.Limit;
@@ -58,6 +62,11 @@ namespace BTCPayServer.Models
ResetIn = resetIn.TimeString();
}
}
public string SelectedPaymentMethod { get; set; }
public PaymentMethodId[] PaymentMethods { get; set; }
public string HubPath { get; set; }
public string ResetIn { get; set; }
public string Email { get; set; }
@@ -95,6 +104,7 @@ namespace BTCPayServer.Models
public string Currency { get; set; }
public string Link { get; set; }
public string TransactionId { get; set; }
public PaymentMethodId PaymentMethod { get; set; }
}
}
}