From afb9e7b727ddda9c89652a4581a1f296186ecfb3 Mon Sep 17 00:00:00 2001 From: Andrew Poelstra Date: Tue, 12 Jan 2021 16:46:06 +0000 Subject: [PATCH 1/7] taproot: feed genesis hash and parent pegged asset to sighash function --- src/bench/verify_script.cpp | 1 + src/chainparams.h | 3 ++- src/script/bitcoinconsensus.cpp | 19 +++++++++++++------ src/script/bitcoinconsensus.h | 6 ++++-- src/script/interpreter.cpp | 8 ++++++-- src/script/interpreter.h | 7 ++++++- src/test/script_tests.cpp | 25 ++++++++++++++----------- src/uint256.cpp | 9 +++++++++ src/uint256.h | 2 ++ src/validation.cpp | 2 +- 10 files changed, 58 insertions(+), 24 deletions(-) diff --git a/src/bench/verify_script.cpp b/src/bench/verify_script.cpp index 4a6e4cd36f..b81e7c5f7f 100644 --- a/src/bench/verify_script.cpp +++ b/src/bench/verify_script.cpp @@ -68,6 +68,7 @@ static void VerifyScriptBench(benchmark::Bench& bench) CDataStream streamVal(SER_NETWORK, PROTOCOL_VERSION); streamVal << txCredit.vout[0].nValue; int csuccess = bitcoinconsensus_verify_script_with_amount( + NULL, NULL, txCredit.vout[0].scriptPubKey.data(), txCredit.vout[0].scriptPubKey.size(), (const unsigned char*)&streamVal[0], streamVal.size(), diff --git a/src/chainparams.h b/src/chainparams.h index 0166517b47..26c01beac1 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -97,7 +97,8 @@ class CChainParams const CCheckpointData& Checkpoints() const { return checkpointData; } const ChainTxData& TxData() const { return chainTxData; } // ELEMENTS extra fields: - const uint256 ParentGenesisBlockHash() const { return parentGenesisBlockHash; } + const uint256& ParentGenesisBlockHash() const { return parentGenesisBlockHash; } + const CAsset& ParentPeggedAsset() const { return consensus.parent_pegged_asset; } bool anyonecanspend_aremine; const std::string& ParentBech32HRP() const { return parent_bech32_hrp; } const std::string& ParentBlech32HRP() const { return parent_blech32_hrp; } diff --git a/src/script/bitcoinconsensus.cpp b/src/script/bitcoinconsensus.cpp index a6240afa69..4c10eed2ca 100644 --- a/src/script/bitcoinconsensus.cpp +++ b/src/script/bitcoinconsensus.cpp @@ -8,6 +8,7 @@ #include #include #include