using System.Text; using BTCPayServer.Abstractions.Contracts; using BTCPayServer.Abstractions.Models; using BTCPayServer.Abstractions.Services; using BTCPayServer.Lightning; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using NNostr.Client; namespace BTCPayServer.Plugins.NIP05 { public class Nip05Plugin : BaseBTCPayServerPlugin { public override IBTCPayServerPlugin.PluginDependency[] Dependencies { get; } = { new() {Identifier = nameof(BTCPayServer), Condition = ">=1.12.0"} }; public override void Execute(IServiceCollection applicationBuilder) { applicationBuilder.AddSingleton(new UIExtension("Nip05Nav", "store-integrations-nav")); applicationBuilder.AddSingleton(new UIExtension("NWC/LNPaymentMethodSetupTab", "ln-payment-method-setup-tab")); applicationBuilder.AddSingleton(); applicationBuilder.AddSingleton(); applicationBuilder.TryAddSingleton(); applicationBuilder.AddSingleton(); applicationBuilder.AddHostedService(sp => sp.GetRequiredService()); applicationBuilder.AddSingleton(); applicationBuilder.AddSingleton(provider => provider.GetRequiredService()); base.Execute(applicationBuilder); } public static string GetZapRequestCacheKey(string invoiceid) { return nameof(Nip05Plugin)+ invoiceid; } } }