public async Task Execute(IJobExecutionContext context)
        {
            if (!_bot.IsConnected)
            {
                return;
            }

            decimal minimumStake = TracToken.MinimumStake;

            await using (MySqlConnection connection =
                             new MySqlConnection(OTHubSettings.Instance.MariaDB.ConnectionString))
            {
                LowAvailableTokenUsers[] users = (await connection.QueryAsync <LowAvailableTokenUsers>(
                                                      @"SELECT ts.UserID, ts.LowAvailableTokensAmount, u.TelegramUserID
FROM telegramsettings ts
JOIN Users u on u.ID = ts.UserID
WHERE ts.LowAvailableTokensEnabled = 1 AND ts.NotificationsEnabled = 1 AND ts.HasReceivedMessageFromUser = 1 AND u.TelegramUserID is not null")).ToArray();

                foreach (LowAvailableTokenUsers user in users)
                {
                    try
                    {
                        LowAvailableTokenNode[] nodes = (await connection.QueryAsync <LowAvailableTokenNode>(
                                                             @"SELECT i.NodeID, i.Identity, i.Stake, i.StakeReserved, i.BlockchainID, b.DisplayName AS BlockchainName, mn.DisplayName NodeName
FROM otidentity i
JOIN blockchains b ON b.ID = i.BlockchainID
JOIN mynodes mn ON mn.NodeID = i.NodeId
WHERE mn.UserID = @userID AND i.LastActivityTimestamp > DATE_Add(NOW(), INTERVAL -30 DAY) AND i.Stake > @minimumStake",
                                                             new
                        {
                            userID = user.UserID,
                            minimumStake = minimumStake
                        })).ToArray();

                        foreach (LowAvailableTokenNode lowAvailableTokenNode in nodes)
                        {
                            decimal available = lowAvailableTokenNode.Stake - minimumStake -
                                                lowAvailableTokenNode.StakeReserved;

                            if (available < 0)
                            {
                                available = 0;
                            }

                            if (available < user.LowAvailableTokensAmount)
                            {
                                try
                                {
                                    await Task.Delay(200);

                                    await _bot.LowAvailableTokensOnNode(user, lowAvailableTokenNode, available);
                                }
                                catch (Exception e)
                                {
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }
        }