btcpayserver/BTCPayServer/Views/Shared/LNURL/CrowdfundLNURL.cshtml
2022-03-08 08:17:39 +00:00

36 lines
1.6 KiB
Text

@using BTCPayServer.Services.Stores
@using BTCPayServer.Payments.Lightning
@using BTCPayServer.Abstractions.Extensions
@model BTCPayServer.Models.AppViewModels.ViewCrowdfundViewModel
@inject BTCPayNetworkProvider BTCPayNetworkProvider
@inject StoreRepository StoreRepository
@{
Context.Request.Query.TryGetValue("cryptocode", out var cryptoCodeValues);
var cryptoCode = cryptoCodeValues.FirstOrDefault() ?? "BTC";
var store = await StoreRepository.FindStore(Model.StoreId);
var supported = store.GetSupportedPaymentMethods(BTCPayNetworkProvider).OfType<LNURLPaySupportedPaymentMethod>().FirstOrDefault(method => method.CryptoCode == cryptoCode);
if (supported != null && !store.GetEnabledPaymentIds(BTCPayNetworkProvider).Contains(supported.PaymentId))
{
supported = null;
}
if (supported != null)
{
var lnurls = Model.Perks.Select(item => (item.Id, LNURL.LNURL.EncodeUri(new Uri(Context.Request.GetAbsoluteUri(Url.Action("GetLNURLForApp", "UILNURL", new
{
cryptoCode = supported.CryptoCode,
appid = Model.AppId,
ItemCode = item.Id
}))), "payRequest", supported.UseBech32Scheme))).ToDictionary(tuple => tuple.Id, tuple => tuple.Item2);
lnurls.Add("", LNURL.LNURL.EncodeUri(new Uri(Context.Request.GetAbsoluteUri(Url.Action("GetLNURLForApp", "UILNURL", new
{
cryptoCode = supported.CryptoCode,
appid = Model.AppId,
}))), "payRequest", supported.UseBech32Scheme));
<script>
window.lnurl = true;
window.lnurlItems = @Safe.Json(lnurls);
</script>
}
}