aboutsummaryrefslogtreecommitdiff
path: root/src/qt/paymentserver.h
AgeCommit message (Collapse)Author
2015-04-15[Qt] constify first parameter of processPaymentRequest()Philip Kaufmann
2015-02-04[Qt] prevent amount overflow problem with payment requestsPhilip Kaufmann
Bitcoin amounts are stored as uint64 in the protobuf messages (see paymentrequest.proto), but CAmount is defined as int64_t. Because of that we need to verify that single and accumulated amounts are in a valid range and no variable overflow has happened. - fixes #5624 (#5622) Thanks @SergioDemianLerner for reporting that issue and also supplying us with a possible solution. - add static verifyAmount() function to PaymentServer and move the logging on error into the function - also add a unit test to paymentservertests.cpp
2015-01-15[Qt] Payment request expiration bug fix (re-done)Philip Kaufmann
- this is based on #4122 (which can be closed) Currently a payment request is only checked for expiration upon receipt. It should be checked again immediately before sending coins to prevent the user from paying to an expired invoice which would then require a customer service interaction. - add static verifyExpired() function to PaymentServer to be able to use the same validation code in GUI and unit-testing code - extend unit tests to use that function and also add an unit test which overflows, because payment requests allow expires as uint64, whereas we use int64_t for verification of expired payment requests
2015-01-14[Qt] add payment request unit test for non matching networksPhilip Kaufmann
- verify that payment request network matches client network - add static verifyNetwork() function to PaymentServer to be able to use the same validation code in GUI and unit-testing code
2014-12-19Added "Core" to copyright headerssandakersmann
Github-Pull: #5494 Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
2014-12-08[Qt] update paymentserver license and cleanup orderingPhilip Kaufmann
2014-12-08[Qt] add BIP70 DoS protection testPhilip Kaufmann
- this test required to make readPaymentRequestFromFile() public in order to be able to is it in paymentservertests.cpp
2014-12-08[Qt] add BIP70 payment request size DoS protection for URIsPhilip Kaufmann
- current code only does this for payment request files, which are used on Mac - also rename readPaymentRequest to readPaymentRequestFromFile, so it's obvious that function only handles payment request files and not URIs - small logging changes in readPaymentRequestFromFile
2014-12-08[Qt] make PaymentServer::ipcParseCommandLine voidPhilip Kaufmann
- the function only returned true, so make it void - add a comment about payment request network detection
2014-11-03Fix all header definesPavel Janík
2014-06-12add NetworkIDString() to chainparamsPhilip Kaufmann
- returns the BIP70 network string - use that new function in the core and GUI code and remove unused code and functions
2014-06-04Use Params().NetworkID() instead of TestNet() from the payment protocoljtimon
2014-02-09Copyright header updates s/2013/2014 on files whose last git commit was done ↵gubatron
in 2014. contrib/devtools/fix-copyright-headers.py script to be able to perform this maintenance task with ease during the rest of the year, every year. Modifications to contrib/devtools/README.md to document what fix-copyright-headers.py does.
2014-01-13Merge pull request #3374Wladimir J. van der Laan
bd70562 [Qt] add messages when handling local payment request files (Philip Kaufmann)
2014-01-05ui: Fix GUI initialization orderWladimir J. van der Laan
Fixes at least #3478. Splits and documents the phases: 1. Parse command-line options. These take precedence over anything else. 2. Basic Qt initialization (not dependent on parameters or configuration) 3. Application identification 4. Initialization of translations 5. Now that settings and translations are available, ask user for data directory 6. Determine availability of data directory and parse bitcoin.conf 7. URI IPC sending 8. Main GUI initialization Splits command line parsing logic from ipcSendCommandLine into ipcParseCommandLine, as isTestNet() can only be overridden in the early stages before choosing a data directory. Sending however needs to happen after choosing a data directory.
2013-12-10[Qt] add messages when handling local payment request filesPhilip Kaufmann
- important for the open URI dialog to give users feedback when a file is invalid etc.
2013-12-06[Qt] misc PaymentServer changes (e.g. changes to eventFilter())Philip Kaufmann
- make eventFilter() private and pass events on to QObject::eventFilter() instead of just returning false - re-work paymentservertest.cpp to correctly handle the event test after the above change (rewrite test_main to allow usage of QCoreApplication:: in the tests) - delete socket when we were unable to connect in ipcSendCommandLine() - show a message to the user if we fail to start-up (instead of just a debug.log entry) - misc small comment changes
2013-11-11Merge pull request #3187 from Diapolo/netManagerWladimir J. van der Laan
[Qt] paymentserver: start netManager in uiReady()
2013-11-11qt: add Open URI dialogWladimir J. van der Laan
2013-11-11[Qt] paymentserver: start netManager in uiReady()Philip Kaufmann
- remove explicit init of netManager as this is done in the constructor anyway - move initNetManager() call to uiReady(), which removes an assert() and allows us to use message() in initNetManager() (currently unused but could be necessary because of proxy related messages) - make initNetManager() private - update paymentservertests.cpp
2013-11-10Cleanup code using forward declarations.Brandon Dahler
Use misc methods of avoiding unnecesary header includes. Replace int typedefs with int##_t from stdint.h. Replace PRI64[xdu] with PRI[xdu]64 from inttypes.h. Normalize QT_VERSION ifs where possible. Resolve some indirect dependencies as direct ones. Remove extern declarations from .cpp files.
2013-11-06Merge pull request #3145Wladimir J. van der Laan
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)
2013-11-04qt: add license header to source filesWladimir J. van der Laan
Closes #839
2013-10-31make processPaymentRequest() use a single SendCoinsRecipientPhilip Kaufmann
- as one this pulls main purpose is to change a payment request to be displayed as a single sendcoins entry
2013-10-24Qt: move paymentACK handling to paymentserverPhilip Kaufmann
- add new slot handlePaymentACK() to paymentserver, which handles paymentACK messages (currently we just display them) - make paymentACK message a modal information dialog - change some QObject::tr() to just tr() - clarify the processPaymentRequest() error, when IsDust() - small string change to prevent a tripple + usage with QString
2013-10-19paymentserver: style fixes / cleanupPhilip Kaufmann
- rename reportError() into message() to be in line with our default message() signal/slot naming (and can be used for all types of messages) - rename some QStrings to not collide with message() function - add a missing message for malformed URIs that IS also used in BitcoinGUI - fix / extend some comments and misc style fixes
2013-09-09fix some cosmetic glitches in the codebasePhilip Kaufmann
- rename URL into URI in paymentserver where correct - add some missing Qt-coding-stuff in paymentserver - change QSpinBox to QLineEdit as base for BitcoinAmountField in .ui files (as this is the result when converting the BAF back into base) - remove some c_str() and replace with QString::fromStdString() - remove several new-lines - remove unneeded spaces - indentation fixes
2013-08-29Bitcoin-Qt: fixes for using display unit from optionsPhilip Kaufmann
- extend PaymentServer with setOptionsModel() and rework initNetManager() to make use of that - fix all other places in the code to use display unit from options and no hard-coded unit
2013-08-22Payment Protocol: X509-validated payment requestsGavin Andresen
Add support for a Payment Protocol to Bitcoin-Qt. Payment messages are protocol-buffer encoded and communicated over http(s), so this adds a dependency on the Google protocol buffer library, and requires Qt with OpenSSL support.
2013-04-06small indentation, space, formatting fixes (no code changes)Philip Kaufmann
2013-02-12Reimplement click-to-pay links. Add OSX support.Gavin Andresen
Switch to using Qt's QLocalServer/QLocalSocket to handle bitcoin payment links (bitcoin:... URIs) Reason for switch: the boost::interprocess mechanism seemed flaky, and doesn't mesh as well with "The Qt Way" qtipcserver.cpp/h is replaced by paymentserver.cpp/h Click-to-pay now also works on OSX, with a custom Info.plist that registers Bitcoin-Qt as a handler for bitcoin: URLs and an event listener on the main QApplication that handles QFileOpenEvents (Qt translates 'url clicked' AppleEvents into QFileOpenEvents automagically).