@@ -84,14 +84,14 @@ CMNHFManager::Signals CMNHFManager::GetSignalsStage(const CBlockIndex* const pin
84
84
return signals;
85
85
}
86
86
87
- bool MNHFTx::Verify (const uint256& quorumHash, const uint256& requestId, const uint256& msgHash, TxValidationState& state) const
87
+ bool MNHFTx::Verify (const llmq::CQuorumManager& qman, const uint256& quorumHash, const uint256& requestId, const uint256& msgHash, TxValidationState& state) const
88
88
{
89
89
if (versionBit >= VERSIONBITS_NUM_BITS) {
90
90
return state.Invalid (TxValidationResult::TX_CONSENSUS, " bad-mnhf-nbit-out-of-bounds" );
91
91
}
92
92
93
93
const Consensus::LLMQType& llmqType = Params ().GetConsensus ().llmqTypeMnhf ;
94
- const auto quorum = llmq::quorumManager-> GetQuorum (llmqType, quorumHash);
94
+ const auto quorum = qman. GetQuorum (llmqType, quorumHash);
95
95
96
96
const uint256 signHash = llmq::BuildSignHash (llmqType, quorum->qc ->quorumHash , requestId, msgHash);
97
97
if (!sig.VerifyInsecure (quorum->qc ->quorumPublicKey , signHash)) {
@@ -101,7 +101,7 @@ bool MNHFTx::Verify(const uint256& quorumHash, const uint256& requestId, const u
101
101
return true ;
102
102
}
103
103
104
- bool CheckMNHFTx (const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state)
104
+ bool CheckMNHFTx (const llmq::CQuorumManager& qman, const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state)
105
105
{
106
106
if (!tx.IsSpecialTxVersion () || tx.nType != TRANSACTION_MNHF_SIGNAL) {
107
107
return state.Invalid (TxValidationResult::TX_CONSENSUS, " bad-mnhf-type" );
@@ -134,7 +134,7 @@ bool CheckMNHFTx(const CTransaction& tx, const CBlockIndex* pindexPrev, TxValida
134
134
uint256 msgHash = tx_copy.GetHash ();
135
135
136
136
137
- if (!mnhfTx.signal .Verify (mnhfTx.signal .quorumHash , mnhfTx.GetRequestId (), msgHash, state)) {
137
+ if (!mnhfTx.signal .Verify (qman, mnhfTx.signal .quorumHash , mnhfTx.GetRequestId (), msgHash, state)) {
138
138
// set up inside Verify
139
139
return false ;
140
140
}
@@ -160,7 +160,7 @@ std::optional<uint8_t> extractEHFSignal(const CTransaction& tx)
160
160
return opt_mnhfTx->signal .versionBit ;
161
161
}
162
162
163
- static bool extractSignals (const CBlock& block, const CBlockIndex* const pindex, std::vector<uint8_t >& new_signals, BlockValidationState& state)
163
+ static bool extractSignals (const llmq::CQuorumManager& qman, const CBlock& block, const CBlockIndex* const pindex, std::vector<uint8_t >& new_signals, BlockValidationState& state)
164
164
{
165
165
// we skip the coinbase
166
166
for (size_t i = 1 ; i < block.vtx .size (); ++i) {
@@ -172,7 +172,7 @@ static bool extractSignals(const CBlock& block, const CBlockIndex* const pindex,
172
172
}
173
173
174
174
TxValidationState tx_state;
175
- if (!CheckMNHFTx (tx, pindex, tx_state)) {
175
+ if (!CheckMNHFTx (qman, tx, pindex, tx_state)) {
176
176
return state.Invalid (BlockValidationResult::BLOCK_CONSENSUS, tx_state.GetRejectReason (), tx_state.GetDebugMessage ());
177
177
}
178
178
@@ -194,7 +194,7 @@ std::optional<CMNHFManager::Signals> CMNHFManager::ProcessBlock(const CBlock& bl
194
194
{
195
195
try {
196
196
std::vector<uint8_t > new_signals;
197
- if (!extractSignals (block, pindex, new_signals, state)) {
197
+ if (!extractSignals (* Assert (llmq::quorumManager), block, pindex, new_signals, state)) {
198
198
// state is set inside extractSignals
199
199
return std::nullopt ;
200
200
}
@@ -246,7 +246,7 @@ bool CMNHFManager::UndoBlock(const CBlock& block, const CBlockIndex* const pinde
246
246
{
247
247
std::vector<uint8_t > excluded_signals;
248
248
BlockValidationState state;
249
- if (!extractSignals (block, pindex, excluded_signals, state)) {
249
+ if (!extractSignals (* Assert (llmq::quorumManager), block, pindex, excluded_signals, state)) {
250
250
LogPrintf (" CMNHFManager::%s: failed to extract signals\n " , __func__);
251
251
return false ;
252
252
}
0 commit comments