Additional CNovacoinAddress verification.
[NovacoinLibrary.git] / Novacoin / CNovacoinAddress.cs
index 6f4e595..d66555e 100644 (file)
@@ -6,6 +6,9 @@ using System.Threading.Tasks;
 
 namespace Novacoin
 {
+    /// <summary>
+    /// Available address types
+    /// </summary>
     public enum AddrType
     {
         PUBKEY_ADDRESS = 8,
@@ -14,31 +17,52 @@ namespace Novacoin
         SCRIPT_ADDRESS_TEST = 196
     };
 
+    /// <summary>
+    /// Represents novacoin address
+    /// </summary>
     public class CNovacoinAddress
     {
         private byte nVersion;
         private List<byte> addrData;
 
+        /// <summary>
+        /// Initialize with custom data and version
+        /// </summary>
+        /// <param name="nVersionIn"></param>
+        /// <param name="addrDataIn"></param>
         public CNovacoinAddress(byte nVersionIn, IEnumerable<byte> addrDataIn)
         {
             nVersion = nVersionIn;
             addrData = addrDataIn.ToList();
         }
 
+        /// <summary>
+        /// Initialize new instance of PUBKEY_ADDRESS
+        /// </summary>
+        /// <param name="keyID">CKeyID instance</param>
         public CNovacoinAddress(CKeyID keyID)
         {
             nVersion = (byte)AddrType.PUBKEY_ADDRESS;
             addrData = new List<byte>(keyID.hashBytes);
         }
 
+        /// <summary>
+        /// Initialize new instance of SCRIPT_ADDRESS
+        /// </summary>
+        /// <param name="keyID">CScriptID instance</param>
         public CNovacoinAddress(CScriptID scriptID)
         {
             nVersion = (byte)AddrType.SCRIPT_ADDRESS;
             addrData = new List<byte>(scriptID.hashBytes);
         }
 
+        /// <summary>
+        /// Basic sanity checking
+        /// </summary>
+        /// <returns></returns>
         public bool IsValid()
         {
+            // Address data is normally generated by RIPEMD-160 hash function
             int nExpectedSize = 20;
 
             switch ((AddrType) nVersion)
@@ -62,6 +86,10 @@ namespace Novacoin
             return addrData.Count == nExpectedSize;
         }
 
+        /// <summary>
+        /// Generate base58 serialized representation of novacoin address
+        /// </summary>
+        /// <returns>Base58(data + checksum)</returns>
         public override string ToString()
         {
             List<byte> r = new List<byte>();