0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-06 14:19:59 -05:00
bitcoin-core/src
Wladimir J. van der Laan 8ec881d3b6
Merge #20861: BIP 350: Implement Bech32m and use it for v1+ segwit addresses
03346022d6 naming nits (Fabian Jahr)
2e7c80fb5b Add signet support to gen_key_io_test_vectors.py (Pieter Wuille)
fe5e495c31 Use Bech32m encoding for v1+ segwit addresses (Pieter Wuille)
25b1c6e13d Add Bech32m test vectors (Pieter Wuille)
da2bb6976d Implement Bech32m encoding/decoding (Pieter Wuille)

Pull request description:

  This implements [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki):
  * For segwit v1+ addresses, a new checksum algorithm called Bech32m is used.
  * Segwit v0 address keep using Bech32 as specified in [BIP 173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki).

ACKs for top commit:
  Sjors:
    utACK 0334602
  jnewbery:
    utACK 03346022d6
  achow101:
    ACK 0334602
  fjahr:
    re-ACK 0334602
  benthecarman:
    ACK 03346022d6

Tree-SHA512: 4424cfd44869d813d6152fb3ed867b204036736bc2344a039b93700b6f36a43e9110478f138eb81c97c77ab27ecb776dada5ba632cb5a3a9d244924d2540a557
2021-03-18 20:37:21 +01:00
..
bench Merge #20861: BIP 350: Implement Bech32m and use it for v1+ segwit addresses 2021-03-18 20:37:21 +01:00
compat compat: remove memcpy -> memmove backwards compatibility alias 2021-03-10 14:31:10 +08:00
config
consensus
crc32c
crypto
index scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
interfaces refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
leveldb
logging
node Merge #21162: Net Processing: Move RelayTransaction() into PeerManager 2021-03-18 14:57:50 +08:00
policy
primitives
qt Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
rpc Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
script refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
secp256k1
support Merge #20464: refactor: Treat CDataStream bytes as uint8_t 2021-02-01 15:17:28 +01:00
test Merge #20861: BIP 350: Implement Bech32m and use it for v1+ segwit addresses 2021-03-18 20:37:21 +01:00
univalue
util Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
wallet Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
zmq scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
.clang-format [tools] Allow argument/parameter bin packing in clang-format 2021-02-18 10:07:37 +00:00
addrdb.cpp log: Clarify log message when file does not exist 2021-02-18 15:08:35 +01:00
addrdb.h
addrman.cpp
addrman.h
amount.h
arith_uint256.cpp
arith_uint256.h
attributes.h
banman.cpp log: Clarify log message when file does not exist 2021-02-18 15:08:35 +01:00
banman.h
base58.cpp refactor: replace sizeof(a)/sizeof(a[0]) by std::size (C++17) 2021-01-31 17:35:16 +01:00
base58.h
bech32.cpp naming nits 2021-03-17 17:59:22 -07:00
bech32.h naming nits 2021-03-17 17:59:22 -07:00
bitcoin-cli-res.rc
bitcoin-cli.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
bitcoin-tx-res.rc
bitcoin-tx.cpp
bitcoin-util-res.rc
bitcoin-util.cpp
bitcoin-wallet-res.rc
bitcoin-wallet.cpp
bitcoind-res.rc
bitcoind.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
blockencodings.cpp
blockencodings.h
blockfilter.cpp
blockfilter.h
bloom.cpp
bloom.h
chain.cpp
chain.h simplify ChainstateManager::SnapshotBlockhash() return semantics 2021-02-12 07:53:29 -06:00
chainparams.cpp Merge #15946: Allow maintaining the blockfilterindex when using prune 2021-02-18 09:40:42 +01:00
chainparams.h chainparams: add allowed assumeutxo values 2021-02-12 07:53:22 -06:00
chainparamsbase.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
chainparamsbase.h
chainparamsseeds.h
checkqueue.h
clientversion.cpp
clientversion.h refactor: Move STRINGIZE macro to macros.h 2021-02-01 22:30:05 +02:00
coins.cpp simplify ChainstateManager::SnapshotBlockhash() return semantics 2021-02-12 07:53:29 -06:00
coins.h simplify ChainstateManager::SnapshotBlockhash() return semantics 2021-02-12 07:53:29 -06:00
compat.h net: extend Sock with methods for robust send & read until terminator 2021-03-01 17:36:16 +01:00
compressor.cpp
compressor.h
core_io.h util: Avoid invalid integer negation in ValueFromAmount: make ValueFromAmount(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() 2021-03-02 16:05:28 +00:00
core_memusage.h
core_read.cpp
core_write.cpp util: Avoid invalid integer negation in ValueFromAmount: make ValueFromAmount(const CAmount& n) well-defined also when n is std::numeric_limits<CAmount>::min() 2021-03-02 16:05:28 +00:00
cuckoocache.h
dbwrapper.cpp
dbwrapper.h Merge #20464: refactor: Treat CDataStream bytes as uint8_t 2021-02-01 15:17:28 +01:00
dummywallet.cpp wallet: add -signer argument for external signer command 2021-02-23 14:34:30 +01:00
flatfile.cpp log: Move "Pre-allocating up to position 0x[...] in [...].dat" log message to debug category 2021-02-10 20:46:25 +00:00
flatfile.h
fs.cpp
fs.h
hash.cpp
hash.h
httprpc.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
httprpc.h
httpserver.cpp
httpserver.h
i2p.cpp i2p: limit the size of incoming messages 2021-03-16 11:00:57 +01:00
i2p.h i2p: limit the size of incoming messages 2021-03-16 11:00:57 +01:00
indirectmap.h
init.cpp Merge #21447: Always add -daemonwait to known command line arguments 2021-03-16 15:10:47 +01:00
init.h bitcoind: Add -daemonwait option to wait for initialization 2021-03-04 18:24:00 +01:00
key.cpp
key.h
key_io.cpp Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
key_io.h
logging.cpp net: implement the necessary parts of the I2P SAM protocol 2021-03-01 18:19:37 +01:00
logging.h net: implement the necessary parts of the I2P SAM protocol 2021-03-01 18:19:37 +01:00
Makefile.am Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
Makefile.bench.include
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.qt.include gui: Add Roboto Mono font 2021-02-21 21:01:02 +02:00
Makefile.qt_locale.include
Makefile.qttest.include
Makefile.test.include Merge #19259: fuzz: Add fuzzing harness for LoadMempool(...) and DumpMempool(...) 2021-03-15 18:56:06 +01:00
Makefile.test_fuzz.include build: compile libnatpmp with -DNATPMP_STATICLIB on Windows 2021-03-04 12:34:46 +08:00
Makefile.test_util.include build: compile libnatpmp with -DNATPMP_STATICLIB on Windows 2021-03-04 12:34:46 +08:00
mapport.cpp
mapport.h
memusage.h
merkleblock.cpp
merkleblock.h
miner.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
miner.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
net.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
net.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
net_permissions.cpp
net_permissions.h
net_processing.cpp Merge #21425: refactor: Pass PeerManagerImpl members only once 2021-03-18 08:58:46 +01:00
net_processing.h Merge #21162: Net Processing: Move RelayTransaction() into PeerManager 2021-03-18 14:57:50 +08:00
net_types.h
netaddress.cpp net: add I2P to the reachability map 2021-03-01 18:19:46 +01:00
netaddress.h net: extend CNetAddr::SetSpecial() to support I2P 2021-03-01 13:22:11 +01:00
netbase.cpp net: move Doxygen docs from netbase.cpp to netbase.h 2021-03-15 16:53:25 +01:00
netbase.h net: fix hSocket param in netbase.h::ConnectSocketDirectly() 2021-03-15 16:57:48 +01:00
netmessagemaker.h
noui.cpp
noui.h
outputtype.cpp
outputtype.h
pow.cpp
pow.h
prevector.h
protocol.cpp refactor: init vectors via std::{begin,end} to avoid pointer arithmetic 2021-01-31 17:35:01 +01:00
protocol.h
psbt.cpp Merge #20464: refactor: Treat CDataStream bytes as uint8_t 2021-02-01 15:17:28 +01:00
psbt.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
pubkey.cpp
pubkey.h
random.cpp refactor: replace sizeof(a)/sizeof(a[0]) by std::size (C++17) 2021-01-31 17:35:16 +01:00
random.h
randomenv.cpp
randomenv.h
rest.cpp Merge #20429: refactor: replace (sizeof(a)/sizeof(a[0])) with C++17 std::size 2021-02-18 07:53:37 +01:00
reverse_iterator.h
scheduler.cpp
scheduler.h
serialize.h
shutdown.cpp shutdown: Use RAII TokenPipe in shutdown 2021-03-04 18:24:00 +01:00
shutdown.h
signet.cpp scripted-diff: remove Optional & nullopt 2021-03-15 10:41:30 +08:00
signet.h scripted-diff: remove Optional & nullopt 2021-03-15 10:41:30 +08:00
span.h
streams.h Merge #20464: refactor: Treat CDataStream bytes as uint8_t 2021-02-01 15:17:28 +01:00
sync.cpp
sync.h
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp
timedata.h
tinyformat.h
torcontrol.cpp torcontrol: Move TorControlReply, TorControlConnection and TorController to improve testability 2021-03-02 12:21:32 +00:00
torcontrol.h tests: Add fuzzing harness for TorController 2021-03-02 12:21:32 +00:00
txdb.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
txdb.h
txmempool.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
txmempool.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
txorphanage.cpp scripted-diff: Update txorphanage naming convention 2021-02-27 01:08:09 +10:00
txorphanage.h txorphanage: comment improvements 2021-03-02 19:40:11 +10:00
txrequest.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
txrequest.h
uint256.cpp
uint256.h
undo.h
validation.cpp Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
validation.h Merge #21415: refactor: remove Optional & nullopt 2021-03-17 12:17:33 +01:00
validationinterface.cpp
validationinterface.h
version.h
versionbits.cpp
versionbits.h validation: Remove global ::VersionBitsTip{State,SinceHeight,Statistics} 2021-03-01 17:56:07 -05:00
versionbitsinfo.cpp
versionbitsinfo.h
walletinitinterface.h
warnings.cpp
warnings.h