public async Task <ActionResult> Abort(string senderAddress, string contractAddress)
        {
            var model = new AbortViewModel()
            {
                CallerAddress   = senderAddress,
                ContractAddress = contractAddress,
                //ContractState = MapToContractStateEnum(result)
            };

            return(View(model));
        }
        public async Task <ActionResult> AbortContract(AbortViewModel model)
        {
            var ipcClient     = new Nethereum.JsonRpc.IpcClient.IpcClient(_getAddress);
            var web3          = new Web3(ipcClient);
            var contract      = web3.Eth.GetContract(_abi, model.ContractAddress);
            var abortFunction = contract.GetFunction("abort");
            //var result = await abortFunction.CallAsync<int>();

            // Unlock the caller's account with the given password
            var unlockResult = await web3.Personal.UnlockAccount.SendRequestAsync(model.CallerAddress, model.CallerPassword, _accountUnlockTime);

            var transactionHash = await abortFunction.SendTransactionAsync(model.CallerAddress);

            model.TransactionHash = transactionHash;
            model.Message         = "Abort Transaction Sent.";
            return(View("Abort", model));
        }