dash/src
Wladimir J. van der Laan 7ed57d3d7c
Merge #11050: Avoid treating null RPC arguments different from missing arguments
745d2e3 Clean up getbalance RPC parameter handling (Russell Yanofsky)
fd5d71e Update developer notes after params.size() cleanup (Russell Yanofsky)
e067673 Avoid treating null RPC arguments different from missing arguments (Russell Yanofsky)
e666efc Get rid of redundant RPC params.size() checks (Russell Yanofsky)

Pull request description:

  This is a followup to #10783.

  - The first commit doesn't change behavior at all, just simplifies code.
  - The second commit just changes RPC methods to treat null arguments the same as missing arguments instead of throwing type errors.
  - The third commit updates developer notes after the cleanup.
  - The forth commit does some additional code cleanup in `getbalance`.

  Followup changes that should happen in future PRs:

  - [ ] Replace uses of `.isTrue()` with calls to `.get_bool()` so numbers, objects, and strings cause type errors instead of being interpreted as false. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133850525
  - [ ] Add braces around if statements. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133851133
  - [ ] Maybe improve UniValue type error exceptions and eliminate RPCTypeCheck and RPCTypeCheckArgument functions. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133829303

Tree-SHA512: e72f696011d20acc0778e996659e41f9426bffce387b29ff63bf59ad1163d5146761e4445b2b9b9e069a80596a57c7f4402b75a15d5d20f69f775ae558cf67e9
2017-08-22 09:26:38 +02:00
..
bench Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
compat
config
consensus 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
crypto Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
leveldb Update LevelDB with latest Bitcoin-specific patches 2017-08-01 12:40:42 -07:00
obj
obj-test
policy Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
primitives Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
qt Merge #11039: Avoid second mapWallet lookup 2017-08-18 16:25:59 +02:00
rpc Merge #11050: Avoid treating null RPC arguments different from missing arguments 2017-08-22 09:26:38 +02:00
script Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
secp256k1 Fixed multiple typos 2017-06-22 19:18:10 +03:00
support Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
test Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
univalue Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
wallet Merge #11050: Avoid treating null RPC arguments different from missing arguments 2017-08-22 09:26:38 +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
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 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
amount.h
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 Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
base58.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
bitcoin-cli-res.rc
bitcoin-cli.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
bitcoin-tx-res.rc
bitcoin-tx.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02: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
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 Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
chainparams.cpp Update chain transaction statistics 2017-08-03 16:39:58 -07:00
chainparams.h chainparams: make supported service bits option explicit 2017-06-22 15:21:22 -04:00
chainparamsbase.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
chainparamsbase.h
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
checkqueue.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
clientversion.cpp
clientversion.h
coins.cpp Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02:00
coins.h Merge #10558: Address nits from per-utxo change 2017-06-28 11:44:22 -07: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 Merge #11027: [RPC] Only return hex field once in getrawtransaction 2017-08-21 08:58:08 +02:00
cuckoocache.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
dbwrapper.cpp Merge #9964: Add const to methods that do not modify the object for which it is called 2017-08-16 02:09:49 +02: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
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 Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02: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
init.cpp Merge #11026: Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default 2017-08-22 08:56:33 +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 Add length check for CExtKey deserialization 2017-08-17 21:54:23 +02:00
keystore.cpp Remove unused Boost includes 2017-06-09 10:25:26 +02:00
keystore.h Use the override specifier (C++11) where we expect to be overriding the virtual function of a base class 2017-06-28 02:12:06 +02:00
limitedmap.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
Makefile.am Protect SSE4 code behind a compile-time flag 2017-07-20 09:03:53 -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 leveldb: enable runtime-detected crc32 instructions 2017-06-09 19:25:36 -07:00
Makefile.test.include Fix test_bitcoin circular dependency issue 2017-07-17 17:42:21 +02: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 Merge #9964: Add const to methods that do not modify the object for which it is called 2017-08-16 02:09:49 +02:00
miner.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
net_processing.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
net_processing.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
net.cpp Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02:00
net.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
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 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
netbase.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
netmessagemaker.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
noui.cpp
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
prevector.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
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 Document the preference of nullptr over NULL or (void*)0 2017-08-18 09:51:00 +02:00
random.h Merge #10377: Use rdrand as entropy source on supported platforms 2017-06-14 15:22:15 +02:00
rest.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
reverse_iterator.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
reverselock.h
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 Merge #9964: Add const to methods that do not modify the object for which it is called 2017-08-16 02:09:49 +02: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
threadinterrupt.h
threadsafety.h
timedata.cpp scripted-diff: stop using the gArgs wrappers 2017-08-14 17:02:10 +02:00
timedata.h
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 Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
txdb.h Merge #10809: optim: mark a few classes final 2017-08-21 18:25:48 +02:00
txmempool.cpp Merge #10193: scripted-diff: Remove #include <boost/foreach.hpp> 2017-07-04 18:05:18 +02:00
txmempool.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
ui_interface.cpp
ui_interface.h [Qt] allow to execute a callback during splashscreen progress 2017-06-29 17:48:08 +02:00
uint256.cpp
uint256.h Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02: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
utilmoneystr.h doc: Add comment to use ValueFromAmount/AmountFromValue for JSON, not utilmoneystr 2017-08-07 17:10:42 +02:00
utilstrencodings.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
utilstrencodings.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
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
validation.cpp Declare single-argument (non-converting) constructors "explicit" 2017-08-16 16:33:25 +02:00
validation.h Use nullptr instead of zero (0) as the null pointer constant 2017-08-16 10:24:18 +02: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