ConnectInputs + stubs for GetCoinAge, GetMinFee and GetProofOfStakeReward.
[NovacoinLibrary.git] / Novacoin / NetInfo.cs
1 \feffusing System;
2
3 namespace Novacoin
4 {
5     /// <summary>
6     /// Basic network params.
7     /// </summary>
8     internal class NetInfo
9     {
10         /// <summary>
11         /// Minimal depth for spending coinbase and coinstake transactions.
12         /// </summary>
13         public const int nGeneratedMaturity = 500;
14
15         /// <summary>
16         /// "standard" scrypt target limit for proof of work, results with 0,000244140625 proof-of-work difficulty
17         /// </summary>
18         public static uint256 nProofOfWorkLimit = ~(new uint256(0)) >> 20;
19
20         /// <summary>
21         /// Proof of stake target limit from block #15000 and until 20 June 2013, results with 0,00390625 proof of stake difficulty
22         /// </summary>
23         public static uint256 nProofOfStakeLegacyLimit = ~(new uint256(0)) >> 24;
24
25         /// <summary>
26         /// Proof of stake target limit since 20 June 2013, equal to 0.03125  proof of stake difficulty
27         /// </summary>
28         public static uint256 nProofOfStakeLimit = ~(new uint256(0)) >> 27;
29
30         /// <summary>
31         /// Disabled temporarily, will be used in the future to fix minimal proof of stake difficulty at 0.25
32         /// </summary>
33         public static uint256 nProofOfStakeHardLimit = ~(new uint256(0)) >> 30;
34
35         /// <summary>
36         /// Difficulty-1 target
37         /// </summary>
38         public static uint256 nPoWBase = new uint256("00000000ffff0000000000000000000000000000000000000000000000000000");
39
40         /// <summary>
41         /// Fri, 20 Sep 2013 00:00:00 GMT
42         /// </summary>
43         public const uint nChainChecksSwitchTime = 1379635200;
44
45         /// <summary>
46         /// Wed, 20 Aug 2014 00:00:00 GMT
47         /// </summary>
48         public const uint nStakeValidationSwitchTime = 1408492800;
49
50         /// <summary>
51         /// Hash of block #0
52         /// </summary>
53         public static uint256 nHashGenesisBlock = new uint256("00000a060336cbb72fe969666d337b87198b1add2abaa59cca226820b32933a4");
54
55         public const uint nLockTimeThreshold = 500000000;
56
57         /// <summary>
58         /// Allowed clock drift.
59         /// </summary>
60         private const uint nDrift = 7200;
61
62         /// <summary>
63         /// Maximum possible proof-of-work reward.
64         /// </summary>
65         public const ulong nMaxMintProofOfWork = CTransaction.nCoin * 100;
66
67         public static uint GetAdjustedTime()
68         {
69             return Interop.GetTime();
70         }
71
72         public static uint FutureDrift(uint nTime)
73         {
74             return nTime + nDrift; // up to 2 hours from the future
75         }
76
77         public static uint PastDrift(uint nTime)
78         {
79             return nTime - nDrift; // up to 2 hours from the past
80         }
81     }
82 }