Commit Graph

3427 Commits

Author SHA1 Message Date
dustinface
415e504780
qt: Introduce platform specific css sections (#3570)
* qt: Add platform specific css loading to GUIUtil::loadStyleSheet

This commit leads to GUIUtil::loadStyleSheet treating css code between
<os="<os_list>"> and </os> different. It will only become added for
operating systems provided in the list of the sections start tag.

There may be multiple entries per section. Possible entries:

- macosx
- windows
- other

<os_list> must be a combination of the three options above separated by
comma like in "windows,macosx".

Its ok to have multiple <os="...">...</os> sections in a file with
arbitrary OS combinations. They will all become added to the end of the
file though. Means even putting an <os> section in the top of the file
would become appended to the end of the file during loading which should
be kept in mind when adding sections to avoid unexpected overwriting.

Example
------------------------------------------------------------------------

<os="macosx, windows, other">

/* Example section to add styles for all operating systems
   Remove any to exclude it.
*/

</os>

* Respect `-uiplatform` when matching for os-specific styles

* Format osStyleExp to make it a bit easier to see groups

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-20 17:57:23 +03:00
dustinface
f43c917191
qt: Redesign BitcoinAmountField (#3569)
* qt: Remove min-width of BitcoinAmountField in ReceiveCoinsDialog

* qt: Add BitcoinUnits::data(const int &row, int role)

Make its data also accessible int, not only by QModelIndex.

* qt: Adjust BitcoinAmountField

- AmountSpinBox (QAbstractBox) is now called AmountLineEdit (QLineEdit)
- Replaced the AmountSpinBox and the QValueComboBox with just an AmountLineEdit
- Adjusted min-size hint calculation
- Increased maximum width
- Right-Align text
- Removed obsolete code

* qt: Removed leftover from legacy BitcoinAmountField

* qt: Move amount field into a Hlayout with a spacer (ReveiveCoinsDialog) 

Make sure it does not get stretched above the in AmountLineEdit::minimumSizeHint() calculated size.

* qt: Removed obsolete workaround related to BitcoinAmountField

Its fixed now with the change to a normal line edit.
2020-07-19 19:32:20 +03:00
dustinface
4a7bb865fd
qt: Introduce runtime theme changes (#3559)
* qt: Set the default theme properly

* qt: Keep track of disabled rects for macOS

This allows enabling them again on theme changes

* qt: Introduce runtime theme changes

Runtime theme changes means no more client restart required if the
theme gets changed in the options dialog.

In the RPCConsole's StyleChange event make sure following things are still correct after a runtime theme change:
- Hide prompt icon for dash themes in rpc console if dash theme gets
activated.
- Clear rpc console on theme changes to make sure fonts/sizes/colors are correct.
2020-07-19 19:29:55 +03:00
MarcoFalke
db747ea384 Merge #12757: Clarify include guard naming convention
3bcc0059b8 Add lint-include-guards.sh which checks include guard consistency (practicalswift)
8fd6af89a0 Fix missing or inconsistent include guards (practicalswift)
8af65d96f4 Document include guard convention (practicalswift)

Pull request description:

  * **Documentation**: Document include guard convention
  * **Fix**: Fix missing or inconsistent include guards
  * **Regression test**: Add `lint-include-guards.sh` which checks include guard consistency

Tree-SHA512: 8171878f60fd08ccbea943a11e835195750592abb9d7ab74eaa4265ae7fac523b1da9d31ca13d6ab73dd596e49986bfb7593c696e5f39567c93e610165bc2acc
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	src/bech32.h
#	src/consensus/merkle.h
#	src/key_io.h
#	src/policy/fees.h
#	src/rpc/server.h
#	src/script/bitcoinconsensus.h
#	src/wallet/coinselection.h
2020-07-19 00:42:54 -05:00
PastaPastaPasta
a0578ac330
We no longer support qt4
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-18 16:00:10 +00:00
PastaPastaPasta
dc1813409a
Dashify
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-18 15:59:53 +00:00
PastaPastaPasta
287c1bf818
Dashify
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
2020-07-17 21:55:08 +00:00
Wladimir J. van der Laan
db50935489
Merge #11761: [docs] initial QT documentation
c8edc2c [docs] initial QT documentation, move Qt Creator instructions (Sjors Provoost)

Pull request description:

  I'll update this as I figure out how everything is tied together, but I think it's a useful enough start.

Tree-SHA512: d96e5c9ba8ccc3a1b92a0894a8a8449317100eebb14e5d390b51793534458f50eac296cf2945fccf81b85aff23fa32d91d6015a0a76ada4f7091a400d7508ae5
2020-07-17 15:42:50 -05:00
dustinface
d5410fd4a9
qt: General CSS related redesigns (#3563)
* qt: User border-image in place of image

For some reason image produced weird outputs on some resolution screens.

* qt: Fix layout issues in TransactionView

* qt: Fix layout issues in OverviewPage

* qt: Replace transparent with #00000000 in stylesheets

* qt: Use #a84832 as red where possible.

This includes css files and any color usage in code.

* qt: Finetune QPushButton style

* qt: Customized QSlider (used in the Debug window -> NetworkTraffic)

* qt: Finetune QToolbar style

* qt: Customized QProgressBar

* qt: Customized QCalendarWidget

* qt: Finetune QStatusBar style

- Give the progress label a name as css reference
- Set min height and margins

* qt: Finetune QMenu style

- Set a light rounded border
- Color for disabled items
- Color/Style for seperator
- Give the items padding

* qt: Customized QGroupBox

* qt: Customized QToolTip

* qt: Give inputs widgets a proper hover/focus/selected/disabled style

* qt: Finetune SendCoinsDialog

- Add light line below the coincontrol frame
- Add light line above fee frame
- Increase header font size
- Remove button layout changes of CoinControl button
- Fix Layout/Alignment of balance labels

* qt: Customized RPC console's autocompletition popup

* qt: Add stylesheets to Intro

This is the datadir selection dialog.

* qt: OptionsDialog - Give the reset button the "light button" style

* qt: Finetune shared styles in general.css

* qt: Finetune coloring in dark.css

* qt: Finetune coloring in light.css

* More fixes for traditional.css

No text colors, s/transparent/#00000000/

* qt: Run update-css-files.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-16 23:30:36 +03:00
dustinface
fc6fe505ca
qt: Add -debug-ui command line parameter (#3558)
* qt: Set parents properly to inherit css and remove redundant loading

The stylesheet is inherited from the parent so its enough to set it for the main window and use this as parent for all other windows.

Except for the ShutdownDialog. This needs to have its own stylesheet set because we can't have the main window as parent of the ShutdownDialog.

* qt: Adding Qt::Window flag to the constructor of RPCConsole

This is required now as RPCConsole does not longer show as extra window with a parent set (For stylesheet inheritance).

* qt: Add UI debug mode (-debug-ui)

If this mode is enabled the content of the css files will become pushed to the UI if there were any changes made to the stylesheet files in the custom css directory. It also forces some UI elements to show up which are actually only shown under special conditions (e.g. watch balance labels). Its required to set a custom css directory with -custom-css-dir to enable this.

* qt: Adjust the description of -debug-ui
2020-07-14 23:16:38 +03:00
dustinface
78dc8c354d
qt: Make use of GUIUtil themed colors/styles (#3561)
* qt: Update theme colors in GUIUtil

- Adds ThemedColor::GREEN
- Changes ThemedColor::NEGATIVE to ThemedColor::RED
- Color adjustments to align with css colors

* qt: Give links a more eye friendly blue

* qt: Use themed colors in net traffic graph

* qt: Use themed styles/color in overview page

* qt: Use themed stylesheets in Intro

* qt: Modified QR code image painting to match the theme colors
2020-07-14 16:11:07 +03:00
dustinface
83420a18cf
qt: Replace usage of QTabBar with custom replacement (#3560)
* qt: OptionsDialog - Replaced QTabBar with QStackedWidget

This allows to stretch the buttons in the dialog window.

* qt: RPCConsole - Replaced QTabBar with QStackedWidget

This allows to stretch the buttons in the dialog window.

* qt: SignVerifyMessageDialog - Replaced QTabBar with QStackedWidget

This allows to stretch the buttons in the dialog window.

* qt: Add styles for tabbar replacement buttons
2020-07-14 16:10:51 +03:00
dustinface
41eceb8dd0
qt: Add -custom-css-dir commmand line parameter (#3557)
* qt: Change themes path from ":themes" to ":css"

Required for the introduction of a custom css directory which will
happen with the follow-up commits.

* qt: Renamed trad.css to traditional.css

* qt: Add -custom-css-dir startup parameter

This allows to load a custom directory as css directory.

The custom directory currently needs to have the files:

- general.css
- dark.css
- light.css
- traditional.css
- scrollbars.css
2020-07-12 22:32:04 +03:00
Wladimir J. van der Laan
c298c1ef77 Merge #13480: Avoid copies in range-for loops and add a warning to detect them
d92204c900d55ebaf2af5c900162b3c2c8c296e2 build: add warning to detect hidden copies in range-for loops (Cory Fields)
466e16e0e8523909f9968c5823691b1d4a3d8175 cleanup: avoid hidden copies in range-for loops (Cory Fields)

Pull request description:

  Following-up on #13241, which was itself a follow-up of #12169.

  See title. Fixing these would otherwise be a continuous process, adding the warning should keep them from cropping up.

  Note that the warning seems to be Clang-only for now.

Tree-SHA512: ccfb769c3128b3f92c95715abcf21ee2496fe2aa384f80efead1529a28eeb56b98995b531b49a089f8142601389e63f7bb935963d724eacde4f5e1b4a024934b
2020-07-08 18:32:04 -05:00
UdjinM6
8b953a8612
Merge pull request #3590 from PastaPastaPasta/backports-0.17-pr10
Backports 0.17 pr10
2020-07-09 02:30:36 +03:00
dustinface
c21cfc2610
qt: Call GUIUtil::loadFonts earlier (#3593)
* qt: Call GUIUtil::loadFonts earlier.

Before there is any usage of the font helpers.

* Apply review suggestion

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2020-07-09 02:29:28 +03:00
dustinface
d4c6ef30b9
qt: Disable macOS system focus rectangles for dash themes (#3556)
* qt: Disable macOS system focus rectangles for dash themes

The focus rects drawn by macOS are in the color the user selected in the
OS settings as selection color. This just doesn't always fit into the coloring of the dash specific themes.

* Apply review suggestion

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-07-09 02:27:53 +03:00
UdjinM6
ab9a8eed37
Merge pull request #3555 from xdustinface/pr-ui-2-fonts
qt: Implement application wide font management
2020-07-07 20:30:54 +03:00
pasta
371e213067 scripted-diff: Avoid temporary copies when looping over std::map (Merge #13241)
The ::value_type of the std::map/std::multimap/std::unordered_map containers is
std::pair<const Key, T>. Dropping the const results in an unnecessary copy,
for example in C++11 range-based loops.

For this I started with a more general scripted diff, then narrowed it down
based on the inspection showing that all actual map/multimap/unordered_map
variables used in loops start with m or have map in the name.

-BEGIN VERIFY SCRIPT-
sed -i -E 's/for \(([^<]*)std::pair<([^c])(.+) : m/for (\1std::pair<const \2\3 : m/' src/*.cpp src/**/*.cpp
sed -i -E 's/for \(([^<]*)std::pair<([^c])(.+) : (.*)map/for (\1std::pair<const \2\3 : \4map/' src/*.cpp src/**/*.cpp
-END VERIFY SCRIPT-

Signed-off-by: pasta <pasta@dashboost.org>
2020-07-07 11:46:21 -05:00
xdustinface
172c2837e4 qt: Make font related variables private in GUIUtil's namespace 2020-07-06 23:28:30 +02:00
xdustinface
6e36764bba qt: Add -font-family command line parameter
Allows to choose between the fonts:

0 - SystemDefault (default)
1 - Montserrat
2020-07-06 23:24:35 +02:00
xdustinface
175c3e0974 qt: Introduce GUIUtil::FontFamily and make font family adjustable 2020-07-06 23:24:35 +02:00
xdustinface
85c353e670 qt: Introduce GUIUtil::FontWeight as mapper for QFont::Weight 2020-07-06 23:24:35 +02:00
xdustinface
687a0e67ac qt: Move font-size settings from css to c++.
This also keeps track of changed font-sizes and updates them depending on the settings if GUIUtil::updateFonts() gets called.
2020-07-06 23:24:35 +02:00
xdustinface
c0056c5f3f qt: Keep track of font updates 2020-07-06 23:24:35 +02:00
xdustinface
19a93e9a06 qt: Add -font-weight-normal, -font-weight-bold and -font-scale arguments
-font-weight-normal allows to set the weight of normal texts in the UI
-font-weight-bold allows to set the weight of bold texts in the UI
-font-scale allows to scale the application font size up/down
2020-07-06 23:24:35 +02:00
xdustinface
2c7f8db634 qt: Use default font in receive requests and transaction description 2020-07-06 23:24:35 +02:00
xdustinface
2bbc6b8464 qt: Load custom font in splashscreen 2020-07-06 23:24:35 +02:00
xdustinface
68a3250003 qt: Use correct default font for size calculations 2020-07-06 23:24:35 +02:00
xdustinface
f94dfbebc5 qt: Set a proper font weight with GUIUtil::setFont where requried
The two parent commits did remove all some font-weight changes from css and ui files. This commit reverts them.
2020-07-06 23:24:35 +02:00
xdustinface
27bede7c79 qt: Removed all font related changes from .ui/.css files
This is because font related changes will from now on only be made either in c++ with `GUIUtil::setFont` for font weight/style changes or in css for size and color changes with `font-size` or `color`.
2020-07-06 23:23:39 +02:00
xdustinface
3f8023311b qt: Use default montserrat instead of fixed pitch font in dash themes 2020-07-06 23:18:37 +02:00
xdustinface
787740c0b2 qt: Add Montserrat (picked in Dash Style Guide) as application font
Includes the following methods
 - GUIUtil::loadFonts to load the fonts into the application's font
database
 - GUIUtil::setApplicationFont to set the application font depending on
the active theme
 - GUIUtil::setFont to set a specific font variation for a vector of widgets (Montserrat for dash themes, system default for traditional theme).
 - GUIUtil::getFont to get a specific montserrat variation as QFont (Montserrat for dash themes, system default for traditional theme).
 - GUIUtil::getFontWeightNormal to get the font weight to be used for normal text
 - GUIUtil::getFontWeightBold to get the font weight to be used for
bolder text
 - GUIUtil::getFontNormal to get the default normal weighted QFont
 - GUIUtil::getFontBold to get the default bold weighted QFont

There is a Qt bug on macOS (at least with macOS 10.15.4 and Qt 5.7.1)
which leads to not mapping the font weights correctly to the different
font types so that they can be selected by the appropriate methods to
set the font weight. As result there is now way to properly select the
different font styles from stylesheet or with QFont::setWeight() for the
font Montserrat. There are only two different weights selectable over
the full range of possible weight values. One very bold one and the
"ExtraLight" version. As workaround its possible to select the fonts by
using the font style string (QFont::setStyleName) as the Montserrat font becomes loaded as one
family with one "font style" for each font file. The font wrapper added
by this commit are taking care of this behaviour for all operating
systems so there should be no other usage of QFont outside of GUIUtil and no more font changes in stylesheets.
2020-07-06 23:18:33 +02:00
pasta
9d26ad6d8f remove duplicate includes so that ./contrib/devtools/lint-includes.sh is clean
Signed-off-by: pasta <pasta@dashboost.org>
2020-07-01 20:12:03 -05:00
Wladimir J. van der Laan
cd1dc46115 Merge #13284: gui: fix visual "overflow" of amount input.
5f3cbde9de842a8d565b6580c6050310d897065b Increased max width of amount field to prevent number overflow bug. (Brandon Ruggles)

Pull request description:

  Fixes #13231.

  I was able to reproduce this bug within my own Fedora 27 VM. Following @jonasschnelli's advice, I first tried to change `setAlignment(Qt::AlignRight);` to `setAlignment(Qt::AlignLeft);`, however, I realized that this wouldn't fix the underlying overflow problem, as it would only make it easier to see the most significant digits under certain scenarios. The reason for the overflow is that Fedora uses plus and minus buttons on the Qt spin box class, rather than up and down arrows, which is what happens on **most** other operating systems. These plus and minus buttons take up more width, and therefore provide less space for text.

  The solution I went with was the second suggestion by @jonasschnelli, which was to just increase the maximum width of the amount box. After some experimentation, 240 seemed to be the smallest max width that would allow as many digits as one would want in the amount box without overflow, even with the plus and minus buttons in Fedora.

  Please let me know if there are any issues with this PR and I will work to fix them. Thank you!

Tree-SHA512: 155f34cec74af46ec1fe723a5241798d8e15607a4e1cdc493014dcc0ae9818a001c7901831168b5f26a6953ec5a992e4a67c57db1ad377bcf10f12941688ee93
2020-07-01 14:08:47 -05:00
PastaPastaPasta
b463e5780e
Change litemode to disablegovernance (#3577)
* Change litemode to disablegovernance, this makes it more clear what that flag actually does.

Signed-off-by: pasta <pasta@dashboost.org>

* more fLiteMode to fDisableGovernance

Signed-off-by: pasta <pasta@dashboost.org>

* handle -litemode being set

Signed-off-by: pasta <pasta@dashboost.org>
2020-06-29 00:00:00 +03:00
dustinface
fd88bed39b
qt: Redesign of the main toolbar (#3554)
* qt: Replaced QAction with QToolButton for BitcoinGUI toolbar buttons.

This allows setting a size policy for the toolbar buttons so that
they are stretched over the toolbar and resize on window size changes.

* qt: Give the BitcoinGUI's toolbar more style

* qt: Give the toolbar logo a higher resolution

This also removes the blue logo because its not longer used.

* qt: Restore the traditional themes toolbar previous styles and logo
2020-06-28 15:40:09 +03:00
UdjinM6
908c04f1e3
Merge pull request #3531 from PastaPastaPasta/backports-0.17-pr6
Backports 0.17 pr6
2020-06-27 14:49:35 +03:00
dustinface
f6e14ab57a
qt: Generalized css files, simple design changes, added scripts to keep track of color usage (#3508)
* qt: Send tab - Generalized related CSS and some redesign

- Removed grey boxes around labels of SendCoinEntry
- Changed button styles for add/clear button
- Removed padding for send button

* qt: Overview tab - Generalized related CSS and some redesign

- Removed grey boxes around balance labels

* qt: Receive tab & QPushButton - Generalized related CSS and some redesign

- Removed grey boxes around "Label", "Amount", "Message" and "Requested
payment history" labels and increased their textsize
- Changed the color of the "Requested payment history" label
- Adjusted the style of the "Clear", "Remove" and "Show" buttons

* qt: Transaction tab - Generalized related CSS and some redesign

- Increased size of selected sum labels

* qt: Masternode tab - Generalized related CSS and some redesign

- Increased the size of the "Filter list" and "Node count" labels

* qt: CoinControl dialog - Generalized related CSS and some redesign

- Removed alternated coloring

* qt: Sync overlay - Generalized related CSS and some redesign

- Adjusted colors
- Added rounded border

* qt: About dialog - Generalized related CSS

* qt: Edit address dialog - Generalized related CSS

* qt: Help message dialog - Generalized related CSS

* qt: RPC console  - Generalized related CSS and some redesign

- Changed colors for network activity legend (signal colors TBD in a
code change commit)

* qt: Options dialog - Generalized related CSS

* qt: Ask passphrase dialog - Generalized related CSS

* qt: Addressbook page - Generalized related CSS

* qt: Sign/Verify dialog - Generalized related CSS

* qt: Open URI dialog - Generalized related CSS

* qt: Generalized remaining individual Qt classes

* qt: Fixed indentation in css files

* qt: Use newlines for multiple selector entries

* qt: Formal cleanups in all css files

* qt: Add copyright and file description to all css files

* qt: Add update_colors.py, prepare css files for scripted color updates

- update_colors.py is a python script which parses the css files and prints some
details about their color usage into appropriate files in the css/colors directory. It also
updates the <colors></colors> section for each css file.
- Added <colors></colors> section to css files for automated color updates by update_colors.py

* qt/contrib: Moved update_colors.py to update-css-files.py 

This also moves the file from src/qt/res/css to contrib/devtools

* build: Remove files in src/qt/res/css/colors when running "make clean"

* git: Add src/qt/res/css/colors/* to gitignore and remove the files from the repo

* path -> css_folder_path

* Resolve path and fail early

* Create 'colors/' if it doesn't exist and fail if smth went wrong

* Run git after all filesystem preparations are done

* qt: Fix background-color of bgWidget in trad.css

Its #AARRGGBB not #RRGGBBAA!

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* qt: Run update_colors.py

* contrib: Use case insensitive regex for color matching

* qt: Update colors in css files

* contrib: Remove obsolete import in update-css-files.py

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-06-26 20:48:20 +03:00
Alexander Block
aab4852801
Fix argument handling for devnets (#3549)
* Use "devnet" instead of "dev" for network id

Otherwise one would have to use "dev.port=123" in configs, which might
be confusing as we usually name such networks "devnet".

* Fix ArgsManager::GetChainName to work with devnets again

-devnet is not a boolean arg, but a string. So we have to check for
existence only.
2020-06-24 10:03:53 +02:00
Pieter Wuille
34192afc01
Merge #12621: Avoid querying unnecessary model data when filtering transactions
1ee72a819f qt: Avoid querying unnecessary model data when filtering transactions (João Barbosa)

Pull request description:

  This change moves down model data querying to where it's needed. The worst case remains the same (all data is queried and the row passes) but for the average case it improves the filter performance.

Tree-SHA512: 3bcaced029cb39dfbc5377246ce76634f9050ee3a3053db4d358fcbf4d8107c649e75841f21d69f1aebcaf1bbffe3eac784e6b03b366fdbbfec1e0da8f78d8ef
2020-06-18 11:41:53 -05:00
Wladimir J. van der Laan
5e5a0fbd7e
Merge #12620: Remove TransactionTableModel::TxIDRole
3b26b6af7 qt: Remove TransactionTableModel::TxIDRole (João Barbosa)

Pull request description:

  The role `TxIDRole` is a duplicate of `TxHashRole`. This change favours `TxHashRole`.

Tree-SHA512: ad35933eae1cb6b242b25b8940d662c2c79c766732d76fdd410c80230ec084969294a8e5a126794707992a566076ef4452b592050f7af6c4fa7742891090803d
2020-06-18 11:41:53 -05:00
Wladimir J. van der Laan
145f6798a3 Merge #12426: qt: Initialize members in WalletModel
fa27623 qt: Initialize members in WalletModel (MarcoFalke)

Pull request description:

  This prevents segfaults (or errors when running qt in valgrind)

  ```
  Conditional jump or move depends on uninitialised value(s)
      WalletModel::checkBalanceChanged() (walletmodel.cpp:156)

Tree-SHA512: 38c8c03c7fa947edb3f1c13eab2ac7a62ef8f8141603c2329a7dc5821a887a349af8014dc739b762e046f410f44a9c6653b6930f08b53496cf66381cadc06246
2020-06-17 14:29:55 -05:00
Wladimir J. van der Laan
9b0c1f7733 Merge #12393: Fix a-vs-an typos
11376b5 Fix a-vs-an typos (practicalswift)

Pull request description:

  Fix a-vs-an typos.

Tree-SHA512: 2cf74c15656a20ec13d2da7d86a39d14e634db368833d92da06a78d1266950accfc4fcc89cfecdaadd46e6b48b17e6fad29080428e564871e78482c53f3e855c
2020-06-17 14:29:55 -05:00
UdjinM6
593e8b2e2a
Merge pull request #3527 from PastaPastaPasta/backports-0.17-pr4
Backports 0.17 pr4
2020-06-16 12:19:57 +03:00
Wladimir J. van der Laan
f52fa3465e
Merge #12616: Set modal overlay hide button as default
cfdd89589 qt: Set modal overlay hide button as default (João Barbosa)

Pull request description:

  Without this change the only way to close the modal overlay is to click the hide button. Setting the button to default allows to activate it with the ENTER key.

  Before:
  <img width="849" alt="screen shot 2018-03-06 at 15 14 23" src="https://user-images.githubusercontent.com/3534524/37040276-58af9ce0-2151-11e8-8c55-50acdea669d9.png">

  After:
  <img width="848" alt="screen shot 2018-03-06 at 15 12 41" src="https://user-images.githubusercontent.com/3534524/37040294-650d1c9c-2151-11e8-8245-2da250a71b3d.png">

Tree-SHA512: a93ef440a507843ed7870fd07a693af93dd97c8fce2fb6824c69a227b5dee258f340bf1ae344da32a9dd6e6cb2330f72db9dac9635bbd34184c3e7f8476a472e
2020-06-14 11:41:07 -05:00
Wladimir J. van der Laan
eaf79feda0
Merge #12421: [qt] navigate to transaction history page after send
e7d9fc5 [qt] navigate to  transaction history page after send (Sjors Provoost)

Pull request description:

  Before this change QT just remained on the Send tab, which I found confusing. Now it switches to the Transactions tab. This makes it more clear to the user that the send actually succeeded, and here they can monitor progress.

  Ideally I would like to highlight the transaction, e.g. by refactoring `TransactionView::focusTransaction(const QModelIndex &idx)` to accept a transaction hash, but I'm not sure how to do that.

Tree-SHA512: 8aa93e03874de8434e18951f8aec47377814c0bcaf7eda4766fc41d5a4e32806346e12e4139e4d45468dfdf0b786f5a7faa393a31b8cd6c65ccac21fb3782c33
2020-06-14 11:41:04 -05:00
Wladimir J. van der Laan
82f04481f1
Merge #11733: qt: Remove redundant locks
d6f3a73 Remove redundant locks (practicalswift)

Pull request description:

  Remove redundant locks:
  * ~~`FindNode(...)` is locking `cs_vNodes` internally~~
  * `SetAddressBook(...)` is locking `cs_wallet` internally
  * `DelAddressBook(...)` is locking `cs_wallet` internally

  **Note to reviewers:** From what I can tell these locks are redundantly held from a data integrity perspective (guarding specific variables), and they do not appear to be needed from a data consistency perspective (ensuring a consistent state at the right points). Review thoroughly and please let me know if I'm mistaken :-)

Tree-SHA512: 7e3ca2d52fecb16385dc65051b5b20d81b502c0025d70b0c489eb3881866bdd57947a9c96931f7b213f5a8a76b6d2c7b084dff0ef2028a1e9ca9ccfd83e5b91e
2020-06-14 11:41:03 -05:00
Wladimir J. van der Laan
6e74920366 Merge #12721: Qt: remove "new" button during receive-mode in addressbook
d843db7 Qt: remove "new" button during receive-mode in addressbook (Jonas Schnelli)

Pull request description:

  There are currently two ways how to generate new receiving addresses in the GUI (which leads to code duplication or required refactoring, see #12520).

  Since the address-book is probably something that should be removed in the long run, suppressing the new-button in receive-mode could be a first step in deprecating the address book.

  With this PR, users can still edit existing receiving address book entries and they can still create new sending address book entries.

Tree-SHA512: abe8d1b44bc3e1b53826ccf9d2b3f764264337758d95ca1fe1ef1bac72d47608cf454055fce3720e06634f0a5841a752ce643b4505b47d6e322b6fc71296e961
2020-06-13 14:50:11 -05:00
Wladimir J. van der Laan
d3a19c5f42 Merge #12080: Add support to search the address book
c316fdf [qt] Add support to search the address book (João Barbosa)

Pull request description:

  This PR adds support to search the address book for both receiving and sending addresses.

  A specialisation of the `QSortFilterProxyModel` is added to implement the custom filtering.

  <img width="757" alt="screen shot 2018-01-03 at 16 05 57" src="https://user-images.githubusercontent.com/3534524/34528196-0347d61e-f0a0-11e7-9bd3-535e9e34ceb8.png">
  <img width="759" alt="screen shot 2018-01-03 at 16 00 58" src="https://user-images.githubusercontent.com/3534524/34528202-07c99f24-f0a0-11e7-8e34-cff6a1ba2364.png">

  Closes #623.

Tree-SHA512: 316e646015c858fc70db6be72dc7922d5bb10a3399e7fa327c992e184cc37a124f11cffefab2dbe0d16bda790c7c0437db364686e66c40b4054b8250b4be15d0
2020-06-13 14:50:11 -05:00
PastaPastaPasta
224d0a3fb2
Backport 12381 (#3528)
* Merge #12381: Remove more boost threads

004f999 boost: drop boost threads for [alert|block|wallet]notify (Cory Fields)
0827267 boost: drop boost threads from torcontrol (Cory Fields)
ba91724 boost: remove useless threadGroup parameter from Discover (Cory Fields)
f26866b boost: drop boost threads for upnp (Cory Fields)

Pull request description:

  This doesn't completely get rid of boost::thread, but this batch should be easy to review, and leaves us with only threadGroup (scheduler + scriptcheck) remaining.

  Note to reviewers: The upnp diff changes a bunch of whitespace, it's much more clear with 'git diff -w'

Tree-SHA512: 5a356798d0785f93ed143d1f0afafe890bc82f0d470bc969473da2d2aa78bcb9b096f7ba11b92564d546fb447d4bd0d347e7842994ea0170aafd53fda7e0a66e

* fix using std::thread

Signed-off-by: pasta <pasta@dashboost.org>

* Switch to std::thread in NotifyTransactionLock

* Move StopTorControl call from Shutdown to PrepareShutdown

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-06-13 21:21:30 +03:00
dustinface
4cb73522a8
qt: Fix label updates in SendCoinsEntry (#3523)
Bug which leads to not filling an associated addressbook labels into the Label line edit.
2020-06-13 21:18:57 +03:00
PastaPastaPasta
5ea76e8649
Change litemode from disabling all Dash specific features to disabling governance validation (#3488)
* enable privatesend by default in litemode

Signed-off-by: Pasta <pasta@dashboost.org>

* remove useless litemode check in CPrivateSendServer::ProcessMessage, must be MN, so must have litemode off already

Signed-off-by: Pasta <pasta@dashboost.org>

* change litemode to mean, doesn't validate governance, but has all other dash features

Signed-off-by: Pasta <pasta@dashboost.org>

* litemode must be off for MNs cont

Signed-off-by: Pasta <pasta@dashboost.org>

* change litemode help text

Signed-off-by: Pasta <pasta@dashboost.org>

* don't skip MN sync in litemode

Signed-off-by: Pasta <pasta@dashboost.org>

* drop fLiteMode in bitcoingui.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* skip governance sync in litemode

Signed-off-by: pasta <pasta@dashboost.org>

* remove fLiteMode in walletview.cpp

Signed-off-by: pasta <pasta@dashboost.org>

* add back

Signed-off-by: pasta <pasta@dashboost.org>

* fix comments

* fix cache loading

* fix scheduled tasks

* Fix help text for some rpcs (revert what's left of 3478)

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-06-13 21:18:31 +03:00
UdjinM6
2b504cdc0b
Merge pull request #3520 from PastaPastaPasta/backports-0.17-pr2
Backports 0.17 pr2
2020-06-13 21:14:37 +03:00
UdjinM6
4b50ee5294
Merge pull request #3477 from 10xcryptodev/pr_remove_qt_todo
Backport qt support minimum to 5.5.1 and associated backports
2020-06-13 21:13:58 +03:00
fanquake
557b144d55
Merge #18769: qt: remove bug fix for Qt < 5.5
e3ec4924a72c33f202b10a82e8498875d8f1b775 qt: remove todo bug fix for old versions of Qt (10xcryptodev)

Pull request description:

  Remove the code used to fix a Qt bug in versions before Qt 5.5.0 as described in this link https://bugreports.qt.io/browse/QTBUG-43473

  Now the minimum requirement is Qt 5.5.1 as described in https://github.com/bitcoin/bitcoin/blob/master/doc/dependencies.md

  This code is not necessary anymore

ACKs for top commit:
  hebasto:
    re-ACK e3ec4924a72c33f202b10a82e8498875d8f1b775, since the [previous review](https://github.com/bitcoin/bitcoin/pull/18769#pullrequestreview-400517155) only the prefix of the commit message has been changed.

Tree-SHA512: 57802974fccae863dde0e186847db09832b2433b11e8410a0137b27f1ae8a95bdcd9206a5ea0d79f7a2b56adc6b4bac8bb0c4db583158db36a349a6b28b81aac
(cherry picked from commit b9ba76f1c9e6564c6cf3fa6a6150e8e4d1171de3)

# Conflicts:
#	src/qt/coincontroldialog.cpp
2020-06-12 18:50:35 -03:00
Jonas Schnelli
76cfc7c912
Merge #15393: build: Bump minimum Qt version to 5.5.1
fd46c4c00 Bump minimum Qt version to 5.5.1 (Sjors Provoost)

Pull request description:

  Fixes #13478

  Compiled and lightly tested on 10.14.3 against QT 5.12.0.

Tree-SHA512: 6890331969bbf4c66dc0993b8817b1f0831d008f5863554e9c09a38f4700260b84044ff961664c377decc9fb8300e3543c267f935ec64fbc97b20f8fb396247a
(cherry picked from commit 3b33cbc2b60d1aa55d72128b36558c5eedf07fc4)

# Conflicts:
#	build-aux/m4/bitcoin_qt.m4
#	doc/dependencies.md
#	src/qt/test/apptests.cpp
#	src/qt/test/rpcnestedtests.cpp
2020-06-12 18:47:26 -03:00
Wladimir J. van der Laan
5debbf307b
Merge #14725: qt: Bump the minimum Qt version to 5.2
2bc3f114d09a9798d166896b0145b69c5ed2d41e Bump the minimum Qt version to 5.2 (Hennadii Stepanov)

Pull request description:

  Refs:
  - #13478
  - https://github.com/bitcoin/bitcoin/issues/13478#issuecomment-438431556 by @MarcoFalke

Tree-SHA512: b598a80f25df9c440e0776b373b88a305250582049ab60caee48375f6599c2f6d40ed94b488ff3604ec9fc12c71f440f6881a3fc656c81f99e89dc5bf9ea2f6d
(cherry picked from commit 74213fa4d13e53c3811d69a516fc865b79fdd0c7)

# Conflicts:
#	build-aux/m4/bitcoin_qt.m4
#	src/qt/dash.cpp
#	src/qt/guiutil.cpp
#	src/qt/splashscreen.cpp
2020-06-12 18:47:26 -03:00
MarcoFalke
3870adcbdf
Merge #13536: [qt] coincontrol: Remove unused qt4 workaround
faa2cf685a [qt] coincontrol: Remove unused qt4 workaround (MarcoFalke)

Pull request description:

  This reverts 55eade9d46 since it is no longer required.

Tree-SHA512: ec523d505b410ab72ce9fdee86dfcfe96011472fb386744bb585169724270426ee65da2b527ae47928d604e1f21f54aa2b4b82f9a9d3fbfea1a6516478d81d11
(cherry picked from commit baf3a3ab0c63b512b37d9f753768c1f020369088)

# Conflicts:
#	src/qt/coincontroldialog.cpp
2020-06-12 18:47:26 -03:00
Wladimir J. van der Laan
f3799930f9
Merge #13458: gui: Drop qt4 support
af6ac3b677454644364fd24d0df0c02ac9b8c8db doc: Remove mention of Qt4 from build docs (Wladimir J. van der Laan)
462c71f71b5d753bc8327ab833dea23679450ca3 test: Update travis to not test Qt4 anymore (Wladimir J. van der Laan)
907f73bbc5b6c98b01d7c6088a294dea66634a3f gui: Remove QT_VERSION fallbacks for Qt < 5 (Wladimir J. van der Laan)
bad068ad9f4bc60bfc10e27d4ffaec92d7df8491 build: Build system changes to support only Qt5 (Wladimir J. van der Laan)

Pull request description:

  Implements #8263.

  Qt4.x has been EOL since 2015, and at least Gentoo has, or is going to drop support for it. I wouldn't be surprised if other Linux distributions follow.

  This removes Qt4 detection from the build system, as well as removes all Qt4 fallbacks from the code. Turns out there's more than I expected: this is going to make maintenance of the GUI code, as well as adding new features significantly easier.

  (I know there's still some references left to qt4 in RPM and Debian build script, but I don't have the knowledge how to fix them)

Tree-SHA512: d495924fd4dda6f6566ba44ee96be7cbe62e69ba1ca993b80a8449f78da852b7f1bd3e8200d57cfa1d72233c340eeff4596fb0032ecbddc715d99aea63817d3f
(cherry picked from commit dc53f7f2514026db8a28632371e73e6dbf858083)

# Conflicts:
#	.travis.yml
#	build-aux/m4/bitcoin_qt.m4
#	configure.ac
#	doc/build-osx.md
#	doc/build-unix.md
#	doc/dependencies.md
#	src/qt/README.md
#	src/qt/bitcoingui.cpp
#	src/qt/coincontroldialog.cpp
#	src/qt/dash.cpp
#	src/qt/guiutil.cpp
#	src/qt/macdockiconhandler.mm
#	src/qt/networkstyle.cpp
#	src/qt/openuridialog.cpp
#	src/qt/peertablemodel.cpp
#	src/qt/signverifymessagedialog.cpp
#	src/qt/test/wallettests.cpp
#	src/qt/transactionview.cpp
2020-06-12 18:47:26 -03:00
pasta
518ccbf986
scripted-diff: Convert 11 enums into scoped enums (C++11) (merge #10742)
-BEGIN VERIFY SCRIPT-

sed -i 's/enum DBErrors/enum class DBErrors/g' src/wallet/walletdb.h
git grep -l DB_ | xargs sed -i 's/DB_\(LOAD_OK\|CORRUPT\|NONCRITICAL_ERROR\|TOO_NEW\|LOAD_FAIL\|NEED_REWRITE\)/DBErrors::\1/g'
sed -i 's/^    DBErrors::/    /g' src/wallet/walletdb.h

sed -i 's/enum VerifyResult/enum class VerifyResult/g' src/wallet/db.h
sed -i 's/\(VERIFY_OK\|RECOVER_OK\|RECOVER_FAIL\)/VerifyResult::\1/g' src/wallet/db.cpp

sed -i 's/enum ThresholdState/enum class ThresholdState/g' src/versionbits.h
git grep -l THRESHOLD_ | xargs sed -i 's/THRESHOLD_\(DEFINED\|STARTED\|LOCKED_IN\|ACTIVE\|FAILED\)/ThresholdState::\1/g'
sed -i 's/^    ThresholdState::/    /g' src/versionbits.h

sed -i 's/enum SigVersion/enum class SigVersion/g' src/script/interpreter.h
git grep -l SIGVERSION_ | xargs sed -i 's/SIGVERSION_\(BASE\|WITNESS_V0\)/SigVersion::\1/g'
sed -i 's/^    SigVersion::/    /g' src/script/interpreter.h

sed -i 's/enum RetFormat {/enum class RetFormat {/g' src/rest.cpp
sed -i 's/RF_\(UNDEF\|BINARY\|HEX\|JSON\)/RetFormat::\1/g' src/rest.cpp
sed -i 's/^    RetFormat::/    /g' src/rest.cpp

sed -i 's/enum HelpMessageMode {/enum class HelpMessageMode {/g' src/init.h
git grep -l HMM_ | xargs sed -i 's/HMM_BITCOIN/HelpMessageMode::BITCOIN/g'
sed -i 's/^    HelpMessageMode::/    /g' src/init.h

sed -i 's/enum FeeEstimateHorizon/enum class FeeEstimateHorizon/g' src/policy/fees.h

sed -i 's/enum BlockSource {/enum class BlockSource {/g' src/qt/clientmodel.h
git grep -l BLOCK_SOURCE_ | xargs sed -i 's/BLOCK_SOURCE_\(NONE\|REINDEX\|DISK\|NETWORK\)/BlockSource::\1/g'
sed -i 's/^    BlockSource::/    /g' src/qt/clientmodel.h

sed -i 's/enum FlushStateMode {/enum class FlushStateMode {/g' src/validation.cpp
sed -i 's/FLUSH_STATE_\(NONE\|IF_NEEDED\|PERIODIC\|ALWAYS\)/FlushStateMode::\1/g' src/validation.cpp
sed -i 's/^    FlushStateMode::/    /g' src/validation.cpp

-END VERIFY SCRIPT-

Signed-off-by: pasta <pasta@dashboost.org>
2020-06-11 23:20:48 -05:00
MarcoFalke
bb035972ee
Merge #12716: Fix typos and cleanup in various files
4d9b4256d8 Fix typos (Dimitris Apostolou)

Pull request description:

  Unfortunately I messed up my repo while trying to squash #12593 so I created a PR with just the correct fixes.

Tree-SHA512: 295d77b51bd2a9381f1802c263de7ffb2edd670d9647391e32f9a414705b3c8b483bb0e469a9b85ab6a70919ea13397fa8dfda2aea7a398b64b187f178fe6a06
Signed-off-by: pasta <pasta@dashboost.org>
2020-06-11 23:20:48 -05:00
UdjinM6
2b7657d9e4
Merge pull request #3518 from PastaPastaPasta/backports-0.17-pr1
Backports 0.17 pr1
2020-06-11 20:51:58 +03:00
UdjinM6
469d6aa737
Some Dashification (#3513)
* Trivial Dashification

* Tweak getnetworkinfo and dumpwallet help text

We don't have RBF and Segwit

* CopyrightHolders should also check for missing "Dash Core" copyright
2020-06-11 11:39:04 +03:00
dustinface
3e20aa480f
qt/init: Move -windowtitle to the UI section of the help message (#3511)
It was in the private send section before.
2020-06-11 11:38:46 +03:00
MarcoFalke
a6c210a755
Merge #12416: Fix Windows build errors introduced in #10498
f40df29d96 Fix Windows build errors introduced in #10498 (practicalswift)

Pull request description:

  Fix Windows build errors introduced in #10498

  Fixes #12386

  cc @ken2812221, @Sjors, @MarcoFalke and @floreslorca

Tree-SHA512: a807521fbd4015971e646fa4bab5495a3aaa97337e7b7d80b9161f33778e84ad6725cf4fbd5a35b50bf3a2bd97747cd7a630b51493ff516c2e1ad74acce148be
2020-06-11 02:29:00 -05:00
Jonas Schnelli
fe6b44d228
Merge #12287: Optimise lock behaviour for GuessVerificationProgress()
90ba2df11 Fix missing cs_main lock for GuessVerificationProgress() (Jonas Schnelli)

Pull request description:

  `GuessVerificationProgress()` needs `cs_main` due to accessing the `pindex->nChainTx`.
  This adds a `AssertLockHeld` in `GuessVerificationProgress()` and adds the missing locks in...
  * `LoadChainTip()`
  * `ScanForWalletTransactions()` (got missed in #11281)
  * GUI, `ClientModel::getVerificationProgress()` <--- **this may have GUI performance impacts**, but could be relaxed later with a cache or something more efficient.

Tree-SHA512: 13302946571422375f32af8e396b9d2c1180f2693ea363aeba9e98c8266ddec64fe7862bfdcbb5a93a4b12165a61eec1e51e4e7d7a8515fa50879095dc163412
2020-06-10 18:32:43 -05:00
MarcoFalke
26ca61ec21
Merge #10498: Use static_cast instead of C-style casts for non-fundamental types
9ad6746ccd Use static_cast instead of C-style casts for non-fundamental types (practicalswift)

Pull request description:

  A C-style cast is equivalent to try casting in the following order:

  1. `const_cast(...)`
  2. `static_cast(...)`
  3. `const_cast(static_cast(...))`
  4. `reinterpret_cast(...)`
  5. `const_cast(reinterpret_cast(...))`

  By using `static_cast<T>(...)` explicitly we avoid the possibility of an unintentional and dangerous `reinterpret_cast`. Furthermore `static_cast<T>(...)` allows for easier grepping of casts.

  For a more thorough discussion, see ["ES.49: If you must use a cast, use a named cast"](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#es49-if-you-must-use-a-cast-use-a-named-cast) in the C++ Core Guidelines (Stroustrup & Sutter).

Tree-SHA512: bd6349b7ea157da93a47b8cf238932af5dff84731374ccfd69b9f732fabdad1f9b1cdfca67497040f14eaa85346391404f4c0495e22c467f26ca883cd2de4d3c
2020-06-10 18:32:43 -05:00
Pasta
f0e5ef09fc scripted-diff: Replace NET_TOR with NET_ONION (#13575)
-BEGIN VERIFY SCRIPT-

sed --in-place'' --expression='s/NET_TOR/NET_ONION/g' $(git grep -I --files-with-matches 'NET_TOR')

-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>
2020-06-08 20:27:14 -05:00
Jonas Schnelli
28a62b059a Merge #13537: GUI: Peer table: Visualize inbound/outbound state for every row
4132ad3bf Show symbol for inbound/outbound in peer table (wodry)

Pull request description:

  Fixes #13483

  The address in the network peer table is prefixed with an up-arrow symbolizing an outbound connection, or an down-array symbolizing an inbound connection. See screenshot.

  The user has an easy visual confirmation about the connection direction state. I really like it :)
  Impact to columns sorting is grouping by inbound/outbound first, which in my opinion is an advantage, too.
  ![bildschirmfoto](https://user-images.githubusercontent.com/8447873/41862752-13803eb2-78a5-11e8-9126-a52385f5ec19.png)

Tree-SHA512: d355f679d34c3006743c06750be5f36a083c1a8376da8f5f35045fcd9df964153409946fdde5007734f23bd692c91355962dc42df31122cdcf88e4affce8bc0e
2020-06-08 20:27:14 -05:00
dustinface
048503bcb5
qt: Some UI fixes and improvements (#3500)
* qt: Updated loadStylesheet and added general.css for shared styles

* qt: Customized QRadioButton and QCheckBox

- Introduced new images for QCheckBox and QRadioButton
- Make use of Hover/Pressed/Disabled/Indeterminate states 
- Use customized Checkboxes and Radio-Buttons in CoinControlWidget

* qt: Removed qtreeview_selected image

This looks weird in the dark theme. Will introduce new arrows here.

* qt: Redesigned arrows and their usage

- Added new arrow images
- Make use of Hover/Pressed/Disabled states for QAbstractSpinBox and 
QComboBox
- Use custom arrows in QHeaderView
- Use custom arrows in QTreeWidget branch selectors

* qt: Slightly increased checkboxes and radio buttons

* qt: Move the scrollbars css loading into loadStyleSheet

This way all windows will have the same scrollbars and not only the main 
window.

* qt: Use padding instead of margin for QTreeWidget::branch styles

Use of margin here lead to a 2px vertical line at the left edge cause of 
the background below.

* qt: Use border-image for the scrollbar arrows and adjust the size.

background-image lead to not showing the arrows here because it 
obviously was scaled incorrect with the higher resolution of the image 
files.

* qt: Add missing grey arrows and make use of disabled states of scrollbar arrows

* qt: Adjust dashThemeActive and also use it in BitcoinGUI::createToolBars

* qt: Fixed copyright year in general.css
2020-06-04 14:43:06 +03:00
PastaPastaPasta
0662f170f0
Merge #12836: Make WalletInitInterface and DummyWalletInit private, fix nullptr deref (#3498)
d894894 wallet: Refactor to WalletInitInterface* const g_wallet_init_interface (João Barbosa)
39bc2fa wallet: Make WalletInitInterface and DummyWalletInit private (João Barbosa)

Pull request description:

  Implementations of `WalletInitInterface` don't have to be public, so make them private. This makes the interface instantiation static. Also reduces `ENABLE_WALLET` usage and removes the unnecessary `src/wallet/init.h` header.

Tree-SHA512: 203c49d8c85252d1bd0ff1d7ed8bcdc842d12d2d396e965cc70be5c8159a62e98ec23d32d2f3dc48a53e575844130d0a7dedac3cc2fe4621d31319b7a1c9ba89
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	src/qt/dash.cpp
#	src/wallet/init.cpp
#	src/wallet/init.h
#	src/walletinitinterface.h

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2020-05-20 12:24:51 +03:00
UdjinM6
3a56ed9ca6
Fix NO_WALLET=1 build (#3490) 2020-05-18 02:41:00 +03:00
10xcryptodev
4c1f65baae
Fix #3241 UX/UI - Introduce PrivateSend tab which allows to spend fully mixed coins only (#3442)
* #3241 change PrivateSend and balance location

* include resource location back

* change back balance and privatesend checkbox position

* add new PrivateSend tab on main window and PrivateSend tray option

* adjust code formating

* revert QT TODO

* Update src/qt/forms/sendcoinsdialog.ui code formating

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* code formating update

* clear send dialog and remove unnecessary warning

* change clear location for better UX and performance

* remove variable used in warning

* Do not clear everything, simply unselect non-fully-mixes coins instead

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* Warn about unselected coins

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* Disable PrivateSend tab/menu item when PrivateSend is disabled

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* fix tab selection bold font

* fix use available balance for PS

* change back line

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-05-15 12:33:07 +03:00
dustinface
e0ff9af2b0
qt: Allow and process URIs pasted to the payTo field of SendCoinsEntry (#3475)
* qt: Allow and process URIs pasted to the payTo field of SendCoinsEntry

* qt: Prevent double invocation of the textChanged slot when pasting an URI

* qt: Keep the addressbook's label if there is already one for the address

If there is no label for the given address in the addressbook but the 
URI contains a label it will use the URI's label to update the 
addressbook.

* qt: Always prefer the addressbook's label over an URI's label
2020-05-12 02:33:21 +03:00
xdustinface
b1c26d4aae
qt: Disconnect CClientUIInterface from SplashScreen::ConnectWallet
Due to not disconnecting the signal there the trace of the `loadwallet` 
rpc command ends 
in a call of `SplashScreen::ConnectWallet` for the not longer existent 
splashscreen object.

7770a7da95/src/wallet/wallet.cpp (L4192)

Wasn't an issue before the `loadwallet` rpc was introduced because 
`CWallet::LoadWallet` was only called once on startup.
2020-05-10 12:13:46 -05:00
Pasta
b1c8875579
scripted-diff: Rename wallet database classes (begin bitcoin#11851)
-BEGIN VERIFY SCRIPT-

sed -i 's/\<CWalletDBWrapper\>/BerkeleyDatabase/g' src/wallet/db.h src/wallet/db.cpp
sed -i '/statuses/i/** Backend-agnostic database type. */\nusing WalletDatabase = BerkeleyDatabase\;\n' src/wallet/walletdb.h
ren() { git grep -l "\<$1\>" 'src/*.cpp' 'src/*.h' ':(exclude)*dbwrapper*' test | xargs sed -i "s:\<$1\>:$2:g"; }
ren CDBEnv           BerkeleyEnvironment
ren CDB              BerkeleyBatch
ren CWalletDBWrapper WalletDatabase
ren CWalletDB        WalletBatch
ren dbw              database
ren m_dbw            m_database
ren walletdb         batch
ren pwalletdb        batch
ren pwalletdbIn      batch_in
ren wallet/batch.h   wallet/walletdb.h
ren pwalletdbEncryption encrypted_batch

-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>
2020-05-10 12:13:46 -05:00
Jonas Schnelli
aaf5bf1a7e Merge #12878: [refactor] Config handling refactoring in preparation for network-specific sections
77a733a99 [tests] Add additional unit tests for -nofoo edge cases (Anthony Towns)
af173c2be [tests] Check GetChainName works with config entries (Anthony Towns)
fa27f1c23 [tests] Add unit tests for ReadConfigStream (Anthony Towns)
087c5d204 ReadConfigStream: assume the stream is good (Anthony Towns)
6d5815aad Separate out ReadConfigStream from ReadConfigFile (Anthony Towns)
834d30341 [tests] Add unit tests for GetChainName (Anthony Towns)
11b6b5b86 Move ChainNameFromCommandLine into ArgsManager and rename to GetChainName (Anthony Towns)

Pull request description:

  This does a bit of refactoring of the configuration handling code in order to add additional tests to make adding support for [test]/[regtest] sections in the config file in #11862 easier. Should not cause any behaviour changes.

Tree-SHA512: 8d2ce1449fc180de03414e7e569d1a21ba1e9f6564e13d3faf3961f710adc725fa0d4ab49b89ebd2baa11ea36ac5018377f693a84037d386a8b8697c9d6db3e9
2020-05-09 17:35:59 -05:00
UdjinM6
538fcf2f1b
Disable qt menu heuristics for openConfEditorAction (#3466)
Thanks to `TextHeuristicRole` set by default qt confuses `openConfEditorAction` with application settings and binds it as if we would set `PreferencesRole` to it. As a result it opens `dash.conf` when user clicks `Preferences...` and not application settings as one would expect. Explicitly setting `NoRole` fixes it.

Note: this issue only appears in some languages e.g. `de`.
2020-05-02 18:50:36 +03:00
dustinface
6e1c5480cd
qt: Maximize the window if the dock icon gets clicked on macOS (#3465) 2020-05-02 18:50:23 +03:00
UdjinM6
d0bb30838b
Various (mostly trivial) PS fixes (#3457)
* Implement GetDsqThreshold to unify dsq rejection threshold calculations

* Use much simpler/lighter criteria to check if a candidate mixing MN is going to be paid in next 8 blocks

Drop CMasternodePayments::IsScheduled()

* Fix decomposition of txes with 2 outputs

Recognise creation of denoms for txes with 1 denom + 1 change

Fixes an issue introduced in #3347

* Tweak few labels

s/anonymize/mix/

* Prefer larger denoms when starting new mixing queues

Fixes an issue introduced in #3346

* Add an explanation about GetDsqThreshold

* Move GetDsqThreshold comment a bit higher
2020-05-02 18:50:03 +03:00
UdjinM6
b0963b079e
Fix deadlocks (#3456)
* Lock mempool before locking cs_wallet

This fixes deadlocks introduced in 78d303c3fd6fe8103f2cec95a2eff0f6a880a46e/#3361

* Fix mempool.cs vs cs_inventory potential deadlock

POTENTIAL DEADLOCK DETECTED
Previous lock order was:
 pnode->cs_sendProcessing  net.cpp:2724
 cs_main  net_processing.cpp:3867 (TRY)
 (1) pto->cs_inventory  net_processing.cpp:4106
 (2) cs  txmempool.cpp:1137
Current lock order is:
 cs_main  wallet/rpcwallet.cpp:468
 (2) mempool.cs  wallet/rpcwallet.cpp:468
 pwallet->cs_wallet  wallet/rpcwallet.cpp:469
 cs_main  wallet/wallet.cpp:4045
 (2) mempool.cs  wallet/wallet.cpp:4045
 cs_wallet  wallet/wallet.cpp:4046
 cs_vNodes  net.cpp:3464
 (1) cs_inventory  ./net.h:1056
2020-05-02 18:49:49 +03:00
dustinface
124824da41
Backport bitcoin#14123 and bitcoin#16720 (#3463)
* Remove obj_c for macOS Dock icon setting

Qt `setWindowIcon()` does this work.

* Use Qt signal for macOS Dock icon click event

This moves the Dock icon click reaction code to the common place and
allows some cleanup in obj_c code.

According to the Apple's docs `class_replaceMethod` behaves as
`class_addMethod`, if the method identified by name does not yet exist;
or as `method_setImplementation`, if it does exist.

* Remove obj_c for macOS Dock icon menu

Qt `setAsDockMenu()` does this work.

* qt: Add GUIUtil::bringToFront

* qt: Use GUIUtil::bringToFront where possible

* qt: All tray menu actions call showNormalIfMinimized

* qt: Replace objc_msgSend with native syntax

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Co-authored-by: João Barbosa <joao.paulo.barbosa@gmail.com>
2020-04-30 13:28:44 +03:00
UdjinM6
97907b051f Fix autobackup functionality 2020-04-23 14:33:31 -05:00
Wladimir J. van der Laan
7999080c04 Merge #11687: External wallet files
be8ab7d08 Create new wallet databases as directories rather than files (Russell Yanofsky)
26c06f24e Allow wallet files not in -walletdir directory (Russell Yanofsky)
d8a99f65e Allow wallet files in multiple directories (Russell Yanofsky)

Pull request description:

  This change consists of three commits:

  * The first commit is a pure refactoring that removes the restriction that two wallets can only be opened at the same time if they are contained in the same directory.
  * The second commit removes the restriction that `-wallet` filenames can only refer to files in the `-walletdir` directory.
  * The third commit makes second commit a little safer by changing bitcoin to create wallet databases as directories rather than files, so they can be safely backed up.

  All three commits should be straightforward:

  *  The first commit adds around 20 lines of new code and then updates a bunch of function signatures (generally updating them to take plain fs::path parameters, instead of combinations of strings, fs::paths, and objects like CDBEnv and CWalletDBWrapper).
  * The second commit removes two `-wallet` filename checks and adds some test cases to the multiwallet unit test.
  * The third commit just changes the mapping from specified wallet paths to bdb environment & data paths.

    ---

  **Note:** For anybody looking at this PR for the first time, I think you can skip the comments before _20 Nov_ and start reading at https://github.com/bitcoin/bitcoin/pull/11687#issuecomment-345625565. Comments before  _20 Nov_ were about an earlier version of the PR that didn't include the third commit, and then confusion from not seeing the first commit.

Tree-SHA512: 00bbb120fe0df847cf57014f75f1f7f1f58b0b62fa0b3adab4560163ebdfe06ccdfff33b4231693f03c5dc23601cb41954a07bcea9a4919c8d42f7d62bcf6024
2020-04-23 14:33:31 -05:00
pasta
6db01000cf 13017 continued
Signed-off-by: pasta <pasta@dashboost.org>
2020-04-23 14:33:31 -05:00
10xcryptodev
93aa640af8
Fix #3248: use blue logo for Traditional theme (#3441)
* #3248 use blue logo for Traditional theme

* review tab space and blue logo name

* change file order and spaces

* Revert "review tab space and blue logo name"

This reverts commit 31e0c3d0e9.
2020-04-19 14:05:37 +03:00
PastaPastaPasta
97742a14d8
Merge bitcoin#10762: [wallet] Remove Wallet dependencies from init.cpp (#3412)
* Merge #10762: [wallet] Remove Wallet dependencies from init.cpp

c7ec524 [wallet] Add dummy wallet init class (John Newbery)
49baa4a [wallet] Use global g_wallet_init_interface to init/destroy the wallet. (John Newbery)
caaf972 [wallet] Create wallet init interface. (John Newbery)
5fb5421 [wallet] Move wallet init functions into WalletInit class. (John Newbery)

Pull request description:

  This continues the work of #7965. This PR, along with several others, would remove the remaining dependencies from libbitcoin_server.a on libbitcoin_wallet.a.

  To create the interface, I've just translated all the old init.cpp wallet function calls into an interface class. I've not done any thinking about whether it makes sense to change that interface by combining/splitting those calls. This is a purely internal interface, so there's no problem in changing it later.

Tree-SHA512: 32ea57615229c33fd1a7f2f29ebc11bf30337685f7211baffa899823ef74b65dcbf068289c557a161c5afffb51fdc38a2ee8180720371f64d433b12b0615cf3f
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/dashd.cpp
#	src/init.cpp

* a couple of fixes

Signed-off-by: Pasta <pasta@dashboost.org>

* move privatesend launch options help into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* remove ENABLE_WALLET for AutoLockMasternodeCollaterals

Signed-off-by: Pasta <pasta@dashboost.org>

* move a wallet param interaction into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* move PrivateSend init to wallet/init.h

Signed-off-by: Pasta <pasta@dashboost.org>

* move privatesend scheduler into wallet.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* remove unneeded import

Signed-off-by: Pasta <pasta@dashboost.org>

* move KeePass init and InitAutoBackup into wallet/init.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* Fix 10762

Changes:
- Should backup wallets before trying to verify them. This is because `-salvagewallet` is very dangerous and can actually corrupt wallets making them irreparably broken.
- No reason to make `schedulePrivateSendClientMaintenance` a part of the wallet (interface) because `privateSendClient` is a global object not tied to the wallet directly atm.
- Should not run client-side mixing on masternodes.
- Fix `InitAutoBackup` signature in `DummyWalletInit`.

* remove boost dependancy in wallet/init.cpp

Signed-off-by: pasta <pasta@dashboost.org>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-04-18 12:59:40 +03:00
Wladimir J. van der Laan
5aee3ef4e9
Merge bitcoin#12617: gui: Show messages as text not html
Currently, error messages (such as InitError) are displayed as-is, which
means Qt does auto detection on the format.

This means that it's possible to inject HTML from the command line
though e.g. specifying a wallet name with HTML in it. This isn't
a direct security risk because fetching content from internet is
disabled (and as far as I know we never report strings received
from the network this way). However, it can be confusing.

So explicitly force the format as text.
2020-04-16 10:24:22 -05:00
Wladimir J. van der Laan
d7cbaec108
Merge #12432: [qt] send: Clear All also resets coin control options
f506c0a7f [qt] send: Clear All also resets coin control options (Sjors Provoost)

Pull request description:

  This change makes it so that a custom change address and manual input selection are removed if the user clicks Clear All in the send screen.

Tree-SHA512: 78746043a74c9c26ef476eb0df7ce95411683749d9f6b2747222eaac751e241ea7d4d7ce9e4e69ed0b19fa76754d8584e5bef5bba1ad6598f8e39c784b4264d2
2020-04-16 10:24:22 -05:00
Wladimir J. van der Laan
b08a1f9ec1 Merge #12793: qt: Avoid reseting on resetguisettigs=0
342fb80 qt: Avoid resetting on resetguisettigs=0 (MarcoFalke)

Pull request description:

  Shouldn't be affecting anyone, but might still be worth to fix at some point.

Tree-SHA512: af7fe67f1e8b3a0ff041258e3056d2e3e518258b015ee765f291e91fca86a7f7cd43c83844fd83f00a52dac2cf382db5d568aab91db636a031040551bd34172d
2020-04-15 21:01:41 -05:00
PastaPastaPasta
8ade2f7957
Merge bitcoin#11281: Avoid permanent cs_main/cs_wallet lock during RescanFromTime (#3411)
* Merge #11281: Avoid permanent cs_main/cs_wallet lock during RescanFromTime

7f81250 Mention that other RPC calls report keys as "imported" while txns are still missing (Jonas Schnelli)
ccd8ef6 Reduce cs_main lock in ReadBlockFromDisk, only read GetBlockPos under the lock (Jonas Schnelli)
bc356b4 Make sure WalletRescanReserver has successfully reserved the rescan (Jonas Schnelli)
dbf8556 Add RAII wallet rescan reserver (Jonas Schnelli)
8d0b610 Avoid pemanent cs_main/cs_wallet lock during wallet rescans (Jonas Schnelli)

Pull request description:

  Right now, we are holding `cs_main`/`cs_wallet` during the whole rescan process (which can take a couple of hours).
  This was probably only done because of laziness and it is an important show-stopper for #11200 (GUI rescan abort).

Tree-SHA512: 0fc3f82d0ee9b2f013e6bacba8d59f7334306660cd676cd64c47bb305c4cb7c7a36219d6a6f76023b74e5fe87f3ab9fc7fd2439e939f71aef653fddb0a1e23b1
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/wallet/rpcdump.cpp
#	src/wallet/test/wallet_tests.cpp
#	src/wallet/wallet.h

* remove "LearnAllRelatedScripts"

Signed-off-by: Pasta <pasta@dashboost.org>

* fix importelectrumwallet

Signed-off-by: Pasta <pasta@dashboost.org>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2020-04-14 13:01:03 +03:00
Luke Dashjr
38ccf6f628
Bugfix: Include <memory> for std::unique_ptr 2020-04-08 11:46:27 -05:00
Pasta
af2cf2028e
fix
Signed-off-by: Pasta <pasta@dashboost.org>
2020-04-05 11:06:11 -05:00
Jonas Schnelli
625142bfa0
Merge #12327: [gui] Defer coin control instancing
6558f8acc [gui] Defer coin control instancing (João Barbosa)

Pull request description:

  Defer the GUI coin control instancing so that argument processing
  is taken into account for the default coin control values.

  Fixes #12312

Tree-SHA512: ecda28b94f4709319e9484b01afe763c7c3569097d2afb89db79da8a195c46d20ea77166df7edce0c8ab77627b295def01c072148714503436d27675d5e75d99
2020-04-05 11:06:11 -05:00
Wladimir J. van der Laan
7fb5b5b3a5
Merge #12173: [Qt] Use flexible font size for QRCode image address
59f9e2a Use flexible font size for QRCode image address (Jonas Schnelli)

Pull request description:

  Bech32 addresses are currently cut off in the QRCode image in the GUI receive tab.
  This adds a simple font size calculation logic that "must" (down to 4pt) fix into the given image width.

  Examples OSX HiDPI:
  <img width="332" alt="bildschirmfoto 2018-01-12 um 11 25 40" src="https://user-images.githubusercontent.com/178464/34896144-c0c65d76-f78c-11e7-93e1-94dc8e203269.png">
  <img width="322" alt="bildschirmfoto 2018-01-12 um 11 25 46" src="https://user-images.githubusercontent.com/178464/34896145-c0edfe1c-f78c-11e7-8c09-c15155e2160e.png">

  Examples Ubuntu non HIDPI:
  <img width="314" alt="bildschirmfoto 2018-01-12 um 11 27 51" src="https://user-images.githubusercontent.com/178464/34896151-c88347f4-f78c-11e7-8a03-df8049dcfed6.png">
  <img width="322" alt="bildschirmfoto 2018-01-12 um 11 27 42" src="https://user-images.githubusercontent.com/178464/34896152-c8bb881c-f78c-11e7-89d2-6f04ec608a19.png">

Tree-SHA512: d749763fb748b146f77fd8d88fb7d29b07a46cde0b0f303a4006ae9cc3521b3c2e8ab43b828e243514109379898b198552e17b8f316c5a869b0cc8246b054b86
2020-04-05 11:06:05 -05:00
Wladimir J. van der Laan
232bd29936 Merge #12999: qt: Show the Window when double clicking the taskbar icon
67bf2aa qt:Show the entire Window when double clicking on taskbar (Chun Kuan Lee)

Pull request description:

  fix #12838

Tree-SHA512: 4498bc1fe52efeed3768d6bdd7941e4b036d52ae80d9c1b6679c6daa3a62aeda4cff0c91fe1c65afaea6049c59cb0296fdcbff63ecb342d518615a92361fda7f
2020-04-03 04:11:11 -05:00
Wladimir J. van der Laan
547aef1b0b Merge #12650: gui: Fix issue: "default port not shown correctly in settings dialog"
40c5886 Fix illegal default `addProxy` and `addrSeparateProxyTor` settings. (251)

Pull request description:

  In f05d349 the value of the `addrProxy` and `addrSeparateProxyTor` settings is set to an illegal default value, because the value of `DEFAULT_GUI_PROXY_PORT ` is passed to the `fieldWidth` parameter of the `QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const` method:

  29fad97c32/src/qt/optionsmodel.cpp (L129)

  29fad97c32/src/qt/optionsmodel.cpp (L139)

  This will create a default proxy setting that consists of 9053 characters and ends with the string `127.0.0.1:%2`.

  This PR attempts to resolve #12623 by setting the correct value for the `addrProxy` and `addrSeparateProxyTor` settings (i) if the proxy setting does not exist; or (ii) if the proxy setting has an illegal value caused by to the aforementioned bug.

  The second condition is *only* relevant if we don't want Bitcoin Core 0.16.0 users to explicitly reset their settings to see the correct default proxy port value.

Tree-SHA512: 3dc3de2eb7da831f6e318797df67341ced2076b48f9b561c73677bf6beb67b259d8e413095f290356fb92e32e4e8162d48accbc575c4e612060fd5d6dde7ac8d
2020-04-03 04:08:11 -05:00
Wladimir J. van der Laan
fe8c18ca77 Merge #10574: Remove includes in .cpp files for things the corresponding .h file already included
a720b92 Remove includes in .cpp files for things the corresponding .h file already included (practicalswift)

Pull request description:

  Remove includes in .cpp files for things the corresponding .h file already included.

  Example case:
  * `addrdb.cpp` includes `addrdb.h` and `fs.h`
  * `addrdb.h` includes `fs.h`

  Then remove the direct inclusion of `fs.h` in `addrman.cpp` and rely on the indirect inclusion of `fs.h` via the included `addrdb.h`.

  In line with the header include guideline (see #10575).

Tree-SHA512: 8704b9de3011a4c234db336a39f7d2c139e741cf0f7aef08a5d3e05197e1e18286b863fdab25ae9638af4ff86b3d52e5cab9eed66bfa2476063aa5c79f9b0346
2020-04-01 12:43:18 -05:00
MarcoFalke
a98db86ada Merge #10493: Use range-based for loops (C++11) when looping over map elements
680bc2cbb Use range-based for loops (C++11) when looping over map elements (practicalswift)

Pull request description:

  Before this commit:

  ```c++
  for (std::map<T1, T2>::iterator x = y.begin(); x != y.end(); ++x) {
      T1 z = (*x).first;
      …
  }
  ```

  After this commit:

  ```c++
  for (auto& x : y) {
      T1 z = x.first;
      …
  }
  ```

Tree-SHA512: 954b136b7f5e6df09f39248a6b530fd9baa9ab59d7c2c7eb369fd4afbb591b7a52c92ee25f87f1745f47b41d6828b7abfd395b43daf84a55b4e6a3d45015e3a0
2020-04-01 12:43:18 -05:00
Wladimir J. van der Laan
c01e39d610 Merge #12266: Move scheduler/threadGroup into common-init instead of per-app
082a61c Move scheduler/threadGroup into common-init instead of per-app (Matt Corallo)

Pull request description:

  This resolves #12229 which pointed out a shutdown deadlock due to
  scheduler/checkqueue having been shut down while network message
  processing is still running.

Tree-SHA512: 0c0a76113996b164b0610d3b8c40b396f3e384d165bf098768e31fe3701b00763d0d810ef24702387e2e936fefb9fb900a6225f7417bb0175b585f365d542660
2020-03-23 12:42:14 +01:00
UdjinM6
b188c5c25e
Refactor some PrivateSend related code to use WalletModel instead of accessing the wallet directly from qt (#3345)
* Use item data to figure out PS rounds for the input selected in CoinControl dialog

* Access GetRealOutpointPrivateSendRounds through WalletModel in CoinControl dialog

Instead of accessing the walet directly

* Make OverviewPage::privateSendStatus() mockable

GetTimeMillis() -> GetTime()

* Refactor PS related code in overviewpage to access wallet via wallet model
2020-03-20 01:48:24 +03:00
UdjinM6
9efa0e3d82
Merge pull request #3361 from PastaPastaPasta/backports-0.16-pr11
Backports 0.16 pr11
2020-03-20 01:47:53 +03:00
PastaPastaPasta
8a1ec935a0
Backport 11651 (#3358)
* scripted-diff: Replace #include "" with #include <> (ryanofsky)

-BEGIN VERIFY SCRIPT-
for f in \
  src/*.cpp \
  src/*.h \
  src/bench/*.cpp \
  src/bench/*.h \
  src/compat/*.cpp \
  src/compat/*.h \
  src/consensus/*.cpp \
  src/consensus/*.h \
  src/crypto/*.cpp \
  src/crypto/*.h \
  src/crypto/ctaes/*.h \
  src/policy/*.cpp \
  src/policy/*.h \
  src/primitives/*.cpp \
  src/primitives/*.h \
  src/qt/*.cpp \
  src/qt/*.h \
  src/qt/test/*.cpp \
  src/qt/test/*.h \
  src/rpc/*.cpp \
  src/rpc/*.h \
  src/script/*.cpp \
  src/script/*.h \
  src/support/*.cpp \
  src/support/*.h \
  src/support/allocators/*.h \
  src/test/*.cpp \
  src/test/*.h \
  src/wallet/*.cpp \
  src/wallet/*.h \
  src/wallet/test/*.cpp \
  src/wallet/test/*.h \
  src/zmq/*.cpp \
  src/zmq/*.h
do
  base=${f%/*}/ relbase=${base#src/} sed -i "s:#include \"\(.*\)\"\(.*\):if test -e \$base'\\1'; then echo \"#include <\"\$relbase\"\\1>\\2\"; else echo \"#include <\\1>\\2\"; fi:e" $f
done
-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>

* scripted-diff: Replace #include "" with #include <> (Dash Specific)

-BEGIN VERIFY SCRIPT-
for f in \
  src/bls/*.cpp \
  src/bls/*.h \
  src/evo/*.cpp \
  src/evo/*.h \
  src/governance/*.cpp \
  src/governance/*.h \
  src/llmq/*.cpp \
  src/llmq/*.h \
  src/masternode/*.cpp \
  src/masternode/*.h \
  src/privatesend/*.cpp \
  src/privatesend/*.h
do
  base=${f%/*}/ relbase=${base#src/} sed -i "s:#include \"\(.*\)\"\(.*\):if test -e \$base'\\1'; then echo \"#include <\"\$relbase\"\\1>\\2\"; else echo \"#include <\\1>\\2\"; fi:e" $f
done
-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>

* build: Remove -I for everything but project root

Remove -I from build system for everything but the project root,
and built-in dependencies.

Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/Makefile.test.include

* qt: refactor: Use absolute include paths in .ui files

* qt: refactor: Changes to make include paths absolute

This makes all include paths in the GUI absolute.

Many changes are involved as every single source file in
src/qt/ assumes to be able to use relative includes.

Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/qt/dash.cpp
#	src/qt/optionsmodel.cpp
#	src/qt/test/rpcnestedtests.cpp

* test: refactor: Use absolute include paths for test data files

* Recommend #include<> syntax in developer notes

* refactor: Include obj/build.h instead of build.h

* END BACKPORT #11651 Remove trailing whitespace causing travis failure

* fix backport 11651

Signed-off-by: Pasta <pasta@dashboost.org>

* More of 11651

* fix blockchain.cpp

Signed-off-by: pasta <pasta@dashboost.org>

* Add missing "qt/" in includes

* Add missing "test/" in includes

* Fix trailing whitespaces

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
Co-authored-by: MeshCollider <dobsonsa68@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-03-20 01:46:56 +03:00
Wladimir J. van der Laan
aa34483efd
Merge #12374: qt: Make sure splash screen is freed on AppInitMain fail
1e5d14b qt: Clarify some comments (Wladimir J. van der Laan)
f5a4c3d qt: Make sure splash screen is freed on AppInitMain fail (Wladimir J. van der Laan)

Pull request description:

  The `splashFinished` event was never sent if AppInitMain fails, causing the splash screen to stick around, causing problems later.

  This bug has existed for a while but is now trigging potential crashed because the splash screen subscribes to wallet events.

  Meant to fix #12372.

Tree-SHA512: 192a7e3a528015e771d7860dd95fd7b772292fd8064abf2a3cf3a8ea0d375cd43a6e8ed37ca1a38962fe1410c934599e557adf6a8ef9d87ec7f61b6e5fd8db7e
2020-03-14 22:01:59 -05:00
Wladimir J. van der Laan
7e5c5d40d1
Merge #12377: qt: Poll ShutdownTimer after init is done
2222bf0 qt: Poll ShutdownTimer after init is done (MarcoFalke)

Pull request description:

  The shutdown process has started in `requestShutdown`, but initialize will happily continue with `initializeResult` and start threads late in the shutdown progess. Deleting this running thread will crash the application according to the qt docs:
  e5033a5c9b/src/corelib/thread/qthread.cpp (L412-L415)

  Potential fix for https://github.com/bitcoin/bitcoin/issues/12372#issuecomment-363642332

  This reverts #11831 for now and hopefully restores the previous behaviour.

Tree-SHA512: 8e1706afe90ddf2d972aca12c12d4cb2a9a4f38646c59c5466fe5a1a67361896b93c43917d5ac283841ee2bcc62e6bb8dc2bc81dea9129c899b354e9a4ef241b
2020-03-14 22:01:59 -05:00
UdjinM6
c6911354a1
Few tweaks for MakeCollateralAmounts (#3347)
* Few tweaks for MakeCollateralAmounts

Fail early, avoid creating non-usable change outputs

* Adjust wallet logic to display "make collaterals" txes correctly when we create one using non-max amount
2020-03-12 13:32:12 +03:00
UdjinM6
73258b363b
Merge pull request #3354 from PastaPastaPasta/backports-0.16-pr10
Backports 0.16 pr10
2020-03-10 14:57:35 +03:00
Wladimir J. van der Laan
c1897a6f14
Merge #11043: Use std::unique_ptr (C++11) where possible
a357293 Use MakeUnique<Db>(...) (practicalswift)
3e09b39 Use MakeUnique<T>(...) instead of std::unique_ptr<T>(new T(...)) (practicalswift)
8617989 Add MakeUnique (substitute for C++14 std::make_unique) (practicalswift)
d223bc9 Use unique_ptr for pcoinscatcher/pcoinsdbview/pcoinsTip/pblocktree (practicalswift)
b45c597 Use unique_ptr for pdbCopy (Db) and fix potential memory leak (practicalswift)
29ab96d Use unique_ptr for dbenv (DbEnv) (practicalswift)
f72cbf9 Use unique_ptr for pfilter (CBloomFilter) (practicalswift)
8ccf1bb Use unique_ptr for sem{Addnode,Outbound} (CSemaphore) (practicalswift)
73db063 Use unique_ptr for upnp_thread (boost::thread) (practicalswift)
0024531 Use unique_ptr for dbw (CDBWrapper) (practicalswift)
fa6d122 Use unique_ptr:s for {fee,short,long}Stats (TxConfirmStats) (practicalswift)
5a6f768 Use unique_ptr for httpRPCTimerInterface (HTTPRPCTimerInterface) (practicalswift)
860e912 Use unique_ptr for pwalletMain (CWallet) (practicalswift)

Pull request description:

  Use `std::unique_ptr` (C++11) where possible.

  Rationale:
  1. Avoid resource leaks (specifically: forgetting to `delete` an object created using `new`)
  2. Avoid undefined behaviour (specifically: double `delete`:s)

  **Note to reviewers:** Please let me know if I've missed any obvious `std::unique_ptr` candidates. Hopefully this PR should cover all the trivial cases.

Tree-SHA512: 9fbeb47b800ab8ff4e0be9f2a22ab63c23d5c613a0c6716d9183db8d22ddbbce592fb8384a8b7874bf7375c8161efb13ca2197ad6f24b75967148037f0f7b20c
2020-02-29 11:51:03 -06:00
Wladimir J. van der Laan
a321e6195f
Merge #11259: Remove duplicate destination decoding
86e6dd4b6 Remove duplicate destination decoding (João Barbosa)
8d0041e60 Remove unused GetKeyID and IsScript methods from CBitcoinAddress (João Barbosa)

Pull request description:

  Follow up of #11117, this patch removes an extra unnecessary destination decoding that was identified while reviewing #11117. It is also the only case where `IsValidDestinationString` is called before `DecodeDestination`.

  For reference see [comment](https://github.com/bitcoin/bitcoin/pull/11117#discussion_r137145517).

Tree-SHA512: f5ff5cb28a576ccd819a058f102188bde55654f30618520cc680c91d2f6e536fe038fc7220dd2d2dd64c6175fcb23f89b94b48444521e11ddec0b2f8ef2c05dd
2020-02-29 11:51:03 -06:00
Wladimir J. van der Laan
315504c8c3
Merge #11809: gui: Fix proxy setting options dialog crash
f05d349 gui: Fix proxy setting options dialog crash (Wladimir J. van der Laan)

Pull request description:

  This fixes a crash bug when opening the options dialog.

  - Check the return value of split() to avoid segmentation faults due to   out of bounds when the user manages to enter invalid proxy settings.  This is reported resonably often.

  - Move the default proxy/port to a constant instead of hardcoding magic values.

  - Factor out some common code.

  - Revert #11448 because this proves a more robust replacement, it is no longer necessary and didn't generally solve the issue.

  No attempt is made to do full sanity checking on the proxy, so it can still be rejected by the core with an InitError message.

Tree-SHA512: 72b700b7d6c4d3e3410f0c60e9e4facf93d7c6c1a1b6b23957c48b074a045970f518166952859d1ebca8620062cb70d222670a7310bbd6fe50550ec6d04417b5
2020-02-27 09:41:22 -06:00
PastaPastaPasta
3a83c3ada0
Partial Merge #10420: Add Qt tests for wallet spends (#3317)
5749a4882 Add Qt tests for wallet spends & bumpfee (Russell Yanofsky)

Tree-SHA512: 026785e7b5ab662f37029d0694916757e46e68bf10e1a7bf1e8538a36593ada0768c6cf3c810c66d65fad891c137fc8bb13904ed09ab3bcffd6cf43d09e48621
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/qt/test/wallettests.cpp
#	src/qt/transactionview.cpp

Co-authored-by: Jonas Schnelli <github@jonasschnelli.ch>
2020-02-12 16:48:02 +03:00
UdjinM6
e3db956835
Merge pull request #3324 from PastaPastaPasta/backports-0.16-pr8
Backports 0.16 pr8
2020-02-12 16:41:47 +03:00
UdjinM6
737b1eab8f
Bring back "about" menu icon (#3329) 2020-02-11 16:49:40 +03:00
Wladimir J. van der Laan
2c7b29bac5
Merge #11466: Specify custom wallet directory with -walletdir param
c1e5d40 Make debugging test crash easier (MeshCollider)
8263f6a Create walletdir if datadir doesn't exist and fix tests (MeshCollider)
9587a9c Default walletdir is wallets/ if it exists (MeshCollider)
d987889 Add release notes for -walletdir and wallets/ dir (MeshCollider)
80c5cbc Add test for -walletdir (MeshCollider)
0530ba0 Add -walletdir parameter to specify custom wallet dir (MeshCollider)

Pull request description:

  Closes #11348

  Adds a `-walletdir` parameter which specifies a directory to use for wallets, allowing them to be stored separately from the 'main' data directory. Creates a new `wallets/` directory in datadir if this is the first time running, and defaults to using it if it exists.

  Includes tests and release notes. Things which might need to be considered more:
  - there is no 'lock' on the wallets directory, which might be needed?
  - because this uses a new wallets/ directory by default, downgrading to an earlier version won't see the wallets in that directory (not a big deal though, users can just copy them up to the main dir)
  - jnewbery suggested putting each wallet in its own directory, which is a good idea, but out of scope for this PR IMO. EDIT: this is being done in https://github.com/bitcoin/bitcoin/pull/11687
  - doc/files.md needs updating (will do soon)

  I also considered including  a cleanup by removing caching of data directory paths and instead just initialise them once on startup (c.f. #3073), but decided it wasn't super relevant here will just complicate review.

Tree-SHA512: c8ac04bfe9a810c32055f2c8b8fa0d535e56125ceb8d96f12447dd3538bf3e5ee992b60b1cd2173bf5f3fa023a9feab12c9963593bf27ed419df929bb413398d
2020-02-08 23:33:25 -06:00
UdjinM6
f2db4e7d66
Merge pull request #3316 from PastaPastaPasta/backports-0.16-pr7
Backports 0.16 pr7
2020-02-04 15:32:11 +03:00
UdjinM6
2c305d02d5
Update translations 2020-02-03 (#3322)
100%: pl, tr, zh_TW
2020-02-03 21:18:23 +03:00
UdjinM6
e018257983
Fix dark text on dark background in combobox dropdowns on windows (#3315) 2020-02-01 04:59:20 +03:00
UdjinM6
a3f779d08f
Fix qt/test/wallettests.cpp 2020-01-31 10:18:39 -06:00
MarcoFalke
6d8738eb9e
Merge #11365: [Tests] Add Qt GUI tests to Overview and ReceiveCoin Page
634e38ca7 [Tests] Add Qt GUI tests to Overview and ReceiveCoin Page (Anditto Heristyo)

Pull request description:

  I've added some Qt wallet tests based on #9974, namely the input & buttons on ReceiveCoin.

Tree-SHA512: f4223827145e35c2abee83a6ca777498bebcff3825fece10fbb1dbfd1f6bb017d3f2c0521662854b4407cdeee9c6a527269ab9cc28e0dc85c11b668155fcd195
2020-01-31 10:18:14 -06:00
Wladimir J. van der Laan
21b7d3e81c
Merge #11193: [Qt] Terminate string *pszExePath after readlink and without using memset
3a4401a [Qt] Terminate string *pszExePath after readlink and without using memset (practicalswift)

Pull request description:

  Terminate string `*pszExePath` after `readlink` and before passing to operator `<<`.

  * `ssize_t readlink(const char *pathname, char *buf, size_t bufsiz)` does not append a null byte to `buf`.
  * Operator `<<` expects a null-terminated string.

Tree-SHA512: fc18844bb23059fead8db0cb9b4b4ba6188f58e3f19ab4719c2737cc5dd6df23ae7d4804ef2820d39b334204a48ee3de1d202c272bcd156e60761af2fcb9349d
2020-01-31 07:43:43 -06:00
Jonas Schnelli
291051f209
Merge #12074: [qt] Optimizes boolean expression model && model->haveWatchOnly()
6dda059bd [qt] Simplifies boolean expression model && model->haveWatchOnly() (251)

Pull request description:

  This PR optimizes the boolean expression `model && model->haveWatchOnly()` to `model->haveWatchOnly()`.

  The boolean expression can be optimized because the method `TransactionView::exportClicked` already guards against a potential dereferenced null pointer by returning early if `model` is null.
  63a4dc1087/src/qt/transactionview.cpp (L351-L353)

Tree-SHA512: 8bdd0d05bf879745fa39d3ca7524471720ae08ceee9427d5a08776e7b56d18542ae87a6991cd6779e232305f504fdfc77223702b72ecbe231f5f5e98453456dd
2020-01-31 07:43:43 -06:00
Wladimir J. van der Laan
49825231fb
Merge #10839: Don't use pass by reference to const for cheaply-copied types (bool, char, etc.)
99ba0c3 Don't use pass by reference to const for cheaply-copied types (bool, char, etc.). (practicalswift)

Pull request description:

  Don't use pass by reference to const for cheaply-copied types (`bool`, `char`, etc.).

Tree-SHA512: ccad5e2695dff0b3d6de3e713ff3448f2981168cdac72d73bee10ad346b9919d8d4d588933369e54657a244b8b222fa0bef919bc56d983e1fa64b2004e51b225
2020-01-31 07:43:43 -06:00
UdjinM6
0fee42effa
Merge pull request #3312 from PastaPastaPasta/backports-0.16-pr6
Backports 0.16 pr6
2020-01-31 14:05:32 +03:00
UdjinM6
3bcf23fac7
Merge pull request #3305 from PastaPastaPasta/backport-11363
Backport P2P refactor
2020-01-31 13:54:16 +03:00
UdjinM6
015a2a2f57
Merge pull request #3300 from PastaPastaPasta/backports-0.16-pr5
Backports 0.16 pr5
2020-01-31 13:53:29 +03:00
Pasta
42583216fe
addressWidget -> search_widget
Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-30 07:32:32 -06:00
Jonas Schnelli
4f2fcbd1a3
Merge #11395: Qt: Enable searching by transaction id
eac2abca0 Qt: Enable searching by transaction id (Luke Dashjr)
c407c61c5 Qt: Avoid invalidating the search filter, when it doesn't really change (Luke Dashjr)
b1f634242 Qt: Rename confusingly-named "address prefix" to "search string" (Luke Dashjr)

Pull request description:

Tree-SHA512: 1c67037d19689fbaff21d15ed7848ac86188e5de34728312e1f9758dada759cab50d913a5bc09e413ecaa3e07557cf253809b95b5637ff79f2e3cf24d86dd3ed
2020-01-29 16:25:23 -06:00
Wladimir J. van der Laan
c7b8b2b35c
Merge #11698: [Docs] [Qt] RPC-Console nested commands documentation
c3055bb Add help-console command to Qt debug console (Luke Mlsna)

Pull request description:

  This PR would close issue #9195 by adding documentation for the debug console features (mainly nested commands) which were added in [PR #7783](https://github.com/bitcoin/bitcoin/pull/7783).

  The following changes were made to QT debug console code:
  - Added a line to the initial message text at the top of the debug console:

  > For more information on using this console type **help-console**.

  - Added a pseudo-command `help-console` which is hooked after parsing the request, but before actually executing the RPC thread. It prints the following text to the console as if it were a valid RPC response.

  > This console accepts RPC commands using the standard syntax.
  >    example:    getblockhash 8
  > This console can also accept RPC commands using bracketed syntax.
  >    example:    getblockhash(8)
  > A space or a comma can be used to separate arguments for either syntax.
  >    example:    sendtoaddress \<address\> \<amount\>
  >                    sendtoaddress,\<address\>,\<amount\>
  > Commands may be nested when specified with the bracketed syntax.
  >    example:    getblockinfo(getblockhash(0),true).
  > Result values can be queried with a non-quoted string in brackets.
  >    example:    getblock(getblockhash(0) true)[height]

  This seemed like a reasonably sane way to introduce a fake RPC help command, but

Tree-SHA512: 35d73dcef9c4936b8be99e80978169f117c22b94f4400c91097bf7e0e1489060202dcd738d9debdf4c8a7bd10709e2c19d4f625f19e47c4a034f1d6019c0e0f2
2020-01-29 16:24:45 -06:00
Wladimir J. van der Laan
11d59e785d
Merge #10920: [qt] Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet)
446e261 [qt] Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet) (practicalswift)

Pull request description:

  Fix potential memory leak in `newPossibleKey(ChangeCWallet *wallet)`.

Tree-SHA512: 252d3828133a0d241cc649aed1280e14a5d5ea47b7b2989039cfa5061a8e35183c7f36d7320aa0ac1b4dcab31e584b358dbbb2fe645a412371d0a460878e2b58
2020-01-29 16:24:21 -06:00
Wladimir J. van der Laan
88197c7414
Merge #11448: [gui] reset addrProxy/addrSeparateProxyTor if colon char missing
ce2418f [gui] reset addrProxy/addrSeparateProxyTor if colon char missing (Cristian Mircea Messel)

Pull request description:

  If addrProxy or addrSeparateProxyTor do not have a colon in the string
  somewhere in the QSettings storage, then attempting to open the options
  dialog will cause the entire program to crash.

  Fixes #11209

Tree-SHA512: 2d9e6987cf05af3f41033290b61d00920f7fe4a65bea7efd96ed417a8ca7866d248f091e09947cc8aad3a6a4aa8b7777211cfff7f379a62188be50df2c46d4b2
2020-01-26 01:10:21 -06:00
UdjinM6
da7686c936
Update translations 2020-01-23 (#3302)
100%: es, ko
97%+: ro, zh_TW
2020-01-24 17:08:56 +03:00
Pasta
7bbe84b3cb
Revert "remove explicit on FreespaceChecker"
This reverts commit aef1eb00a4.
2020-01-22 16:12:42 -06:00
MarcoFalke
abc0fb08be
Merge #3716: GUI: Receive: Remove option to reuse a previous address
927f4ff5a GUI: Receive: Remove option to reuse a previous address (Luke Dashjr)

Pull request description:

  This was justified by the need to "resent" an invoice, but now that we have the request history, that need should be gone.

Tree-SHA512: 4ade4eb84a21bbbd8dcc3a2c9580d416e113284b5bdf350c22051c233101fe0ee31659c54a7a46e7136f9c999acb61efbbb3f97aeb2fa7b2b1e1daec02ca0837
2020-01-22 09:24:25 -06:00
MarcoFalke
efea72890c
Merge #11623: tests: Add missing locks to tests
109a85899 tests: Add missing locks to tests (practicalswift)

Pull request description:

  Add missing locks to tests to satisfy lock requirements (such as `EXCLUSIVE_LOCKS_REQUIRED(...)` (Clang Thread Safety Analysis, see #11226), `AssertLockHeld(...)` and implicit lock assumptions).

Tree-SHA512: 1aaeb1da89df1779f02fcceff9d2f8ea24a3926d421f9ea305a19be04dd0b3e63d91f6c1ed22fb7e6988343f6a5288829a387ef872cfa7b6add57bd01046b5d9
Signed-off-by: Pasta <pasta@dashboost.org>

# Conflicts:
#	src/test/test_bitcoin.cpp
2020-01-22 09:24:25 -06:00
MarcoFalke
bb43baf7c4
Merge #11316: [qt] Add use available balance in send coins dialog (CryptAxe, promag)
d052e3847 [qt] Add use available balance in send coins dialog (CryptAxe)

Pull request description:

  This is an alternative to #11098 to handle #11033 where a new button `Use available balance` is added to each entry. When activated, the available balance is calculated by using the coin control (if any) and then it's subtracted the remaining recipient amounts. If this amount is positive then the `Subtract fee from amount` is automatically selected.

  Comparing to #11098, this has the advantage to avoid the fair amount division over the recipients and allows to fine adjust the amounts in multiple iterations.

  Started from @CryptAxe commit 89e9eda to credit some code.

  <img width="965" alt="screen shot 2017-09-13 at 01 32 44" src="https://user-images.githubusercontent.com/3534524/30354518-e1bee31c-9824-11e7-9354-300aa63cdfd0.png">
  <img width="964" alt="screen shot 2017-09-13 at 01 44 57" src="https://user-images.githubusercontent.com/3534524/30354598-5731ac9c-9825-11e7-9d5f-8781988ed219.png">

Tree-SHA512: 01d20c13fd8b6c2a0ca1d74d3a9027c6922e6dccd3b08e59d5a72636be7072ed5eca7ebc5d431299497dd3374e83753220ad4174d8bc46dadb4b2f54973036a5
2020-01-22 09:24:25 -06:00
Wladimir J. van der Laan
354f57a838
Merge #10368: [wallet] Remove helper conversion operator from wallet
5a5e4e9 [wallet] Remove CTransaction&() helper conversion operator from wallet implementation. (Karl-Johan Alm)

Pull request description:

  The `CTransaction&()` operator in `CMerkleTx` makes conversion into `CTransaction`s transparent, but was marked as to-be-removed in favor of explicitly getting the `tx` ivar, presumably as the operator can lead to ambiguous behavior and makes the code harder to follow.

  This PR removes the operator and adapts callers. This includes some cases of `static_cast<CTransaction>(wtx)` → `*wtx.tx`, which is definitely an improvement.

Tree-SHA512: 95856fec7194d6a79615ea1c322abfcd6bcedf6ffd0cfa89bbdd332ce13035fa52dd4b828d20df673072dde1be64b79c513529a6f422dd5f0961ce722a32d56a
2020-01-22 09:11:34 -06:00
Wladimir J. van der Laan
3bae57af8d
Merge #10696: Remove redundant nullptr checks before deallocation
b109a1c Remove redundant nullptr checks before deallocation (practicalswift)

Pull request description:

  Rationale:
  * `delete ptr` is a no-op if `ptr` is `nullptr`

Tree-SHA512: c98ce769125c4912186a8403cc08a59cfba85b7141af645c709b4c4eb90dd9cbdd6ed8076d50099d1e4ec2bf75917d1af6844082ec42bbb4d94d229a710e051c
2020-01-22 09:11:34 -06:00
Pasta
aef1eb00a4
remove explicit on FreespaceChecker
Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-22 09:11:34 -06:00
Jonas Schnelli
948863c5b3
Merge #11499: [Qt] Add upload and download info to the peerlist (debug menu)
6b1891e2c Add Sent and Received information to the debug menu peer list (Aaron Golliver)
8e4aa35ff move human-readable byte formatting to guiutil (Aaron Golliver)

Pull request description:

  Makes the peer list display how much you've uploaded/downloaded from each peer.

  Here's a screenshot ~~[outdated](https://i.imgur.com/MhPbItp.png)~~, [current](https://i.imgur.com/K1htrVv.png) of how it looks. You can now sort to see who are the peers you've uploaded the most too.

  I also moved `RPCConsole::FormatBytes` to `guiutil::formatBytes` so I could use it in the peerlist

Tree-SHA512: 8845ef406e4cbe7f981879a78c063542ce90f50f45c8fa3514ba3e6e1164b4c70bb2093c4e1cac268aef0328b7b63545bc1dfa435c227f28fdb4cb0a596800f5
2020-01-22 09:11:34 -06:00
PastaPastaPasta
141861ebae Merge #11117: Prepare for non-Base58 addresses (#3294)
* Merge #11117: Prepare for non-Base58 addresses

864cd2787 Move CBitcoinAddress to base58.cpp (Pieter Wuille)
5c8ff0d44 Introduce wrappers around CBitcoinAddress (Pieter Wuille)

Pull request description:

  This patch removes the need for the intermediary Base58 type `CBitcoinAddress`, by providing {`Encode`,`Decode`,`IsValid`}`Destination` functions that directly operate on the conversion between `std::string`s and `CTxDestination`.

  As a side, it also fixes a number of indentation issues, and removes probably several unnecessary implicit `CTxDestination`<->`CBitcoinAddress` conversions.

  This change is far from complete. In follow-ups I'd like to:
  * Split off the specific address and key encoding logic from base58.h, and move it to a address.h or so.
  * Replace `CTxDestination` with a non-`boost::variant` version (which can be more efficient as `boost::variant` allocates everything on the heap, and remove the need for `boost::get<...>` and `IsValidDestination` calls everywhere).
  * Do the same for `CBitcoinSecret`, `CBitcoinExtKey`, and `CBitcoinExtPubKey`.

  However, I've tried to keep this patch to be minimally invasive, but still enough to support non-Base58 addresses. Perhaps a smaller patch is possible to hack Bech32 support into `CBitcoinAddress`, but I would consider that a move in the wrong direction.

Tree-SHA512: c2c77ffb57caeadf2429b1c2562ce60e8c7be8aa9f8e51b591f354b6b441162625b2efe14c023a1ae485cf2ed417263afa35c892891dfaa7844e7fbabccab85e

* CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* more CBitcoinAddress -> EncodeDestination in providertx.h

Signed-off-by: Pasta <pasta@dashboost.org>

* fix CBitcoinAddress GetKeyID check

Signed-off-by: Pasta <pasta@dashboost.org>

* fix providertx.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* hopefully fix governance-classes.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* partially fix governance-validators.cpp, unable to resolve "address.IsScript()"

Signed-off-by: Pasta <pasta@dashboost.org>

* partially fix governance-classes.cpp, unable to resolve "address.IsScript()"

Signed-off-by: Pasta <pasta@dashboost.org>

* fix governance-classes.h

Signed-off-by: Pasta <pasta@dashboost.org>

* DecodeTransaction -> DecodeDestination, fix governance-validators.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* More fixes for 3294

* Move GetIndexKey into rpc/misc.cpp near getAddressesFromParams

No need to have it in base58.cpp anymore as this is only used in getAddressesFromParams

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: Alexander Block <ablock84@gmail.com>
2020-01-22 13:35:04 +03:00
UdjinM6
39a524d684
Merge pull request #3289 from PastaPastaPasta/backports-0.16-pr4
Backports 0.16 pr4
2020-01-22 13:33:57 +03:00
UdjinM6
5edaad4b29 Translations 2020-01 (#3192)
* en

* ru

* 100%: bg, de, fi, fr, it, nl, pt, sk, vi, zh_CN

* 90%+: ar, es, ja, ko, pl, ro, th, tr, zh_TW

* drop sv

It looks like it was abandoned, dropped below 80% threshold (73.3% atm)
2020-01-17 16:00:53 +01:00
UdjinM6
7d39637b02 Bump copyright year to 2020 (#3290)
* Bump _COPYRIGHT_YEAR

* Run copyright update script

./contrib/devtools/copyright_header.py update .

* Update COPYING

* Bump copyright year in dash-cli/qt/tx and dashd map pages
2020-01-17 15:42:55 +01:00
Wladimir J. van der Laan
c85b038beb
Merge #11480: [ui] Add toggle for unblinding password fields
ff35de8 [ui] Add toggle for unblinding password fields (Thomas Snider)

Pull request description:

  Proposed change for adding the ability to toggle password visibility in the password dialog.  This is similar to functionality in most password managers and is specifically added with the use case of password managers in mind - the password in that case is likely pasted twice into both the new password and confirm password fields.

  If this is a welcome change, I am open to suggestions on rearranging the layout.

Tree-SHA512: 1823f356f8f941cc584c44de264433e9a573cb8a358efa300a412c4458b5564d8d193969be40859195cf9c8d6768eee895ee22440d51db4f09175f9b4e28bced
2020-01-16 09:22:46 -06:00
Wladimir J. van der Laan
467c52c75f
Merge #11508: Fix crash via division by zero assertion
207408b Fix crash via division by zero assertion (Jonas Schnelli)

Pull request description:

  Replaces the newly added `assert` for a devision by zero protection by a control structure. Floating point division by zero is defined by the floating point standard and results in +inf or -inf.

  Introduced in #11133
  Reported by @mzhou, fixes #11501

Tree-SHA512: ac9b4efa3ba52a2aa246fb11170128c4aaf829fd491b649524c85069c6ed33ae612e761809aea9d9a44bdea29a417b3f3a558226495094b5070a42a56b2ac77e
2020-01-16 09:22:46 -06:00
Jonas Schnelli
93ebbc866e
Merge #7061: [Wallet] Add RPC call "rescanblockchain <startheight> <stopheight>"
7a91ceb5e [QA] Add RPC based rescan test (Jonas Schnelli)
c77170fbd [Wallet] add rescanblockchain <start_height> <stop_height> RPC command (Jonas Schnelli)

Pull request description:

  A RPC rescan command is much more flexible for the following reasons:
  * You can define the start and end-height
  * It can be called during runtime
  * It can work in multiwallet environment

Tree-SHA512: df67177bad6ad1d08e5a621f095564524fa3eb87204c2048ef7265e77013e4b1b29f991708f807002329a507a254f35e79a4ed28a2d18d4b3da7a75d57ce0ea5
2020-01-16 09:21:05 -06:00
Wladimir J. van der Laan
e7c27f3b77
Merge #10898: Fix invalid checks (NULL checks after dereference, redundant checks, etc.)
76fed83 Avoid NULL pointer dereference when _walletModel is NULL (which is valid) (practicalswift)
4971a9a Use two boolean literals instead of re-using variable (practicalswift)
b5fb339 Remove duplicate uriParts.size() > 0 check (practicalswift)
7466991 Remove redundant check (!ecc is always true) (practicalswift)
55224af Remove redundant NULL checks after new (practicalswift)

Pull request description:

  Contains:
  * Remove redundant `NULL` checks after throwing `new`
  * Remove redundant check (`!ecc` is always true)
  * Remove duplicate `uriParts.size() > 0` check
  * Use two boolean literals instead of re-using variable

Tree-SHA512: 30e9af8a9d5c8184836f8267b492aeb4e26eca171a3be08f634b3f39b3055b9fa9f06623f6c69b294ca13bf99743f7645cfac2b25e014ff74687bd085a997895
2020-01-16 09:21:05 -06:00
UdjinM6
652088a9c2
Define defaultTheme and darkThemePrefix as constants and use them instead of plain strings (#3288) 2020-01-16 14:24:45 +03:00
UdjinM6
7e85f09007
Merge pull request #3284 from PastaPastaPasta/backports-0.16-pr3
Backports 0.16 pr3
2020-01-16 14:24:11 +03:00
UdjinM6
6f4ca74f1c
Let regtest have its own qt settings (#3286)
Also, avoid messing up testnet settings while playing in regtest
2020-01-14 23:18:15 +03:00
UdjinM6
1be2f94d03
Only load valid themes, fallback to "Light" theme otherwise (#3285)
* Only load valid themes, fallback to "light" otherwise

* Refactor PR3285 a bit

* fix

Co-authored-by: Nathan Marley <nathan.marley@gmail.com>
2020-01-14 23:17:53 +03:00
Wladimir J. van der Laan
93e979e4d4 Merge #11133: Document assumptions that are being made to avoid division by zero
55509f1 Document assumptions that are being made to avoid division by zero (practicalswift)

Pull request description:

  Document assumptions (via `assert(…)`:s) that are being made to avoid division by zero.

  Rationale:
  * Make it clear to human reviewers and non-human static analyzers that what might look like potential division by zero cases are written the way they are intentionally (these cases are currently flagged by various static analyzers).

Tree-SHA512: bbb67b1370afd8f39bda35f9e3a20f4325f017d94cc1bfac3b0d36c9f34c2d95a9efe11efe44db29fb4aadd25d8276d8f0e03c8806ac64f0d21d821912e13b8e
2020-01-12 17:01:40 -06:00
UdjinM6
5f8bcacd7f
More of 10793 2020-01-10 10:34:03 -06:00
Wladimir J. van der Laan
c8081ae192
Merge #11132: Document assumptions that are being made to avoid NULL pointer dereferences
fdc3293 Document assumptions that are being made to avoid NULL pointer dereferences (practicalswift)

Pull request description:

  Document assumptions (via `assert(…)`:s) that are being made avoid `NULL` pointer dereferences.

  Rationale:
  * Make it clear to human reviewers and non-human static analyzers that what might look like potential `NULL` pointer dereferences are written the way they are intentionally (these cases are currently flagged by various static analyzers).

Tree-SHA512: b424328195e2680e1e4ec546298f718c49e5ad182147dc004de580693db1b50eec4065e1c4f232bdb302baa12954265a50ba21cb5ba4ff30248535b2de778672
2020-01-10 10:34:00 -06:00
Russell Yanofsky
fc4ab83c83
Merge #10976: [MOVEONLY] Move some static functions out of wallet.h/cpp #10976
Move some static functions out of wallet.h/cpp

This commit just moves a few function declarations and updates callers.
Function bodies are moved in two followup MOVEONLY commits.

This change is desirable because wallet.h/cpp are monolithic and hard to
navigate, so pulling things out and grouping together pieces of related
functionality should improve the organization.

Another proximate motivation is the wallet process separation work in
https://github.com/bitcoin/bitcoin/pull/10973, where (at least initially)
parameter parsing and fee estimation are still done in the main process rather
than the wallet process, and having functions that run in different processes
scrambled up throughout wallet.cpp is unnecessarily confusing.

MOVEONLY: Fee functions wallet/wallet.cpp -> wallet/fees.cpp

make it actual move only

Signed-off-by: Pasta <pasta@dashboost.org>

MOVEONLY: Init functions wallet/wallet.cpp -> wallet/init.cpp

make it actual move only

Signed-off-by: Pasta <pasta@dashboost.org>

add keepass include

Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-10 10:33:57 -06:00
Wladimir J. van der Laan
fdf3f25a0a
Merge #10969: Declare single-argument (non-converting) constructors "explicit"
64fb0ac Declare single-argument (non-converting) constructors "explicit" (practicalswift)

Pull request description:

  Declare single-argument (non-converting) constructors `explicit`.

  In order to avoid unintended implicit conversions.

  For a more thorough discussion, see ["C.46: By default, declare single-argument constructors explicit"](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c46-by-default-declare-single-argument-constructors-explicit) in the C++ Core Guidelines (Stroustrup & Sutter).

Tree-SHA512: e0c6922e56b11fa402621a38656d8b1122d16dd8f160e78626385373cf184ac7f26cb4c1851eca47e9b0dbd5e924e39a85c3cbdcb627a05ee3a655ecf5f7a0f1
2020-01-10 10:33:57 -06:00
Wladimir J. van der Laan
b515e7c120
Merge #11268: [macOS] remove Growl support, remove unused code
f151f5f50 [macOS] remove Growl support, remove unused code (Jonas Schnelli)

Pull request description:

  There is no longer a reason to support Growl.
  A) It went to pay-ware since a couple of years
  B) Since OSX 10.8, the operating system has its own modal notification options (Notification Center).

  This PR removes support for Growl.
  OSX notification centre is still supported after this PR.

Tree-SHA512: eee18098d7354c4e98f927bca9963d4843ff6bceee74795f73a66c27eed33efaac00ec2cabde8807efcbc936b16ab712249006fa13f5a3f55e4d44d163f5f9a0
2020-01-10 10:33:55 -06:00
Wladimir J. van der Laan
75ec11ee93
Merge #10793: Changing &var[0] to var.data()
592404f03 Changing &vec[0] to vec.data(), what 9804 missed (MeshCollider)

Pull request description:

  This just continues the work of https://github.com/bitcoin/bitcoin/pull/9804

  Modifies a lot of `&vector[]`'s to `vector.data()`'s across all the files including tests, just the stuff that 9804 missed

Tree-SHA512: dd1a9dffb999dea4fba78dcc91fe02f90250db86f5c74948e1ff3e8b4036b2154b600555eaa04dece5368920aae3513bc36425dc96e4319ca1041b0928a6b656
2020-01-10 10:33:54 -06:00
UdjinM6
4439ce985a
Tweak few more strings re mixing and balances (#3265)
* Tweak few more strings re mixing and balances

* "Fully mixed"/"mixed" -> "PrivateSend"

* Apply suggestions from code review

Co-Authored-By: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2020-01-04 14:20:43 +03:00
UdjinM6
e82dfc4317
Merge pull request #3106 from PastaPastaPasta/backports-0.16-pr1
Backports 0.16 pr1-4: other
2020-01-04 14:20:17 +03:00
UdjinM6
4b7c175f53
Merge pull request #3266 from PastaPastaPasta/backports-0.16-pr1-rpc
Backports 0.16 pr1-3: rpc
2020-01-03 20:49:59 +03:00
Jonas Schnelli
2aa7ca5723
Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable"
ee4d1493e Drop upgrade-cancel callback registration for a generic "resumeable" (Matt Corallo)

Pull request description:

  Instead of passing a StartShutdown reference all the way up from
  txdb, give ShowProgress a "cancelable" boolean, as StartShutdown
  is pretty much always what you'll want to use to cancel. Use the
  same boolean to allow cancel during initial block verification.

Tree-SHA512: 515817aaa4b9e3e856200e00be9c2d44ecfa2d4f288fe3e02116105fe85de2650c13076ee7e45396ec1ce6ab45e53b0477cddda7cfdee5b3bd0589cb81a4c346
2020-01-03 08:35:55 -06:00
Wladimir J. van der Laan
4a8349e93f
Merge #11039: Avoid second mapWallet lookup
8f2f1e0 wallet: Avoid second mapWallet lookup (João Barbosa)

Pull request description:

  All calls to `mapWallet.count()` have the intent to detect if a `txid` exists and most are followed by a second lookup to retrieve the `CWalletTx`.

  This PR replaces all `mapWallet.count()` calls with `mapWallet.find()` to avoid the second lookup.

Tree-SHA512: 96b7de7f5520ebf789a1aec1949a4e9c74e13683869cee012f717e5be8e51097d068e2347a36e89097c9a89f1ed1a1529db71760dac9b572e36a3e9ac1155f29

More of 11039
2020-01-03 08:35:50 -06:00
Jonas Schnelli
9044d5315b Merge #11156: Fix memory leaks in qt/guiutil.cpp
9b348ff9e Fix memory leaks in qt/guiutil.cpp (Dan Raviv)

Pull request description:

  on macOS:
  `listSnapshot` was leaking in `findStartupItemInList()`
  `bitcoinAppUrl` was leaking in `[Get|Set]StartOnSystemStartup()`

Tree-SHA512: dd49e1166336cf4f20035d21930f2f99f21f1d9f91a1101b1434a23dd0b92d402ac7efb177473c758d8af1dbab8d8750485583231c5b5854203d2493f0b43e73
2020-01-02 22:01:29 -06:00
Jonas Schnelli
1d2cd24824 Merge #10911: [qt] Fix typo and access key in optionsdialog.ui
d2be7b25b Typo in optionsdialog.ui Tooltip displayed ampersand incorrectly, &amp; should be in text. (James Evans)

Pull request description:

  Tooltip displayed ampersand incorrectly, &amp; should be in text property rather than tooltip so that access key is correctly displayed for accessibility.

Tree-SHA512: 331848207317d37d4d9db40119d0b7ae9a276d06cd1b057cd0e87d508e1aa769b785246ca30ca9156db632798ec9f68ba8bf78cf42904267b4187bd27cfced35
2020-01-02 22:01:29 -06:00
Wladimir J. van der Laan
09ed6a45e1 Merge #11179: rpc: Push down safe mode checks
ec6902d0e rpc: Push down safe mode checks (Andrew Chow)

Pull request description:

  This contains most of the changes of #10563 "remove safe mode" by @achow101, but doesn't remove the safe mode yet, but put an `ObserveSafeMode()` check in (all 23) individual calls which used to have okSafeMode=false.

  This cleans up the ugly "okSafeMode" flag from the dispatch tables, which is not a concern for the RPC server.

  Extra-author: Wladimir J. van der Laan <laanwj@gmail.com>

Tree-SHA512: eee0f251fe2f38f122e7391e3c4e98d6a1e2757f3b718d6b560ad835ae94f11490865a0aef893e90b5fe298165932c8dd8298224173ac2677a5245cd532bac6e

More of 11179

more of 11179 privatesend

Signed-off-by: Pasta <pasta@dashboost.org>

cont

Signed-off-by: Pasta <pasta@dashboost.org>

fix merge from develop

Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-02 21:59:51 -06:00
MarcoFalke
8302bd5479 Merge #9964: Add const to methods that do not modify the object for which it is called
6e8c48dc5 Add const to methods that do not modify the object for which it is called (practicalswift)

Pull request description:

Tree-SHA512: a6888111ba16fb796e320e60806e1a77d36f545989b5405dc7319992291800109eab0b8e8c286b784778f41f1ff5289e7cb6b4afd7aec77f385fbcafc02cffc1
2020-01-02 16:16:55 -06:00
Jonas Schnelli
67073009f3 Merge #10964: Pass SendCoinsRecipient (208 bytes) by reference
d3d946a29 Pass SendCoinsRecipient (208 bytes) by const reference (practicalswift)

Pull request description:

  Pass `SendCoinsRecipient` (208 bytes) by reference.

  Avoid passing big parameters by value.

Tree-SHA512: 504791f1b1c73badbc276db13b83e39695298d7d82a9db0e48d54e7ef02f1a8d276b0adfdece1ba1130cc214e2f0fa9a3100b5359d0ca0fe96558d3c9a786e6e
2020-01-02 16:16:55 -06:00
Wladimir J. van der Laan
ba2ed60c34
Merge #11169: [GUI] Make tabs toolbar no longer have a context menu
e254830 Make tabs toolbar no longer have a context menu (Andrew Chow)

Pull request description:

  Adds a contextMenuPolicy of Qt::PreventContextMenu to prevent the tabs toolbar from showing a context menu that allows it to be hidden.

  Fixes #11168

Tree-SHA512: 8900b3c1a891ead3c9a20dc365b436fa75f97dbe0dfa7e20ee26fd9d09f3fee6eda286b0c075ed89fe1361608ecbdd87c744e37d97a3fba62493a86dedda867b
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
9d58c98753
Merge #11066: Document the preference of nullptr over NULL or (void*)0
bea8e9e Document the preference of nullptr over NULL or (void*)0 (practicalswift)

Pull request description:

  Document the preference of `nullptr` over `NULL` or `(void*)0`.

  After this commit:

  ```
  $ git grep "[^A-Za-z_]NULL[^A-Za-z_]" | grep -vE '(leveldb|univalue|secp256k1|torcontrol|NULL certificates|ctaes|release-notes|patches|configure.ac|developer-notes)'
  $
  ```

  Some context:
  * `NULL → nullptr` was handled in the recently merged PR #10483
  * `0 → nullptr` was handled in the recently merged PR #10645

Tree-SHA512: f863096aa4eb21705910f89713ca9cc0d83c6df2147e3d3530c3e1589b96f6c68de8755dcf37d8ce99ebda3cfb69805e00eab13bf65424aaf16170e9dda3958a
2020-01-01 21:33:31 -06:00
MarcoFalke
c9b20f027f
Merge #10956: Fix typos
9d5e98ff8 Fix typos. (practicalswift)

Pull request description:

  Fix some typos not covered by #10705.

Tree-SHA512: f06e9541f6ae13ef5d6731399b61795997b21a8816abeb1749c93e99a5c47354e6cbd4a3d145f4dc6ef8a13db179799a3121ecbb7288abf3e8d81cdf81500d37
2020-01-01 21:31:39 -06:00
MarcoFalke
1ba944c55e
Merge #10705: Trivial: spelling fixes
f42fc1d50 doc: spelling fixes (klemens)

Pull request description:

  patch contains some spelling fixes ( just in comments ) as found by a bot ( http://www.misfix.org, https://github.com/ka7/misspell_fixer ).

Tree-SHA512: ba6046cfcd81b0783420daae7d776be92dd7b85a593e212f8f1b4403aca9b1b6af12cef7080d4ea5ed4a14952fd25e4300109a59c414e08f5395cdb9947bb750
2020-01-01 21:31:29 -06:00
UdjinM6
65206833e4 Fix menu bar text color in Dark theme (#3236) 2019-12-12 11:46:54 +01:00
UdjinM6
9dad60386c
Tweak "Send" popup and refactor related code a bit (#3218)
Few key points:

- highlight when not all recipients are displayed, move this info closer to the actual list
- clarify fee rounding text for PrivateSend, wasn't accurate
- show transactions size and actual fee rate explicitly
- show number of inputs PrivateSend tx is going to consume and warn if this number is 10 or higher
2019-11-27 13:53:42 +03:00
UdjinM6
ef55e48c1e
Merge pull request #3217 from codablock/pr_backport_hidpi_fix
Backport bitcoin#16254 and remove hires theme
2019-11-22 21:14:22 +03:00
UdjinM6
bb7a32d2e2
Add Dark theme (#3216)
* Copy light(-hires).css -> dark(-hires).css (with no changes yet)

* Add dark(-hires).css to makefile/qrc and show them in theme selector

* Dark theme (css part)

* Do not style unit selector in status bar via platform styles, use css instead

* No coloring via forms (*.ui)

* Implement and use helpers to style parts of rich text differently for light and dark themes

* Remove dark-hires due to #3217

* Revert changes to light-hires.css to avoid merge conflicts with #3217
2019-11-22 21:13:47 +03:00
UdjinM6
482a549a2b
Add collateral, owner and voting addresses to masternode list table (#3207)
* Add collateral, owner and voting addresses to masternode list table

* Adjust column names in masternode list table

* Slightly refactor updateDIP3List()

* Lock cs_main in updateDIP3List early to avoid GUI frezes

* Update MN list in GUI 10 times less often while blockchain is still syncing

* Move GetUTXO calls outside of main update loop

* Fill coin cache for masternode UTXOs on start
2019-11-22 21:12:57 +03:00
Alexander Block
8c17c81631 Remove light-hires theme as it's not required anymore 2019-11-22 12:28:08 +01:00
MarcoFalke
d9741fc632 Merge #16254: qt: Set AA_EnableHighDpiScaling attribute early
099e4b9ad3 Set AA_EnableHighDpiScaling attribute early (Hennadii Stepanov)

Pull request description:

  Running `bitcoin-qt` compiled against Qt 5.12.4 causes a warning:
  ```
  hebasto@bionic-qt:~/bitcoin$ src/qt/bitcoin-qt
  Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
  ```

  This PR fixes this issue.

  From Qt docs:
  - [Qt::AA_EnableHighDpiScaling](https://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum):
  > Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). _Supported platforms are X11, Windows and Android._ Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the `QT_AUTO_SCREEN​_SCALE_FACTOR` environment variable to 1. This attribute must be set before `QGuiApplication` is constructed. This value was added in Qt 5.6.

  - [QCoreApplication::setAttribute()](https://doc.qt.io/qt-5/qcoreapplication.html#setAttribute)

ACKs for commit 099e4b:
  MarcoFalke:
    ACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05
  jonasschnelli:
    utACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05
  fanquake:
    ACK 099e4b9ad3d9967051d5c3d45c6315d1b30fea05. Did some testing on `Bionic` and `Windows 10` (using VirtualBox). I couldn't see any obvious visual difference, but given Marco's screens above, this change is obviously better. I also checked that there wasn't any sort of regression on macOS.

Tree-SHA512: 1965a427ee14ffb3871bac317685032406cf02d1fa2b2dc11c8b643bfe4ba09195674d149d1e41752f14c0d000446b35e142f3ce60d987ba97082fd7ee39a094
2019-11-22 12:22:21 +01:00
UdjinM6
37f96f5a3a
Bump version to 0.15 and update few const-s/chainparams (#3204)
* Bump const-s

* Bump version to 0.15

* Run gen-manpages.sh
2019-11-21 23:52:35 +03:00
strophy
9de994988b Compliance changes to terminology (#3211)
Replace inaccurate user-facing descriptions of PS as anonymous to mixed or private, since Dash is a transparent blockchain.
2019-11-21 23:49:35 +03:00
UdjinM6
d475f17bc2
Fix styles for progress dialogs, shutdown window and text selection (#3212)
* Override text selection background color for all text widgets

Otherwie it might become unusable with some system themes

* Fix progress dialogs styling

* Fix shutdown window styling
2019-11-21 18:02:43 +03:00
UdjinM6
df372ec5f9
Fix off-by-one error for coinbase txes confirmation icons (#3206) 2019-11-21 12:55:56 +03:00
UdjinM6
1e94e3333c
Fix styling for disabled buttons (#3205) 2019-11-21 12:55:41 +03:00
UdjinM6
7677b55781
Actually apply CSS styling to RPC console (#3201) 2019-11-19 01:25:59 +03:00
UdjinM6
63cc22d5ea
More Qt tweaks (#3200)
* Fix combobox popup style

* Unify margins/paddings/height for lineedits/comboboxes/spinboxes

* Drop walletframe_background

* Add transparency to unchecked.png

* Alternative solution for comboboxes (no border for popups, add paddings in QListView)
2019-11-18 19:28:41 +03:00
UdjinM6
7aa9c43f89
Few Qt tweaks (#3199)
* Fix "out of sync" label

* Fix fallback fee warning label

It's too long in some languages (e.g. ru) and this breaks ui

* Drop sub-tabs on the Masternode tab
2019-11-15 13:46:45 +03:00
UdjinM6
1091ab3c66
Translations201909 (#3107)
* en

* ru

* fi

* ko, vi

* it, pl, sk

* fix fi

* es, fr, zh_TW

* de, nl

* Add ro

* pt, tr, zh_CN

* th

* ja
2019-11-11 11:24:45 +03:00
UdjinM6
a55624b25f
Fix 3182: Append scrollbar styles (#3186) 2019-11-04 20:35:32 +03:00
UdjinM6
372389d231
Disable styling for scrollbars on macos (#3182)
* Do not add spacing to tx list header on macos

* Only style scrollbars when not on macos
2019-10-31 20:30:57 +03:00
Nathan Marley
d3ce0964b2 Add Qt GUI refresh w/branding updates (#3000)
* Update Dash app and toolbar icons

* Update icons and images

* Remove menubar icons

* Add Dash logo to top-right of menubar

* Remove the small PrivateSend buttons

* Remove image entirely from About modal

* Update CSS for new theme changes

* Restore splash testnet image

* Make entire toolbar button clickable

* Fix address book and shrink transaction icons

* Revert "Restore splash testnet image"

This reverts commit 2df07ff7d3.

* Restore original direction for tx in/out arrows

* Add transparency to icons

* Remove unused icons

* Resize way too small icons

* `mogrify src/qt/res/*/*.png`

* Drop `light` from `optimize-pngs.py`

* `python3 contrib/devtools/optimize-pngs.py`

"Total reduction: 42507 bytes"

* Restore old remove icon as console_remove
2019-10-31 20:30:21 +03:00
UdjinM6
a7492c1d3a Handle coin type via CCoinControl (#3172) 2019-10-23 09:56:44 +02:00
Alexander Block
0d1a049059
Don't show individual messages for each TX when too many come in at once (#3170)
This avoids locking up the whole Desktop on some systems where messages
are sent through DBUS.

Instead of showing each message, we'll now consolidate all TXs into a single
message when more then 9 arrive at once (in 100ms).
2019-10-23 09:56:15 +02:00
Alexander Block
589c892506
Fix 2 more bottlenecks causing GUI lockups (#3169)
* Remove dataChanged call for ToAddress

This call is redundant since a long time already. It comes from a time
where there was no ToAddress column, but only a Description column which
also contained status information for coinbases. This is gone for a long
time already, so the ToAddress column has nothing included which might
change when confirmations change.

For the history:
34fa178243 splitted the Description column
into Type and ToAddress
e599246803 removed last traces of status from
the ToAddress column

* Avoid call to labelForAddress in formatTxToAddress

This speeds up sorting by address
2019-10-23 09:56:00 +02:00
Alexander Block
da2f503a48 Fix largest part of GUI lockups with large wallets (#3155)
* [Qt] make sure transaction table entry gets updated after bump

* Remove unnecessary tracking of IS lock count

* Track lockedByChainLocks in TransactionRecord

* Only update record when the TX was not ChainLocked before

* Emit dataChanged for CT_UPDATED transactions

* Use plain seconds since epoch comparison in TransactionFilterProxy::filterAcceptsRow

The QDateTime::operator< calls inside TransactionFilterProxy::filterAcceptsRow
turned out to be the slowest part in the UI when many TXs are inside
the wallet. DateRoleInt allows us to request the plain seconds since epoch
which we then use to compare against dateFrom/dateTo, which are also both
stored as seconds since epoch now.

* Don't invoke updateConfirmations directly and let pollBalanceChanged handle it

* Implement AddressTableModel::labelForDestination

This one avoids converting from string to CBitcoinAddress and calling
.Get() on the result.

* Also store CBitcoinAddress object and CTxDestination in TransactionRecord

This avoids frequent and slow conversion

* Use labelForDestination when possible

This avoids unnecessary conversions

* Don't set fForceCheckBalanceChanged to true when IS lock is received

We already do this through updateTransaction(), which is also called when
an IS lock is received for one of our own TXs.

* Only update lockedByChainLocks and lockedByInstantSend when a change is possible

lockedByChainLocks can never get back to false, so no need to re-check it.
Same with lockedByInstantSend, except when a ChainLock overrides it.

* Hold and update label in TransactionRecord

Instead of looking it up in data()

* Review suggestions

* Use proper columns in dataChanged call in updateAddressBook
2019-10-19 13:39:02 +03:00
Nathan Marley
1cbe280ada Qt: Remove old themes (#3141)
* Remove crownium files

* Remove trad theme files

* Remove drkblue theme files

* Remove light-retro theme files

* Remove old themes from optimize-pngs script

* Remove refs to old themes in Makefile.qt

* Remove more old theme file references

* Remove old themes from options dialog

* No need to care about themes for images and icons anymore

* Bring `trad` back

* Drop remaining `drkblue` references

Rename files that are actually used and drop no longer needed ones
2019-10-10 14:53:00 +03:00
UdjinM6
3712f8d053
Merge pull request #3111 from codablock/pr_backports_v15_v16_3
Backport same PRs as done in bitcoin#11447
2019-09-28 00:47:12 +03:00
Wladimir J. van der Laan
6ab6809598 Merge #11338: qt: Backup former GUI settings on -resetguisettings
723aa1b qt: Backup former GUI settings on `-resetguisettings` (Wladimir J. van der Laan)

Pull request description:

  Writes the GUI settings to `guisettings.bak` in the data directory before wiping them. This can be used to retroactively troubleshoot issues (e.g. #11262) where `-resetguisettings` solves the problem.
  (as discussed in yesterday's IRC meeting)

Tree-SHA512: c64f5052d992eb02057ba285435f143c42d0cc456144a4c565e1c87be833737f9df750d0aee10810f85047c820d9b4f9f22fd94a6f09f4b28a9cf41b63a56586
2019-09-25 10:33:21 +02:00
Wladimir J. van der Laan
b6e7a4b612 Merge #11335: Replace save|restoreWindowGeometry with Qt functions
13baf72 Replace save|restoreWindowGeometry with Qt functions (MeshCollider)

Pull request description:

  Alternative to https://github.com/bitcoin/bitcoin/pull/11208, closes https://github.com/bitcoin/bitcoin/issues/11207

  According to the [Qt documentation](https://doc.qt.io/qt-4.8/qwidget.html#restoreGeometry), restoreGeometry does all the checks we need, so it would be better to rely on them instead of doing it ourselves.

  ~Haven't tested this properly yet, hence the WIP.~
  Gives expected behavior exactly as the other system apps do based on my tests. Only potential issue is the case when the GUI is almost entirely offscreen with only a single strip of pixels, its not really possible to see the GUI, but if you know it's there you can bring it back onscreen with just the mouse. And that's exactly how notepad behaves on Windows so I don't think its a real issue.

  This also gives much better behavior when closing a maximized window, currently (0.15.0 release) a maximized window will save the window size on close, and then reopen as a not-maximized but still that size, which is really annoying. This reopens as maximized.

  Gitian build here: https://bitcoin.jonasschnelli.ch/build/305

Tree-SHA512: a8bde14793b4316192df1fa2eaaeb32b44d5ebc5219c35252379840056cd737a9fd162625fd715987f275fec8375334ec1ec328dbc671563f084c611a938985c
2019-09-25 10:33:21 +02:00
Jonas Schnelli
61c5fb9ef7 Merge #11015: [Qt] Add delay before filtering transactions
7b137aced [Qt] Add delay before filtering transactions Fixes 3141 (Lucas Betschart)

Pull request description:

  As discussed in https://github.com/bitcoin/bitcoin/issues/3141.

  This adds a QTimer pause of 200ms before start to filter so it should be possible to filter big data sets easier.

Tree-SHA512: ee599367794eac2c5b8bc7ecac47f44295e40c0ff543ff2f2c4860590f917b59b1cfb273fa564e6eb4c44016c0ef412d49f1a8f1b36b07e034022f51bb76653c
2019-09-25 10:33:21 +02:00
Alexander Block
cbf59efef0 Implement WalletModel::IsSpendable for CScript
Which is like the CTxDestination version instead of having our own
implementation of the old havePrivKey
2019-09-25 10:33:21 +02:00
MarcoFalke
a88e000fe9 Merge #11247: qt: Use IsMine to validate custom change address
a1ea1cfbd qt: Use IsMine to validate custom change address (Chris Moore)

Pull request description:

  Fixes #11137
  Closes #11184 (which was accidentally opened against 0.15 branch)

Tree-SHA512: a20a59b4f36c1471a9c84bcc7c69048576d1f413104c299a7ed9ba221f28eddf93d727fca2926420ea5d0dd9aba582924f26a5acd44d995039b7202c73eb53bc
2019-09-25 10:33:21 +02:00
Wladimir J. van der Laan
a2e8cb4f45 Merge #11210: Stop test_bitcoin-qt touching ~/.bitcoin
dea086f49 Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/issues/11192

  The directory remains unused, but this stops the tests touching ~/.bitcoin at all (namely creating it if it doesn't exist)

Tree-SHA512: e59ad6b83dbc5ea2fb2761994c09933721d29668b0eef09b9d938a4ee1c67871c5125c57483ee0ea25f2385e308d275d86bcb9087dd4d502923013b4f3dbac82
2019-09-24 17:47:35 +02:00
Wladimir J. van der Laan
ec892d459d Merge #11234: Remove redundant testutil.cpp|h files
d1138e362 Remove redundant testutil files (MeshCollider)

Pull request description:

  The only function in testutil.cpp, `GetTempPath()` simply called `fs::temp_directory_path()` directly. This just tidies things up by removing that redundant function and the file containing it

  I can understand wanting a general util file for tests to use, but if there's nothing in it, we might as well remove it, it can always be added back later when it's put to use.

Tree-SHA512: b923f99acf33328743755368a1aa90f5da4a7d5f61b163a4b0b894275c98db80a91edf8f051fbfb4893d970fda5a9078aae78a2672867ff521c4ca4b653c71c0
2019-09-24 17:47:35 +02:00
Wladimir J. van der Laan
499fcecaf4 Merge #11334: qt: Remove custom fee radio group and remove nCustomFeeRadio setting
e53fa4a Remove custom fee radio group (Andrew Chow)

Pull request description:

  Removes the extraneous custom fee radio group and its single radio button. The radio button is replaced with a label that has the radio button's text.

  Continuation of #11332

Tree-SHA512: b47b675f900ee4e2f4823203a42bb697f707ba67a8504d730c53d4dae511d0ed03226af34efd7ea45570c6111f8b3b6c39ac28f1b5c090de225903442ad4159a
2019-09-23 20:49:54 +02:00
UdjinM6
d26b6a84cc
Fix a couple of issues with PS fee calculations (#3077)
* Fix PS fee calculations in GUI

Fixes the GUI fee estimation in Coin Control dialog when creating PS txes with the fSubtractFeeFromAmount option.

* Add missing nChangePosInOut reset for PS txes
2019-09-22 23:47:55 +03:00
PastaPastaPasta
65cd334794 Tools window: Information - make "InstantSend locks" and "Number of Masternodes" fields copyable
Signed-off-by: Pasta <pasta@dashboost.org>
2019-09-15 23:09:01 +03:00
PastaPastaPasta
6b5b70fab8 Remove liquidity provider privatesend (#3082)
* remove liquidity provider. The reason behind this is two fold:
1. it is very likely nobody is currently running this on the mainnet (due to already strong liquidity), it provides no use for testnet as there you can just enable mixing and get the same affect. Because of this reason I don't find it okay to just remove it outright.
2. even if people did use it (or if some do as a novelty) it likely hurts the privacy of the system. This is because as a liquidity provider your outputs will always take many (sometimes hundreds) blocks before being used in a new mixing round, whereas real user's funds will normally be mixed again very rapidly.

Signed-off-by: Pasta <pasta@dashboost.org>

* remove unused function

Signed-off-by: Pasta <pasta@dashboost.org>
2019-09-15 23:08:05 +03:00
UdjinM6
6dce8d2736 Fix includes 2019-09-07 22:36:46 -05:00
Wladimir J. van der Laan
40617436c6 Merge #10179: Give CValidationInterface Support for calling notifications on the CScheduler Thread
1f668b6 Expose if CScheduler is being serviced, assert its not in EmptyQueue (Matt Corallo)
3192975 Flush CValidationInterface callbacks prior to destruction (Matt Corallo)
08096bb Support more than one CScheduler thread for serial clients (Matt Corallo)
2fbf2db Add default arg to CScheduler to schedule() a callback now (Matt Corallo)
cda1429 Give CMainSignals a reference to the global scheduler (Matt Corallo)
3a19fed Make ValidationInterface signals-type-agnostic (Matt Corallo)
ff6a834 Use TestingSetup to DRY qt rpcnestedtests (Matt Corallo)

Tree-SHA512: fab91e34e30b080ed4d0a6d8c1214910e383c45440676e37be61d0bde6ae98d61e8903d22b846e95ba4e73a6ce788798350266feba246d8a2ab357e8523e4ac5
2019-09-07 12:33:13 -05:00
Pasta
0cccde9df7 fix all of the problems
Signed-off-by: Pasta <pasta@dashboost.org>
2019-09-03 18:55:21 -05:00
Pasta
19b584c3ba remove some rbf
Signed-off-by: Pasta <pasta@dashboost.org>
2019-09-03 18:02:17 -05:00
Wladimir J. van der Laan
c849708996 Merge #10706: Improve wallet fee logic and fix GUI bugs
Contains RBF stuff to be removed in a later commit

11590d3 Properly bound check conf_target in wallet RPC calls (Alex Morcos)
fd29d3d Remove checking of mempool min fee from estimateSmartFee. (Alex Morcos)
2fffaa9 Make QT fee displays use GetMinimumFee instead of estimateSmartFee (Alex Morcos)
1983ca6 Use CoinControl to pass custom fee setting from QT. (Alex Morcos)
03ee701 Refactor to use CoinControl in GetMinimumFee and FeeBumper (Alex Morcos)
ecd81df Make CoinControl a required argument to CreateTransaction (Alex Morcos)

Pull request description:

  This builds on #10589  (first 5 commits from that PR, last 5 commits are new)

  The first couple commits refactor to use the CCoinControl class to pass fee calculation parameters around.

  This allows for fixing the buggy interaction in QT between the global payTxFee which can be modified by the RPC call settxfee or temporarily modified by the QT custom fee settings.  Before these changes the GUI could sometimes send a transaction with a recently set payTxFee and not respect the settings displayed in the GUI.   After these changes, using the GUI does not involve the global transaction confirm target or payTxFee.

  The prospective fee displays in the smart fee slider and the coin control dialog are changed to use the fee calculation from GetMinimumFee, this simplifies the code and makes them slightly more correct in edge cases.

  Maxing the fee calculation with the mempool min fee is move from estimateSmartFee to GetMinimumFee.

  This fixes a long standing bug, and should be tagged for 0.15 as it is holding up finalizing the estimatesmartfee RPC API before release.

Tree-SHA512: 4d36a1bd5934aa62f3806d380fcafbef73e9fe5bdf190fc5259a3e3a13349e5ce796e50e7068c46dc630ccf56d061bce5804f0bfe2e082bb01ca725b63efd4c1
2019-09-03 22:40:26 -05:00
UdjinM6
c22169d579
Reduce non-debug PS log output (#3076) 2019-09-03 22:48:35 +03:00
UdjinM6
00052aa15b
Drop rbf-related parts 2019-08-12 09:07:03 -05:00
Wladimir J. van der Laan
c9784838a7
Merge #10589: More economical fee estimates for RBF and RPC options to control
f135923 Add RPC options for RBF, confirmation target, and conservative fee estimation. (Alex Morcos)
f0bf33d Change default fee estimation mode. (Alex Morcos)
e0738e3 remove default argument from estimateSmartFee (Alex Morcos)
d507c30 Introduce a fee estimate mode. (Alex Morcos)
cfaef69 remove default argument from GetMinimumFee (Alex Morcos)

Tree-SHA512: 49c3a49a6893790a7e8b4e93a48f123dd5307af26c2017800683b76b4df8fc904ba73402917878676242c7440e3e04288d0c1ff3c2c907418724efc03cedab50
2019-08-12 09:07:03 -05:00
Pasta
1a0d52814e
#10483 scripted-diff: Use the C++11 keyword nullptr to denote the pointer literal instead of the macro NULL
-BEGIN VERIFY SCRIPT-
sed -i 's/\<NULL\>/nullptr/g' src/*.cpp src/*.h src/*/*.cpp src/*/*.h src/qt/*/*.cpp src/qt/*/*.h src/wallet/*/*.cpp src/wallet/*/*.h src/support/allocators/*.h
sed -i 's/Prefer nullptr, otherwise SAFECOOKIE./Prefer NULL, otherwise SAFECOOKIE./g' src/torcontrol.cpp
sed -i 's/tor: Using nullptr authentication/tor: Using NULL authentication/g' src/torcontrol.cpp
sed -i 's/METHODS=nullptr/METHODS=NULL/g' src/test/torcontrol_tests.cpp src/torcontrol.cpp
sed -i 's/nullptr certificates/NULL certificates/g' src/qt/paymentserver.cpp
sed -i 's/"nullptr"/"NULL"/g' src/torcontrol.cpp src/test/torcontrol_tests.cpp
-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>
2019-08-12 09:07:03 -05:00
Wladimir J. van der Laan
bfa64fd15f
Merge #10284: Always log debug information for fee calculation in CreateTransaction
1bebfc8 Output Fee Estimation Calculations in CreateTransaction (Alex Morcos)

Tree-SHA512: e25a27f7acbbc3a666d5d85da2554c5aaec4c923ee2fdbcfc532c29c6fbdec3c9e0d6ae6044543ecc339e7bd81df09c8d228e0b53a2c5c2dae0f1098c9453272
2019-08-12 09:07:03 -05:00
Pieter Wuille
1a75762b58
Merge #10769: [Qt] replace fee slider with a Dropdown, extend conf. targets
2aef1f182 [Qt] migrate old fee slider value to new dropbown Always round up (conservative) (Jonas Schnelli)
bc1be90e3 [Qt] replace fee slider with a Dropdown, extend conf. targets (Jonas Schnelli)

Tree-SHA512: 53796cf0b434dd3db5d4680dbeb6231a7df8f15d88187178fd4db8917cd7fc60091ce2c1589fd93668fc94bb13f989aba5b7ef3792fa95ee1f9f21a15709e2d3
2019-08-12 09:07:03 -05:00
UdjinM6
5bc53b6c26
Merge pull request #3043 from PastaPastaPasta/backports-0.15-pr23
Backports 0.15 pr23
2019-08-07 18:48:59 +03:00
Wladimir J. van der Laan
8cb2508c93
Merge #10974: Fix typo in sendcoinsdialog.
7f121a0 Fix typo in sendcoinsdialog. (Masahiko Hyuga)

Pull request description:

Tree-SHA512: 7b3ea344a8a432b6e3835b6870ccfaa197df43f812fea506259b644a44442e36ee39967eed246d9b4b5334528b63f41d7e8af9fd2267e51bcf7557ed652452e4
2019-08-01 14:39:48 -05:00
Wladimir J. van der Laan
b2b0bc9b0a
Merge #10870: [Qt] Use wallet 0 in rpc console if running with multiple wallets
9737572 [Qt] Use wallet 0 in rpc console if running with multiple wallets (Jonas Schnelli)

Pull request description:

  Current master with multiwallet results in accessing wallet 0 in QT (send / receive / tx history / etc.), **but** the RPC console cannot access that wallet (only non-wallet commands work).

  This is a quick solution to re-allow accessing the same wallet (Index 0) via RPC console in multiwallet.

  The solutions design is not "state of the art" (should go over WalletModel). Ideally we work on an overall multiwallet support for the GUI (which then would remove this change).

  I think we should consider this as a bugfix.

Tree-SHA512: 16cf844662248ffd3d82c7d0cbe5879f231fbc7d4f5a4aab4180a9087018519c98301e4ac311eaec2cc39dddf25d3edf9be99a6622ea682c138a820a9b21fd0c
2019-08-01 14:27:47 -05:00
UdjinM6
8d89350b8a
Use less alarming fee warning note (#3038) 2019-08-01 17:50:42 +03:00
Wladimir J. van der Laan
6fb74ead60
Merge #10832: init: Factor out AppInitLockDataDirectory and fix startup core dump issue
dba485d init: Factor out AppInitLockDataDirectory (Wladimir J. van der Laan)

Pull request description:

  Alternative to #10818, alternative solution to #10815.

  After this change: All the AppInit steps before and inclusive AppInitLockDataDirectory must not have Shutdown() called in case of failure. Only when AppInitMain fails, Shutdown should be called.

  Changes the GUI and bitcoind code to consistently do this.

Tree-SHA512: 393e1a0ae05eb8e791025069e3ac4f6f3cdeb459ec63feda85d01cf6696ab3fed7632b6a0ac3641b8c7015af51d46756b5bba77f5e5f0c446f0c2dea58bbc92e
2019-08-01 09:02:48 -05:00
Pasta
d6633b5fba
apply rpcconsole.cpp patch
Signed-off-by: Pasta <pasta@dashboost.org>
2019-07-24 12:56:48 -05:00
Jonas Schnelli
2ada45284b
Merge #10864: Avoid redundant redeclaration of GetWarnings(const string&)
e0d459264 Avoid redundant redeclaration of GetWarnings(const string&) (practicalswift)

Pull request description:

  Avoid redundant redeclaration of `GetWarnings(const string&)`.

  `std::string GetWarnings(const std::string& strFor)` is declared in `warnings.h` and defined in `warnings.cpp`.

Tree-SHA512: d1503e00a2073cf080d66eafa303dc9c660a7ac15d4d2abcf2e4aa69cf9622d89a8e3f09324139bb7b8debaa6d1ee4a1c1681d347cebd99b1d3672a4da6d1ace
2019-07-24 11:59:09 -05:00
Pasta
c123e10cc8
#10193 scripted-diff: Remove #include <boost/foreach.hpp>
-BEGIN VERIFY SCRIPT-
sed -i ':a;N;$!ba;s/#include <boost\/foreach.hpp>\n//' ./src/*.h ./src/*.cpp ./src/*/*.h ./src/*/*.cpp ./src/*/*/*.h ./src/*/*/*.cpp
-END VERIFY SCRIPT-

Signed-off-by: Pasta <pasta@dashboost.org>
2019-07-24 11:59:09 -05:00
UdjinM6
8231255dd3
Merge pull request #3029 from PastaPastaPasta/backports-0.15-pr21
Backports 0.15 pr21
2019-07-23 12:19:41 +03:00
strophy
be3bc48c95 Fix broken link in PrivateSend info dialog (#3031) 2019-07-22 20:06:04 +03:00
Wladimir J. van der Laan
184847c2ed
Merge #10673: [qt] Avoid potential null pointer dereference in TransactionView::exportClicked()
fd9599b [qt] Avoid potential null pointer dereference in TransactionView::exportClicked() (practicalswift)

Tree-SHA512: 33cbb65bd86aceb58918eb0a19e1727599a22285e7c89d4e7d3b2639c879dc8939708fd506006c6c092f624050d1131f997cc37f837cb980aa440f8abe5a3c18
2019-07-17 10:05:13 -05:00
UdjinM6
9d49fbff69
Merge pull request #3025 from PastaPastaPasta/backports-0.15-pr20
Backports 0.15 pr20
2019-07-17 12:35:54 +03:00
UdjinM6
d57cbc615b
Backport #12783: macOS: disable AppNap during sync (and mixing) (#3024)
* Merge #12783: macOS: disable AppNap during sync

1e0f3c44992fb82e6bf36c2ef9277b0759c17c4c macOS: disable AppNap during sync (Alexey Ivanov)

Pull request description:

  Code based on pull/5804. Tested only on macOS 10.13.3 and should support 10.9+.

  What macOS versions bitcoin core currently supports?

Tree-SHA512: 85809b8d8d8a05169437b4268988da0b7372c29c6da3223ebdc106dc16dcb6d3caa5c52ace3591467005b50a63fd8b2ab1cb071cb4f450032932df25d5063315

* Refactor

* Drop `#include <memory>` from `src/qt/bitcoingui.h`

Was included by mistake.
2019-07-15 14:38:55 +03:00
Wladimir J. van der Laan
785fa07015
Merge #10295: [qt] Move some WalletModel functions into CWallet
108f04f Add missing LOCK2 in CWallet::GetAvailableBalance (Russell Yanofsky)
429aa9e [test] Move some tests from qt -> wallet (Russell Yanofsky)
d944bd7 [qt] Move some WalletModel functions into CWallet (Russell Yanofsky)
ef8ca17 [test] Add tests for some walletmodel functions (Russell Yanofsky)

Tree-SHA512: f6384d9f2ff3f7fb173d414588c3e7dc8c311b8ed2ce2b0979fb824a0ed83a7302890ccd3d83197f07f6fdcb6b1ca151584d90ea1961d88dfe8956c87087cde8
2019-07-11 10:34:46 -05:00
Wladimir J. van der Laan
41b3869031
Merge #10400: [RPC] Add an uptime command that displays the amount of time (in seconds) bitcoind has been running
c074752 [RPC] Add an uptime command that displays the amount of time that bitcoind has been running (Ricardo Velhote)

Tree-SHA512: 8f59d4205042885f23f5b87a0eae0f5d386e9c6134e5324598e7ee304728d4275f383cd154bf1fb25350f5a88cc0ed9f97edb099e9b50c4a0ba72d63ec5ca5b4
2019-07-11 10:34:46 -05:00
Wladimir J. van der Laan
5f2c9d7307
Merge #10633: doc: Fix various typos
0a5a6b9 Fixed multiple typos (Dimitris Tsapakidis)

Tree-SHA512: 57748710bcbc03945b160db5e95bd686a2c64605f25d5e11d8ed9d0e1be3b3bf287a63588dc6eb33d0cef4ff17c765fda7c226d667a357acc539c8fcf2b9bb7e
2019-07-11 10:34:46 -05:00
Wladimir J. van der Laan
1c4981d719
Merge #9343: Don't create change at dust limit
6171826 Don't create change at the dust limit, even if it means paying more than expected (Alex Morcos)

Tree-SHA512: d4cf939b97a92d63d4703ad152093c9dc60e74af590697bc21adbcdf17fc9e6ffb37d46d5eefafbd69327d1bcb79911f1b826ce1d960d895d464c4408c4995c3
2019-07-11 10:34:46 -05:00
Pieter Wuille
d46aff5369
Merge #10536: Remove unreachable or otherwise redundant code
4265bf351 Remove unreachable or otherwise redundant code (practicalswift)

Tree-SHA512: bc9666ab5d20c936d78c50c0361405aca9edd116602aa9bcd71a79a904b647ac9eca0651d1a9d530189a6ac1c4e235bfc69ec1a68f7e36cc14d6848ac2206b7b
2019-07-11 10:34:46 -05:00
UdjinM6
7eeee33144
Merge pull request #3023 from PastaPastaPasta/backports-0.15-pr19
Backports 0.15 pr19
2019-07-11 10:51:23 +03:00
PastaPastaPasta
2cbf726ab0 Backport #8694: Basic multiwallet support (#3022)
* Merge #8694: Basic multiwallet support

c237bd7 wallet: Update formatting (Luke Dashjr)
9cbe8c8 wallet: Forbid -salvagewallet, -zapwallettxes, and -upgradewallet with multiple wallets (Luke Dashjr)
a2a5f3f wallet: Base backup filenames on original wallet filename (Luke Dashjr)
b823a4c wallet: Include actual backup filename in recovery warning message (Luke Dashjr)
84dcb45 Bugfix: wallet: Fix warningStr, errorStr argument order (Luke Dashjr)
008c360 Wallet: Move multiwallet sanity checks to CWallet::Verify, and do other checks on all wallets (Luke Dashjr)
0f08575 Wallet: Support loading multiple wallets if -wallet used more than once (Luke Dashjr)
b124cf0 Wallet: Replace pwalletMain with a vector of wallet pointers (Luke Dashjr)
19b3648 CWalletDB: Store the update counter per wallet (Luke Dashjr)
74e8738 Bugfix: ForceSetArg should replace entr(ies) in mapMultiArgs, not append (Luke Dashjr)
23fb9ad wallet: Move nAccountingEntryNumber from static/global to CWallet (Luke Dashjr)
9d15d55 Bugfix: wallet: Increment "update counter" when modifying account stuff (Luke Dashjr)
f28eb80 Bugfix: wallet: Increment "update counter" only after actually making the applicable db changes to avoid potential races (Luke Dashjr)

Tree-SHA512: 23f5dda58477307bc07997010740f1dc729164cdddefd2f9a2c9c7a877111eb1516d3e2ad4f9b104621f0b7f17369c69fcef13d28b85cb6c01d35f09a8845f23

* pwalletMain -> vpwallets

Signed-off-by: Pasta <pasta@dashboost.org>

* add gArgs

Signed-off-by: Pasta <pasta@dashboost.org>

* continued pwalletsMain -> vpwallets

Signed-off-by: Pasta <pasta@dashboost.org>

* remove external pwalletMains and pwalletMain -> vpwallet

Signed-off-by: Pasta <pasta@dashboost.org>

* add external referance to vpwallets

Signed-off-by: Pasta <pasta@dashboost.org>

* more pWalletMain -> vpwallets[0]

Signed-off-by: Pasta <pasta@dashboost.org>

* code review

Signed-off-by: Pasta <pasta@dashboost.org>

* revert LOCK(cs_main) move

Signed-off-by: Pasta <pasta@dashboost.org>

* import wallet.h and remove extern

Signed-off-by: Pasta <pasta@dashboost.org>

* batch.* -> WriteIC and EraseIC

Signed-off-by: Pasta <pasta@dashboost.org>

* wrap wallet.h include inside of an ifdef

Signed-off-by: Pasta <pasta@dashboost.org>

* drop wallet.h

Signed-off-by: Pasta <pasta@dashboost.org>

* add dropped "!"

Signed-off-by: Pasta <pasta@dashboost.org>
2019-07-11 10:50:52 +03:00
Wladimir J. van der Laan
3bae86b62d Merge #10582: Pass in smart fee slider value to coin control dialog
e9cd778 Pass in smart fee slider value to coin control dialog (Alex Morcos)

Tree-SHA512: 3899c3eb89b06e9cc842b33fabcce40a84fcc3a88ac2b02861f63419925312ac2a9f632567c02b0a060f5c5cd55f337e35e99b80535d1c1b8fcb7fd0c539f3c0
2019-07-09 13:08:21 -05:00
Wladimir J. van der Laan
c520de2396 Merge #9895: Turn TryCreateDirectory() into TryCreateDirectories()
1d1ea9f Turn TryCreateDirectory() into TryCreateDirectories() (Marko Bencun)

Tree-SHA512: 49a524167bcf66e351a964c88d09cb3bcee12769a32da83410e3ba649fa4bcdbf0478d41e4d09bb55adb9b3f122e742271db6feb30bbafe2a7973542b5f10f79
2019-07-09 13:08:21 -05:00
Pasta
e81a28604c scripted-diff: Remove PAIRTYPE #10502
-BEGIN VERIFY SCRIPT-
sed -i 's/PAIRTYPE(\([^,]*\), \([^\)]*\))/std::pair<\1, \2>/' ./src/*.h ./src/*.cpp ./src/*/*.h ./src/*/*.cpp ./src/*/*/*.h ./src/*/*/*.cpp ;
sed -i ':a;N;$!ba;s/#define std::pair<t1, t2>    std::pair<t1, t2>\n//' ./src/utilstrencodings.h ;
-END VERIFY SCRIPT-
2019-07-09 13:08:21 -05:00
Pasta
0d52db844c scripted-diff: Remove Q_FOREACH #10502
-BEGIN VERIFY SCRIPT-
sed -i 's/Q_FOREACH *(\(.*\),/for (\1 :/' ./src/*.h ./src/*.cpp ./src/*/*.h ./src/*/*.cpp ./src/*/*/*.h ./src/*/*/*.cpp ;
-END VERIFY SCRIPT-
2019-07-09 13:08:21 -05:00
Pasta
a15d7405e3 scripted diff: #10502 Fully remove BOOST_FOREACH
-BEGIN VERIFY SCRIPT-
sed -i 's/BOOST_FOREACH *(\(.*\),/for (\1 :/' ./src/*.h ./src/*.cpp ./src/*/*.h ./src/*/*.cpp ./src/*/*/*.h ./src/*/*/*.cpp ;
-END VERIFY SCRIPT-
2019-07-09 13:08:21 -05:00
Jorge Timón
25008bd38a Small preparations for Q_FOREACH, PAIRTYPE and #include <boost/foreach.hpp> removal 2019-07-09 13:08:20 -05:00
Pieter Wuille
195d42a284 Merge #10568: Remove unnecessary forward class declarations in header files
4087d9ea7 Remove unnecessary forward class declarations in header files (practicalswift)

Tree-SHA512: 80a9b2cd339ba9c606c0dd93739ac80941b6050388fee2edd7976ae8b5e332fd0b4f1df1e89c1d6d28a77c23a36b1e874e72977985fb8f710c65c45c3a926f97
2019-07-09 13:08:20 -05:00
Alexander Block
2f21e55514 Remove legacy InstantSend code (#3020)
* Remove ppszTypeName from protocol.cpp and reimplement GetCommand

This removes the need to carefully maintain ppszTypeName, which required
correct order and also did not allow to permanently remove old message
types.

To get the command name for an INV type, GetCommandInternal uses a switch
which needs to be maintained from now on.

The way this is implemented also resembles the way it is implemented in
Bitcoin today, but it's not identical. The original PR that introduced the
switch case in Bitcoin was part of the Segwit changes and thus never got
backported. I decided to implement it in a slightly different way that
avoids throwing exceptions when an unknown INV type is encountered.

IsKnownType will now also leverage GetCommandInternal() to figure out if
the INV type is known locally. This has the side effect of old/legacy
message types to return false from now on. We will depend on this side
effect in later commits when we remove legacy InstantSend code.

* Stop handling/relaying legacy IX messages

When we receive an IX message, we simply treat it as a regular TX and relay
it as such.

We'll however still request IX messages when they are announced to us. We
can't simply revert to requesting TX messages in this case as it might
result in the other peer not answering due to the TX not being in mapRelay
yet. We should at some point in the future completely drop handling of IX
messages instead.

* Remove IsNewInstantSendEnabled() and only use IsInstantSendEnabled()

* Remove legacy InstantSend from GUI

* Remove InstantSend from Bitcoin/Dash URIs

* Remove legacy InstantSend from RPC commands

* Remove legacy InstantSend from wallet

* Remove legacy instantsend.h include

* Remove legacy InstantSend from validation code

* Completely remove remaining legacy InstantSend code

* Remove now unused spork

* Fix InstantSend related test failures

* Remove now obsolete auto IS tests

* Make spork2 and spork3 disabled by default

This should have no influence on mainnet as these sporks are actually set
there. This will however affect regtest, which shouldn't have LLMQ based
InstantSend enabled by default.

* Remove instantsend tests from dip3-deterministicmns.py

These were only testing legacy InstantSend

* Fix .QCheckBox#checkUsePrivateSend styling a bit

* s/TXLEGACYLOCKREQUEST/LEGACYTXLOCKREQUEST/

* Revert "verified via InstantSend" back to "verified via LLMQ based InstantSend"

* Use cmd == nullptr instead of !cmd

* Remove last parameter from AvailableCoins call

This was for fUseInstantSend which is not present anymore since rebase
2019-07-09 17:50:08 +03:00
Wladimir J. van der Laan
1099c1ad60
Merge #10546: Remove 33 unused Boost includes
49de096 Remove unused Boost includes (practicalswift)

Tree-SHA512: ff2dad94f9eeb1dc50fcffd0e94e1686be04e4e5bc45f58ae955d630c15cd25bb8f5583d0aa1f2f263b5a723be79747ef3c6e6b417c7be7787c0abc8d1874019
2019-07-08 13:50:05 -05:00
Wladimir J. van der Laan
80b8032501
Merge #10561: Remove duplicate includes
e53a0fa Remove duplicate includes (practicalswift)

Tree-SHA512: 5101afaf190ade3ffbea666ff5d0cb59d3e1dbdd9a3db3d91df7b51c13cc9f5a699438e8a753655365f6dc14529bc95883e715b5a6ab73158374e13ec311f70b
2019-07-08 13:50:05 -05:00
Pieter Wuille
f6400a8713
Merge #10521: Limit variable scope
90593ed92 Limit variable scope (practicalswift)

Tree-SHA512: 4719e303688a31aefbe1d239e86b21dd3c2045524e08bd628c6ba0c6c2a97de14d04305b9beafe0b1dcde7229793e6663168953f192e88ed409be5c30fd2a9a9
2019-07-08 13:50:05 -05:00
Wladimir J. van der Laan
b92d2dd66a
Merge #10545: Use list initialization (C++11) for maps/vectors instead of boost::assign::map_list_of/list_of
3fb81a8 Use list initialization (C++11) for maps/vectors instead of boost::assign::map_list_of/list_of (practicalswift)

Tree-SHA512: 63a9ac9ec5799472943dce1cd92a4b14e7f1fe12758a5fc4b1efceaf2c85a4ba71dad5ccc50813527f18b192e7714c076e2478ecd6ca0d452b24e88416f872f7
2019-07-08 10:24:30 -05:00
UdjinM6
53efd1f9e1
Merge pull request #3007 from PastaPastaPasta/backports-0.15-pr17
Backports 0.15 pr17
2019-07-08 18:16:05 +03:00
Alexander Block
780bffeb78 Enable stacktrace support in gitian builds (#3006)
* Remove use of -rdynamic

This causes check-symbols to fail horribly and also turned out to be not
required when using libbacktrace. It was only required when using
"backtrace()" from "<execinfo.h>"

* Remove spurious ], from configure.ac

* Add -DENABLE_STACKTRACES=1 to CMakeLists.txt

* Remove unused method my_backtrace_simple_callback

* Use fs::path().filename() instead of basename()

* Add static g_exeFileName and g_exeFileBaseName

* Use .exe.dbg file when available

* Use uint64_t instead of uintptr_t

* Implement GetBaseAddress() for unix and win32

* Implement unified crash_info and use it everywhere before printing crash info

* Print a serialized version of crash_info when there is no debug info

* Implement "-printcrashinfo" command line option

* Compile stacktrace support unconditionally and only make crash hooks conditional

This also renames the --enable-stacktraces option to --enable-crash-hooks

* Enable crash hooks in win/linux Gitian builds

* Try to load .debug file on MacOS and enable crash hooks for osx Gitian builds

* Check for dsymutil and if it needs --flat

* Create .debug files in osx Gitian build

* Handle review comments

* Also print crash description when no stacktrace is available

* Unconditionally add -g1 debug information

Instead of making it dependent on "--enable-crash-hooks". We will need the
debug info every time now, even in release builds.

* Put MacOS debug info into dSYM symbols instead of plain .debug files

* Implement MacOS specific GetBaseAddress
2019-07-02 07:16:11 +03:00
UdjinM6
b75e1cebd3
Decouple lite mode and client-side PrivateSend (#2893)
* Decouple lite mode and client-side PrivateSend

`-enableprivatesend`:
1. off by default in lite mode but can be overridden
2. does not start mixing, use `-privatesendautostart` (default is off) or `privatesend` rpc instead

* Disable PS when there is no wallet, do not auto-start mixing when wallet is locked

* Check for `!fEnablePrivateSend` and `!fPrivateSendRunning` instead of `!pwalletMain` in ps client code

* Add meaningful `privatesend` rpc error messages for various cases when mmixing is disabled
2019-06-27 23:24:43 +03:00
Wladimir J. van der Laan
39cfd61c07 Merge #9279: Consensus: Move CFeeRate out of libconsensus
381a46e Consensus: Policy: MOVEONLY: Move CFeeRate out of the consensus module (Jorge Timón)
330bb5a Consensus: Minimal way to move dust out of consensus (Jorge Timón)

Tree-SHA512: 19a2ea8169afd5a9d3f940d8974e34cfaead153e3ff3068ac82fccdb8694d19d9b45938904ec9e8cd095bd5ca3a0080364da29372f6aaf56b11a6c2ccd6c7a4d
2019-06-26 15:26:07 -05:00
Wladimir J. van der Laan
50652674b5 Merge #8855: Use a proper factory for creating chainparams
c1082a7 Chainparams: Use the factory for pow tests (Jorge Timón)
2351a06 Chainparams: Get rid of CChainParams& Params(std::string) (Jorge Timón)
f87f362 Chainparams: Use a regular factory for creating chainparams (Jorge Timón)

Tree-SHA512: 359c8a2a1bc9d02db7856d02810240ada28048ac088f878b575597a7255cdb0ffdd1a647085ee67a34c6a7e7ed9e6cfdb61240cf6e75139619b640dbb096072c
2019-06-26 12:45:10 -05:00
Pasta
6bfbe6053d
Scripted diff find src/ -name "*.cpp" ! -wholename "src/util.h" ! -wholename "src/util.cpp" | xargs perl -i -pe 's/(?<!\.)(ParseParameters|ReadConfigFile|IsArgSet|(Soft|Force)?(Get|Set)(|Bool|)Arg(s)?)\(/gArgs.\1(/g' based on bb81e17355
(#10607)

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-24 12:03:00 -05:00
Wladimir J. van der Laan
ae864eb2ce
Merge #10390: [wallet] remove minimum total fee option
091a9ae remove minimum total fee option (Gregory Sanders)

Tree-SHA512: 9be4df3dab0219f30917211408f47b242f7c96dd7663b06ab1cf3cc63027f14956dc680883be6c58673b6452d0f339cf893694e4f21d0d248e70760614d5a344
2019-06-24 11:39:34 -05:00
Pieter Wuille
2e050ea744
Merge #10395: Replace boost::function with std::function (C++11)
1b936f5 Replace boost::function with std::function (C++11) (practicalswift)

Tree-SHA512: c4faec8cf3f801842010976115681f68ffa08fbc97ba50b22e95c936840f47e1b3bd8d7fd2f5b4e094b5a46bf3d29fc90b69d975a99e77322c0d19f8a00d53d3
2019-06-24 11:39:34 -05:00
Jonas Schnelli
f2ee6f1aa5
Merge #10362: [GUI] Add OSX keystroke to RPCConsole info
012fa9b99 Add OSX keystroke to clear RPCConsole (Spencer Lievens)

Tree-SHA512: 124e9567d633fd80ab200e53b34c821947111ebb6ebd0b2ba3feacdbe2b6ab59ab447b87473f36d221d4189d92df6d53e34a8486aacaa8eaa4d9e413db01b11f
2019-06-24 11:39:34 -05:00
Wladimir J. van der Laan
a1770b0c25 Merge #7692: Remove p2p alert system
cfd519e Add release note documentation (BtcDrak)
6601ce5 protocol.h/cpp: Removes NetMsgType::ALERT (Thomas Kerin)
ad72104 Formatting (BtcDrak)
1b77471 Remove alert keys (BtcDrak)
01fdfef Remove `-alerts` option (BtcDrak)
9206634 Update alert notification and GUI (BtcDrak)
bbb9d1d Remove p2p alert handling (BtcDrak)

manual fixes

Signed-off-by: Pasta <pasta@dashboost.org>

remove sendalert.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

CAlertNotify -> AlertNotify

Signed-off-by: Pasta <pasta@dashboost.org>

remove alert.h

Signed-off-by: Pasta <pasta@dashboost.org>

remove vAlertPubKey for DevNet

Signed-off-by: Pasta <pasta@dashboost.org>

remove src/main.cpp
2019-06-21 19:33:53 -05:00
Wladimir J. van der Laan
310ff00e65
Merge #10175: Remove excess logic.
9a763d4 Remove excess logic. (practicalswift)

Tree-SHA512: cfef280cc9cccf5042c9c49a8cd6fb6700764671cdd0d988149121f56c2d43a9ac38c5fc99c92385a9619d2d846480e02a9d655fa2586b1c284961b4634c229b

fix 10175

Signed-off-by: Pasta <pasta@dashboost.org>

fix 10175

Signed-off-by: Pasta <pasta@dashboost.org>

fix 10175

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-19 08:20:15 -05:00
UdjinM6
c58184f6c4
Merge pull request #2974 from PastaPastaPasta/backports-0.15-pr14
Backports 0.15 pr14
2019-06-19 14:30:54 +03:00
Amir Abrams
f84d5d46d3 QT: Revert "Force TLS1.0+ for SSL connections" (#2985)
See: 0242b5afa4
This reverts commit 15e26a6, whose
purpose was to tweak the Qt configuration to force TLS, i.e., to
disable SSLv3, in Qt versions >= 5.5. However, the default behavior
of Qt >= 5.4 is to disable SSLv3 anyway [1], so the configuration
tweak is redundant.

With Qt 5.11.2, the configuration tweak is not only redundant but in
fact provokes a deadlock (#14359) due to Qt 5.11.2 being incompatible
with OpenSSL 1.1.1 [2]. Since the deadlock occurs at the early startup
stage of bitcoin-qt, it renders bitcoin-qt entirely non-functional
when compiled against OpenSSL 1.1.1 and Qt 5.11.2 (and possible future
combinations of OpenSSL and Qt versions).

This commit fixes #14359 by removing the redundant code.

[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3fd2d9eff8c1f948306ee5fbfe364ccded1c4b84
[2] https://bugreports.qt.io/browse/QTBUG-70956
2019-06-18 14:34:36 +03:00
Jonas Schnelli
ed71579cce Merge #10093: [Qt] Don't add arguments of sensitive command to console window
7278537 [Qt] Don't add arguments of sensitive command to console window (Jonas Schnelli)

Tree-SHA512: 3e5aa19a3f157caf383a0fd7dbf9b0d298d31ddaf8e24e3d1a8b913e19f54f3b69e115f98a21f3e3a14e5ccb368b59de061490ed39718299456a04989f8e3366
2019-06-14 14:47:40 -05:00
Alexander Block
864856688d Multiple speed optimizations for deterministic MN list handling (#2972)
* Generalize CBLSLazyWrapper so that it can be used of pubkeys and secret keys

* Implement == and != operators for CBLSLazyWrapper

* Implement cached hash for CBLSLazyWrapper

* Use CBLSLazyPublicKey for CDeterministicMNState::pubKeyOperator

* Speed up GetProjectedMNPayees by sorting the MN list by last paid

Instead of updating a temporary list for each projected height and calling
GetMNPayee() on it.

* Cache intermediate lists in GetListForBlock

This avoids re-loading and applying diffs again and again.

* Only update masternode list UI max once every 3 seconds

This avoids updating the UI on every block, which turned out to be very
expensive.

* Fix compilation

* Drop time restrictions for mn list update in ClientModel

They are fully handled by MasternodeList now.
2019-06-13 12:01:26 +03:00
PastaPastaPasta
d931cb723e Update copyright date (2019) (#2970)
Signed-off-by: Pasta <Pasta@dash.org>
2019-06-11 14:46:07 +03:00
UdjinM6
1d7710d06a
Merge pull request #2935 from PastaPastaPasta/backports-0.15-pr13
Backports 0.15 pr13
2019-06-11 14:41:22 +03:00
Wladimir J. van der Laan
07b4c08bd7
Merge #9951: Wallet database handling abstractions/simplifications
911a480 wallet: Add comment describing the various classes in walletdb.h (Wladimir J. van der Laan)
69d2e9b wallet: Make IsDummy private in CWalletDBWrapper (Wladimir J. van der Laan)
3323281 wallet: CWalletDB CDB composition not inheritance (Wladimir J. van der Laan)
be9e1a9 wallet: Reduce references to global bitdb environment (Wladimir J. van der Laan)
071c955 wallet: Get rid of fFileBacked (Wladimir J. van der Laan)
71afe3c wallet: Introduce database handle wrapper (Wladimir J. van der Laan)

Tree-SHA512: e4e72953c61a2f6995d609a32f8ed8e18cab9a92bc9e193d46a1d1f06d9daa5c6da6fce2867d4e3ba4fc0439141901a3d35f246486f0fa8f59587786379dfcbd

add 'batch.'

Signed-off-by: Pasta <Pasta@dash.org>

remove `if (fFileBacked)`

Signed-off-by: Pasta <pasta@dashboost.org>

remove fFileBacked and strWalletFile

Signed-off-by: Pasta <Pasta@dash.org>
2019-06-08 09:37:08 -05:00
Wladimir J. van der Laan
3d46bd3e79
Merge #10181: Include cleanup
1c897fc Missing includes (Jorge Timón)
a1fd450 Trivial: Remove unneeded includes from .h: (Jorge Timón)

Tree-SHA512: ada3e62cc2435e58172a88b380be371b717a05725956c15e5493b6e19fe2903e5e6e43fd22dc24699333a0e8a0c7b42eb1ae61b41cb4ba82495be18e2d4ef3c6

move "#include "chain.h"" down a line

Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-08 09:36:43 -05:00
UdjinM6
a83b63186b
Fix UI masternode list (#2966)
NotifyMasternodeListChanged is called before the tip is updated which means we can't rely on GetListAtChainTip() and have to pass the list into CClientUIInterface
2019-06-08 14:17:56 +03:00
PastaPastaPasta
a149ca7471 Remove references to instantx and darksend in sendcoinsdialog.cpp (#2936)
* bUseInstantX -> bUseInstantSend & bUseDarkSend -> bUsePrivateSend and be backwords compatible

Signed-off-by: Pasta <Pasta@dash.org>

* remove old settings

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-29 21:18:15 +03:00
UdjinM6
d3bd9b633e
Merge pull request #2934 from PastaPastaPasta/backports-0.15-pr12
Backports 0.15 pr12
2019-05-28 20:32:03 +03:00
Wladimir J. van der Laan
f8c5a14f3d
Merge #9942: Refactor CBlockPolicyEstimator
68af651 MOVEONLY: move TxConfirmStats to cpp (Alex Morcos)
2332f19 Initialize TxConfirmStats in constructor (Alex Morcos)
5ba81e5 Read and Write fee estimate file directly from CBlockPolicyEstimator (Alex Morcos)
14e10aa Call estimate(Smart)Fee directly from CBlockPolicyEstimator (Alex Morcos)
dbb9e36 Give CBlockPolicyEstimator it's own lock (Alex Morcos)
f6187d6 Make processBlockTx private. (Alex Morcos)
ae7327b Make feeEstimator its own global instance of CBlockPolicyEstimator (Alex Morcos)

Tree-SHA512: dbf3bd2b30822e609a35f3da519b62d23f8a50e564750695ddebd08553b4c01874ae3e07d792c6cc78cc377d2db33b951ffedc46ac7edaf5793f9ebb931713af

finish #9942 by removing removed functions

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-27 16:58:28 -05:00
UdjinM6
9b8a750c95
More boost::filesystem->fs and some related cleanup 2019-05-27 09:03:19 -05:00
Wladimir J. van der Laan
a54ff70ff4
Merge #9902: Lightweight abstraction of boost::filesystem
f110272 Remove `namespace fs=fs` (Wladimir J. van der Laan)
75594bd torcontrol: Use fs::path instead of std::string for private key path (Wladimir J. van der Laan)
2a5f574 Use fsbridge for fopen and freopen (Wladimir J. van der Laan)
bac5c9c Replace uses of boost::filesystem with fs (Wladimir J. van der Laan)
7d5172d Replace includes of boost/filesystem.h with fs.h (Wladimir J. van der Laan)
19e36bb Add fs.cpp/h (Wladimir J. van der Laan)

Tree-SHA512: 2c34f059dfa6850b9323f3389e9090a6b5f839a457a2960d182c2ecfafd9883c956f5928bb796613402d3aad68ebc78259796a7a313f4a6cfa98aaf507a66842
2019-05-27 09:03:19 -05:00
Jonas Schnelli
4efa99c2df
Merge #10221: Stop treating coinbase outputs differently in GUI: show them at 1conf
608bbcc [qt] Stop treating coinbase outputs differently: show them at 1conf (Matt Corallo)

Tree-SHA512: 62ba10520da8b83cf8e97c86dec3ccdcca8b7bfae0174d1a4099d33aa5d11933cc7c248394bf67c2b105211cf7931955816c741957832e703211030c7f4f002f
2019-05-23 07:43:01 -05:00
PastaPastaPasta
29194b1f5a Backport Bitcoin#9424, Bitcoin#10123 and Bitcoin#10153 (#2918)
* Contains dashification. disables `-debug dash`
Merge #9424: Change LogAcceptCategory to use uint32_t rather than sets of strings.

6b3bb3d Change LogAcceptCategory to use uint32_t rather than sets of strings. (Gregory Maxwell)

Tree-SHA512: ebb5bcf9a7d00a32dd1390b727ff4d29330a038423611da01268d8e1d2c0229e52a1098e751d4e6db73ef4ae862e1e96d38249883fcaf12b68f55ebb01035b34
Signed-off-by: Pasta <Pasta@dash.org>

31 -> 32

Signed-off-by: Pasta <Pasta@dash.org>

* Merge #10123: Allow debug logs to be excluded from specified component

3bde556 Add -debugexclude option to switch off logging for specified components (John Newbery)

Tree-SHA512: 30202e3f2085fc2fc5dd4bedb92988f4cb162c612a42cf8f6395a7da326f34975ddc347f82bc4ddca6c84c438dc0cc6e87869f90c7ff88105dbeaa52a947fa43

* bump to uint64_t due to added Dash codes

Signed-off-by: Pasta <Pasta@dash.org>

* bump to uint64_t due to added Dash codes cont.

Signed-off-by: Pasta <Pasta@dash.org>

* string -> BCLog format

Signed-off-by: Pasta <Pasta@dash.org>

* uint32_t -> uint64_t

Signed-off-by: Pasta <Pasta@dash.org>

* Fix CBatchedLogger

* Fix most fDebug-s

* Fix `debug` rpc

* Fix BENCH and RAND conflicts

* Add ALERT and use it

* Update LogPrint-s in dash-specific code

* Tweak few log categories

Specifically:
- use PRIVATESEND in `CPrivateSendClientManager::GetRandomNotUsedMasternode()`
- use ZMQ in `CZMQPublishRawGovernanceVoteNotifier::NotifyGovernanceVote()` and `CZMQPublishRawGovernanceObjectNotifier::NotifyGovernanceObject()`

* Drop no longer used MASTERNODE category

* Merge #10153: logging: Fix off-by-one for shrinkdebugfile default

faab624 logging: Fix off-by-one for shrinkdebugfile (MarcoFalke)

Tree-SHA512: d6153e06067906172ff0611af9e585a3ecf0a7d56925b6ad7c12e75aa802441047059b9b6f6c78e79916c3f2abc8f1998bfd2d5b84201ec6421f727c08da3c21

* Shift dash-specific log categories to start from `1ul << 32` to avoid potential future conflicts with bitcoin ones

* Fix `dash` category

* remove debugCategories

Signed-off-by: Pasta <Pasta@dash.org>

* Prepend "std::" to find call

* Check for BCLog::PRIVATESEND instead of logCategories != BCLog::NONE

* Use BCLog::MNPAYMENTS category instead of checking for logCategories != BCLog::NONE

* Move "End Dash" comment below "ALERT"

When adding new entries here, we'll otherwise get confused with ordering
and might end up forgetting that adding something Dash specific must
continue with the bit after 43.
2019-05-23 00:51:39 +03:00
UdjinM6
92e5a38314
Merge pull request #2911 from PastaPastaPasta/backports-0.15-pr10
Backports 0.15 pr10
2019-05-22 17:50:44 +03:00
UdjinM6
44b7e55fe9
Merge pull request #2771 from PastaPastaPasta/backports-0.15-pr9
Backports 0.15 pr9
2019-05-22 16:18:21 +03:00
Alexander Block
5652ea0237 Show number of InstantSend locks in Debug Console (#2919)
* Implement GetInstantSendLockCount in CInstantSendManager

* Add islockCountChanged signal to client model

* Show number of InstantSend locks in debug console
2019-05-22 09:35:51 +03:00
Wladimir J. van der Laan
4121daba28
Merge #10098: Make qt wallet test compatible with qt4
e9a6461 Make qt wallet test compatible with qt4 (Russell Yanofsky)

Tree-SHA512: a3e4598986cb3c5c20aaa1d440abc886d84fcc69a6ee4079787cfc8e3a2dce655060ff95612cb15ce8b5a9b8911e4afe2281345b59a4353ec32edf3771338381
2019-05-21 08:52:47 -05:00
Jonas Schnelli
96a5f5730b
Merge #9500: [Qt][RPC] Autocomplete commands for 'help' command in debug console
6d8fe35 'help' rpc commands autocomplete (Andrew Chow)

Tree-SHA512: 289bc4fa16a1c0291262998caa18556f1c5aa89662c85528606dc03b596b8833a0fb2c5c9c068b6dcf2adb3a136d4f154591d4a95b8c3313638b77355aaed955
2019-05-21 08:52:43 -05:00
Jonas Schnelli
f2e976a051
Merge #10045: [trivial] Fix typos in comments
dbf30ff [trivial] Fix typos in comments (practicalswift)

Tree-SHA512: a841c96ba1a80ab57206e8ef4fa9b40ecff2244075a5539fc09f57e763bf2e92b0ed089e32a0dbac3902518dcda43d224f75a3462a560148841746560640ba70
2019-05-21 08:52:42 -05:00
Wladimir J. van der Laan
2c833eff3e
Merge #10039: Fix compile errors with Qt 5.3.2 and Boost 1.55.0
b5bec4e Avoid QTimer::singleShot compile error with Qt 5.3.2 (Russell Yanofsky)
d5046e7 Avoid scoped_connection compile error with boost 1.55.0 (Russell Yanofsky)

Tree-SHA512: 96362b872817681b062e05c8fcb76cfc23b6e87e0371584a6aae0e17535fd34ccdba922380aa4b669a8e75ef3f9fadd25061541f77cb3198173f04249a7bcd62
2019-05-21 08:52:36 -05:00
PastaPastaPasta
32aa229c7f Reorganize Dash Specific code into folders (#2753)
* rename instantx.* file to instantsend.*

* Reorganize Dash Specific code into folders

add to privatesend folder the header files

Signed-off-by: Pasta <Pasta@dash.org>

add "masternode" to imports

Signed-off-by: Pasta <Pasta@dash.org>

add "masternode" to imports

Signed-off-by: Pasta <Pasta@dash.org>

add "masternode" to imports pt 2

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-21 15:26:15 +02:00
Wladimir J. van der Laan
0db1328a24
Merge #10177: Changed "Send" button default status from true to false
8c3e6c6 Changed "Send" button default status from true to false (KibbledJiveElkZoo)

Tree-SHA512: e60d7481351e88925d99b33bdb616f3c234e93ef052571b9c4a1328186ec9abb8b61b0c4299afcb731edad2634aef6b1adaad121646b6c0c56dc933662904674
2019-05-19 20:43:01 -05:00
Wladimir J. van der Laan
fc1b3772d5
Merge #10899: [test] Qt: Use _putenv_s instead of setenv on Windows builds
0be03c7 Qt: Use _putenv_s instead of setenv on Windows builds (Brian McMichael)

Pull request description:

  Fixes https://github.com/bitcoin/bitcoin/issues/10836

  Error message I would get on `make`:
  ```
  ...
    CXXLD    bench/bench_bitcoin.exe
    OBJCXXLD qt/bitcoin-qt.exe
  qt/test/test_main.cpp: In function ‘int main(int, char**)’:
  qt/test/test_main.cpp:64:43: error: ‘setenv’ was not declared in this scope
       setenv("QT_QPA_PLATFORM", "minimal", 0);
                                             ^
  make[2]: *** [qt/test/qt_test_test_bitcoin_qt-test_main.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[2]: Leaving directory `/home/bmcmichael/Projects/bcoin/src'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/home/bmcmichael/Projects/bcoin/src'
  make: *** [all-recursive] Error 1
  ```

  `setenv` function is not available from the Microsoft runtime library. Need to use `_putenv_s` instead.

  This solution tells the compiler to use `_putenv_s` on `WIN32` compilation (Note: this also works on 64-bit Windows instances.) and `setenv` everywhere else.

  I've tested builds on Windows 10 x64 and Ubuntu 16.04 with this code.

Tree-SHA512: d53c996c890e3c6f22b4f2dcca718bef9168f19a6d4a29b8ff13391bfc0c8ea9c1cd16782b47c25b156dcbdff18bb19e23bfd5f6fefb1f373c9d5454a13fc969
2019-05-06 14:51:47 -05:00
Wladimir J. van der Laan
f8c3f9f7d1
Merge #10142: Run bitcoin_test-qt under minimal QPA platform
bf10264 Run bitcoin_test-qt under minimal QPA platform (Russell Yanofsky)

Tree-SHA512: 35782f0d7e4dcdc27d991d5a10fcffbd2d201139293fe7917ef6f7cd7ae4d3a162ebc21f83266d821ae3bad86f62d947b047bb317f6c5899df4d6bcb4c957157
2019-05-06 14:51:47 -05:00
Wladimir J. van der Laan
de0919220b
Merge #10027: Set to nullptr after delete
d93b97f Set to nullptr after delete (practicalswift)

Tree-SHA512: 7201cef4541557ffe31f52ce7527c4b08a2ff5aa1eae5268bdfee5b4843881f8fd115257bef6d1b4dfb71166951950a912ce87aef160ca89c2ca2ae264cfab1b

set dash pointers to nullptr after deletion
2019-05-06 14:51:46 -05:00
Jonas Schnelli
8e0968faf7
Merge #9690: Change 'Clear' button string to 'Reset'
9155241 Change 'Clear' button string to 'Reset' (Daniel Aleksandersen)

Tree-SHA512: 9d68aaaeef88f174b29bffced81f3b2cb6a76f7a2dd8c43df4d9bd5d29cdbcf073c1f250c6bdfad12540976b1bb27a764e5033d219a1491f27f4d89ddd06e49b
2019-05-06 14:51:43 -05:00
Jonas Schnelli
aee4472ace
Merge #9974: Add basic Qt wallet test
9576b01 Enable xvfb in travis to allow running test_bitcoin-qt (Russell Yanofsky)
9e6817e Add new test_bitcoin-qt static library dependencies (Russell Yanofsky)
2754ef1 Add simple qt wallet test sending a transaction (Russell Yanofsky)
b61b34c Add braces to if statements in Qt test_main (Russell Yanofsky)
cc9503c Make qt test compatible with TestChain100Setup framework (Russell Yanofsky)
91e3035 Make test_bitcoin.cpp compatible with Qt Test framework (Russell Yanofsky)

Tree-SHA512: da491181848b8c39138e997ae5ff2df0b16eef2d9cdd0a965229b1a28d4fa862d5f1ef314a1736e5050e88858f329124d15c689659fc6e50fefde769ba24e523

remove line, testing

bitcoin -> dash, testing

bitcoin -> dash, testing

resolve name conflict, testing

bitcoin -> dash

re-add test fixture line

code review, fix tests

Signed-off-by: Pasta <Pasta@dash.org>

move ExceptionInitializer into test_dash_main.cpp

remove witness from nulldummy.py

Signed-off-by: Pasta <Pasta@dash.org>

change error text to match expected

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-06 14:51:43 -05:00
UdjinM6
3d993ee8fa
Translations v14 (#2638)
* `make translate`

* ru

* ar, bg, de, es, fi, fr, it, ja, ko, nl, pl, pt, sk, th, tr, vi, zh_CN, zh_TW

* Update src/qt/locale/dash_ru.ts

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* Update src/qt/locale/dash_ru.ts

* update sk

* update de

* update de
2019-04-30 16:18:37 +03:00
UdjinM6
8ffdcbf999
A bunch of mostly trivial tweaks/fixes (#2889)
* Trivial: vout->txout

* Re-use SetHexStr in few more places

* Tweak log output

* fix v13 release notes links

* Drop no longer used stuff

* Few more trivial fixes

* Adjust few rpc help strings

* Apply review suggestions
2019-04-30 15:48:21 +03:00
UdjinM6
1951001614
New LLMQ-based IS should have no legacy IS strings in UI and no legacy restrictions (#2883)
(max value/too many inputs/additional fees)
2019-04-29 11:32:43 +03:00
UdjinM6
dcdb9dba12
Add NotifyMasternodeListChanged signal to CClientUIInterface (#2880)
And use it instead of BlockTipChanged for mn list changes.
2019-04-25 18:38:49 +03:00
UdjinM6
5cfceab860
Refactor IS-lock GUI notification and implement a similar one for ChainLocks (#2875)
* Refactor IS-lock GUI notification and implement a similar one for ChainLocks

* Initialize cachedNumISLocks in TransactionStatus ctor
2019-04-25 18:37:39 +03:00
Nathan Marley
e67618ac5c Clean up a few GUI related items (#2846)
* Remove unused (old) icons

* Remove red line from top/bottom of frame

* Remove red line from about image

* Clean up theme display names

* Remove DASH at the beginning (just redundant)
* Capitalize theme names

* Flip "about" image back on its end

* Fix up about image a bit
2019-04-11 15:41:23 +03:00
Peter Bushnell
92feade817 Remove unused forward declaration (#2838) 2019-04-05 14:38:45 +02:00
UdjinM6
4b4234f390
Refactor: fix layer violation for LLMQ based IS in UI (#2808)
Ignoring the same issue for legacy IS because it's going to be removed later.
2019-03-27 11:42:27 +03:00
UdjinM6
39ba45f3c7
Show chainlocked txes as fully confirmed (#2807) 2019-03-27 10:34:22 +03:00
UdjinM6
f87035d146
Fix qt tests and actually run them (#2801)
* Fix qt tests and run them when compiling with DDEBUG_LOCKORDER flag

* Drop "NO_QT=1"
2019-03-25 19:24:24 +03:00
PastaPastaPasta
6f90cf7a17 Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768)
b421e6d Update example bitcoin.conf (Alex Morcos)
7d4e950 Allow setting minrelaytxfee to 0 (Alex Morcos)
359e8a0 [cleanup] Remove coin age priority completely. (Alex Morcos)
f9b9371 [rpc] Remove priorityDelta from prioritisetransaction (Alex Morcos)
49be7e1 [rpc] Remove priority information from mempool RPC calls (Alex Morcos)
0315888 [test] Remove priority from tests (Alex Morcos)
f838005 No longer allow "free" transactions (Alex Morcos)
ad727f4 [rpc] sendrawtransaction no longer bypasses minRelayTxFee (Alex Morcos)
fe282ac [cleanup] Remove estimatePriority and estimateSmartPriority (Alex Morcos)
400b151 [debug] Change -printpriority option (Alex Morcos)
272b25a [mining] Remove -blockprioritysize. (Alex Morcos)
12839cd [rpc] Remove estimatepriority and estimatesmartpriority. (Alex Morcos)
ddf58c7 wallet: Remove sendfree (MarcoFalke)

Tree-SHA512: a9a4499405923ce794ef18f9e334dbbd59dfc73a3dc2df6f85cc9c62af6f353ec2eed9c2d5e58e904f918d0d7ab738f403dd4939d9bc2276136864fe63710782
Signed-off-by: Pasta <Pasta@dash.org>

Fix backport and fix dash specific priority code
2019-03-14 17:44:42 +03:00
UdjinM6
9f40afce86
Merge pull request #2727 from PastaPastaPasta/backports-0.15-pr7
Backports 0.15 pr7
2019-03-11 11:15:51 +03:00
Alexander Block
dc97835ec6 Disable explicit lock requests when the new IX system is active 2019-03-07 21:15:09 +01:00
Alexander Block
3a6cc2cc17 Show "verified via LLMQ based InstantSend" in GUI TX status 2019-03-07 21:14:31 +01:00
UdjinM6
e63cdadc97
Add a button/context menu items to show QR codes for addresses (#2741)
* Add a button/context menu item to show qr codes for addresses in address book

* Add a context menu item to show qr code for addresses in transaction list
2019-03-06 22:45:22 +03:00
Wladimir J. van der Laan
ee2048ae44 Merge #9830: Add safe flag to listunspent result
dcf2112 Add safe flag to listunspent result (NicolasDorier)
af61d9f Add COutput::fSafe member for safe handling of unconfirmed outputs (Russell Yanofsky)

Tree-SHA512: 311edb6fa8075b3ede5b24cb8c6e5d133ccd8ac9ecafea07b604ffa812ee4f071337e31695e662d8573590a0460af20aaaeb39d49c9ea87924449ea50bdfb0b3
2019-02-26 16:41:02 -06:00
Alexander Block
48d92f116e Implement optional pretty printed stacktraces (#2420)
* Add libbacktrace to depends

This is currently only useful to extract symbols. It fails to gather
stacktraces when compiled with MinGW, so we can only use it to get symbol
information from a stack trace which we gathered outside of libbacktrace.

* Add -mbig-obj to CXXFLAGS for MinGW builds

* Implement stacktraces for C++ exceptions

This is a hack and should only be used for debugging. It works by wrapping
the C++ ABI __wrap___cxa_allocate_exception. The wrapper records a backtrace
and stores it in a global map. Later the stacktrace can be retrieved with
GetExceptionStacktraceStr.

This commit also adds handlers to pretty print uncaught exceptions and
signals.

* Use GetPrettyExceptionStr for all unhandled exceptions

* Use --enable-stacktraces in CI for linux32/linux64

* Register exception translators to pretty print exceptions in unit tests

* Catch and print python exceptions when stopping nodes

Otherwise the code at the bottom is never executed when nodes crash,
leading to no output of debug.log files on Travis.

* Remove now unneeded/unused TestCrash methods
2019-02-21 21:37:15 +03:00
UdjinM6
fef8e5d45f
A small overhaul of the way MN list/stats UI and data are tied together (#2696)
* Do not access wallet directly from masternodelist ui, use wallet model instead

* Don't access deterministicMNManager from UI directly, use client model instead

* Send just a general signal to UI elements when mn list has changed and let them handle it in their specific ways

* Drop mn list update timers and use signals instead

* some cleanup

* Move initial UI update to init.cpp

* Refactor getMasternodeList()

* Rename setMasternodeCount to updateMasternodeCount

* Drop legacy code in comments

* Drop NotifyMasternodeListChanged from uiInterface and use NotifyBlockTip instead
2019-02-12 22:51:03 +03:00
PastaPastaPasta
f123248f1c update copyright (#2648)
* update copyright

* Update copyright in configure.ac and COPYING
2019-01-29 15:53:14 +01:00
Pasta
8035769d47
remove removed argument from #9834 2019-01-22 22:57:21 -06:00
Jonas Schnelli
904e56fb11
Merge #9834: qt: clean up initialize/shutdown signals
5b528d7 qt: clean up initialize/shutdown signals (Marko Bencun)

Tree-SHA512: 4a8326ba05a1cc037203a7abe01d4e77b6ff83e62ec14f09834ada4b35a23ffb1f28b5587aa2e02601f0f6c7d62c5647a7f10320239b4bac132791be29930ddb
2019-01-22 22:57:17 -06:00
UdjinM6
b2b97f258f
Fix some strings, docs and cmd-line/rpc help messages (#2632)
* No need to translate "Dash"

* Fix missing dashification

* Update docs

* Fix cmd-line params help

- `bool` should have no `=<smth>`
- non-`bool` should have proper `<smth>`

* Fix `quorum dkgstatus` help

* add llmq/ into files.md
2019-01-22 16:33:20 +03:00
UdjinM6
b8d069bcdd fix/cleanup qt rpcnestedtests 2019-01-21 14:42:08 +01:00
UdjinM6
ee808d819a
Add checkbox to show only masternodes the wallet has keys for (#2627) 2019-01-15 15:46:02 +03:00
UdjinM6
000fabfcc6
Merge pull request #2630 from UdjinM6/mergemastertodevelop
Merge `master` into `develop`
2019-01-15 15:45:33 +03:00
UdjinM6
2c88ba78d1 Merge branch 'master' into develop 2019-01-14 20:31:59 +03:00
UdjinM6
10b3736bd8
[0.13.0.x] Translations201901 (#2592)
* fix source files

* make translate: en strings

* ru

* fi

* vi

* pl

* bg, de, it, ko, nl, sk, tr, zh_CN

* es, th

* ar

dash_ar.ts: Mismatch between 'Are you sure you want to start masternode %1?' and 'هل أنت متأكد أنك تريد بدء ماسترنود 1%؟'
dash_ar.ts: Mismatch between 'Output debugging information (default: %u, supplying <category> is optional)' and 'معلومات تصحيح الخرج  <category>ا(ختياري)'

* ar, es, pt, tr

dash_ar.ts: Mismatch between 'Are you sure you want to start masternode %1?' and 'هل أنت متأكد أنك تريد بدء ماسترنود 1%؟'
dash_ar.ts: Mismatch between 'Output debugging information (default: %u, supplying <category> is optional)' and 'معلومات تصحيح الخرج

* fi

* fr, zh_TW

* ja
2019-01-11 12:54:38 +03:00
Alexander Block
098b094959 Pass scheduler to InitLLMQSystem 2019-01-09 12:16:12 +01:00
PastaPastaPasta
07dcddb4ca Backports 0.15 pr2 (#2597)
* Merge #9815: Trivial: use EXIT_ codes instead of magic numbers

a87d02a use EXIT_ codes instead of magic numbers (Marko Bencun)

* Merge #9801: Removed redundant parameter from mempool.PrioritiseTransaction

eaea2bb Removed redundant parameter from mempool.PrioritiseTransaction (gubatron)

* remove extra parameter (see 3a3745bb) in dash specific code

* Merge #9819: Remove harmless read of unusued priority estimates

bc8fd12 Remove harmless read of unusued priority estimates (Alex Morcos)

* Merge #9766: Add --exclude option to rpc-tests.py

c578408 Add exclude option to rpc-tests.py (John Newbery)

* Merge #9577: Fix docstrings in qa tests

3f95a80 Fix docstrings in qa tests (John Newbery)

* Merge #9823: qa: Set correct path for binaries in rpc tests

3333ad0 qa: Set correct path for binaries in rpc tests (MarcoFalke)

* Merge #9833: Trivial: fix comments referencing AppInit2

ef9f495 Trivial: fix comments referencing AppInit2 (Marko Bencun)

* Merge #9612: [trivial] Rephrase the definition of difficulty.

dc222f8 Trivial: Rephrase the definition of difficulty in the code. (Karl-Johan Alm)

* Merge #9847: Extra test vector for BIP32

30aedcb BIP32 extra test vector (Pieter Wuille)

* Merge #9839: [qa] Make import-rescan.py watchonly check reliable

864890a [qa] Make import-rescan.py watchonly check reliable (Russell Yanofsky)

Tree-SHA512: ea0e2b1d4fc8f35174c3d575fb751b428daf6ad3aa944fad4e3ddcc9195e4f17051473acabc54203b1d27cca64cf911b737ab92e986c40ef384410652e2dbea1

* Change back file params
2019-01-07 12:55:35 +03:00
Alexander Block
d1910eaff4 Refactor remains of CMasternode/-Man into CMasternodeMeta/-Man (#2606)
* Split up remaining logic from CMasternodeMan into CMasternodeMetaMan and CMasternodeUtils

Also get rid of CMastermode and store remaining meta info
in CMasternodeMetaInfo

* Also allow non-const T in Serialize/Unserialize for shared_ptr

* Rename CActiveDeterministicMasternodeManager to CActiveMasternodeManager

* Fix nowallet compile in masternode-utils.cpp
2019-01-03 23:08:34 +03:00
PastaPastaPasta
a49f4123e5 Backports 0.15 pr1 (#2590)
* Merge #9744: Remove unused module from rpc-tests

a432aa0 Remove unused module from rpc-tests (Takashi Mitsuta)

* Merge #9696: [trivial] Fix recently introduced typos in comments

0c9b9b7 [trivial] Fix recently introduced typos in comments (practicalswift)

* Merge #9657: Improve rpc-tests.py

a6a3e58 Various review markups for rpc-tests.py improvements (John Newbery)
3de3ccd Refactor rpc-tests.py (John Newbery)
afd38e7 Improve rpc-tests.py arguments (John Newbery)
91bffff Use argparse in rpc_tests.py (John Newbery)
1581ecb Use configparser in rpc-tests.py (John Newbery)

* Merge #9724: Qt/Intro: Add explanation of IBD process

f6d18f5 Qt/Intro: Explain a bit more what will happen first time (Luke Dashjr)
50c5657 Qt/Intro: Storage shouldn't grow significantly with pruning enabled (Luke Dashjr)
9adb694 Qt/Intro: Move sizeWarningLabel text into C++ code (Luke Dashjr)

* Merge #9794: Minor update to qrencode package builder

1bfe6b4 Use package name variable inside $(package)_file_name variable (Mitchell Cash)

* Merge #9726: netbase: Do not print an error on connection timeouts through proxy

3ddfe29 netbase: Do not print an error on connection timeouts through proxy (Wladimir J. van der Laan)
13f6085 netbase: Make InterruptibleRecv return an error code instead of bool (Wladimir J. van der Laan)

* Merge #9727: Remove fallbacks for boost_filesystem < v3

056aba2 Remove fallbacks for boost_filesystem < v3 (Wladimir J. van der Laan)

* Merge #9485: ZMQ example using python3 and asyncio

b471daf Adddress nits, use asyncio signal handling, create_task (Bob McElrath)
4bb7d1b Add python version checks and 3.4 example (Bob McElrath)
5406d51 Rewrite to not use Polling wrapper for asyncio, link to python2.7 example (Bob McElrath)
5ea5368 ZMQ example using python3 and asyncio (Bob McElrath)

* Merge #9807: RPC doc fix-ups.

851f6a3 [qa][doc] Correct rpc test options in readme (fanquake)
41e7219 [trivial] Add tests_config.ini to .gitignore (fanquake)

* Dashify

Co-Authored-By: PastaPastaPasta <pasta@dashboost.org>

* Change file permissions

* update travis.yml -parallel -> --jobs
2019-01-03 12:18:47 +03:00
Alexander Block
f95aae2b30 Remove all legacy/compatibility MN code (#2600)
* Remove CActiveLegacyMasternodeManager

* Remove sentinelping RPC

* Remove unused P2P messages and inv types

There are still places where these are used in the code. The next commits
will clean these up.

* Remove MNB/MNP/MNVERIFY related code from masternode(man).h/cpp

* Remove all legacy code regarding block MN payee voting

* Remove MASTERNODE_SYNC_LIST and MASTERNODE_SYNC_MNW states

Also replace all uses of IsMasternodeListSynced and IsWinnersListSynced
with IsBlockchainSynced.

* Remove unsupported masternode RPCs

* Remove UpdateLastPaid methods

* Remove duplicate deterministicmns.h include

* Remove masternode.conf support

* Remove legacy MN lists support from masternode list GUI

* Remove unnecessary AskForMN call

* Remove compatibility code in CPrivateSendQueue::GetSignatureHash

* Don't add locally calculated MN payee in case GetBlockTxOuts failed

This is not valid in DIP3 mode

* Remove check for IsDeterministicMNsSporkActive in "masternode status"

* Move CMasternode::IsValidNetAddr to CActiveDeterministicMasternodeManager

* Remove use of CMasternode::CheckCollateral in governance code

* Remove uses of MASTERNODE_SENTINEL_PING_MAX_SECONDS/MASTERNODE_SENTINEL_PING_MAX_SECONDS

* Remove support for "-masternodeprivkey"

* Remove pre-DIP3 vote cleanup

* Remove compatibility code for quorumModifierHash/masternodeProTxHash

* Remove check for invalid nBlockHeight in CMasternodePayments::GetBlockTxOuts

...and let it crash instead. We expect this method to be called with the
correct height now (after DIP3 was fully deployed).

* Remove ECDSA based Sign/CheckSignature from CGovernanceObject

Only masternodes sign governance objects, so there is no need for ECDSA
support here anymore.

* Always add superblock and MN reward payments into new block

* Always check block payees (except if fLiteMode==true)

* Always allow superblock and MN payees in same block

* Remove/Fix a few references to masternode.conf and related stuff

Also delete guide-startmany.md and masternode_conf.md

* Implement NotifyMasternodeListChanged signal and call governance maintenance

* Remove non-DIP3 code path from CMasternodeMan::Find

* Remove remaining unused code from CMasternode/CMasternodeMan

* Always load governance.dat on startup

* Mine an empty block instead of incrementing nHeight from chain tip in miner tests

This test is crashing otherwise in GetBlockTxOuts as it tries to access a
previous block that is not existing.

* Skip MN payments verification on historical blocks (pre-DIP3 blocks)

Even though DIP3 was active on BIP9 level, the spork was not active yet at
that point meaning that payments were not enforced at that time.

* Remove unused state and CollateralStatus enums

* Unconditionally return false from IsBlockPayeeValid when IsTransactionValid returns false

IsTransactionValid already handles the case where IsDIP3Active() returns
false, making it return true.

* Add override keyword to CDSNotificationInterface::NotifyMasternodeListChanged

* Fix help for masternodelist status (POSE_BANNED and no OUTPOINT_SPENT)
2019-01-03 12:17:43 +03:00
Alexander Block
4b150e72f1 Directly use deterministicMNManager instead of mnodeman.CountXXX 2018-12-31 08:15:45 +01:00
Alexander Block
0c9fb69687 Harden spork15 on testnet (#2586)
* Replace IsDeterministicMNsSporkActive with IsDIP3Active

IsDIP3Active will now use a fixed parameter from consensus params.
Values for DIP0003Height/DIP0003Hash need to be updated when spork15
activates on mainnet.

Also enforce correct block hash on testnet/mainnet for DIP3 activation
block.

* Remove SPORK_15_DETERMINISTIC_MNS_ENABLED

* Replace all uses of IsDeterministicMNsSporkActive with IsDIP3Active

* Remove DIP3 upgrade-path tests and directly start with DIP3 enabled tests

* Make -masternodeprivkey non-mandatory

This code will vanish later.
2018-12-28 19:13:44 +03:00
Alexander Block
858bb52ad5
Show correct operator payee address in DIP3 MN list GUI (#2563)
* Show correct operator payee address in DIP3 MN list GUI

* Rename dest to operatorDest
2018-12-19 08:37:37 +01:00
Alexander Block
1908637228
Remove legacy MN list tabs on spork15 activation (#2567)
* Remove legacy masternode tabs on DIP3 activation

* Move setInvisible call for dip3NoteLabel up

Otherwise it takes a minute until it's actually made invisible.

* Bail out early from updateMyNodeList when spork15 is active

Otherwise we risk accessing destroyed Qt objects.
2018-12-19 08:37:25 +01:00
UdjinM6
3e97b0cbdb Make sure that we can get inputType and fUseInstantSend regardless of the way recipients are sorted (#2550)
* Make sure that we can get inputType and fUseInstantSend regardless of the way recipients are sorted

* Move "for" loops outside of "if"s
2018-12-13 09:12:45 +01:00
UdjinM6
1a7c29b97c Revert "Sort recipients in SendCoins dialog via BIP69 rule (#2546)" (#2549)
This reverts commit 18cd5965cc.
2018-12-13 09:12:22 +01:00
UdjinM6
ca0aec2a32 Match recipients with txouts by scriptPubKey in reassignAmounts() (#2548)
* Match recipients with txouts by scriptPubKey in reassignAmounts()

* Drop no longer used nChangePosRet from reassignAmounts() params
2018-12-13 09:12:07 +01:00
Alexander Block
09730e1c59
Bail out from update methods in MasternodeList when shutdown is requested (#2551) 2018-12-13 07:55:42 +01:00
UdjinM6
18cd5965cc Sort recipients in SendCoins dialog via BIP69 rule (#2546) 2018-12-10 14:57:22 +01:00
UdjinM6
9100c69eb9 Allow filtering by proTxHash on DIP3 MN tab (#2532) 2018-12-06 11:32:42 +01:00
Alexander Block
2161199210
Fix wrong total MN count in UI and "masternode count" RPC (#2527)
* Use CountMasternodes() in ClientModel::getMasternodeCountString

* Use CountMasternodes() for total count in masternode_count

* Fix CountMasternodes() to give correct number of masternodes with spork15 enabled

Also change CountEnabled to not call CountMasternodes anymore but instead
have its own implementation which uses GetValidMNsCount instead of GetAllMNsCount

* Apply review suggestions
2018-12-06 11:32:15 +01:00
Alexander Block
8f8878a94f
Add dummy/hidden column to carry the proTxHash per MN list entry... (#2530)
...and use this in GetSelectedDIP3MN. This fixes copy/paste issues with MNs
that don't have a valid address (PoSe banned).
2018-12-06 08:09:23 +01:00
UdjinM6
973a7f6dd6 Fix GUI warnings in debug.log (#2521)
Specifically:

```
GUI: QMetaObject::connectSlotsByName: No matching signal for on_extraInfoDIP3_doubleClicked()
GUI: QMetaObject::connectSlotsByName: No matching signal for on_copyProTxHash_clicked()
GUI: QMetaObject::connectSlotsByName: No matching signal for on_copyCollateralOutpoint_clicked()
```
2018-12-06 08:05:05 +01:00
UdjinM6
aa495405b3 [GUI] Realign tx filter widgets (#2485)
Also hide watch-only filter when no watch-only addresses are used (corresponding column already has this kind of behaviour).
2018-11-23 16:23:15 +01:00
Alexander Block
22b5952c5a
Implement and enforce DIP6 commitments (#2477)
* Add LLMQ parameters to consensus params

* Add DIP6 quorum commitment special TX

* Implement CQuorumBlockProcessor which validates and handles commitments

* Add quorum commitments to new blocks

* Propagate QFCOMMITMENT messages to all nodes

* Allow special transactions in blocks which have no inputs/outputs

But only for TRANSACTION_QUORUM_COMMITMENT for now.

* Add quorum commitments to self-crafted blocks in DIP3 tests

* Add simple fork logic for current testnet

This should avoid a fork on the current testnet. It only applies to the
current chain which activated DIP3 at height 264000 and block
00000048e6e71d4bd90e7c456dcb94683ae832fcad13e1760d8283f7e89f332f.

When we revert the chain to retest the DIP3 deployment, this fork logic
can be removed again.

* Use quorumVvecHash instead of quorumHash to make null commitments unique

Implementation of https://github.com/dashpay/dips/pull/31

* Re-add quorum commitments after pruning mempool selected blocks

* Refactor CQuorumBlockProcessor::ProcessBlock to have less nested if/else statements

Also add BEGIN/END markers for temporary code.

* Add comments/documentation to LLMQParams

* Move code which determines if a commitment is required into IsCommitmentRequired

This should make the code easier to read and also removes some duplication.

The also changes the error types that are possible from 3 to 2 now. Instead
of having "bad-qc-already-mined" and "bad-qc-not-mining-phase", there is
only "bad-qc-not-allowed" now.

* Use new parameter from consensus parames for the temporary fork
2018-11-23 15:42:09 +01:00
PastaPastaPasta
f4ef388dea Update PS help text for the new denom (#2471) 2018-11-23 15:41:00 +01:00
Alexander Block
7cabbadefd
Implement context menu and extra info on double-click for DIP3 masternode list (#2459)
* Implement context menu and extra info on double-click for DIP3 masternode list

Menu items:
- "Copy ProTx hash"
- "Copy Collateral hash"

On double click:
Show simple message box with the json representation of the DMN.

* Fix review comments
2018-11-21 08:04:19 +01:00
UdjinM6
9232a455c8 Do not hold cs_main while emitting messages in WalletModel::prepareTransaction (#2463)
* Do not hold cs_main while emitting messages

Fixes potential deadlock:
```
POTENTIAL DEADLOCK DETECTED
Previous lock order was:
 (1) cs_deqsessions  privatesend-client.cpp:966
 (2) cs_main  privatesend-client.cpp:816
Current lock order is:
 (2) cs_main  qt/walletmodel.cpp:299
 wallet->cs_wallet  qt/walletmodel.cpp:299
 (1) cs_deqsessions  privatesend-client.cpp:350
```

* Keep CWalletTx* newTx in inner scope
2018-11-21 08:01:47 +01:00
UdjinM6
12aba2592d Updating translations for de, es, fi, nl, pt, sk, zh_CN, zh_TW (#2451)
* Updating de, es, fi, nl, pt, sk, zh_CN, zh_TW

Known issues:
dash_zh_CN.ts: Mismatch between 'Start &all' and '启动全部(%A)'
dash_zh_CN.ts: Mismatch between 'Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.' and '打开当前目录中的调试日志文件。日志文件大的话可能要等上几秒钟。'
dash_zh_CN.ts: Mismatch between 'Too many %f denominations, removing.' and '太多面额化资金,正在移除。'
dash_zh_CN.ts: Mismatch between 'Initialization sanity check failed. %s is shutting down.' and '初始化完整性检查失败。% 即将

* Fix issues in zh_CN
2018-11-16 18:40:23 +01:00
Alexander Block
cf2b547b7c
Implement tab for DIP3 MN list (#2454)
* Implement tab for DIP3 MN list

* Update src/qt/masternodelist.cpp

Co-Authored-By: codablock <ablock84@gmail.com>

* Change "x.xx% to UNSPECIFIED" to "x.xx% but not claimed" for opeartor reward
2018-11-16 18:19:49 +01:00
UdjinM6
46462d6829
Add a column for IS lock status on Transactions tab (#2433)
* Drop colorizing for IS

* Add IS column

* Add IS filter
2018-11-12 18:08:31 +03:00
UdjinM6
5ecd91b054 Fix ps collateral/denom creation tx category confusion (#2430)
* fix ps collateral/denom creation tx confusion

* clarify the logic of detecting PrivateSendMakeCollaterals/PrivateSendCreateDenominations category
2018-11-10 10:53:29 +01:00
PastaPastaPasta
42ee369b17 [Formatting] masternodelist.* clang+manual format (#2426)
* format

* clang suggested changes to be reverted

* Revert "clang suggested changes to be reverted"

This reverts commit 2c1e7744be.
2018-11-09 09:48:51 +03:00
UdjinM6
e961c71343
Translations 201811 (#2249)
* update en source

* remove pt_BR

it's no longer present on Transifex

* Update existing translations

NOTE: there are some mismatches in zh_CN

dash_zh_CN.ts: Mismatch between 'Start &all' and '启动全部(%A)'
dash_zh_CN.ts: Mismatch between 'Open the %1 debug log file from the current data directory. This can take a few seconds for large log files.' and '打开当前目录中的调试日志文件。日志文件大的话可能要等上几秒钟。'
dash_zh_CN.ts: Mismatch between 'Too many %f denominations, removing.' and '太多面额化资金,正在移除。'
dash_zh_CN.ts: Mismatch between 'Initialization sanity check failed. %s is shutting down.' and '初始化完整性检查失败。% 即将关闭。'

* Add ar, ko, th

NOTE: there are 2 mismatches in ar

dash_ar.ts: Mismatch between '(of %1 GB needed)' and '(على 1% جيغابايت محتاجة)'
dash_ar.ts: Mismatch between 'Output debugging information (default: %u, supplying <category> is optional)' and 'معلومات تصحيح الخرج  <category>ا(ختياري)'

* update bg, it, ja, ko, nl, pl, th

* fix ru

* add tr

* fix
2018-11-07 10:39:06 +03:00
UdjinM6
4a78b161ff
PrivateSend spending txes should have "outgoing" icon on overview screen (#2396) 2018-10-30 12:59:50 +03:00