columnPoSReward
[novacoin.git] / src / kernelrecord.cpp
index 8c1d778..2c6f2d9 100644 (file)
@@ -4,6 +4,8 @@
 #include "base58.h"
 #include "main.h"
 
+#include <math.h>
+
 using namespace std;
 
 bool KernelRecord::showTransaction(const CWalletTx &wtx)
@@ -75,6 +77,19 @@ int64 KernelRecord::getAge() const
     return (GetAdjustedTime() - nTime) / 86400;
 }
 
+double KernelRecord::getPoSReward(double difficulty, int minutes)
+{
+    double PoSReward;
+    int nWeight = GetAdjustedTime() - nTime + minutes * 60;
+    if( nWeight <  nStakeMinAge)
+        return 0;
+    uint64 coinAge = (nValue * nWeight ) / (COIN * 86400);
+    double nRewardCoinYear = floor(pow((0.03125 / difficulty), 1.0/3) *100)/100;
+    PoSReward = (coinAge * nRewardCoinYear )/365;
+    PoSReward = min(PoSReward,10.0);
+    return PoSReward;
+}
+
 double KernelRecord::getProbToMintStake(double difficulty, int timeOffset) const
 {
     //double maxTarget = pow(static_cast<double>(2), 224);