diff --git a/configure.ac b/configure.ac index 8f58438b..a45d5a0e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 4) -define(_CLIENT_VERSION_MINOR, 3) +define(_CLIENT_VERSION_MINOR, 4) define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) diff --git a/src/activemasternode.cpp b/src/activemasternode.cpp index c105d2ed..84b36cd2 100644 --- a/src/activemasternode.cpp +++ b/src/activemasternode.cpp @@ -468,7 +468,7 @@ vector CActiveMasternode::SelectCoinsMasternode() // Filter BOOST_FOREACH (const COutput& out, vCoins) { - if (out.tx->vout[out.i].nValue == 1000 * COIN) { //exactly + if (out.tx->vout[out.i].nValue == GetMstrNodCollateral(chainActive.Height()) * COIN) { //exactly filteredCoins.push_back(out); } } diff --git a/src/clientversion.h b/src/clientversion.h index b235db35..71567121 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -15,7 +15,7 @@ //! These need to be macros, as clientversion.cpp's and dixicoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 4 -#define CLIENT_VERSION_MINOR 3 +#define CLIENT_VERSION_MINOR 4 #define CLIENT_VERSION_REVISION 0 #define CLIENT_VERSION_BUILD 0 diff --git a/src/main.cpp b/src/main.cpp index 06bbd091..43ba1d83 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2148,8 +2148,9 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin REJECT_INVALID, "bad-blk-sigops"); } - nFees += view.GetValueIn(tx) - tx.GetValueOut(); - nValueIn += view.GetValueIn(tx); + if (!tx.IsCoinStake()) + nFees += view.GetValueIn(tx) - tx.GetValueOut(); + nValueIn += view.GetValueIn(tx); std::vector vChecks; if (!CheckInputs(tx, state, view, fScriptChecks, flags, false, nScriptCheckThreads ? &vChecks : NULL)) @@ -2169,8 +2170,9 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin } // ppcoin: track money supply and mint amount info - pindex->nMint = nValueOut - nValueIn + nFees; - pindex->nMoneySupply = (pindex->pprev ? pindex->pprev->nMoneySupply : 0) + nValueOut - nValueIn; + CAmount nMoneySupplyPrev = pindex->pprev ? pindex->pprev->nMoneySupply : 0; + pindex->nMoneySupply = nMoneySupplyPrev + nValueOut - nValueIn; + pindex->nMint = pindex->nMoneySupply - nMoneySupplyPrev + nFees; if (!pblocktree->WriteBlockIndex(CDiskBlockIndex(pindex))) return error("Connect() : WriteBlockIndex for pindex failed"); @@ -2179,12 +2181,18 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin nTimeConnect += nTime1 - nTimeStart; LogPrint("bench", " - Connect %u transactions: %.2fms (%.3fms/tx, %.3fms/txin) [%.2fs]\n", (unsigned)block.vtx.size(), 0.001 * (nTime1 - nTimeStart), 0.001 * (nTime1 - nTimeStart) / block.vtx.size(), nInputs <= 1 ? 0 : 0.001 * (nTime1 - nTimeStart) / (nInputs - 1), nTimeConnect * 0.000001); - if (!IsInitialBlockDownload() && !IsBlockValueValid(block, GetBlockValue(pindex->pprev->nHeight))) { - return state.DoS(100, - error("ConnectBlock() : reward pays too much (actual=%d vs limit=%d)", - block.vtx[0].GetValueOut(), GetBlockValue(pindex->pprev->nHeight)), - REJECT_INVALID, "bad-cb-amount"); - } + CAmount nExpectedMint = GetBlockValue(pindex->pprev->nHeight); + if (block.IsProofOfWork()) + nExpectedMint += nFees; + + if (pindex->pprev->nHeight > 342500) { + if (!IsBlockValueValid(block, nExpectedMint, pindex->nMint)) { + return state.DoS(100, + error("ConnectBlock() : reward pays too much (actual=%s vs limit=%s)", + FormatMoney(pindex->nMint), FormatMoney(nExpectedMint)), + REJECT_INVALID, "bad-cb-amount"); + } + } if (!control.Wait()) return state.DoS(100, false); diff --git a/src/main.h b/src/main.h index c90d2045..ab0bfa53 100644 --- a/src/main.h +++ b/src/main.h @@ -52,6 +52,18 @@ class CValidationState; struct CBlockTemplate; struct CNodeStateStats; +inline int64_t GetMstrNodCollateral(int nHeight) +{ + if(nHeight < 345000) + { + return 1000; + } + else + { + return 5000; + } +} + /** Default for -blockmaxsize and -blockminsize, which control the range of sizes the mining code will create **/ static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 750000; static const unsigned int DEFAULT_BLOCK_MIN_SIZE = 0; diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index 96ad1bb8..47791dec 100644 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -174,7 +174,7 @@ void DumpMasternodePayments() LogPrintf("Budget dump finished %dms\n", GetTimeMillis() - nStart); } -bool IsBlockValueValid(const CBlock& block, int64_t nExpectedValue) +bool IsBlockValueValid(const CBlock& block, CAmount nExpectedValue, CAmount nMinted) { CBlockIndex* pindexPrev = chainActive.Tip(); if (pindexPrev == NULL) return true; @@ -189,7 +189,7 @@ bool IsBlockValueValid(const CBlock& block, int64_t nExpectedValue) } if (nHeight == 0) { - LogPrintf("IsBlockValueValid() : WARNING: Couldn't find previous block"); + LogPrint("masternode","IsBlockValueValid() : WARNING: Couldn't find previous block\n"); } if (!masternodeSync.IsSynced()) { //there is no budget data to use to check anything @@ -197,20 +197,24 @@ bool IsBlockValueValid(const CBlock& block, int64_t nExpectedValue) if (nHeight % GetBudgetPaymentCycleBlocks() < 100) { return true; } else { - if (block.vtx[0].GetValueOut() > nExpectedValue) return false; + if (nMinted > nExpectedValue) { + return false; + } } } else { // we're synced and have data so check the budget schedule //are these blocks even enabled if (!IsSporkActive(SPORK_13_ENABLE_SUPERBLOCKS)) { - return block.vtx[0].GetValueOut() <= nExpectedValue; + return nMinted <= nExpectedValue; } if (budget.IsBudgetPaymentBlock(nHeight)) { //the value of the block is evaluated in CheckBlock return true; } else { - if (block.vtx[0].GetValueOut() > nExpectedValue) return false; + if (nMinted > nExpectedValue) { + return false; + } } } diff --git a/src/masternode-payments.h b/src/masternode-payments.h index b549445d..e9109766 100644 --- a/src/masternode-payments.h +++ b/src/masternode-payments.h @@ -29,7 +29,7 @@ extern CMasternodePayments masternodePayments; void ProcessMessageMasternodePayments(CNode* pfrom, std::string& strCommand, CDataStream& vRecv); bool IsBlockPayeeValid(const CBlock& block, int nBlockHeight); std::string GetRequiredPaymentsString(int nBlockHeight); -bool IsBlockValueValid(const CBlock& block, int64_t nExpectedValue); +bool IsBlockValueValid(const CBlock& block, CAmount nExpectedValue, CAmount nMinted); void FillBlockPayee(CMutableTransaction& txNew, int64_t nFees, bool fProofOfStake); void DumpMasternodePayments(); diff --git a/src/masternode.cpp b/src/masternode.cpp index 740a3596..1afbe6aa 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -212,7 +212,7 @@ void CMasternode::Check(bool forceCheck) if (!unitTest) { CValidationState state; CMutableTransaction tx = CMutableTransaction(); - CTxOut vout = CTxOut(999.99 * COIN, obfuScationPool.collateralPubKey); + CTxOut vout = CTxOut((GetMstrNodCollateral(chainActive.Height())-0.01) * COIN, obfuScationPool.collateralPubKey); tx.vin.push_back(vin); tx.vout.push_back(vout); @@ -573,7 +573,7 @@ bool CMasternodeBroadcast::CheckInputsAndAdd(int& nDoS) CValidationState state; CMutableTransaction tx = CMutableTransaction(); - CTxOut vout = CTxOut(999.99 * COIN, obfuScationPool.collateralPubKey); + CTxOut vout = CTxOut((GetMstrNodCollateral(chainActive.Height())-0.01) * COIN, obfuScationPool.collateralPubKey); tx.vin.push_back(vin); tx.vout.push_back(vout); diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index f80e90fe..9d38ce8b 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -918,7 +918,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData CValidationState state; CMutableTransaction tx = CMutableTransaction(); - CTxOut vout = CTxOut(999.99 * COIN, obfuScationPool.collateralPubKey); + CTxOut vout = CTxOut((GetMstrNodCollateral(chainActive.Height())-0.01) * COIN, obfuScationPool.collateralPubKey); tx.vin.push_back(vin); tx.vout.push_back(vout); diff --git a/src/obfuscation.cpp b/src/obfuscation.cpp index d20f129e..83515cd6 100644 --- a/src/obfuscation.cpp +++ b/src/obfuscation.cpp @@ -2110,7 +2110,7 @@ bool CObfuScationSigner::IsVinAssociatedWithPubkey(CTxIn& vin, CPubKey& pubkey) uint256 hash; if (GetTransaction(vin.prevout.hash, txVin, hash, true)) { BOOST_FOREACH (CTxOut out, txVin.vout) { - if (out.nValue == 1000 * COIN) { + if (out.nValue == GetMstrNodCollateral(chainActive.Height()) * COIN) { if (out.scriptPubKey == payee2) return true; } } diff --git a/src/qt/forms/masternodelist.ui b/src/qt/forms/masternodelist.ui index c9a6c8d5..39488117 100644 --- a/src/qt/forms/masternodelist.ui +++ b/src/qt/forms/masternodelist.ui @@ -394,4 +394,4 @@ - \ No newline at end of file + diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index ed8802db..28e7db9c 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -23,17 +23,17 @@ static const bool DEFAULT_SPLASHSCREEN = true; #define STYLE_INVALID "background:#FF8080" /* Transaction list -- unconfirmed transaction */ -#define COLOR_UNCONFIRMED QColor(128, 128, 128) +#define COLOR_UNCONFIRMED QColor(255, 255, 255) /* Transaction list -- negative amount */ -#define COLOR_NEGATIVE QColor(255, 0, 0) +#define COLOR_NEGATIVE QColor(255, 255, 255) /* Transaction list -- bare address (without label) */ -#define COLOR_BAREADDRESS QColor(140, 140, 140) +#define COLOR_BAREADDRESS QColor(255, 255, 255) /* Transaction list -- TX status decoration - open until date */ -#define COLOR_TX_STATUS_OPENUNTILDATE QColor(64, 64, 255) +#define COLOR_TX_STATUS_OPENUNTILDATE QColor(255, 255, 255) /* Transaction list -- TX status decoration - offline */ -#define COLOR_TX_STATUS_OFFLINE QColor(192, 192, 192) +#define COLOR_TX_STATUS_OFFLINE QColor(255, 255, 255) /* Transaction list -- TX status decoration - default color */ -#define COLOR_BLACK QColor(51, 51, 51) +#define COLOR_BLACK QColor(255, 255, 255) /* Tooltips longer than this (in characters) are converted into rich text, so that they can be word-wrapped. diff --git a/src/qt/res/css/default.css b/src/qt/res/css/default.css index 239706e8..a292da46 100644 --- a/src/qt/res/css/default.css +++ b/src/qt/res/css/default.css @@ -33,11 +33,11 @@ background-color:#f8f6f6; } QMenu { -background-color:#f8f6f6; +background-color:#333; } QMenu::item { -color:#333; +color:#fff; } QMenu::item:selected { @@ -46,14 +46,14 @@ color:#333; } QToolBar { -background-color:#1928ff; +background-color:#333; border:0px solid #000; padding:0; margin:0; } QToolBar > QToolButton { -background-color:#1928ff; +background-color:#333; border:0px solid #333; min-height:2.5em; padding: 0em 1em; @@ -63,7 +63,7 @@ color:#fff; QToolBar > QToolButton:checked { background-color:#fff; -color:#333; +color:#333 !important; font-weight:bold; } @@ -103,7 +103,7 @@ background-color:#dedbe5; QWidget { selection-background-color:#474747; /* Object highlight color */ -selection-color:#fff; +color:#000; outline:0; /* Remove Annoying Focus Rectangle */ } @@ -126,7 +126,8 @@ color:#333; QLabel { /* Base Text Size & Color */ font-size:12px; -color:#333333; +color:#cacaca; +font-weight:bold; } .QRadioButton { /* Radio Button Labels */ @@ -163,7 +164,7 @@ background-color:#f2f2f2; /****************************************************************************************/ QPushButton { /* Global Button Style */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #1928ff, stop: .1 #1928ff, stop: .95 #1928ff, stop: 1 #1928ff); +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #333, stop: .1 #333, stop: .95 #333, stop: 1 #333); border:0; border-radius:3px; color:#ffffff; @@ -176,7 +177,7 @@ padding-bottom:5px; } QPushButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #1928ff, stop: .1 #1928ff, stop: .95 #1928ff, stop: 1 #1928ff); +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #333, stop: .1 #333, stop: .95 #333, stop: 1 #333); } QPushButton:focus { @@ -328,7 +329,7 @@ border:1px solid #333; } QTableView::item { /* Table Item */ -background-color:#fcfcfc; +background-color:#474747; font-size:12px; } @@ -849,7 +850,7 @@ QWidget .QFrame#frame .QLabel#labelBalance { /* Available Balance */ qproperty-alignment: 'AlignVCenter | AlignLeft'; font-size:12px; font-weight:bold; -color:#474747; +color:#fff; margin-left:0px; } @@ -864,7 +865,7 @@ qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; font-size:12px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -886,7 +887,7 @@ qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; font-size:12px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -908,7 +909,7 @@ qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; font-size:12px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -970,7 +971,7 @@ QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_6 { /* Obfuscat qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -982,8 +983,8 @@ QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#obfuscationEnabled { QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_7 { /* Obfuscation Completion Label */ qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; -background-color:transparent; -color:#1928ff; +background-color:#333; +color:#fff; margin-right:5px; padding-right:5px; @@ -994,7 +995,7 @@ border: 1px solid #818181; border-radius: 1px; margin-right:43px; text-align: right; -color:#818181; +color:#fff; } QWidget .QFrame#frameObfuscation #formLayoutWidget .QProgressBar#obfuscationProgress::chunk { @@ -1006,7 +1007,7 @@ QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#labelAnonymizedText { qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -1019,7 +1020,7 @@ QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_8 { /* Obfuscat qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -1032,7 +1033,7 @@ QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_9 { /* Obfuscat qproperty-alignment: 'AlignVCenter | AlignRight'; min-width:160px; background-color:transparent; -color:#1928ff; +color:#fff; margin-right:5px; padding-right:5px; } @@ -1045,7 +1046,7 @@ QWidget .QFrame#frameObfuscation .QLabel#obfuscationStatus { /* Obfuscation Stat qproperty-alignment: 'AlignVCenter | AlignCenter'; qproperty-geometry: rect(70 226 395 34); font-size:11px; -color:#818181; +color:#fff; } /**************************** OBFUSCATION BUTTONS ***************************************/ @@ -1123,13 +1124,14 @@ min-width:410px; margin-right:20px; margin-left:0; margin-top:0; +color:#fff; background-image: url(':/images/dixicoin_logo_horizontal'); background-repeat:none; } QWidget .QFrame#frame_2 .QLabel#label_4 { /* Recent Transactions Label */ min-width:180px; -color:#1928ff; +color:#fff; margin-left:67px; margin-top:83px; margin-right:5px; @@ -1150,6 +1152,7 @@ min-height:16px; QWidget .QFrame#frame_2 QListView { /* Transaction List */ font-weight:normal; +color:#fff; font-size:12px; max-width:369px; margin-top:12px; @@ -1284,7 +1287,7 @@ min-height:27px; QDialog#SendCoinsDialog QLabel#labelBalance { margin-left:0px; padding-left:0px; -color:#333333; +color:#fff; /* font-weight:bold; border-radius:5px; padding-top:20px; @@ -1482,7 +1485,7 @@ background-color:#fff; } QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_2 { /* Label Label */ -background-color:#474747; +background-color:#fff; min-width:102px; color:#ffffff; font-weight:bold; @@ -1500,7 +1503,7 @@ padding-right:5px; } QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_3 { /* Message Label */ -background-color:#474747; +background-color:#fff; min-width:102px; color:#ffffff; font-weight:bold; @@ -1586,12 +1589,12 @@ margin-right:1px; } QLabel#transactionSumLabel { /* Example of setObjectName for widgets without name */ -color:#333333; +color:#fff; font-weight:bold; } QLabel#transactionSum { /* Example of setObjectName for widgets without name */ -color:#333333; +color:#fff; } /**************************** TRANSACTION DETAILS DIALOG ********************************/ @@ -1622,4 +1625,14 @@ color:#333; QCalendarWidget QAbstractItemView:disabled { /* Calendar widget days not in month */ color:#818181; +} + +tabMyMasternodes{ +color:#333 !important; + +} + + +#OverviewPage{ + color:#FFF !important; } \ No newline at end of file diff --git a/src/qt/res/icons/history.png b/src/qt/res/icons/history.png index 98f54c56..84420e6a 100644 Binary files a/src/qt/res/icons/history.png and b/src/qt/res/icons/history.png differ diff --git a/src/qt/res/icons/masternodes.png b/src/qt/res/icons/masternodes.png index db178a1f..7d5c5866 100644 Binary files a/src/qt/res/icons/masternodes.png and b/src/qt/res/icons/masternodes.png differ diff --git a/src/qt/res/icons/overview.png b/src/qt/res/icons/overview.png index 12f9ff1e..0cfe05e4 100644 Binary files a/src/qt/res/icons/overview.png and b/src/qt/res/icons/overview.png differ diff --git a/src/qt/res/icons/receive.png b/src/qt/res/icons/receive.png index f88733b2..62675ba2 100644 Binary files a/src/qt/res/icons/receive.png and b/src/qt/res/icons/receive.png differ diff --git a/src/qt/res/icons/send.png b/src/qt/res/icons/send.png index efa0c2a5..ae22c3bf 100644 Binary files a/src/qt/res/icons/send.png and b/src/qt/res/icons/send.png differ diff --git a/src/qt/res/icons/tx_input.png b/src/qt/res/icons/tx_input.png index 740cfc4a..ffee5dbf 100644 Binary files a/src/qt/res/icons/tx_input.png and b/src/qt/res/icons/tx_input.png differ diff --git a/src/qt/res/icons/tx_mined.png b/src/qt/res/icons/tx_mined.png index 88469379..6cf9feaa 100644 Binary files a/src/qt/res/icons/tx_mined.png and b/src/qt/res/icons/tx_mined.png differ diff --git a/src/qt/res/icons/tx_output.png b/src/qt/res/icons/tx_output.png index 2dddb063..9833ab3a 100644 Binary files a/src/qt/res/icons/tx_output.png and b/src/qt/res/icons/tx_output.png differ diff --git a/src/qt/res/images/dixicoin_logo_horizontal-2.png b/src/qt/res/images/dixicoin_logo_horizontal-2.png new file mode 100644 index 00000000..18e5e4f3 Binary files /dev/null and b/src/qt/res/images/dixicoin_logo_horizontal-2.png differ diff --git a/src/qt/res/images/dixicoin_logo_horizontal.png b/src/qt/res/images/dixicoin_logo_horizontal.png index 556acb50..18e5e4f3 100644 Binary files a/src/qt/res/images/dixicoin_logo_horizontal.png and b/src/qt/res/images/dixicoin_logo_horizontal.png differ diff --git a/src/qt/res/images/splash.png b/src/qt/res/images/splash.png index d154b122..5b34fa5f 100644 Binary files a/src/qt/res/images/splash.png and b/src/qt/res/images/splash.png differ diff --git a/src/qt/res/images/splash_testnet.png b/src/qt/res/images/splash_testnet.png index d154b122..1d4d6293 100644 Binary files a/src/qt/res/images/splash_testnet.png and b/src/qt/res/images/splash_testnet.png differ diff --git a/src/qt/res/images/walletFrame_bg-2.png b/src/qt/res/images/walletFrame_bg-2.png new file mode 100644 index 00000000..93892f2c Binary files /dev/null and b/src/qt/res/images/walletFrame_bg-2.png differ diff --git a/src/qt/res/images/walletFrame_bg.png b/src/qt/res/images/walletFrame_bg.png index b4c65600..93892f2c 100644 Binary files a/src/qt/res/images/walletFrame_bg.png and b/src/qt/res/images/walletFrame_bg.png differ diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 9008703c..6a6aa18f 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -38,7 +38,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle* networkStyle) QString versionText = QString(tr("Version %1")).arg(QString::fromStdString(FormatFullVersion())); QString copyrightTextBtc = QChar(0xA9) + QString(" 2009-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Bitcoin Core developers")); QString copyrightTextDash = QChar(0xA9) + QString(" 2014-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Dash Core developers")); - QString copyrightTextDixiCoin = QChar(0xA9) + QString(" 2015-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The DixiCoin Core developers")); + QString copyrightTextDixiCoin = QChar(0xA9) + QString(" 2018-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The DixiCoin Core developers")); QString titleAddText = networkStyle->getTitleAddText(); QString font = QApplication::font().toString(); @@ -47,7 +47,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle* networkStyle) pixmap = networkStyle->getSplashImage(); QPainter pixPaint(&pixmap); - pixPaint.setPen(QColor(25, 40, 255)); + pixPaint.setPen(QColor(225, 255, 255)); // check font size and drawing with pixPaint.setFont(QFont(font, 28 * fontFactor)); diff --git a/src/version.h b/src/version.h index 8d6b10ff..5df776c1 100644 --- a/src/version.h +++ b/src/version.h @@ -12,7 +12,7 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 70712; +static const int PROTOCOL_VERSION = 70713; //! initial proto version, to be increased after version/verack negotiation static const int INIT_PROTO_VERSION = 209; @@ -22,7 +22,7 @@ static const int GETHEADERS_VERSION = 70077; //! disconnect from peers older than this proto version static const int MIN_PEER_PROTO_VERSION_BEFORE_ENFORCEMENT = 70701; -static const int MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT = 70712; +static const int MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT = 70713; //! nTime field added to CAddress, starting with this version; //! if possible, avoid requesting addresses nodes older than this diff --git a/src/wallet.cpp b/src/wallet.cpp index d52db840..a452e601 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1458,13 +1458,13 @@ void CWallet::AvailableCoins(vector& vCoins, bool fOnlyConfirmed, const if (nCoinType == ONLY_DENOMINATED) { found = IsDenominatedAmount(pcoin->vout[i].nValue); } else if (nCoinType == ONLY_NOT10000IFMN) { - found = !(fMasterNode && pcoin->vout[i].nValue == 1000 * COIN); + found = !(fMasterNode && pcoin->vout[i].nValue == GetMstrNodCollateral(chainActive.Height()) * COIN); } else if (nCoinType == ONLY_NONDENOMINATED_NOT10000IFMN) { if (IsCollateralAmount(pcoin->vout[i].nValue)) continue; // do not use collateral amounts found = !IsDenominatedAmount(pcoin->vout[i].nValue); - if (found && fMasterNode) found = pcoin->vout[i].nValue != 1000 * COIN; // do not use Hot MN funds + if (found && fMasterNode) found = pcoin->vout[i].nValue != GetMstrNodCollateral(chainActive.Height()) * COIN; // do not use Hot MN funds } else if (nCoinType == ONLY_10000) { - found = pcoin->vout[i].nValue == 1000 * COIN; + found = pcoin->vout[i].nValue == GetMstrNodCollateral(chainActive.Height()) * COIN; } else { found = true; } @@ -1896,7 +1896,7 @@ bool CWallet::SelectCoinsDark(CAmount nValueMin, CAmount nValueMax, std::vector< if (out.tx->vout[out.i].nValue < CENT) continue; //do not allow collaterals to be selected if (IsCollateralAmount(out.tx->vout[out.i].nValue)) continue; - if (fMasterNode && out.tx->vout[out.i].nValue == 1000 * COIN) continue; //masternode input + if (fMasterNode && out.tx->vout[out.i].nValue == GetMstrNodCollateral(chainActive.Height()) * COIN) continue; //masternode input if (nValueRet + out.tx->vout[out.i].nValue <= nValueMax) { CTxIn vin = CTxIn(out.tx->GetHash(), out.i); diff --git a/src/wallet.h b/src/wallet.h index 441efe65..ce7e14bb 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -980,7 +980,7 @@ class CWalletTx : public CMerkleTx const CTxIn vin = CTxIn(hashTx, i); if (pwallet->IsSpent(hashTx, i) || pwallet->IsLockedCoin(hashTx, i)) continue; - if (fMasterNode && vout[i].nValue == 1000 * COIN) continue; // do not count MN-like outputs + if (fMasterNode && vout[i].nValue == GetMstrNodCollateral(chainActive.Height()) * COIN) continue; // do not count MN-like outputs const int rounds = pwallet->GetInputObfuscationRounds(vin); if (rounds >= -2 && rounds < nObfuscationRounds) {