Skip to content

[Qt] Rework of payment request UI (mainly for insecure pr)#3145

Merged
laanwj merged 4 commits intobitcoin:masterfrom
Diapolo:payment-request-GUI
Nov 6, 2013
Merged

[Qt] Rework of payment request UI (mainly for insecure pr)#3145
laanwj merged 4 commits intobitcoin:masterfrom
Diapolo:payment-request-GUI

Conversation

@Diapolo
Copy link
Copy Markdown

@Diapolo Diapolo commented Oct 24, 2013

  • this shows insecure (unsecured) payment requests in a new yellowish
    colored UI (based on the secure payment request UI) instead of our
    normal payment UI
  • allows us to receive paymentACK messages for insecure payment requests
  • allows us to handle expirations for insecure payment request
  • changed walletmodel, so that all types of payment requests don't touch
    the addressbook

This is an attempt to make payment requests much more usable via our GUI and already addresses some of the problems mentioned in #2936. I'm unsure, if #3095 also belongs here?

This is considered a preview and open for feedback and bug reports!

New insecure pr UI:
insecure pr UI
insecure pr sendcoins UI

Todo:

  • re-add delete button for payment entries in sendcoinsdialog

@laanwj
Copy link
Copy Markdown
Member

laanwj commented Oct 24, 2013

Haven't tested yet, but screenshots look good.

@mikehearn
Copy link
Copy Markdown
Contributor

You might want to write "verified" vs "unverified", it's a bit closer to the truth.

@gavinandresen
Copy link
Copy Markdown
Contributor

Yay! Thanks for tackling this!

@Diapolo
Copy link
Copy Markdown
Author

Diapolo commented Oct 25, 2013

@mikehearn Agreed, thanks.

@Diapolo
Copy link
Copy Markdown
Author

Diapolo commented Oct 27, 2013

Updated:

  • re-worked some UI tooltips to better understand (secure -> verified and insecure -> unverified)
  • changed code to use SendCoinsRecipient.message for storing the memo

Comment thread src/qt/paymentserver.cpp Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you be sure that the new SendCoinsRecipient is always the first one? (index 0)
Nit: It may be better to first build a SendCoinsRecipient and append it to recipients at the end of the function. This also avoids a lot of repeated recipients[0].

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I locally changed all QList usages with processPaymentRequest() to a single SendCoinsEntry, as we don't have multiple SendCoinsEntries with payment requests (as that is one of the things which this pull is changing), so yes I can be sure (as long as there are no subtle bugs left then).

Your nit should be fixed by the next push to this branch :).

@laanwj
Copy link
Copy Markdown
Member

laanwj commented Oct 28, 2013

I've tested a bit, works great.

Next thing we need to deal with is how payment request-generated transactions are shown in the transactions list. We ought to show the name of the merchant and the memo instead of bare addresses/labels.

@Diapolo
Copy link
Copy Markdown
Author

Diapolo commented Oct 28, 2013

Thanks for testing, I'm with you, we should rework how pr are shown in the tx list. But that should be part of another pull request then.

My roadmap with this is to re-add the delete button for pr's and then re-check the issue for what is left to be done here, before this needs testing by some other devs.

@laanwj
Copy link
Copy Markdown
Member

laanwj commented Oct 28, 2013

Eh yes, I certainly am not proposing that you add that to this pull req, it was just a general remark :)
(BTW as unverified payments requests don't really have a recipient name/label, just the memo, this makes it challenging to show them in the transaction list in the same way as other transactions)

And indeed a delete button would be useful, currently the only way to get rid of payment requests in the send list is the Clear button.

@Diapolo
Copy link
Copy Markdown
Author

Diapolo commented Oct 28, 2013

@laanwj A further thing to consider is our baloon pop-up when a transaction is detected. I mainly use 3 addresses I sent coins to when testing a payment request. This is really ugly with the pop-up, as we only show 1 a time, but the 3 are practically created right in a row... any idea here?

@laanwj
Copy link
Copy Markdown
Member

laanwj commented Oct 28, 2013

It should really show only one popup per transaction, not per output.

For the transaction list some kind of grouping makes sense too. Right now we always generate one record per output. Grouping on transaction level would be too coarse, but it should ideally show paid payment requests (which can involve multiple consecutive outputs) as one row and not multiple.

Philip Kaufmann added 4 commits October 31, 2013 17:51
- this shows insecure (unsecured) payment requests in a new yellowish
  colored UI (based on the secure payment request UI) instead of our
  normal payment UI
- allows us to receive paymentACK messages for insecure payment requests
- allows us to handle expirations for insecure payment request
- changed walletmodel, so that all types of payment requests don't touch
  the addressbook
- as one this pulls main purpose is to change a payment request to
  be displayed as a single sendcoins entry
- use a QStringList to store valid addresses and format them for GUI and
  debug.log usage via .join()
@BitcoinPullTester
Copy link
Copy Markdown

Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/395d0d5af017bbf6d432471075608efaf4104a03 for binaries and test log.
This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/
Contact BlueMatt on freenode if something looks broken.

@laanwj
Copy link
Copy Markdown
Member

laanwj commented Nov 4, 2013

@Diapolo do you intend to make further changes here or is this ready for merging?

@Diapolo
Copy link
Copy Markdown
Author

Diapolo commented Nov 4, 2013

@laanwj I currently have no working local build environment (tried to upgrade to a newer MinGW version, which caused troubles ^^). I intended to add back the delete button for payment requests, but this can be done in another pull. If there are no show-stoppers or bugs in here this can be merged.

@gavinandresen Can you perhaps check this out and give an ACK?

laanwj added a commit that referenced this pull request Nov 6, 2013
395d0d5 rework an ugly hack in processPaymentRequest() (Philip Kaufmann)
952d2cd make processPaymentRequest() use a single SendCoinsRecipient (Philip Kaufmann)
983cef4 payment-request UI: use SendCoinsRecipient.message for memo (Philip Kaufmann)
c6c97e0 [Qt] Rework of payment request UI (mainly for insecure pr) (Philip Kaufmann)
@laanwj laanwj merged commit 395d0d5 into bitcoin:master Nov 6, 2013
@Diapolo Diapolo deleted the payment-request-GUI branch November 8, 2013 06:49
Bushstar pushed a commit to Bushstar/omnicore that referenced this pull request Apr 8, 2020
* More/better logging for InstantSend

* Implement CRecoveredSigsDb::TruncateRecoveredSig

* Truncate recovered sigs for ISLOCKs instead of completely removing them

This makes AlreadyHave() return true even when the recovered sig is deleted
locally. This avoids re-requesting and re-processing of old recovered sigs.

* Also truncate recovered sigs for freshly received ISLOCKs

* Fix comment
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants