Modularisierung: WSS-/Alchemy-Listener ins Copytrading-Modul verschoben
Beide Listener sind copytrading-spezifisch (überwachen die getrackten Master- Trader bzw. Auto-Redeem nach Copytrading-Settings) und werden jetzt vom Modul besessen statt von der App. Reiner Move, keine Logikänderung. - services/AlchemyWebsocketService.cs + services/PolymarketWssClient.cs -> src/PolyTrader.Modules.CopyTrading/Services/ (Namespace bleibt transitional). - CopyTradingModule.RegisterServices registriert nun beide Hosted Services sowie IBlockchainWssClientFactory->AlchemyWssClientFactory (Core-WSS-Infra, nur vom Copytrading-Blockchain-Listener genutzt). - Program.cs: die drei Registrierungen entfernt (WSS-Factory + 2 Hosted Services) + ungenutztes using PolyTrader.Core.Streaming. - WSS-Verbindungsinfrastruktur (AlchemyWssClient/BlockchainWss) bleibt in Core. DI-Auflösung unverändert (gleicher Container). Build grün, --smoke-ui grün. Laufzeit-Verifikation der WSS-Verbindungen: Server-Test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
1b51872f00
commit
3456fd9768
@@ -9,7 +9,6 @@ using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Options;
|
||||
using PolyTrader.Core.Configuration;
|
||||
using PolyTrader.Core.DependencyInjection;
|
||||
using PolyTrader.Core.Streaming;
|
||||
using PolyTrader.Core.Modularity;
|
||||
using PolyTrader.Modules.CopyTrading;
|
||||
using PolyTrader.Modules.CopyTrading.Persistence;
|
||||
@@ -79,7 +78,6 @@ internal static class Program
|
||||
};
|
||||
services.Configure<DatabaseOptions>(context.Configuration.GetSection(DatabaseOptions.SectionName));
|
||||
services.AddCorePersistence(databaseOptions);
|
||||
services.AddSingleton<IBlockchainWssClientFactory, AlchemyWssClientFactory>();
|
||||
services.AddSingleton((IServiceProvider sp) => ServerSettings.Load("server_settings.xml"));
|
||||
services.AddSingleton<TradingState>();
|
||||
services.AddSingleton(delegate(IServiceProvider sp)
|
||||
@@ -124,11 +122,9 @@ internal static class Program
|
||||
module.RegisterServices(services, context.Configuration);
|
||||
}
|
||||
|
||||
services.AddHostedService<AlchemyWebsocketService>();
|
||||
services.AddHostedService<PersistenceService>();
|
||||
services.AddHostedService<MarketSyncService>();
|
||||
services.AddHostedService<MasterTraderAnalyticsJob>();
|
||||
services.AddHostedService<PolymarketWssClient>();
|
||||
services.AddHostedService((IServiceProvider sp) => sp.GetRequiredService<MullvadVpnService>());
|
||||
services.AddHostedService((IServiceProvider sp) => sp.GetRequiredService<ThreemaService>());
|
||||
services.AddSingleton<PolyTraderSharp.Ui.ShellUiHost>();
|
||||
|
||||
@@ -7,6 +7,7 @@ using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using PolyTrader.Core.Configuration;
|
||||
using PolyTrader.Core.Modularity;
|
||||
using PolyTrader.Core.Streaming;
|
||||
using PolyTrader.Modules.CopyTrading.Persistence;
|
||||
using PolyTrader.Modules.CopyTrading.Persistence.Ef;
|
||||
using PolyTrader.Modules.CopyTrading.Ui;
|
||||
@@ -47,11 +48,19 @@ namespace PolyTrader.Modules.CopyTrading
|
||||
services.AddSingleton<ITrackedTraderRepository, EfTrackedTraderRepository>();
|
||||
services.AddSingleton<IMasterTraderHistoryRepository, EfMasterTraderHistoryRepository>();
|
||||
|
||||
// WSS-Infrastruktur (Core) wird nur vom Copytrading-Blockchain-Listener genutzt.
|
||||
services.AddSingleton<IBlockchainWssClientFactory, AlchemyWssClientFactory>();
|
||||
|
||||
// Modul-Services (Signalquelle, Ausführung, Analytics)
|
||||
services.AddSingleton<TraderMonitorService>();
|
||||
services.AddHostedService(sp => sp.GetRequiredService<TraderMonitorService>());
|
||||
services.AddHostedService<CopyTradingEngine>();
|
||||
services.AddHostedService<TraderAnalyticsJob>();
|
||||
|
||||
// WSS-Listener des Moduls: Blockchain (Alchemy → Master-Trader-Wallets) und
|
||||
// Polymarket-Markt-WSS (Auto-Redeem nach Copytrading-Settings).
|
||||
services.AddHostedService<AlchemyWebsocketService>();
|
||||
services.AddHostedService<PolymarketWssClient>();
|
||||
}
|
||||
|
||||
public void RegisterUi(IModuleUiHost host, IServiceProvider services)
|
||||
|
||||
Reference in New Issue
Block a user