Exemple #1
0
        public async IAsyncEnumerable <MessageResponse> QueryBalance(Message message, string symbol)
        {
            symbol = symbol.ToUpperInvariant();
            yield return("查询中……");

            UserInfo user;

            try
            {
                user = await _backendService.GetUserByTelegramIdAsync(message.From.Id);
            }
            catch (MatatakiUserNotFoundException)
            {
                throw new HandlerException("抱歉,您还没有绑定 Matataki 帐号");
            }

            TokenInfo token;

            try
            {
                token = await _backendService.GetTokenAsync(symbol);
            }
            catch (TokenNotFoundException)
            {
                throw new HandlerException("抱歉,没有这样的 Fan 票");
            }

            var balance = await _minetokenService.GetBalanceAsync(token.ContractAddress, user.WalletAddress);

            yield return(Markdown($"{balance} [{symbol}]({_matatakiService.GetTokenPageUrl(token.Id)})"));
        }
Exemple #2
0
        public async Task <MessageResponse> Handle(Message message)
        {
            var builder = new StringBuilder();

            UserInfo?user = null;

            try
            {
                user = await _backendService.GetUserByTelegramIdAsync(message.From.Id);

                builder.AppendLine($"瞬Matataki 昵称: [{user.Name}]({_matatakiService.GetUserPageUrl(user.Id)})");
            }
            catch
            {
                builder.AppendLine("没有绑定 Matataki");
            }

            if (user?.IssuedTokens?.Length > 0)
            {
                var token = user.IssuedTokens[0];

                builder.AppendLine($"Fan票 名称:[{token.Symbol} ({token.Name})]({_matatakiService.GetTokenPageUrl(user.IssuedTokens[0].Id)})");
            }
            else
            {
                builder.AppendLine("没有发行 Fan 票");
            }

            return(Markdown(builder.ToString()));
        }