bitcoin/src/wallet
Samuel Dobson c27330897d
Merge #18027: "PSBT Operations" dialog
931dd47608 Make lint-spelling.py happy (Glenn Willen)
11a0ffb29d [gui] Load PSBT from clipboard (Glenn Willen)
a6cb0b0c29 [gui] PSBT Operations Dialog (sign & broadcast) (Glenn Willen)
5dd0c03ffa FillPSBT: report number of inputs signed (or would sign) (Glenn Willen)
9e7b23b733 Improve TransactionErrorString messages. (Glenn Willen)

Pull request description:

  Add a "PSBT Operations" dialog, reached from the "Load PSBT..." menu item, giving options to sign or broadcast the loaded PSBT as appropriate, as well as copying the result to the clipboard or saving it to a file.

  This is based on Sjors' #17509, and depends on that PR going in first. (It effectively replaces the small "load PSBT" dialog from that PR with a more feature-rich one.)

  Some notes:
  * The way I display status information is maybe unusual (a status bar, rather than messageboxes.) I think it's helpful to have the information in it be persistent rather than transitory. But if people dislike it, I would probably move the "current state of the transaction" info to the top line of the main label, and the "what action just happened, and did it succeed" info into a messagebox.
  * I don't really know much about the translation/localization stuff. I put tr() in all the places it seemed like it ought to go. I did not attempt to translate the result of TransactionErrorString (which is shared by GUI and non-GUI code); I don't know if that's correct, but it matches the "error messages in logs should be googleable in English" heuristic. I don't know whether there are things I should be doing to reduce translator effort (like minimizing the total number of distinct message strings I use, or something.)
  * I don't really know how (if?) automated testing is applied to GUI code. I can make a list of PSBTs exercising all the codepaths for manual testing, if that's the right approach. Input appreciated.

ACKs for top commit:
  instagibbs:
    tested ACK 931dd47608
  Sjors:
    re-tACK 931dd47608
  jb55:
    ACK 931dd47608
  achow101:
    ACK 931dd47608

Tree-SHA512: ade52471a2242f839a8bd6a1fd231443cc4b43bb9c1de3fb5ace7c5eb59eca99b1f2e9f17dfdb4b08d84d91f5fd65677db1433dd03eef51c7774963ef4e2e74f
2020-06-21 22:57:33 +12:00
..
test Convert CPubKey to WitnessV0KeyHash directly 2020-06-19 12:14:07 -07:00
bdb.cpp walletdb: refactor Read, Write, Erase, and Exists into non-template func 2020-06-17 10:29:27 -04:00
bdb.h Merge #19310: wallet: BerkeleyDatabase make BerkeleyDatabase::Create, CreateMock, and CreateDummy non-static functions 2020-06-18 16:29:21 -04: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 wallet: remove -salvagewallet 2020-05-25 12:39:40 -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 Remove an apparently unnecessary conversion 2020-06-19 12:14:08 -07:00
rpcwallet.cpp Merge #19200: rpc: remove deprecated getaddressinfo fields 2020-06-21 21:07:00 +12: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 #18027: "PSBT Operations" dialog 2020-06-21 22:57:33 +12:00
scriptpubkeyman.h FillPSBT: report number of inputs signed (or would sign) 2020-06-18 23:32:59 -07:00
wallet.cpp Merge #18027: "PSBT Operations" dialog 2020-06-21 22:57:33 +12:00
wallet.h FillPSBT: report number of inputs signed (or would sign) 2020-06-18 23:32:59 -07:00
walletdb.cpp Merge #19054: wallet: Skip hdKeypath of 'm' when determining inactive hd seeds 2020-06-19 16:14:47 -04: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