elements/src/wallet
Samuel Dobson a24806c25d
Merge #19215: psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs
84d295e513 tests: Check that segwit inputs in psbt have both UTXO types (Andrew Chow)
4600479058 psbt: always put a non_witness_utxo and don't remove it (Andrew Chow)
5279d8bc07 psbt: Allow both non_witness_utxo and witness_utxo (Andrew Chow)
72f6bec1da rpc: show both UTXOs in decodepsbt (Andrew Chow)

Pull request description:

  Due to recent changes to hardware wallets, the full previous transaction will need to be provided for segwit inputs. Since some software may be checking for the existence of a `witness_utxo` to determine whether to produce a segwit signature, we keep that field to ease the transition.

  Because all of the sanity checks implemented by the `IsSane` functions were related to having mixed segwit and non-segwit data in a PSBT, those functions are removed as those checks are no longer proper.

  Some tests are updated/removed to accommodate this and a simple test added to check that both UTXOs are being added to segwit inputs.

  As discussed in the wallet IRC meeting, our own signer will not require `non_witness_utxo` for segwit inputs.

ACKs for top commit:
  Sjors:
    utACK 84d295e513 (didn't retest compared to 836d6fc, but fortunately HWI's CI tracks our master branch, with a bunch of hardware wallet simulators)
  ryanofsky:
    Code review re-ACK 84d295e513. No changes since last review, but now I understand the context better. I think it would good to improve the comments as suggested https://github.com/bitcoin/bitcoin/pull/19215#discussion_r447889473 and maybe refer to
  meshcollider:
    utACK 84d295e513

Tree-SHA512: ccc1fd3c16ac3859f5aca4fa489bd40f68be0b81bbdc4dd51188bbf28827a8642dc8b605a37318e5f16cf40f1c4910052dace2f27eca21bb58435f02a443e940
2020-07-03 09:23:22 +12:00
..
test psbt: always put a non_witness_utxo and don't remove it 2020-06-24 16:32:19 -04:00
bdb.cpp Merge #19308: wallet: BerkeleyBatch Handle cursor internally 2020-07-01 16:00:32 +02:00
bdb.h Merge #19308: wallet: BerkeleyBatch Handle cursor internally 2020-07-01 16:00:32 +02: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 bnb: exit selection when best_waste is 0 2020-03-04 16:35:15 -05:00
coinselection.h amount: Move CAmount CENT to unit test header 2018-09-17 14:34:56 -04:00
context.cpp Remove g_rpc_chain global 2020-05-28 02:13:19 -04:00
context.h Remove g_rpc_chain global 2020-05-28 02:13:19 -04:00
crypter.cpp Fix occurences of c_str() used with size() to data() 2019-10-28 13:41:45 +01:00
crypter.h Convert wallet to new serialization 2020-05-24 10:34:52 -07:00
db.cpp walletdb: Move BDB specific things into bdb.{cpp/h} 2020-06-15 20:41:05 -04:00
db.h walletdb: Move BDB specific things into bdb.{cpp/h} 2020-06-15 20:41:05 -04:00
feebumper.cpp wallet: Remove trailing whitespace from potential translation strings 2020-05-01 07:41:32 -04:00
feebumper.h wallet: Avoid translating RPC errors when creating txs 2020-05-01 07:39:06 -04:00
fees.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
fees.h Remove uses of fee globals in wallet code 2019-02-22 15:43:02 -04:00
init.cpp scripted-diff: Move ui_interface to the node lib 2020-06-27 11:49:28 -04:00
ismine.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
load.cpp wallet: remove -salvagewallet 2020-05-25 12:39:40 -04:00
load.h wallet: remove -salvagewallet 2020-05-25 12:39:40 -04:00
rpcdump.cpp Merge #19114: scripted-diff: TxoutType C++11 scoped enum class 2020-06-28 14:20:00 -04:00
rpcwallet.cpp Merge #19396: refactor: Remove confusing OutputType::CHANGE_AUTO 2020-07-02 16:10:49 +02:00
rpcwallet.h refactor: Combine GetWalletForJSONRPCRequest and EnsureWalletIsAvailable functions 2020-06-05 08:29:18 -04:00
salvage.cpp scripted-diff: Replace WalletDatabase::Create* with CreateWalletDatabase 2020-06-17 14:12:41 -04:00
salvage.h Move RecoverKeysOnlyFilter into RecoverDataBaseFile 2020-05-25 12:59:29 -04:00
scriptpubkeyman.cpp Merge #19215: psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs 2020-07-03 09:23:22 +12:00
scriptpubkeyman.h FillPSBT: report number of inputs signed (or would sign) 2020-06-18 23:32:59 -07:00
wallet.cpp Merge #19215: psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs 2020-07-03 09:23:22 +12:00
wallet.h Merge #19396: refactor: Remove confusing OutputType::CHANGE_AUTO 2020-07-02 16:10:49 +02:00
walletdb.cpp Merge #19308: wallet: BerkeleyBatch Handle cursor internally 2020-07-01 16:00:32 +02:00
walletdb.h Add Create*WalletDatabase functions 2020-06-17 12:31:29 -04:00
wallettool.cpp scripted-diff: Replace WalletDatabase::Create* with CreateWalletDatabase 2020-06-17 14:12:41 -04:00
wallettool.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
walletutil.cpp Correctly check for default wallet 2020-04-23 13:59:48 -04:00
walletutil.h Convert wallet to new serialization 2020-05-24 10:34:52 -07:00