Add stake modifier checkpoints & do some cleanup
[NovacoinLibrary.git] / Novacoin / Checkpoints.cs
index 73854b7..5b874ea 100644 (file)
@@ -2,7 +2,7 @@ using System;
 
 namespace Novacoin
 {
-    public class Checkpoints
+    public static class HashCheckpoints
     {
         private static Tuple<uint, uint256, uint>[] checkpoints = new Tuple<uint, uint256, uint>[]
             {
@@ -39,4 +39,35 @@ namespace Novacoin
             return true;
         }
     }
+
+    public static class ModifierCheckpoints
+    {
+        /// <summary>
+        /// Stake modifier checkpoints
+        /// </summary>
+        private static Tuple<uint, uint>[] modifierCheckpoints = new Tuple<uint, uint>[]
+            {
+                new Tuple<uint, uint>( 0, 0x0e00670bu ),
+                new Tuple<uint, uint>(200000, 0x01ec1503u )
+            };
+
+        /// <summary>
+        /// Check stake modifier checkpoints.
+        /// </summary>
+        /// <param name="nHeight">Block height.</param>
+        /// <param name="nStakeModifierChecksum">Modifier checksum value.</param>
+        /// <returns>Result</returns>
+        public static bool Verify(uint nHeight, uint nStakeModifierChecksum)
+        {
+            foreach (var checkpoint in modifierCheckpoints)
+            {
+                if (checkpoint.Item1 == nHeight)
+                {
+                    return checkpoint.Item2 == nStakeModifierChecksum;
+                }
+            }
+
+            return true;
+        }
+    }
 }
\ No newline at end of file