Esempio n. 1
0
        public IActionResult CreateRawTransaction(string coin, [FromBody] CreateRawTransactionRequestViewModel rawTransactionViewModel)
        {
            if (rawTransactionViewModel.Inputs == null)
            {
                return(BadRequest("No Inputs provided"));
            }

            if (rawTransactionViewModel.Outputs == null)
            {
                return(BadRequest("No Outputs provided"));
            }


            var rawTransaction         = _mapper.Map <CreateRawTransactionRequest>(rawTransactionViewModel);
            var rawTransactionResponse = getCoinService(coin).CreateRawTransaction(rawTransaction);

            return(Ok(rawTransactionResponse));
        }
Esempio n. 2
0
        public IActionResult SendTransaction(string coin, [FromBody] CreateRawTransactionRequestViewModel rawTransactionViewModel)
        {
            if (rawTransactionViewModel.Inputs == null)
            {
                return(BadRequest("No Inputs provided"));
            }

            if (rawTransactionViewModel.Outputs == null)
            {
                return(BadRequest("No Outputs provided"));
            }

            var coinService            = getCoinService(coin);
            var rawTransaction         = _mapper.Map <CreateRawTransactionRequest>(rawTransactionViewModel);
            var rawTransactionResponse = coinService.CreateRawTransaction(rawTransaction);

            var signedTransaction = coinService.SignRawTransaction(rawTransactionResponse);

            var transactionHex = coinService.SendRawTransaction(signedTransaction.Hex);

            //TODO: Maybe add a concurrent queue for requests
            // https://stackoverflow.com/questions/44668930/lock-web-api-controller-method
            return(Ok(transactionHex));
        }