micronode

This commit is contained in:
Kukks
2024-01-17 09:07:18 +01:00
parent d27a31ee8e
commit cfcaa17e94
24 changed files with 2388 additions and 11 deletions

View File

@@ -0,0 +1,40 @@
using BTCPayServer.Abstractions.Contracts;
using BTCPayServer.Abstractions.Models;
using BTCPayServer.Abstractions.Services;
using BTCPayServer.Lightning;
using Laraue.EfCoreTriggers.PostgreSql.Extensions;
using Microsoft.Extensions.DependencyInjection;
namespace BTCPayServer.Plugins.MicroNode;
public class MicroNodePlugin:BaseBTCPayServerPlugin
{
public override IBTCPayServerPlugin.PluginDependency[] Dependencies { get; } =
{
new () { Identifier = nameof(BTCPayServer), Condition = ">=1.12.0" }
};
public override void Execute(IServiceCollection applicationBuilder)
{
applicationBuilder.AddSingleton<IUIExtension>(new UIExtension("MicroNode/MicroNodeNav", "header-nav"));
applicationBuilder.AddSingleton<IUIExtension>(new UIExtension("MicroNode/LNPaymentMethodSetupTabhead", "ln-payment-method-setup-tabhead"));
applicationBuilder.AddSingleton<IUIExtension>(new UIExtension("MicroNode/LNPaymentMethodSetupTab", "ln-payment-method-setup-tab"));
// applicationBuilder.AddStartupTask<MicroNodeStartupTask>();
applicationBuilder.AddSingleton<MicroNodeContextFactory>();
applicationBuilder.AddDbContext<MicroNodeContext>((provider, o) =>
{
var factory = provider.GetRequiredService<MicroNodeContextFactory>();
factory.ConfigureBuilder(o);
o.UsePostgreSqlTriggers();
});
applicationBuilder.AddSingleton<ILightningConnectionStringHandler, MicroLightningConnectionStringHandler>();
applicationBuilder.AddSingleton<MicroNodeService>();
applicationBuilder.AddHostedService(provider => provider.GetRequiredService<MicroNodeService>());
base.Execute(applicationBuilder);
}
}