* Make sure gobject collateral was mined
`CGovernanceObject::IsCollateralValid()` would still fail for non-mined collateral later trying to check confirmations
* Fix powLimit for mainnet/testnet
That's a legacy thing, slightly rising it to match the actual bit-shifted value has no effect because real values are already lower.
Also clarify values for all networks in comments.
* Check for script addresses in CSuperblock::ParsePaymentSchedule()
Sentinel should already be downvoting such triggers if they would exist, no need to store/relay them.
* Do not process already known valid vote twice in CGovernanceObject::ProcessVote()
This should be handled by `CGovernanceManager::ProcessVote()` but imo it's better to have this at the `CGovernanceObject::ProcessVote()` level as well.
* Make sure CGovernanceObjectVoteFile::AddVote() never adds/updates already known votes
The way `CGovernanceObjectVoteFile::AddVote()` is used (i.e. wrapped in `CGovernanceObjectVoteFile::HasVote()` condition) it's already the case. Hoever nothing would guarantee consistency if it would be used elsewhere without such wrapper, so it's better to have similar check inside.
* Do not even try mnb recovery when -connect is set
`CConnman::ThreadOpenMasternodeConnections()` thread won't even start when `-connect` is set, so no need to ask for recovery, there is nothing that is going to be able to process such request.
* No need for SIGHASH_ANYONECANPAY in PS collateral signature
Collateral is just a normal tx created and signed by each participant individually, there is no need for special sig types.
* Release semMasternodeOutbound in CConnman::Interrupt()
Re-align Dash code with Bitcoin.
* Allow data outputs in PS collaterals
This should allow to
- reduce utxo spam caused by 1x collaterals a bit
- use otherwise non-usable small inputs (in the range of 1-2x) as PS collaterals, which should reduce utxo set even further
Requires protobump
* patch to avoid protobump requirement
* address review comments
* Avoid locking cs_main in CMasternode/Ping/Broadcast
Deligate this to CMasternodeMan and use AssertLockHeld instead
* Ensure consistent locking order (cs_main, cs_wallet, mempool.cs, cs_instantsend) in CInstantSend while avoiding potential deadlocks at the same time
* Add missing locks in wallet
* Add missing locks in governance
* Fix cs_vPendingMasternodes vs cs_main potential deadlock
SendVerifyRequest no longer opens connection directly, so no cs_main is needed here
* Drop nBudgetProposalEstablishingTime
* Refactor: replace `== COutPoint()` with `.IsNull()`
* Refactor: add `operator bool()` to CMasternodePing
* Refactor: actually use `operator bool()` for CPendingDsaRequest
* Refactor: fixing code style in TrafficGraphData
* Fix some comments and whitespaces
* Drop CGovernanceVote::GetTypeHash()
* Drop legacy X11 code
No longer used... if it ever was used at all.
* Move `<boost/foreach.hpp>` out of coins.h
* Simplify CMasternodeBlockPayees::GetRequiredPaymentsString()
Also less of boost::lexical_cast
* Drop CTxDSIn::nSentTimes
* Fix few warnings
* fix warning (timer)
* fix nit
* Remove remains of workaround that was needed while backporting
* Add missing closing round bracket to help string
* Remove now unnecessary .encode() calls in wallet.py
Now that we only support python3, we can fix this TODO.
* Drop BOOST_FOREACH in Dash-specific code (only), no changes in behavior
* Use references in loops (use const references where applicable) in Dash-specific code (only)
And adjust related code to make it compilable.
* Loop through nodes via connman.ForEachNode in dsq Relay instead of creating a copy
c36ea69 [wallet] Make sure pindex is non-null before possibly referencing in LogPrintf call. (Karl-Johan Alm)
Tree-SHA512: a14c9f3e1228bca91977bea821c56a377d80889b41d250050c9be67aa93e460319a7cf1d4b63ee40f23b5a34159590f0e3fe15dc88698dc694c0c8098bd2db4d
7c58863 [Wallet] unset change position when there is no change on exact match (Gregory Sanders)
Tree-SHA512: ce8b9337e4132e32d80f954258d50938052c833a48e39431649d6adb16e3d18626a0ae5d300827e7fa397927fba72a1f066cb31af9b0a3ef7f1feb6024461626
4b189c1 Change bumpfee result value from 'oldfee' to 'origfee'. (Alex Morcos)
0c0c63f Introduce WALLET_INCREMENTAL_RELAY_FEE (Alex Morcos)
e8021ec Use CWallet::GetMinimumFee in bumpfee (Alex Morcos)
ae9719a Refactor GetMinimumFee to give option of providing targetFee (Alex Morcos)
fe8e8ef [rpc] Add incremental relay fee to getnetworkinfo (Alex Morcos)
6b331e6 Fix to have miner test aware of new separate block min tx fee (Alex Morcos)
de6400d Fix missing use of dustRelayFee (Alex Morcos)
5b15870 Use incrementalRelayFee for BIP 125 replacement (Alex Morcos)
094e4b3 Better document usage of SyncTransaction (Alex Morcos)
4afbde6 Introduce MemPoolConflictRemovalTracker (Alex Morcos)
ff25c32 mempool: add notification for added/removed entries (Wladimir J. van der Laan)
c9f3062 Add fundrawtransactions new reserveChangeKey option to the release notes (Jonas Schnelli)
9eb325d [QA] Add test for fundrawtransactions new reserveChangeKey option (Jonas Schnelli)
9aa4e6a [Wallet] Add an option to keep the change address key, true by default (Jonas Schnelli)
Also remove caching in GetBackupsDir(). Not much is gained by this as we
don't call GetBackupsDir() that often.
Also add a is_directory check in AutoBackupWallet to handle cases where the
user deletes or moves the dir while Dash is running.
20449ef Don't overpay fee if we have selected new coins that result in a smaller transaction. (Alex Morcos)
42f5ce4 Try to reduce change output to make needed fee in CreateTransaction (Alex Morcos)
5394b39 Wallet: Split main logic from InitLoadWallet into CreateWalletFromFile (Luke Dashjr)
fb0c934 Wallet: Let the interval-flushing thread figure out the filename (Luke Dashjr)
cee1612 reduce number of lookups in TransactionWithinChainLimit (Gregory Sanders)
af9bedb Test for fix of txn chaining in wallet (Gregory Sanders)
5882c09 CreateTransaction: Don't return success with too-many-ancestor txn (Gregory Sanders)
0b2294a SelectCoinsMinConf: Prefer coins with fewer ancestors (Gregory Sanders)
81e3228 Make CTransaction actually immutable (Pieter Wuille)
42fd8de Make DecodeHexTx return a CMutableTransaction (Pieter Wuille)
c3f5673 Make CWalletTx store a CTransactionRef instead of inheriting (Pieter Wuille)
a188353 Switch GetTransaction to returning a CTransactionRef (Pieter Wuille)