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
Please merge after #5665!
