Exemple #1
0
        private async IAsyncEnumerable <MessageResponse> TransferCoreAsync(UserInfo sender, UserInfo receiver, decimal amount, string symbol)
        {
            symbol = symbol.ToUpperInvariant();

            var content = $@"转账方:[{sender.Name}]({_matatakiService.GetUserPageUrl(sender.Id)})
被转账方:[{receiver.Name}]({_matatakiService.GetUserPageUrl(receiver.Id)})
转账数目:{amount} {symbol}";

            yield return(new MessageResponse("转账交易进行中...", content, parseMode: ParseMode.Markdown));

            MessageResponse finalResponse;

            try
            {
                var hash = await _matatakiService.TransferAsync(sender.Id, receiver.Id, amount, symbol);

                finalResponse = new MessageResponse("*转账成功*", content, parseMode: ParseMode.Markdown).WithInlineButtons(
                    InlineButton.WithUrl("交易详情", "https://rinkeby.etherscan.io/tx/" + hash)
                    );
            }
            catch
            {
                finalResponse = new MessageResponse("*转账失败*", content, parseMode: ParseMode.Markdown);
            }

            yield return(finalResponse);
        }
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()));
        }