diff options
author | Pieter Wuille <pieter@wuille.net> | 2021-05-23 17:38:40 -0700 |
---|---|---|
committer | Pieter Wuille <pieter@wuille.net> | 2021-05-24 12:14:16 -0700 |
commit | a4bf84039c00b196b87f969acf6369d72c56ab46 (patch) | |
tree | 93acdb7aa3dadf25b60e6c165750f3dafbde7006 /src/script/standard.cpp | |
parent | 41839bdb89b3777ece2318877b9c7921ecca2472 (diff) | |
download | bitcoin-a4bf84039c00b196b87f969acf6369d72c56ab46.tar.xz |
Separate WitnessV1Taproot variant in CTxDestination
Diffstat (limited to 'src/script/standard.cpp')
-rw-r--r-- | src/script/standard.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/script/standard.cpp b/src/script/standard.cpp index 540aa0f2d9..0a233b550a 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -242,13 +242,9 @@ bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet) return true; } case TxoutType::WITNESS_V1_TAPROOT: { - /* For now, no WitnessV1Taproot variant in CTxDestination exists, so map - * this to WitnessUnknown. */ - WitnessUnknown unk; - unk.version = 1; - std::copy(vSolutions[0].begin(), vSolutions[0].end(), unk.program); - unk.length = vSolutions[0].size(); - addressRet = unk; + WitnessV1Taproot tap; + std::copy(vSolutions[0].begin(), vSolutions[0].end(), tap.begin()); + addressRet = tap; return true; } case TxoutType::WITNESS_UNKNOWN: { @@ -337,6 +333,11 @@ public: return CScript() << OP_0 << ToByteVector(id); } + CScript operator()(const WitnessV1Taproot& tap) const + { + return CScript() << OP_1 << ToByteVector(tap); + } + CScript operator()(const WitnessUnknown& id) const { return CScript() << CScript::EncodeOP_N(id.version) << std::vector<unsigned char>(id.program, id.program + id.length); |