private async void btnKMSSetItem_Click(object sender, EventArgs e) { if (ValidateKMSSet() == false) { return; } if (contractHandler == null && !string.IsNullOrEmpty(txtKMSContractAddress.Text.Trim())) { Web3 web3 = GetWeb3(); contractHandler = web3.Eth.GetContractHandler(txtKMSContractAddress.Text.Trim()); } if (contractHandler == null) { MessageBox.Show("Problem in getting an instance of the Contract Handler. " + "Please try specifying a valid Contract Address", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } StartProgressBar(); btnKMSSetItem.Enabled = false; var encryptedText = RSAEncryptionHelper.Encrypt(txtValue.Text.Trim(), filteredCert); var account = new Nethereum.Web3.Accounts.Account(privateKey); var setItemRequest = new SetItemFunction { Key = txtKeyName.Text.Trim(), Value = encryptedText, FromAddress = account.Address }; // Set the Gas value var estimate = await contractHandler .EstimateGasAsync(setItemRequest); setItemRequest.Gas = estimate.Value; var setItemFunctionTxnReceipt = await contractHandler .SendRequestAndWaitForReceiptAsync(setItemRequest); if (setItemFunctionTxnReceipt != null && setItemFunctionTxnReceipt.BlockNumber.Value > 0) { string[] keyCollection = new string[3]; ListViewItem listItem; keyCollection[0] = txtKeyName.Text.Trim(); keyCollection[1] = encryptedText; keyCollection[2] = ""; listItem = new ListViewItem(keyCollection); listView1.Items.Add(listItem); } btnKMSSetItem.Enabled = true; StopProgressBar(); }