#include "wallet.h"
#include "base58.h"
-#include "main.h"
-#include <math.h>
using namespace std;
return (GetAdjustedTime() - nTime) / 86400;
}
-double KernelRecord::getPoSReward(double difficulty, int minutes)
+uint64 KernelRecord::getCoinDay() const
+{
+ int64 nWeight = GetAdjustedTime() - nTime - nStakeMinAge;
+ if( nWeight < 0)
+ return 0;
+ nWeight = min(nWeight, (int64)nStakeMaxAge);
+ uint64 coinAge = (nValue * nWeight ) / (COIN * 86400);
+ return coinAge;
+}
+
+int64 KernelRecord::getPoSReward(int nBits, int minutes)
{
double PoSReward;
- int nWeight = GetAdjustedTime() - nTime + minutes * 60;
+ int64 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);
+ PoSReward = GetProofOfStakeReward(coinAge, nBits, GetAdjustedTime() + minutes * 60);
return PoSReward;
}