// /send token amount (address or nickname, or ENS) - *Send a crypto* private async Task Send(SocketMessage message) { var args = message.Content.Split(' '); var token = args[1]; var amount = args[2]; var destination = args[3]; var author = await accountService.ReadUser(message.Author.Id); var(_, type) = NickConverter.Convert(destination); if (type == TransactionDestination.Nick) { var dest = await accountService.ReadUser(destination); var trData = new TransactionData { Currency = token.ToUpperInvariant(), From = GetAddress(token, author), To = GetAddress(token, dest), Value = amount }; var guid = await guidService.GenerateString(author.Identifier, author.NickName, trData); var url = GetSendUrl(token, guid); await message.Channel.SendMessageAsync(url); } if (type == TransactionDestination.Wallet) { var trData = new TransactionData { Currency = token.ToUpperInvariant(), From = GetAddress(token, author), To = destination, Value = amount }; var guid = await guidService.GenerateString(author.Identifier, author.NickName, trData); var url = GetSendUrl(token, guid); await message.Channel.SendMessageAsync(url); } if (type == TransactionDestination.ENS) { var dest = await balanceService.GetEnc(destination); var trData = new TransactionData { Currency = "ETH", From = GetAddress(token, author), To = dest, Value = amount }; var guid = await guidService.GenerateString(author.Identifier, author.NickName, trData); var url = GetSendUrl(token, guid); await message.Channel.SendMessageAsync(url); } }