0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-08 14:34:53 -05:00
bitcoin-core/src
Andrew Chow 58da1619be
Merge bitcoin/bitcoin#25877: refactor: Do not use CScript for tapleaf scripts until the tapleaf version is known
dee89438b8 Abstract out ComputeTapbranchHash (Russell O'Connor)
8e3fc99427 Do not use CScript for tapleaf scripts until the tapleaf version is known (Russell O'Connor)

Pull request description:

  While BIP-341 calls the contents of tapleaf a "script", only in the case that the tapleaf version is `0xc0` is this script known to be a tapscript.  Otherwise the tapleaf "script" is simply an uninterpreted string of bytes.

  This PR corrects the issue where the type `CScript` is used prior to the tapleaf version being known to be a tapscript.  This prevents `CScript` methods from erroneously being called on non-tapscript data.

  A second commit abstracts out the TapBranch hash computation in the same manner that the TapLeaf computation is already abstracted.  These two abstractions ensure that the TapLeaf and TapBranch tagged hashes are always constructed properly.

ACKs for top commit:
  ajtowns:
    ACK dee89438b8
  instagibbs:
    ACK dee89438b8
  achow101:
    ACK dee89438b8
  sipa:
    ACK dee89438b8
  aureleoules:
    reACK dee89438b8 - I verified that there is no behavior change.

Tree-SHA512: 4a1d37f3e9a1890e7f5eadcf65562688cc451389581fe6e2da0feb2368708edacdd95392578d8afff05270d88fc61dce732d83d1063d84d12cf47b5f4633ec7e
2023-01-19 17:51:21 -05:00
..
bench Merge bitcoin/bitcoin#26251: refactor: add kernel/cs_main.h 2023-01-16 13:44:56 +01:00
common scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
compat compat: use STDIN_FILENO over 0 2023-01-04 12:00:25 +00:00
config
consensus Merge bitcoin/bitcoin#26603: doc: CalculateSequenceLocks: prevHeights entries are set to 0, not removed 2023-01-04 18:07:31 +00:00
crc32c
crypto refactor: use braced init for integer constants instead of c style casts 2023-01-03 19:31:29 -06:00
index scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
init scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
interfaces Merge bitcoin/bitcoin#26752: wallet: Remove mempool_sequence from interface methods 2023-01-04 17:53:58 +00:00
ipc scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
kernel Merge bitcoin/bitcoin#26251: refactor: add kernel/cs_main.h 2023-01-16 13:44:56 +01:00
leveldb
logging scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
minisketch Update minisketch subtree to latest upstream 2022-10-23 15:03:04 +01:00
node Merge bitcoin/bitcoin#26251: refactor: add kernel/cs_main.h 2023-01-16 13:44:56 +01:00
policy Merge bitcoin/bitcoin#26289: Use util::Result in for calculating mempool ancestors 2023-01-03 16:30:55 -05:00
primitives scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
qt Merge bitcoin-core/gui#686: clang-tidy: Force checks for headers in src/qt 2023-01-17 09:54:56 +00:00
rpc Merge bitcoin/bitcoin#26706: doc: Properly report optional RPC args 2023-01-18 15:43:00 +00:00
script Merge bitcoin/bitcoin#25877: refactor: Do not use CScript for tapleaf scripts until the tapleaf version is known 2023-01-19 17:51:21 -05:00
secp256k1 Update secp256k1 subtree to upstream libsecp256k1 version 0.2.0 2022-12-12 23:40:36 -05:00
support scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
test Merge bitcoin/bitcoin#25877: refactor: Do not use CScript for tapleaf scripts until the tapleaf version is known 2023-01-19 17:51:21 -05:00
univalue scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
util refactor: use braced init for integer constants instead of c style casts 2023-01-03 19:31:29 -06:00
wallet Merge bitcoin/bitcoin#25659: wallet: simplify ListCoins implementation 2023-01-18 14:26:39 -05:00
zmq refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
.bear-tidy-config
.clang-format
.clang-tidy refactor: Remove duplication of clang-tidy's check names 2023-01-17 15:40:29 +00:00
addrdb.cpp addrdb: Only call Serialize() once 2023-01-17 17:20:03 -05:00
addrdb.h
addrman.cpp addrdb: Only call Serialize() once 2023-01-17 17:20:03 -05:00
addrman.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
addrman_impl.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
arith_uint256.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
arith_uint256.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
attributes.h
banman.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
banman.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
base58.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
base58.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bech32.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bech32.h
bitcoin-chainstate.cpp
bitcoin-cli-res.rc
bitcoin-cli.cpp Merge bitcoin/bitcoin#26328: doc: fix -netinfo relaytxes help 2023-01-11 16:39:11 +00:00
bitcoin-tx-res.rc
bitcoin-tx.cpp Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
bitcoin-util-res.rc
bitcoin-util.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bitcoin-wallet-res.rc
bitcoin-wallet.cpp Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
bitcoind-res.rc
bitcoind.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockencodings.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockencodings.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockfilter.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockfilter.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chain.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chain.h refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
chainparams.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chainparams.h
chainparamsbase.cpp
chainparamsbase.h
chainparamsseeds.h
checkqueue.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
clientversion.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
clientversion.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
compressor.cpp
compressor.h
core_io.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
core_memusage.h
core_read.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
core_write.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
cuckoocache.h refactor: use braced init for integer constants instead of c style casts 2023-01-03 19:31:29 -06:00
dbwrapper.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
dbwrapper.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
deploymentinfo.cpp
deploymentinfo.h
deploymentstatus.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
deploymentstatus.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
dummywallet.cpp
external_signer.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
external_signer.h
flatfile.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
flatfile.h
fs.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
fs.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
hash.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
hash.h hash: add HashedSourceWriter 2023-01-17 17:19:56 -05:00
headerssync.cpp
headerssync.h
httprpc.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
httprpc.h
httpserver.cpp refactor: Make ThreadHTTP return void 2023-01-05 17:54:08 +00:00
httpserver.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
i2p.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
i2p.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
indirectmap.h
init.cpp Merge bitcoin/bitcoin#23395: util: Add -shutdownnotify option 2023-01-19 10:34:54 +01:00
init.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
key.cpp Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
key.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
key_io.cpp
key_io.h
logging.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
logging.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
Makefile.am build: move rpc/request from util lib to common 2023-01-17 11:02:08 +00:00
Makefile.bench.include Merge bitcoin/bitcoin#16981: Improve runtime performance of --reindex 2022-11-15 19:23:39 -05:00
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.minisketch.include
Makefile.qt.include
Makefile.qt_locale.include
Makefile.qttest.include
Makefile.test.include Merge bitcoin/bitcoin#25789: test: clean and extend availablecoins_tests coverage 2023-01-03 12:52:40 -05:00
Makefile.test_fuzz.include [fuzz] Move ConsumeNetAddr to fuzz/util/net.h 2022-11-17 14:52:45 +00:00
Makefile.test_util.include refactor: unify test/util/wallet.h with wallet/test/util.h 2022-11-21 17:30:00 -03:00
Makefile.univalue.include
mapport.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
mapport.h
memusage.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
merkleblock.cpp
merkleblock.h
net.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_permissions.cpp
net_permissions.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_processing.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_processing.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_types.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_types.h
netaddress.cpp doc: net: fix link to onion address encoding scheme [ONIONADDRESS] 2023-01-10 14:23:27 +01:00
netaddress.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netbase.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netbase.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netgroup.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netgroup.h
netmessagemaker.h
noui.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
noui.h
outputtype.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
outputtype.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pow.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pow.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
prevector.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
protocol.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
protocol.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.h Merge bitcoin/bitcoin#25877: refactor: Do not use CScript for tapleaf scripts until the tapleaf version is known 2023-01-19 17:51:21 -05:00
pubkey.cpp Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
pubkey.h Merge bitcoin/bitcoin#26691: Update secp256k1 subtree to libsecp256k1 version 0.2.0 2023-01-13 09:40:57 +00:00
random.cpp doc: remove usages of C++11 2023-01-12 13:42:44 +00:00
random.h doc: remove usages of C++11 2023-01-12 13:42:44 +00:00
randomenv.cpp doc: remove usages of C++11 2023-01-12 13:42:44 +00:00
randomenv.h
rest.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
rest.h
reverse_iterator.h doc: remove usages of C++11 2023-01-12 13:42:44 +00:00
scheduler.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
scheduler.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
serialize.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
shutdown.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
shutdown.h
signet.cpp
signet.h
span.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
streams.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
sync.cpp
sync.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
threadsafety.h
timedata.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
timedata.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
tinyformat.h clang-tidy: Fix modernize-use-nullptr in headers 2022-12-15 20:58:19 +00:00
torcontrol.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
torcontrol.h
txdb.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txdb.h refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
txmempool.cpp refactor: Work around Werror=free-nonheap-object in AssumeCalculateMemPoolAncestors 2023-01-05 19:48:14 +01:00
txmempool.h refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
txorphanage.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txorphanage.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txrequest.cpp
txrequest.h
uint256.cpp
uint256.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
undo.h
validation.cpp Merge bitcoin/bitcoin#26251: refactor: add kernel/cs_main.h 2023-01-16 13:44:56 +01:00
validation.h Merge bitcoin/bitcoin#26251: refactor: add kernel/cs_main.h 2023-01-16 13:44:56 +01:00
validationinterface.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
validationinterface.h refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
version.h
versionbits.cpp refactor: use braced init for integer constants instead of c style casts 2023-01-03 19:31:29 -06:00
versionbits.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
walletinitinterface.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
warnings.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
warnings.h