elements/src/rpc
MeshCollider 2607d960a0
Merge #10973: Refactor: separate wallet from node
d358466de Remove remaining wallet accesses to node globals (Russell Yanofsky)
b1b2b2389 Remove use of CCoinsViewMemPool::GetCoin in wallet code (Russell Yanofsky)
4e4d9e9f8 Remove use of CRPCTable::appendCommand in wallet code (Russell Yanofsky)
91868e628 Remove use CValidationInterface in wallet code (Russell Yanofsky)

Pull request description:

  This PR is the last in a chain of PRs (#14437, #14711, and #15288) that make the wallet code access node state through an abstract [`Chain`](https://github.com/ryanofsky/bitcoin/blob/pr/wipc-sep/src/interfaces/chain.h) class in [`src/interfaces/`](https://github.com/ryanofsky/bitcoin/tree/pr/wipc-sep/src/interfaces) instead of using global variables like `cs_main`, `chainActive`, and `g_connman`. After this PR, wallet code no longer accesses global variables declared outside the wallet directory, and no longer calls functions accessing those globals (as verified by the `hide-globals` script in #10244).

  This PR and the previous PRs have been refactoring changes that do not affect behavior. Previous PRs have consisted of lots of mechanical changes like:

  ```diff
  -    wtx.nTimeReceived = GetAdjustedTime();
  +    wtx.nTimeReceived = m_chain->getAdjustedTime();
  ```

  This PR is smaller, but less mechanical. It replaces last few bits of wallet code that access node state directly (through `CValidationInterface`, `CRPCTable`, and `CCoinsViewMemPool` interfaces) with code that uses the `Chain` interface.

  These changes allow followup PR #10102 (multiprocess gui & wallet PR) to work without any significant updates to wallet code. Additionally they:

  * Provide a single place to describe the interface between wallet and node code.
  * Can make better wallet testing possible, because the `Chain` object consists of virtual methods that can be overloaded for mocking. (This could be used to test edge cases in the rescan code, for example).

Tree-SHA512: e6291d8a3c50bdff18a9c8ad11e729beb30b5b7040d7aaf31ba678800b4a97b2dd2be76340b1e5c01fe2827d67d37ed1bb4c8380cf8ed653aadfea003e9b22e7
2019-03-21 20:58:43 +13:00
..
blockchain.cpp Merge #15402: Granular invalidateblock and RewindBlockIndex 2019-03-07 17:40:58 +01:00
blockchain.h rpc: Pass mempool into MempoolToJSON 2019-02-25 10:12:29 -05:00
client.cpp wallet/rpc: add maxfeerate parameter to testmempoolaccept 2019-03-14 08:48:46 +09:00
client.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
mining.cpp Remove uses of fee globals in wallet code 2019-02-22 15:43:02 -04:00
mining.h Move ParseConfirmTarget from rpc/mining to rpc/util 2019-02-08 15:29:45 -05:00
misc.cpp [rpc] deriveaddresses: add range to CRPCConvertParam 2019-03-01 15:34:43 +01:00
net.cpp rpc: Actually throw help when passed invalid number of params 2019-02-20 13:34:16 -05:00
protocol.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
protocol.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
rawtransaction.cpp Merge #10973: Refactor: separate wallet from node 2019-03-21 20:58:43 +13:00
rawtransaction.h Pass chain and client variables where needed 2018-11-06 11:44:40 -04:00
register.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
server.cpp Remove use of CRPCTable::appendCommand in wallet code 2019-03-05 10:20:00 -04:00
server.h Remove use of CRPCTable::appendCommand in wallet code 2019-03-05 10:20:00 -04:00
util.cpp Merge #15288: Remove wallet -> node global function calls 2019-03-04 13:13:36 -05:00
util.h Merge #15288: Remove wallet -> node global function calls 2019-03-04 13:13:36 -05:00