Add master strategy validation in LiveTradingBotGrain
- Introduced a check to ensure the master strategy is retrieved successfully before proceeding with key validation. - Added logging for cases where the master strategy is not found, improving traceability in the bot's operation.
This commit is contained in:
@@ -514,8 +514,19 @@ public class LiveTradingBotGrain : Grain, ILiveTradingBotGrain, IRemindable
|
||||
try
|
||||
{
|
||||
var ownedKeys = await _kaigenService.GetOwnedKeysAsync(_state.State.User);
|
||||
|
||||
var masterStrategy = await ServiceScopeHelpers.WithScopedService<IBotService, Bot>(
|
||||
_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)
|
||||
|
||||
Reference in New Issue
Block a user