The first transaction was failing with bad-txns-inputs-missingorspent
because the "input" selected with fundrawtransaction was the
anyonecanspend initialfreecoins.
Fixed by first spending the initialfreecoins to "real" outputs.
The first transaction from create_taproot_utxo was failing with
bad-txns-inputs-missingorspent because the "input" selected with
fundrawtransaction was the anyonecanspend initialfreecoins.
Fixed by first spending the initialfreecoins to "real" outputs.
The line immediately below the commented out code I removed explicitly
tests the exact behaviour which was being questioned in the comment.
This indicates that the comment was incorrect.
copied secp256k1-zkp source from commit 1d256089004a19bdbead7c5676e52c8e07b09fce of
secp256k1-zkp repo
1d25608900
one failing test case in feature_tapscript_opcodes.py commented out and
marked with Elements FIXME
For all spelling lints, either fix them in place, or add them to the
ignore list.
I don't understand how these have gotten in here without ever
triggering the linter until now. I'm not sure if it's something about
my test environment or what. But fixing them can't hurt.
Messy merge conflicts because this PR backported some ad-hoc stuff from
upstream while keeping a few things that upstream deleted. Hopefully
reviewing is easier than doing this in the first place, since ultimately
all I did was delete code from one side or another of the conflicts.
(Ok, I also changed some boost optional stuff to std::optional, and had
to patch up a test file for test framework changes.)
When reviewing the detailed crypto, bear in mind that taptweaks, like all
hashes are the kind of crypto that cannot be subtly wrong -- it will either
fail very hard or be correct. And we have independent implementations in
C++ and Python that cross-check each other, si it's unlikely to be the former.