From 25b6ae46e7249a1b363ef4fb12375f368903c58e Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Fri, 24 Jun 2022 12:43:06 -0400 Subject: [PATCH] Assert that TaprootBuilder is Finalized during GetSpendData GetSpendData needs to be finalized in order to be used. To avoid future bugs, assert `!m_output_key.IsNull()` as m_output_key is only set during Finalize. --- src/script/standard.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/script/standard.cpp b/src/script/standard.cpp index 063e149d36..5d80891485 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -485,6 +485,7 @@ WitnessV1Taproot TaprootBuilder::GetOutput() { return WitnessV1Taproot{m_output_ TaprootSpendData TaprootBuilder::GetSpendData() const { assert(IsComplete()); + assert(m_output_key.IsFullyValid()); TaprootSpendData spd; spd.merkle_root = m_branch.size() == 0 ? uint256() : m_branch[0]->hash; spd.internal_key = m_internal_key;