public async Task Handle(Update update)
        {
            var isReplyMessage = update.Message.ReplyToMessage != null;

            if (!isReplyMessage)
            {
                await _botService.ShowMainButtonMenu(update.Message.Chat.Id, null);
            }
            else
            {
                var replyMessage = update.Message.ReplyToMessage?.Text;
                switch (replyMessage)
                {
                case ReplyConstants.EnterDefaultTipAmount:
                {
                    if (double.TryParse(update.Message.Text, out double defaultTipAmount))
                    {
                        await _settingsService.SetDefaultTipAmount(update.Message.Chat, update.Message.From.Id, defaultTipAmount);
                    }
                    else
                    {
                        await _botService.SendTextMessage(update.Message.Chat.Id, ReplyConstants.InvalidAmount);
                    }
                    break;
                }

                case ReplyConstants.EnterWithdrawalWallet:
                {
                    var walletAddress       = ValidateWallet(update.Message.Text);
                    var walletAddressAction = await TrySetWallet(walletAddress, update);

                    await SendWalletSetReply(update, walletAddressAction, walletAddress, true);

                    break;
                }

                case ReplyConstants.EnterTopUpMetahashWallet:
                {
                    var walletAddress       = ValidateWallet(update.Message.Text);
                    var walletAddressAction = await TrySetWallet(walletAddress, update);

                    await SendWalletSetReply(update, walletAddressAction, walletAddress, false);

                    break;
                }

                case ReplyConstants.EnterWithdrawalAmount:
                    if (double.TryParse(update.Message.Text, out double amount))
                    {
                        await _withdrawalService.Handle(update.Message.Chat, update.Message.From.Id, amount);
                    }
                    else
                    {
                        await _botService.SendTextMessage(update.Message.Chat.Id, ReplyConstants.InvalidAmount);
                    }
                    break;

                default:
                {
                    await _botService.ShowMainButtonMenu(update.Message.Chat.Id, update.Message.MessageId);

                    break;
                }
                }
            }
        }