Having "const char*" leads to undefined behaviour if the "const char*"
is deallocated before the thread used it.
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
This indicates a previous crash where the TX made it into the txindex but
the block was not flushed to disk. When dashd is restarted then, there is
a short time where GetTransaction would return a non-existant block, while
callers very often assume that the returned block hash is known.
ea65182f03 [wallet] loadwallet shouldn't create new wallets. (John Newbery)
Pull request description:
A bug in the initial implementation of loadwallet meant that if the
arguement was a directory that didn't contain a wallet.dat file, a new
wallet would be created in that directory. Fix that so that if a
directory is passed in, it must contain a wallet.dat file.
Bug reported by promag (João Barbosa).
Tree-SHA512: 0a59fa8a33fde51a88544ad288b00e4995284fe16424f643076aaba42b8244fff362145217650ee53d518dfab7efbed4237632c34cdd3dcbbecaa9ecaab5fd7b
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
This also means less smaller denoms (which could be good for privacy) and fixes a bug (not mixing all the available funds), see comments in code for more info.
* explicitly check that -disablegovernance is true for pruned mode.
Signed-off-by: pasta <pasta@dashboost.org>
* try to set -disablegovernance and -txindex if pruned mode is enabled
Signed-off-by: pasta <pasta@dashboost.org>
* Adjust InitWarning when governance validation is disabled
Signed-off-by: pasta <pasta@dashboost.org>
* Check for deprecated -litemode earlier
* Move -disablegovernance warning into AppInitParameterInteraction
* Tweak -prune help text and a related comment in AppInitParameterInteraction
* Ignore init warnings in blockchain.py
* Adjust "governance validation disabled" warning depending on if running a pruned node
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Skip init warnings in import-rescan.py and node_network_limited.py
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* 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>
* 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>
* Rename CollectSigSharesToSend to CollectSigSharesToSendConcentrated
* Allow to disable concentrated recovery and new connection handling for large LLMQs
* 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.
* Revert "Only call SendMessages when ProcessMessages did some work or when some time passed"
This reverts commit 24ead62905.
* Only skip SendMessages() for fMasternode connections
* Trivial Dashification
* Tweak getnetworkinfo and dumpwallet help text
We don't have RBF and Segwit
* CopyrightHolders should also check for missing "Dash Core" copyright
* Make internalId private to make sure it's set/accessed properly
* evo: Make internalId only accessible by the constructor
* Tweak constructors
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
* Drop dead code in DoInvalidateBlock
* Let ActivateBestChain skip SyncWithValidationInterfaceQueue when called from IS or CL threads
* Use CL's own scheduler instead of a global one
* Revert "Let ActivateBestChain skip SyncWithValidationInterfaceQueue when called from IS or CL threads"
This reverts commit 1c9f6da50a.
* Return invalid state for GetTxPayload failures instead of asserting
* Throw an error when internal `find` fails instead of asserting
* Unify mnlist checks for lists created from blocks and lists created via updates of older lists with diffs
* Wrap evo block processing in try..catch to make sure all earlier introduced throws are caught
* evo/llmq: Adjust reject reasons for CFinalCommitmentTxPayload
In CheckLLMQCommitment this reject string was used so i adjusted the
other one in CQuorumBlockProcessor::GetCommitmentsFromBlock and the new
introduced in PR #3506
* return state.DoS instead of asserting in cbtx.cpp
Signed-off-by: pasta <pasta@dashboost.org>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: pasta <pasta@dashboost.org>
* 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
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>
* Split -privatesenddenoms option into two to be able to specify initial/batched denom "checkpoint" and the hard cap
* Introduce MAX_PRIVATESEND_DENOM_OUTPUTS = 500 constant
Also make sure to never exceed it while looping
* Make sure to never exceed nPrivateSendDenomsBatched while creating batches
* Tweak debug logging
* Use auto for nDenomValue
* Fix detection of so called "final" denom
Now that we don't skip denoms anymore conditions are slightly different. Without this fix the "final" denom is created in a separate tx even when there is enough room in the current one.
* batched -> goal
* Tweak json and a warning
* Drop excessive checks for MAX_PRIVATESEND_DENOM_OUTPUTS in the "goal" part of the algo
Rename it to PRIVATESEND_DENOM_OUTPUTS_THRESHOLD to beter match the meaning and tweak comments
* fix log
* wallet: Add MAX_COIN_TYPE to CoinTypes to allow dynamic range checks
* rpc: Add coinType to the queryOptions object of listunspent rpc command
This allows to filter the output by CoinType:
0 -> ALL_COINS
1 -> ONLY_FULLY_MIXED
2 -> ONLY_READY_TO_MIX
3 -> ONLY_NONDENOMINATED
4 -> ONLY_1000
5 -> ONLY_PRIVATESEND_COLLATERAL
* wallet/rpc: Rename CoinType ONLY_1000 to ONLY_MASTERNODE_COLLATERAL
Make it more obvious what ONLY_1000 is in the description of the
listunspent command.
* wallet/rpc: Formatting only
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
* wallet: Add MIN_COIN_TYPE to CoinTypes
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
* rpc: Check the lower boundary of CoinType in listunspent's queryOptions
Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Merge #11415: [RPC] Disallow using addresses in createmultisig
1df206f Disallow using addresses in createmultisig (Andrew Chow)
Pull request description:
This PR should be the last part of #7965.
This PR makes createmultisig only accept public keys and marks the old functionality of accepting addresses as deprecated.
It also splits `_createmultisig_redeemscript` into two functions, `_createmultisig_getpubkeys` and `_createmultisig_getaddr_pubkeys`. `_createmultisig_getpubkeys` retrieves public keys from the RPC parameters and `_createmultisig_getaddr_pubkeys` retrieves addresses' public keys from the wallet. `_createmultisig_getaddr_pubkeys` requires the wallet and is only used by `addwitnessaddress` (except when `createmultisig` is used in deprecated mode).
`addwitnessaddress`'s API is also changed. Instead of returning just an address, it now returns the same thing as `createmultisig`: a JSON object with two fields, address and redeemscript.
Tree-SHA512: a5796e41935ad5e47d8165ff996a8b20d5112b5fc1a06a6d3c7f5513c13e7628a4fd37ec30fde05d8b15abfed51bc250710140f6834b13f64d0a0e47a3817969
* fix backport
Signed-off-by: pasta <pasta@dashboost.org>
* fix backport
Signed-off-by: pasta <pasta@dashboost.org>
* fix backport
Signed-off-by: pasta <pasta@dashboost.org>
* Dashify
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* Allow the creation of denoms on regtest.
Ignore the fact there are no MNs on regtest
Signed-off-by: pasta <pasta@dashboost.org>
* implement significantly improved createdenominations algorithm
Signed-off-by: pasta <pasta@dashboost.org>
* change int denomsToCreate
Signed-off-by: pasta <pasta@dashboost.org>
* Remove debugging code and use a const iterator instead of calling find multiple times
Signed-off-by: pasta <pasta@dashboost.org>
* vecDenominationsSkipped and *DenomSkipped are nolonger used
Signed-off-by: Pasta <pasta@dashboost.org>
Signed-off-by: pasta <pasta@dashboost.org>
* inputs -> outputs
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* #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>
* Introduce ONLY_PRIVATESEND coin type to select fully mixed coins only
Note: ONLY_DENOMINATED will NOT return fully mixed coins now
* Remove useless check
* Rename coin types to better match the meaning
ONLY_DENOMINATED -> ONLY_READY_TO_MIX
ONLY_PRIVATESEND -> ONLY_FULLY_MIXED
* Drop another two unnecessary checks
* 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
* Merge #12384: [Docs] Add version footnote to tor.md
39d2911 [Docs] Add version footnote to tor.md (Damian Williamson)
Pull request description:
[Docs] Add version footnote to tor.md
Added note to section 2, part -edits to `/etc/tor/torrc`- indicating this is only required for Tor version 0.2.7.0 and older, since section 3 states it is valid for Tor version 0.2.7.1 and newer. Added ref link from section 2 version footnote to section 3. Re-styled headings to work on GitHub -alternate heading style markup creation issue with numbered headings and thus headings and automatic heading links are broken-
Ref: [Issue# 12376](https://github.com/bitcoin/bitcoin/issues/12376)
Signed-off-by: Damian Williamson \<willtech@live.com.au\>
Tree-SHA512: 439f4ccc3e196011af448b220adf26b0e653ac589bf4cfbbc276c1500c9d08f209c9d6101e4d232857779d9f25164cfb222ed30e3d63de116f9121e6ebde31c3
Signed-off-by: pasta <pasta@dashboost.org>
Signed-off-by: Pasta <pasta@dashboost.org>
* bitcoin -> Dash Core
Signed-off-by: Pasta <pasta@dashboost.org>
Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>