diff --git a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs index a04b8d56..b88c4663 100644 --- a/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs +++ b/src/Managing.Application/Bots/Grains/LiveTradingBotGrain.cs @@ -514,8 +514,19 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable try { var ownedKeys = await _kaigenService.GetOwnedKeysAsync(_state.State.User); + + var masterStrategy = await ServiceScopeHelpers.WithScopedService( + _scopeFactory, + async botService => await botService.GetBotByIdentifier(_state.State.Config.MasterBotIdentifier.Value)); + + if (masterStrategy == null) + { + _logger.LogWarning("Master strategy {MasterBotId} not found", _state.State.Config.MasterBotIdentifier.Value); + return; + } + var hasMasterStrategyKey = ownedKeys.Items.Any(key => - string.Equals(key.AgentName, _state.State.Config.MasterBotIdentifier.Value.ToString(), StringComparison.OrdinalIgnoreCase) && + string.Equals(key.AgentName, masterStrategy.User.AgentName, StringComparison.OrdinalIgnoreCase) && key.Owned >= 1); if (!hasMasterStrategyKey)