public async Task <IActionResult> Refund(RefundViewModel model)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'.");
            }

            ViewData["Message"] = "";
            var added = refundRepository.AddRefund(new Refund {
                Address = model.Address, Amount = model.Amount, Done = false
            });
            var bc = await blockchain.InvokeContractRequestRefund(NETWORK_TYPE.TESTNET, user.Wif, user.ScriptHash, 10, 2);

            if (bc)
            {
                if (added)
                {
                    ViewData["Message"] = "Transaction and db added";
                    return(View(model));
                }
                ViewData["Message"] = "transaction done, db fail";
                return(View(model));
            }
            ViewData["Message"] = added ? "Refund was requested (only db)" : "Failed to request";
            return(View(model));
        }