Merge #16956: validation: Make GetWitnessCommitmentIndex public
fa607c2292
validation: Make GetWitnessCommitmentIndex public (MarcoFalke) Pull request description: `GenerateCoinbaseCommitment` is public and can be used in unit tests to update the witness commitment after the list of txs in a block has been changed. However, for it to work, the existing commitment (added by default in `CreateNewBlock`) must be removed (and thus its index must be known). Make that possible by exposing the `GetWitnessCommitmentIndex` helper function in the header. ACKs for top commit: jb55: ACKfa607c2292
jamesob: ACKfa607c2292
promag: ACKfa607c2292
. fanquake: ACKfa607c2292
- This unblocks work in #15845. Tree-SHA512: d563aa2c201d5fb4874e506a28f468c37e457cc8a20229c377178af08c22d3be44e19ee6e8e524b6de99236cd5f2c9e39b8009d88c26854aa774737912bd5889
This commit is contained in:
commit
fdfaeb67de
2 changed files with 4 additions and 3 deletions
|
@ -3280,9 +3280,7 @@ bool IsWitnessEnabled(const CBlockIndex* pindexPrev, const Consensus::Params& pa
|
|||
return (height >= params.SegwitHeight);
|
||||
}
|
||||
|
||||
// Compute at which vout of the block's coinbase transaction the witness
|
||||
// commitment occurs, or -1 if not found.
|
||||
static int GetWitnessCommitmentIndex(const CBlock& block)
|
||||
int GetWitnessCommitmentIndex(const CBlock& block)
|
||||
{
|
||||
int commitpos = -1;
|
||||
if (!block.vtx.empty()) {
|
||||
|
|
|
@ -384,6 +384,9 @@ bool IsWitnessEnabled(const CBlockIndex* pindexPrev, const Consensus::Params& pa
|
|||
/** When there are blocks in the active chain with missing data, rewind the chainstate and remove them from the block index */
|
||||
bool RewindBlockIndex(const CChainParams& params) LOCKS_EXCLUDED(cs_main);
|
||||
|
||||
/** Compute at which vout of the block's coinbase transaction the witness commitment occurs, or -1 if not found */
|
||||
int GetWitnessCommitmentIndex(const CBlock& block);
|
||||
|
||||
/** Update uncommitted block structures (currently: only the witness reserved value). This is safe for submitted blocks. */
|
||||
void UpdateUncommittedBlockStructures(CBlock& block, const CBlockIndex* pindexPrev, const Consensus::Params& consensusParams);
|
||||
|
||||
|
|
Loading…
Reference in a new issue