diff --git a/src/main.cpp b/src/main.cpp index 658a523e..0067feac 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -4004,16 +4004,6 @@ bool CheckBlock(const CBlock& block, CValidationState& state, bool fCheckPOW, bo } } - // Check masternode payments - if (nHeight > GetSporkValue(SPORK_17_MASTERNODE_PAYMENT_CHECK) && block.IsProofOfStake()) { - const CTransaction& tx = block.vtx[1]; - const unsigned int outs = tx.vout.size(); - if (outs < 3) - return state.DoS(100, error("CheckBlock() : no payment for masternode found")); - if (!masternodePayments.ValidateMasternodeWinner(tx.vout[outs-1], nHeight)) - return state.DoS(100, error("CheckBlock() : wrong masternode address")); - } - // Check transactions bool fZerocoinActive = true; vector vBlockSerials; diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index 33f110a1..df15ff09 100755 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -251,7 +251,8 @@ bool IsBlockPayeeValid(const CBlock& block, int nBlockHeight) return true; LogPrint("masternode","Invalid mn payment detected %s\n", txNew.ToString().c_str()); - if (IsSporkActive(SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT)) + if (IsSporkActive(SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT) || + (nHeight > GetSporkValue(SPORK_17_MASTERNODE_PAYMENT_CHECK)) return false; LogPrint("masternode","Masternode payment enforcement is disabled, accepting block\n"); @@ -777,28 +778,6 @@ bool CMasternodePayments::ProcessBlock(int nBlockHeight) return false; } -bool CMasternodePayments::ValidateMasternodeWinner(const CTxOut& mnPaymentOut, int nBlockHeight) -{ - int nCount = 0; - CScript payee; - if (!masternodePayments.GetBlockPayee(nBlockHeight, payee)) { - //no masternode detected - - CMasternode* pmn = mnodeman.GetNextMasternodeInQueueForPayment(nBlockHeight, true, nCount); - if (pmn != nullptr) { - payee == GetScriptForDestination(pmn->pubKeyCollateralAddress.GetID()); - } - } - - CAmount nReward = GetBlockValue(nBlockHeight); - CAmount masternodePayment = GetMasternodePayment(nBlockHeight, nReward, nCount); - if (mnPaymentOut.scriptPubKey != payee) - LogPrintf("CMasternodePayments::ValidateMasternodeWinner() - script pubkey did not match\n"); - if (mnPaymentOut.nValue < masternodePayment) - LogPrintf("CMasternodePayments::ValidateMasternodeWinner() - masternodePayment did not match\n"); - return mnPaymentOut.nValue >= masternodePayment; // TODO: check mnpaymentOut.scriptPubKey == payee -} - void CMasternodePaymentWinner::Relay() { CInv inv(MSG_MASTERNODE_WINNER, GetHash()); diff --git a/src/masternode-payments.h b/src/masternode-payments.h index 17c8f6b3..4deeccde 100755 --- a/src/masternode-payments.h +++ b/src/masternode-payments.h @@ -257,8 +257,6 @@ class CMasternodePayments bool AddWinningMasternode(CMasternodePaymentWinner& winner); bool ProcessBlock(int nBlockHeight); - bool ValidateMasternodeWinner(const CTxOut& mnPaymentOut, int nBlockHeight); - void Sync(CNode* node, int nCountNeeded); void CleanPaymentList(); int LastPayment(CMasternode& mn);