public string GetPubKeyHash(ByteString pubKey)
        {
            Org.BouncyCastle.Crypto.Digests.RipeMD160Digest ripe = new Org.BouncyCastle.Crypto.Digests.RipeMD160Digest();

            using (SHA256 sha256 = SHA256.Create())
            {
                byte[] shaResult = sha256.ComputeHash(pubKey.ToByteArray());
                ripe.BlockUpdate(shaResult, 0, shaResult.Length);
                byte[] hash = new byte[20];
                ripe.DoFinal(hash, 0);
                return(Base58CheckEncoding.Encode(new byte[] { versionByte }.Concat(hash).ToArray()));
            }
        }
 public bool IsP2pkh(string address)
 {
     try
     {
         byte[] pubKeyHash = Base58CheckEncoding.Decode(address);
         if (pubKeyHash.Length != 21 || pubKeyHash[0] != versionByte)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
     catch (FormatException)
     {
         return(false);
     }
 }