Ejemplo n.º 1
0
        //  /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);
            }
        }