elements/src/wallet
MarcoFalke 1e57d14d96
Merge #21035: Remove pointer cast in CRPCTable::dumpArgMap
9048c58e10 Remove pointer cast in CRPCTable::dumpArgMap (Russell Yanofsky)
14f3d9b908 refactor: Add RPC server ExecuteCommands function (Russell Yanofsky)
6158a6d397 refactor: Replace JSONRPCRequest fHelp field with mode field (Russell Yanofsky)

Pull request description:

  This change is needed to fix the `rpc_help.py` test failing in #10102: https://cirrus-ci.com/task/5469433013469184?command=ci#L2275

  The [`CRPCTable::dumpArgMap`](16b784d953/src/rpc/server.cpp (L492)) method currently works by casting RPC `unique_id` integer field to a function pointer, and then calling it. The `unique_id` field wasn't supposed to be used this way (it's meant to be used to detect RPC aliases) and as a result, this code segfaults in the `rpc_help.py` test in multiprocess PR #10102 because wallet RPC functions aren't directly accessible from the node process.

  Fix this by adding a new `GET_ARGS` RPC request mode to retrieve argument information similar to the way the `GET_HELP` mode retrieves help information.

  ---

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).

ACKs for top commit:
  MarcoFalke:
    re-ACK 9048c58e10 👑

Tree-SHA512: cd1a01c1daa5bde2c2455b63548371ee4cf39688313969ad2016d9a0fd4344102e3fd43034058f253364518e9632d57cf21abffad0d6a2c0c94b7a6921cbe615
2021-03-15 10:13:58 +01:00
..
test scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
bdb.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
bdb.h wallet: Add BerkeleyDB version sanity check at init time 2021-01-17 18:10:20 +01:00
coincontrol.cpp [rpc] walletcreatefundedpsbt: don't automatically append inputs 2020-03-12 13:07:17 +01:00
coincontrol.h [rpc] walletcreatefundedpsbt: don't automatically append inputs 2020-03-12 13:07:17 +01:00
coinselection.cpp Merge #20040: wallet: Refactor OutputGroups to handle fees and spending eligibility on grouping 2021-02-01 22:43:17 +13:00
coinselection.h Merge #20040: wallet: Refactor OutputGroups to handle fees and spending eligibility on grouping 2021-02-01 22:43:17 +13:00
context.cpp Remove g_rpc_chain global 2020-05-28 02:13:19 -04:00
context.h wallet: Pass unused args to StartWallets 2020-07-09 13:07:37 +02:00
crypter.cpp Fix occurences of c_str() used with size() to data() 2019-10-28 13:41:45 +01:00
crypter.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
db.cpp wallet: List all wallets in non-SQLite or non-BDB builds 2020-12-04 11:03:28 -04:00
db.h scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
dump.cpp wallettool: Add createfromdump command 2020-12-16 12:33:06 -05:00
dump.h wallettool: Add createfromdump command 2020-12-16 12:33:06 -05:00
external_signer.cpp rpc: send: support external signer 2021-02-23 14:34:32 +01:00
external_signer.h rpc: send: support external signer 2021-02-23 14:34:32 +01:00
external_signer_scriptpubkeyman.cpp rpc: signerdisplayaddress 2021-02-23 14:34:31 +01:00
external_signer_scriptpubkeyman.h rpc: send: support external signer 2021-02-23 14:34:32 +01:00
feebumper.cpp Merge #20536: wallet: Error with "Transaction too large" if the funded tx will end up being too large after signing 2021-03-09 10:42:21 +13:00
feebumper.h wallet: Avoid translating RPC errors when creating txs 2020-05-01 07:39:06 -04:00
fees.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
fees.h Remove uses of fee globals in wallet code 2019-02-22 15:43:02 -04:00
init.cpp wallet: fix doc typo in signer option 2021-02-23 11:05:13 -08:00
interfaces.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
ismine.h doc: Add developer documentation to isminetype 2021-01-19 19:04:45 +08:00
load.cpp Replace fs::absolute calls with AbsPathJoin calls 2021-01-15 22:48:15 +01:00
load.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
rpcdump.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
rpcsigner.cpp rpc: signerdisplayaddress 2021-02-23 14:34:31 +01:00
rpcsigner.h rpc: add external signer RPC files 2021-02-23 14:34:30 +01:00
rpcwallet.cpp Merge #21035: Remove pointer cast in CRPCTable::dumpArgMap 2021-03-15 10:13:58 +01:00
rpcwallet.h rpc: refactor rpc wallet functions to take references instead of pointers 2021-03-05 09:20:13 +08:00
salvage.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
salvage.h wallettool: Have RecoverDatabaseFile return errors and warnings 2020-07-26 20:22:45 -04:00
scriptpubkeyman.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
scriptpubkeyman.h wallet: ExternalSigner: add GetDescriptors method 2021-02-23 14:34:31 +01:00
sqlite.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
sqlite.h doc: fix various typos 2021-01-04 12:31:31 +08:00
wallet.cpp Merge #18842: wallet: Mark replaced tx to not be in the mempool anymore 2021-03-09 07:54:18 +01:00
wallet.h Merge #20536: wallet: Error with "Transaction too large" if the funded tx will end up being too large after signing 2021-03-09 10:42:21 +13:00
walletdb.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
walletdb.h Include wallet/bdb.h where it is actually being used 2020-11-18 11:55:43 -05:00
wallettool.cpp refactor: Move all command dependend checks to ExecuteWalletToolFunc 2021-01-21 19:30:34 +01:00
wallettool.h refactor: Move all command dependend checks to ExecuteWalletToolFunc 2021-01-21 19:30:34 +01:00
walletutil.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
walletutil.h wallet: add external_signer flag 2021-02-23 14:34:30 +01:00