bitcoin/src/wallet
Wladimir J. van der Laan 36fc8052f6
Merge #13309: Directly operate with CMutableTransaction in SignSignature
6b8b63af14 Generic TransactionSignatureCreator works with both CTransaction and CMutableTransaction (Martin Ankerl)

Pull request description:

  Refactored `TransactionSignatureCreator` into a templated `GenericTransactionSignatureCreator` that works with both `CMutableTransaction` and `CTransaction`.

  The advantage is that now in `SignSignature`, the `MutableTransactionSignatureCreator` can now operate directly with the `CMutableTransaction` without the need to copy the data into a `CTransaction`.

  Running all unit tests brings a very noticable speedup on my machine:

      48.4 sec before this change
      36.4 sec with this change
      --------
      12.0 seconds saved

  running only `--run_test=transaction_tests/test_big_witness_transaction`:

      16.7 sec before this change
       5.9 sec with this change
      --------
      10.8 seconds saved

  This relates to my first attempt with the const_cast hack #13202, and to the slow unit test issue #10026.

  Also see #13050 which modifies the tests but not the production code (like this PR) to get a speedup.

Tree-SHA512: 2cff0e9699f484f26120a40e431a24c8bc8f9e780fd89cb0ecf20c5be3eab6c43f9c359cde244abd9f3620d06c7c354e3b9dd3da41fa2ca1ac1e09386fea25fb
2018-05-31 10:40:11 +02:00
..
test wallet: Use shared pointer to retain wallet instance 2018-05-22 16:56:20 +01:00
coincontrol.h Make coincontrol use IsSolvable to determine solvability 2018-05-03 11:01:57 -07:00
coinselection.cpp Add missing newlines to LogPrint debug logging 2018-05-02 15:14:04 +02:00
coinselection.h Fix missing or inconsistent include guards 2018-03-22 16:23:04 +01:00
crypter.cpp Merge #11403: SegWit wallet support 2018-01-10 20:55:41 -10:00
crypter.h tests: Avoid test suite name collision in wallet crypto_tests 2018-04-06 16:29:14 +02:00
db.cpp Merge #13127: wallet: Add Clang thread safety annotations for variables guarded by cs_db 2018-05-14 09:56:47 -04:00
db.h scripted-diff: Rename wallet database classes 2018-04-07 11:48:27 -05:00
feebumper.cpp Merge #13011: Cache witness hash in CTransaction 2018-05-23 19:26:18 +02:00
feebumper.h feebumper: Use PreconditionChecks to determine bump eligibility 2018-01-29 18:31:33 -05:00
fees.cpp wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
fees.h wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
init.cpp Stop translating command line options 2018-05-30 14:23:35 +02:00
rpcdump.cpp Merge #13069: docs: Fix typos 2018-05-30 16:02:09 -04:00
rpcwallet.cpp wallet: Use shared pointer to retain wallet instance 2018-05-22 16:56:20 +01:00
rpcwallet.h wallet: Use shared pointer to retain wallet instance 2018-05-22 16:56:20 +01:00
wallet.cpp Merge #13309: Directly operate with CMutableTransaction in SignSignature 2018-05-31 10:40:11 +02:00
wallet.h Merge #13252: Wallet: Refactor ReserveKeyFromKeyPool for safety 2018-05-30 19:39:17 +02:00
walletdb.cpp wallet: Use shared pointer to retain wallet instance 2018-05-22 16:56:20 +01:00
walletdb.h [refactor] manually change remaining instances of master key to seed. 2018-05-19 11:21:15 -04:00
walletutil.cpp Don't allow relative -walletdir paths 2018-01-18 15:09:27 -05:00
walletutil.h Fix missing or inconsistent include guards 2018-03-22 16:23:04 +01:00