public void TryPasteKeyFromClipboard()
        {
            var data = Clipboard.GetDataObject();

            if (data != null && data.GetDataPresent(DataFormats.UnicodeText, true))
            {
                var keyInHex = data.GetData(DataFormats.UnicodeText, true) as string;
                try
                {
                    var key = Keys.ImportPrivateEd25519KeyFromBytes(Hex.ToBytes(keyInHex));
                    if (SigningData.TryAddKey(key))
                    {
                        // Note workaround PublicKey.Equals Bug
                        PublicKeys        = SigningData.PublicKeys.Select(k => Hex.FromBytes(k.Export(KeyBlobFormat.PkixPublicKey))).ToArray();
                        ValidationMessage = string.Empty;
                    }
                    else
                    {
                        ValidationMessage = "The Key pasted from the Clipbaord is already in the list.";
                    }
                }
                catch (Exception ex)
                {
                    ValidationMessage = "Unable to parse as Ed25519 Private Key: " + ex.Message;
                }
            }
            else
            {
                ValidationMessage = "It does not appear that a Hex Encoded Ed25519 Private Key is in the Clipboard.";
            }
        }
 private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(PrivateKeyInHex))
     {
         try
         {
             var key = Keys.ImportPrivateEd25519KeyFromBytes(Hex.ToBytes(PrivateKeyInHex));
             if (SigningData.Contains(key))
             {
                 PrivateKey        = null;
                 CanContinue       = false;
                 ValidationMessage = "This key is already in the list.";
             }
             else
             {
                 PrivateKey        = key;
                 CanContinue       = true;
                 ValidationMessage = String.Empty;
             }
         }
         catch (Exception ex)
         {
             PrivateKey        = null;
             CanContinue       = false;
             ValidationMessage = "Unable to parse as Ed25519 Private Key: " + ex.Message;
         }
     }
 }
        public void TryRemoveKeyFromList(string keyInHex)
        {
            var key = Keys.ImportPublicEd25519KeyFromBytes(Hex.ToBytes(keyInHex));

            if (SigningData.TryRemoveKey(key))
            {
                // Note workaround PublicKey.Equals Bug
                PublicKeys        = SigningData.PublicKeys.Select(k => Hex.FromBytes(k.Export(KeyBlobFormat.PkixPublicKey))).ToArray();
                ValidationMessage = string.Empty;
            }
        }
 internal void TrySignTransactionAndCopyToClipboard()
 {
     HashgraphClipboard.Set(SigningData.SignTransaction());
     ValidationMessage = SingularLanguage ? "Signature copied to clipboard." : "Signatures copied to clipboard.";
 }