Switch stakepower to available coin*age instead of spent coin*age
authoralex <alex@alex-VirtualBox.(none)>
Sat, 15 Jun 2013 16:39:34 +0000 (20:39 +0400)
committeralex <alex@alex-VirtualBox.(none)>
Sat, 15 Jun 2013 16:39:34 +0000 (20:39 +0400)
src/wallet.cpp

index 613edc2..9cee9ef 100644 (file)
@@ -1376,11 +1376,16 @@ uint64 CWallet::GetStakeMintPower(const CKeyStore& keystore)
         if (pcoin.first->nTime + nStakeMaxAge > GetTime())
             continue;
 
-        uint64 unCoinAge;
-        pcoin.first->GetCoinAge(txdb, unCoinAge);
-        nCoinAge += unCoinAge;
+        CBigNum bnCentSecond = CBigNum(pcoin.first->GetValueOut()) * (GetTime()-pcoin.first->nTime) / CENT;
+        CBigNum bnCoinDay = bnCentSecond * CENT / COIN / (24 * 60 * 60);
+
+
+        nCoinAge += bnCoinDay.getuint64();
     }
 
+    if (fDebug && GetBoolArg("-printcoinage"))
+        printf("StakePower bnCoinDay=%"PRI64d"\n", nCoinAge);
+
     return nCoinAge;
 }