This requirement was introduced in the initial implementation when we were signing protx payload with the owner key (#2246). This was changed later when we implemented external collateral references (#2366). The owner key is not used for anything in ProTxReg but to get CKeyID since then which we can do by simply decoding an address instead. This simplifies masternode registration process by letting an Operator to issue `protx register_prepare` on its own instead of asking an Owner. An Owner still have to sign the message provided by an Operator with his collateral address to prove collateral ownership (and authorize masternode registration).
Note: `protx register_*` rpc will no longer accept privkeys for ownerAddress. Some 3-rd party software like DMT might need to be patched to work correctly with nodes running with this fix.
* update public part of windows code signing certificate
Signed-off-by: pasta <pasta@dashboost.org>
* Fixing line-breaks
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Drop icon sources (svg) we no longer use
* Rename some icons to better match their content
* Drop chevron/console prompt icon
We do not show it in Dash specific themes and Traditional is just fine with a simple ">" label
* bitcoin -> dash for icons
* Adjust `contrib/debian/copyright`
Dashify it + we no longer use icons mentioned there
* `mogrify src/qt/res/*/*.png`
* `python3 contrib/devtools/optimize-pngs.py`
Total reduction: 68072 bytes
* test: Optimize feature_block_reward_reallocation.py
Signed-off-by: pasta <pasta@dashboost.org>
* use submitblock instead of p2p.send_blocks_and_test in one more place
* drop empty line
* make sure all nodes are synced after reallocation is done
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Update the application font if the font family gets changed
* qt: Make sure recent transactions have the correct font family
Introduced because QListView is ignored in GUIUtil::updateFonts, so its base font family doesn't change, hence the recent transactions don't adjust because the painter's font doesn't change.
* Store initial font size
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Bring back setMinimumHeight for recent tx list
This partially reverts a3604f5c7c
Turns out that we still need this at least on Windows (not sure why but tx list looks clipped there atm)
* Reduce number of items in recent tx list by 1 (for PS enabled cases only)
Most users will never see immature funds and the list is going to be too long for them most of the time
* qt: Make sure font size in MasternodeList gets scaled as expected
* qt: Make sure font size in ShutdownWindow gets scaled as expected
* qt: Drop obsolete application font updates
* qt: Scale QMenu and QMessageBox globally
To make sure non-custom context menus + QMessageBox instances createy by
static calls like QMessageBox::critical are scaled also.
* qt: Avoid redundant scaling for tooltips and menus
* qt: Only update widget's font if required
* qt: Merge GUIUtil::mapFontSizeUpdates into GUIUtil::mapNormalFontUpdates
* qt: Remove obsolete setFixedPitchFont call
* qt: Use setFixedPitchFont in SendCoinsEntry
* qt: Scale font size in increments of 0.25
* qt: Properly scale network traffic stats depending on font metrics
* qt: Update min/max width of OptionsDialog depending on buttons width
* qt: Emit a signal whenever any attribute of AppearanceWidget changed
* qt: Update OptionsDialog width if the appearance changed
* qt: Calculate the initial wide right after the window showed up
Make sure the visibility state of the widgets is correct before width calculations.
* qt: Call parent class showEvent + override it explicit
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Let OptionsDialog emit a signal if appearance gets changed
* qt: Resize main toolbar depending on visible buttons / font attributes
* qt: Reset max width after it has been set to still allow window resizing
* qt: Properly update the weight of widgets with default font attributes
* qt: Handle updates to the font attributes
* qt: Use resize() instead of setMaximumWidth()
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Call GUIUtil::updateFonts in ModalOverlay constructor
* qt: Make sure default fonts are stored properly for the related widget
* qt: Ignore some low level classes in GUIUtil::updateFont
* rpc: Remove obsolete `.arg()` call
* qt: Drop fixedPitchFont
* qt: Avoid redundant font updates. Let GUIUtil::updateFont handle them
* qt: Scale recent transactions on OverviewPage
They were scaled by font inheritance before
* qt: Ignore QListView in GUIUtil::updateFonts
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Update nMinimumChainWork and defaultAssumeValid
* Update chainTxData
* Bump BLOCK_CHAIN_SIZE
It's 21Gb on my local machine atm, bumping to 25Gb to give it some space
* `gen-manpages.sh`
* bupm BLOCK_CHAIN_SIZE 25->30
* qt: Add PrivateSend tab in OptionsDialog, allow to show/hide PS UI
* qt: Decrease height of OptionsDialog
* Apply suggestions from code review
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Remove obsolete visibility adjustments
Not longer needed since the page is just not reachable if the button is
hidden.
* qt: Make sure PrivateSend related parts are always initialized properly
Not only if its enabled on startup..
* qt: Make updatePrivateSendVisibility a slot to fix the signal connection
* qt: Fix UI updates on OverviewPage if PrivateSend enabled gets toggled
Other way of connecting the slot with true as parameter didn't work..
* qt: Only update and emit the signal for advanced PS UI if required
* qt: Update fPrivateSendEnabled in OptionsModel instead of OptionsDialog
* qt: Recover the PrivateSend enabled state if OptionsDialog gets rejected
* qt: Enable PrivateSend UI by default
* qt: Add some brackets
* qt: Add a comment
* qt: Add a linebreak to the "Enable PrivateSend features" tooltip
* qt: Remove obsolete comment
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
* qt: Move comment
* qt: Properly reset the previous PS state if OptionsDialog gets rejected
Handle all reject reasons not only the cancle button.
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
* Handle situations when we have evodb records but no blocks anymore
* Use IsEmpty
* Apply suggestions from code review
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* qt: Adjust "Recent Transactions" in Overview tab
Make sure they follow the same format as the transactions in
TransactionsView.
- Removed the transaction type representing arrows
- Apply the same coloring like like in the transaction tab for
the different transaction types (orange = internal, red = outgoing,
green = incoming)
* qt: Cleanup layout of OverviewPage in css
* qt: Add three spacer (left, middle, right) and adjust layout stretch.
This allows to have the elements on the screen aligned symetrically
around the center independent from the window size/resizing.
* qt: Inrease date/amount size for "Recent Transactions" in Overview tab
* qt: Inrease number of "Recent Transactions" displayed in Overview tab
Just to fill the empty space
* qt: Make sure PS elements show as expected and adjust number of recent transactions based on PS
* qt: Adjust transaction entry generation
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Adjust warning message box
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
* Move tx list style to css
* Fix tx list style for the traditional theme
* Drop (no longer needed?) min height offset in SetupTransactionList
Can't reproduce the tx list scrolling issue anymore
* Avoid recreating transaction filter from scratch every time SetupTransactionList is called
We call SetupTransactionList every second now (from privateSendStatus()) and this makes GUI unresponsive for huge wallets (I have ~400k txes in my testnet wallet) because of filter recreation/sorting. There is no need to go through all setup steps really, simply updating the limit works just fine and fixes the issue.
* qt: Fix an `if` statement
* qt: Just some refactoring
* fix code style
* bail out if `filter->rowCount() == nNumItems`
* qt: Make sure number of transactions is always correct
* Drop spacer to let recent tx list occupy max height available
* TransactionFilterProxy::setLimit should emit signals to let coresponding layouts update themselves
https://doc.qt.io/qt-5/qabstractitemmodel.html#layoutAboutToBeChangedhttps://doc.qt.io/qt-5/qabstractitemmodel.html#layoutChanged
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* masternode: Fix mempool sync
Make sure the mempool sync requests only happen after the blockchain
sync is done.
* Refactor
Loop only if `-syncmempool`=true, make `if` a bit more readable
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* qt: Add min-height for CoinControlTreeWidget#treeWidget::item
The rows resize without it if they get locked and the lock icon appears
besides the checkbox. Looks weird.. and especially if you press the lock
all button its just not nice.
* qt: Set background transparency for CoinControl item::hover
* Merge #14828: qt: Remove hidden columns in coin control dialog
1c28feb7d qt: Remove hidden columns in coin control dialog (João Barbosa)
Pull request description:
Instead of having hidden columns, store the data in specific roles.
Overlaps with #14817, fixes#11811.
Tree-SHA512: e86e9ca426b9146ac28997ca1920dbae6cc4e2e494ff94fe131d605cd6c013183fc5de10036c886a4d6dcae497ac4067de3791be0ef9c88f7ce9f57f7bd97422
* qt: Add border-bottom for tree items in CoinControl
* qt: Stretch address column in CoinControlDialog
* Adjust column width for a couple of columns
* qt: Hide PrivateSend rounds column for normal Send tab's CoinControl
* qt: Hide unrelated coins in CoinControl based on active mode. Still allow to show them.
* qt: Hide empty top level items in CoinControlDialog's tree mode
* qt: Hide tree/list radio buttons and default to list for PrivateSend
* qt: Hide address/label column in CoinControl for PrivateSend
* qt: Remove obsolete empty columns
* qt: Rename column "PS Rounds" to "Mixing Rounds"
* qt: Move border-bottom in already existing css selector
* Reveal all PS related coins in coincontrol while in PS mode, not only ones with rounds>=1
Also tweak button text
* qt: Only moving a statement a bit
* qt: Hide the "hideButton" in CoinControlDialog if PrivatSend is disabled
And make it default to show all coins in that case..
Co-authored-by: Jonas Schnelli <dev@jonasschnelli.ch>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
There is a bug in gdk-pixbuf which prevents ico files from being displayed correctly.
https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/86
Fixed by `convert bitcoin_testnet.ico[4] -define icon:auto-resize=256,128,64,48,32,16 bitcoin_testnet.ico`
* qt: Add missing changeEvent call in TransactionView
* qt: Use state related colors in TransactionModel
* qt: Don't colorize the text for abandoned transactions
The red icon should be obvious enough.
* qt: Drop InstantSend column from transaction view/model
* qt: Update verify.png
* qt: Extend the result string of TransactionTableModel::formatTxStatus
* qt: Drop "LLMQ based" in some status strings
* qt: Drop not longer needed ThemedColor entries
* Introduce amountColors(), add a case for `TransactionRecord::PrivateSendDenominate`
Avoid applying orange color to 0-fee mixing txes (PS denominate), use default (grey) color for them
* Tweak IS/CL status string additions a bit more
* Do not apply additional conditions, just use rec statuses
* qt: Adjust amount colors for types Generated and PrivateSendDenominate
Make them green/orange instead.
* Assign all colors explictly, drop default case
Let compiler complain about missing ones if any
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Remove icons from debug console
Imo it's clear enough with the colors what commands/output and what user
inout is.
* qt: Draw network stats on the graph + Remove the QGroupBox next to it
The QGroupBox thing just added too much empty space imo.
* qt: Align ThemedStyle colors with css
* [wallet] Construct CWalletTx objects in CommitTransaction
Construct CWalletTx objects in CWallet::CommitTransaction, instead of having
callers do it. This ensures CWalletTx objects are constructed in a uniform way
and all fields are set.
This also makes it possible to avoid confusing and wasteful CWalletTx copies in
https://github.com/bitcoin/bitcoin/pull/9381
There is no change in behavior.
* [wallet] Get rid of CWalletTx default constructor
No change in behavior in the normal case. But buggy mapWallet lookups with
invalid txids will now throw exceptions instead of inserting dummy entries into
the map, and potentially causing segfaults and other failures.
This also makes it a compiler error to use the mapWallet[hash] syntax which
could create dummy entries.
* Apply suggestions from code review
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: Russell Yanofsky <russ@yanofsky.org>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Rename two PrivateSend related labels in OptionsDialog
* qt: Hide main PrivateSend UI elements if its not enabled
- Tab button
- Menu actions
* qt: Hide PrivateSend in OptionsDialog options if its not enabled.
* qt: Hide PrivateSend filter in TransactionView if its not enabled
* Update toolbar shortcuts to match toolbar buttons visibility
* Update src/qt/transactionview.cpp
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Fix proxy port ui elements
* Fix fake net checkboxes
* Fix active options label by enabling text wrapping
* Fix options dialog resizing when font size is changed
* Move "Window" tab options into "Main" tab, drop "Window" tab
* Shrink min sizes a bit
* qt: Drop the surrounding QGroupBox in Options -> Wallet
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* wallet: Allow CoinControl in GetAnonymizedCredit + GetAnonymizedBalance
* qt: Allow CoinControl in WalletModel::getAnonymizedBalance
* qt: Use CoinControl in SendCoinsDialog::useAvailableBalance for PS
* wallet: Fix caching in GetAnonymizedCredit
* Merge #13622: Remove mapRequest tracking that just effects Qt display.
beef7ec4be725beea870a2da510d2817487601ec Remove useless mapRequest tracking that just effects Qt display. (Matt Corallo)
Pull request description:
I thought we had removed this a long time ago, TBH, its really
confusing feedback to users that we display whether a tx was
broadcast to immediate neighbor nodes, given that has little
indication of whether the tx propagated very far.
Tree-SHA512: c9d0808fb60146919bb78d0860ec2193601966c944887eaae7837408422f7e85dfdb306407a613200cdd4726aec66da18df618ebc6a8cfe8650bf08d4a8dc155
Signed-off-by: pasta <pasta@dashboost.org>
# Conflicts:
# src/interfaces/wallet.cpp
# src/interfaces/wallet.h
# src/net_processing.cpp
# src/qt/guiconstants.h
# src/qt/transactiondesc.cpp
# src/qt/transactionrecord.cpp
# src/qt/transactionrecord.h
# src/qt/transactiontablemodel.cpp
# src/validationinterface.cpp
# src/validationinterface.h
# src/wallet/wallet.cpp
* drop TX_STATUS_OFFLINE
Signed-off-by: pasta <pasta@dashboost.org>
Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
* Implement dynamic activation thresholds
* fix
* Revert unrelated changes
* Clarify switching to/staying in LOCKED_IN state
* Fix signal function to work correctly with num_blocks=0
* Add simplified threshold calculation and use it in tests
* Check that thresholds are decreasing, reach the min level and stay there
* Drop `;`
* masternode: Replace sync states INITIAL and WAITING with BLOCKCHAIN
* masternode: Peer dependent "assume tip" timeout
I would say its enough to only wait 1 tick if we have more than 3
peers before we move over to governance sync.
* masternode: Notify the UI instantly if switched to governance sync
Without this it takes one iteration more for the UI to receive the
update.
* masternode: Notify the UI about CMasternodeSync::Reset calls
* masternode: Don't instantly reset the sync process
Give it MASTERNODE_SYNC_RESET_SECONDS (600) seconds time after the last
UpdateBlockTip call.
* rpc: Don't switch to next asset in "mnsync reset"
* rpc: Force the reset in "mnsync reset"
* net: Make sure the sync gets a reset if required after network changes
This will reset the sync process if its outdated in the following cases:
- If the connections dropped to zero
- If the connections went from zero to one
- If the network has been enabled or disabled
* Apply suggestions from code review
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* net: Only open masternode connections if the blockchain is synced
In general it doesn't make sense to connect to masternodes before due to
MNAUTH requires blockchain sync. This could lead to failing quorum
connections/failing masternode
probing.. if a just restarted node/a out of sync node
would hit a dkg block.. Then they would not try to open those
llmq/probing connections for the next 60s (nLLMQConnectionRetryTimeout).
Thats basically what happens in tests right now and they fail without
this commit.
* test: Make sure nodes are synced when they get restored after isolation
Their sync might be out of date otherwise due to bigger mocktime bumps
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Adjust green color
* qt: Don't disable the HD icon
Disabling it leads to incorrect colors due to opacity.
* qt: Move the HD icon to the left
Reason: Its the only one not turning green by default if all is set
properly. So this lets is look better imo.
* qt: Increase statusbar icon size
* qt: Show lock icon in status bar also if wallet is not encrypted
Just as signal to the user!
* qt: Refine connection icon usage
* qt: Use state related colors in statusbar
* qt: Hide the HD icon for non-HD wallets
* qt: Update HD icon
* qt: Replaced checkbox images with new ones
* qt: Replaced radiobutton images with new ones
* qt: Redefine arrow usage
- Removed "hover" arrows
- Rename normal -> light
- Rename pressed -> dark
- Use light as hover in dark theme and vice versa
* qt: Update icon set
* qt: Update sync spinner
* qt: Add new ThemedColor's
- ThemedColor::ORANGE
- ThemedColor::ICON_ALTERNATIVE_COLOR
* qt: Add GUIUtil::getIcon and GUIUtil::setIcon
* qt: Use themed icons where required
* qt: Make sure icons in SendCoinsEntry are updated on style changes
* qt: Make sure status bar icons are updated on style changes
* qt: Make sure icons in RPCConsole are updated on style changes
* qt: Remove icon/iconsSize in modaloverlaydialog.ui
* qt: Remove obsolete qproperty-iconSize entries from general.css
* qt: Use QToolButton's in SendVerifyMessageDialog and RPCConsole
Instead of QPushButton. This is to have the same alignment of the
iconized buttons by default like in SendCoinsEntry
* qt: Revert arrow icons
* qt: Revert HD icons
* Implement Block Reward Reallocation
* Add integr. test
* drop unused variable
* Sep -> Oct
* Update test/functional/feature_block_reward_reallocation.py
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
* Revert to Sep for testnet and devnet
* validation: Refactor reallocation calculations
Makes it much more readable imo and avoids calculating the percentage
each time.
* test: Align reallocation calculation with c++ (GetMasternodePayment)
* test: Make feature_block_reward_allocation.py executable
* Make linter happy
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* Always check for previous quorum set in llmq IS
* Refactor SelectQuorumForSigning and related code
Should have no changes in behaviour
* Do not use SIGN_HEIGHT_OFFSET when checking pending IS locks, use actual chain tip
This commit actually changes the behaviour