bitcoin/src
Wladimir J. van der Laan aa624b61c9
Merge #11167: Full BIP173 (Bech32) support
8213838 [Qt] tolerate BIP173/bech32 addresses during input validation (Jonas Schnelli)
06eaca6 [RPC] Wallet: test importing of native witness scripts (NicolasDorier)
fd0041a Use BIP173 addresses in segwit.py test (Pieter Wuille)
e278f12 Support BIP173 in addwitnessaddress (Pieter Wuille)
c091b99 Implement BIP173 addresses and tests (Pieter Wuille)
bd355b8 Add regtest testing to base58_tests (Pieter Wuille)
6565c55 Convert base58_tests from type/payload to scriptPubKey comparison (Pieter Wuille)
8fd2267 Import Bech32 C++ reference code & tests (Pieter Wuille)
1e46ebd Implement {Encode,Decode}Destination without CBitcoinAddress (Pieter Wuille)

Pull request description:

  Builds on top of #11117.

  This adds support for:
  * Creating BIP173 addresses for testing (through `addwitnessaddress`, though by default it still produces P2SH versions)
  * Sending to BIP173 addresses (including non-v0 ones)
  * Analysing BIP173 addresses (through `validateaddress`)

  It includes a reformatted version of the [C++ Bech32 reference code](https://github.com/sipa/bech32/tree/master/ref/c%2B%2B) and an independent implementation of the address encoding/decoding logic (integrated with CTxDestination). All BIP173 test vectors are included.

  Not included (and intended for other PRs):
  * Full wallet support for SegWit (which would include automatically adding witness scripts to the wallet during automatic keypool topup, SegWit change outputs, ...) [see #11403]
  * Splitting base58.cpp and tests/base58_tests.cpp up into base58-specific code, and "address encoding"-code [see #11372]
  * Error locating in UI for BIP173 addresses.

Tree-SHA512: 238031185fd07f3ac873c586043970cc2db91bf7735c3c168cb33a3db39a7bda81d4891b649685bb17ef90dc63af0328e7705d8cd3e8dafd6c4d3c08fb230341
2017-09-29 10:18:45 +02:00
..
bench Changing &vec[0] to vec.data(), what 9804 missed 2017-09-08 10:36:26 +12:00
compat Merge #11144: Move local include to before system includes 2017-08-28 17:57:44 +02:00
config
consensus Trivial: Fix validation comments 2017-09-15 14:07:41 +03:00
crypto Merge #11143: Fix include path for bitcoin-config.h 2017-09-05 23:15:55 +02:00
leveldb Update LevelDB with latest Bitcoin-specific patches 2017-08-01 12:40:42 -07:00
obj
obj-test
policy Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
primitives Merge #8330: Structure Packing Optimizations in C{,Mutable}Transaction 2017-09-06 20:14:52 +02:00
qt Merge #11167: Full BIP173 (Bech32) support 2017-09-29 10:18:45 +02:00
rpc Merge #11167: Full BIP173 (Bech32) support 2017-09-29 10:18:45 +02:00
script Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
secp256k1 Fixed multiple typos 2017-06-22 19:18:10 +03:00
support Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
test Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
univalue Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
wallet Merge #11167: Full BIP173 (Bech32) support 2017-09-29 10:18:45 +02:00
zmq Merge #10809: optim: mark a few classes final 2017-08-21 18:25:48 +02:00
.clang-format Merge #10193: scripted-diff: Remove #include <boost/foreach.hpp> 2017-07-04 18:05:18 +02:00
addrdb.cpp Deduplicate addrdb.cpp and use CHashWriter/Verifier 2017-06-01 16:42:07 -07:00
addrdb.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
addrman.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
addrman.h when clearing addrman clear mapInfo and mapAddr 2017-09-05 17:32:06 -07:00
amount.h Consensus: Policy: MOVEONLY: Move CFeeRate out of the consensus module 2017-05-03 18:00:13 +02:00
arith_uint256.cpp Fix instantiation and array accesses in class base_uint<BITS> 2017-06-07 17:21:29 +00:00
arith_uint256.h Prefer compile-time checking over run-time checking 2017-08-17 00:42:32 +02:00
base58.cpp Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
base58.h Implement {Encode,Decode}Destination without CBitcoinAddress 2017-09-23 14:45:01 -07:00
bech32.cpp Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
bech32.h Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
bitcoin-cli-res.rc
bitcoin-cli.cpp rpc: Handle getinfo locally in bitcoin-cli w/ -getinfo 2017-09-27 21:53:07 -04:00
bitcoin-tx-res.rc
bitcoin-tx.cpp Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds 2017-09-20 23:29:59 -04:00
bitcoind-res.rc
bitcoind.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
blockencodings.cpp Fix typos 2017-07-15 14:28:40 +02:00
blockencodings.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
bloom.cpp scripted-diff: Remove #include <boost/foreach.hpp> 2017-06-22 03:48:52 +02:00
bloom.h param variables made const 2017-02-13 14:39:48 +09:00
chain.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
chain.h Ensure that data types are consistent 2017-09-07 11:17:35 +08:00
chainparams.cpp Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
chainparams.h Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
chainparamsbase.cpp Merge #10825: net: set regtest JSON-RPC port to 18443 to avoid conflict with testnet 18332 2017-09-06 01:18:35 +02:00
chainparamsbase.h Chainparams: Use a regular factory for creating chainparams 2017-05-03 18:15:47 +02:00
chainparamsseeds.h p2p: Hardcoded seeds update pre-0.15 branch 2017-07-30 14:04:51 +02:00
checkpoints.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
checkpoints.h [MOVEONLY] Move progress estimation out of checkpoints 2017-01-04 13:18:49 -08:00
checkqueue.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
clientversion.cpp Increment MIT Licence copyright header year on files modified in 2016 2016-12-31 11:01:21 -07:00
clientversion.h Fix build warning from #error text 2017-04-07 14:37:25 -04:00
coins.cpp Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02:00
coins.h Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
compat.h Move CloseSocket out of SetSocketNonBlocking and pass SOCKET by const reference in SetSocket* functions 2017-07-22 09:11:55 +02:00
compressor.cpp Fix subscript[0] in compressor.cpp 2017-07-08 13:33:01 -07:00
compressor.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
core_io.h Pass serialization flags and whether to include hex to TxToUniv 2017-08-17 10:42:51 -07:00
core_memusage.h Avoid dereference-of-casted-pointer 2017-07-07 10:45:31 -07:00
core_read.cpp Fix signed/unsigned comparison warning introduced in c8e29d7ff0. 2017-07-12 14:03:42 -04:00
core_write.cpp Introduce wrappers around CBitcoinAddress 2017-09-06 13:07:45 -07:00
cuckoocache.h Fix header guards using reserved identifiers 2017-08-26 02:56:53 +03:00
dbwrapper.cpp Merge #10701: Remove the virtual specifier for functions with the override specifier 2017-09-04 18:06:44 -07:00
dbwrapper.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
fs.cpp Remove unused Boost includes 2017-06-09 10:25:26 +02:00
fs.h [Trivial] Add BITCOIN_FS_H endif footer in fs.h 2017-05-19 02:01:28 -07:00
hash.cpp Cleanup (safe, it was checked) subscript[0] in MurmurHash3 (and cleanup MurmurHash3 to be more clear). 2017-07-08 13:33:01 -07:00
hash.h Remove some unused functions and methods 2017-09-21 23:40:33 -07:00
httprpc.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
httprpc.h Remove unnecessary forward class declarations in header files 2017-06-12 20:37:43 +02:00
httpserver.cpp Merge #10809: optim: mark a few classes final 2017-08-21 18:25:48 +02:00
httpserver.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
indirectmap.h prepend license statement to indirectmap 2016-07-27 16:27:07 -07:00
init.cpp Merge #11031: [rpc] deprecate estimatefee 2017-09-27 14:38:13 +02:00
init.h init: Factor out AppInitLockDataDirectory 2017-07-17 14:56:52 +02:00
key.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
key.h Remove some unused functions and methods 2017-09-21 23:40:33 -07:00
keystore.cpp Remove unused Boost includes 2017-06-09 10:25:26 +02:00
keystore.h Merge #10916: add missing lock to crypter GetKeys() 2017-09-07 22:04:18 +02:00
limitedmap.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
Makefile.am Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
Makefile.bench.include leveldb: enable runtime-detected crc32 instructions 2017-06-09 19:25:36 -07:00
Makefile.leveldb.include build: verify that the assembler can handle crc32 functions 2017-07-13 12:49:05 -04:00
Makefile.qt.include leveldb: enable runtime-detected crc32 instructions 2017-06-09 19:25:36 -07:00
Makefile.qttest.include Remove redundant testutil files 2017-09-05 15:02:17 +12:00
Makefile.test.include Import Bech32 C++ reference code & tests 2017-09-28 16:02:16 -07:00
memusage.h scripted-diff: Remove #include <boost/foreach.hpp> 2017-06-22 03:48:52 +02:00
merkleblock.cpp Merge #9980: Fix mem access violation merkleblock 2017-07-17 15:12:39 -07:00
merkleblock.h Add const to methods that do not modify the object for which it is called 2017-07-25 13:46:52 +02:00
miner.cpp Deprecate confusing blockmaxsize, fix getmininginfo output 2017-09-11 15:51:25 -04:00
miner.h Remove nBlockMaxSize from miner opt struct as it is no longer used. 2017-09-18 23:40:38 +00:00
net_processing.cpp net: drop unused connman param 2017-09-06 19:32:04 -04:00
net_processing.h net: drop unused connman param 2017-09-06 19:32:04 -04:00
net.cpp Merge #10663: net: split resolve out of connect 2017-09-28 17:05:47 +02:00
net.h Merge #11301: add m_added_nodes to connman options 2017-09-22 16:05:50 -07:00
netaddress.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
netaddress.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
netbase.cpp Merge #10663: net: split resolve out of connect 2017-09-28 17:05:47 +02:00
netbase.h net: remove now-unused functions 2017-09-18 13:47:47 -04:00
netmessagemaker.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
noui.cpp Increment MIT Licence copyright header year on files modified in 2016 2016-12-31 11:01:21 -07:00
noui.h
pow.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
pow.h Increment MIT Licence copyright header year on files modified in 2016 2016-12-31 11:01:21 -07:00
prevector.h Fix header guards using reserved identifiers 2017-08-26 02:56:53 +03:00
protocol.cpp Merge #9544: [trivial] Add end of namespace comments. Improve consistency. 2017-06-26 13:40:26 +02:00
protocol.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
pubkey.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
pubkey.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
random.cpp Merge #10843: Add attribute [[noreturn]] (C++11) to functions that will not return 2017-08-22 09:38:49 +02:00
random.h Merge #10377: Use rdrand as entropy source on supported platforms 2017-06-14 15:22:15 +02:00
rest.cpp Merge #10845: Remove unreachable code 2017-09-06 21:44:18 +02:00
reverse_iterator.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
reverselock.h Increment MIT Licence copyright header year on files modified in 2016 2016-12-31 11:01:21 -07:00
scheduler.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
scheduler.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
serialize.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
streams.h Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
sync.cpp Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02:00
sync.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
threadinterrupt.cpp net: add CThreadInterrupt and InterruptibleSleep 2017-01-03 17:53:09 -05:00
threadinterrupt.h net: add CThreadInterrupt and InterruptibleSleep 2017-01-03 17:53:09 -05:00
threadsafety.h
timedata.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
timedata.h Merge #8808: Do not shadow variables (gcc set) 2017-03-03 15:48:53 +01:00
tinyformat.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
torcontrol.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
torcontrol.h
txdb.cpp Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable" 2017-09-07 09:21:04 -07:00
txdb.h Refactor: Modernize disallowed copy constructors/assignment 2017-09-16 13:06:05 +03:00
txmempool.cpp Remove redundant explicitly defined copy ctors 2017-08-28 01:29:48 +03:00
txmempool.h Merge #11164: Fix boost headers included as user instead of system headers 2017-09-05 22:27:17 +02:00
ui_interface.cpp [wallet] Add high transaction fee warnings 2016-09-26 01:11:27 +02:00
ui_interface.h Drop upgrade-cancel callback registration for a generic "resumeable" 2017-08-20 20:04:15 -04:00
uint256.cpp Changing &vec[0] to vec.data(), what 9804 missed 2017-09-08 10:36:26 +12:00
uint256.h Remove some unused functions and methods 2017-09-21 23:40:33 -07:00
undo.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
util.cpp Merge #10901: Fix constness of ArgsManager methods 2017-08-16 16:09:27 +02:00
util.h Merge #10901: Fix constness of ArgsManager methods 2017-08-16 16:09:27 +02:00
utilmoneystr.cpp Refactor: Remove using namespace <xxx> from util* 2017-03-08 08:47:02 -08:00
utilmoneystr.h doc: Add comment to use ValueFromAmount/AmountFromValue for JSON, not utilmoneystr 2017-08-07 17:10:42 +02:00
utilstrencodings.cpp Allow setting nMinimumChainWork on command line 2017-09-05 15:05:28 -04:00
utilstrencodings.h Implement BIP173 addresses and tests 2017-09-28 16:24:30 -07:00
utiltime.cpp scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
utiltime.h [logging] log system time and mock time 2017-05-10 15:49:00 -04:00
validation.cpp Merge #10953: [Refactor] Combine scriptPubKey and amount as CTxOut in CScriptCheck 2017-09-22 16:17:44 -07:00
validation.h Merge #10953: [Refactor] Combine scriptPubKey and amount as CTxOut in CScriptCheck 2017-09-22 16:17:44 -07:00
validationinterface.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
validationinterface.h Remove declaration of unused function: void UpdatedTransaction(const uint256 &) 2017-07-15 20:04:04 +02:00
version.h Remove unused constant MEMPOOL_GD_VERSION 2017-06-09 01:45:36 +02:00
versionbits.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
versionbits.h scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL 2017-08-07 07:36:37 +02:00
warnings.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
warnings.h remove some unused functions 2017-07-22 09:55:57 +02:00