From 4493ceffff86059be0a0ee72a1a22d4e9971e1c4 Mon Sep 17 00:00:00 2001 From: fsb4000 Date: Sat, 22 Nov 2014 08:10:16 +0600 Subject: [PATCH] =?utf8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20GetProofOfStakeReward=20...?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ... из main.cpp для расчёта награды во вкладке PoS вместо собственной функции. --- src/kernelrecord.cpp | 9 +++------ src/kernelrecord.h | 2 +- src/qt/locale/bitcoin_ru.ts | 4 ++-- src/qt/mintingtablemodel.cpp | 8 +++----- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/kernelrecord.cpp b/src/kernelrecord.cpp index 1f857c1..f4ec68e 100644 --- a/src/kernelrecord.cpp +++ b/src/kernelrecord.cpp @@ -77,17 +77,14 @@ int64 KernelRecord::getAge() const return (GetAdjustedTime() - nTime) / 86400; } -double KernelRecord::getPoSReward(double difficulty, int minutes) +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; - nRewardCoinYear = min(nRewardCoinYear,1.0); - PoSReward = (coinAge * nRewardCoinYear )/365; - PoSReward = min(PoSReward,10.0); + PoSReward = GetProofOfStakeReward(coinAge, nBits, GetAdjustedTime() + minutes * 60); return PoSReward; } diff --git a/src/kernelrecord.h b/src/kernelrecord.h index 41b30ed..c18c6cf 100644 --- a/src/kernelrecord.h +++ b/src/kernelrecord.h @@ -43,7 +43,7 @@ public: int64 getAge() const; double getProbToMintStake(double difficulty, int timeOffset = 0) const; double getProbToMintWithinNMinutes(double difficulty, int minutes); - double getPoSReward(double difficulty, int timeOffset); + int64 getPoSReward(int nBits, int timeOffset); protected: int prevMinutes; double prevDifficulty; diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index b16e1e6..1186e03 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -153,8 +153,8 @@ QObject - from %1 NVC to %2 NVC - от %1 NVC до %2 NVC + from %1 to %2 + от %1 до %2 %1 d diff --git a/src/qt/mintingtablemodel.cpp b/src/qt/mintingtablemodel.cpp index 139116c..4626f1e 100644 --- a/src/qt/mintingtablemodel.cpp +++ b/src/qt/mintingtablemodel.cpp @@ -367,10 +367,9 @@ QString MintingTableModel::lookupAddress(const std::string &address, bool toolti QString MintingTableModel::formatTxPoSReward(KernelRecord *wtx) const { QString posReward; - const CBlockIndex *p = GetLastBlockIndex(pindexBest, true); - double difficulty = GetDifficulty(p); - posReward += QString(QObject::tr("from %1 NVC to %2 NVC")).arg(QString::number(wtx->getPoSReward(difficulty, 0),'f', 6), - QString::number(wtx->getPoSReward(difficulty, mintingInterval),'f', 6)); + int nBits = GetLastBlockIndex(pindexBest, true)->nBits; + posReward += QString(QObject::tr("from %1 to %2")).arg(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, wtx->getPoSReward(nBits, 0)), + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, wtx->getPoSReward(nBits, mintingInterval))); return posReward; } @@ -464,4 +463,3 @@ QModelIndex MintingTableModel::index(int row, int column, const QModelIndex &par return QModelIndex(); } } - -- 1.7.1