* Wallet passphrase lock fixes:
- wallet should not allow cli commands to bypass lock validation
- wallet should lock again in mixing mode if it was unlocked for mixing and next unlock (e.g. for sending funds) happened
- removed AnonymizeOnlyUnlocked status, it's never going to be reached anymore
- "For anonymization only" checkbox:
- should be available only when user click "Start Mixing"
- should be set on by default when available
- adjusted title
- adjust error messages in walletpassphrase for unlocked wallets
* Add comment about IsLocked() usage
* Final safety check for locked wallet in WalletModel::prepareTransaction
* Implemented different fees for different types of governance objects
* Added fee amounts to object returned by getgovernanceinfo
* Implement new requireents for Superblock creation
- Superblocks creation requires a valid masternode signature
- Superblock creation no longer requires a collateral fee
- Superblock creation rate is limited to roughly 1 per masternode per cycle
* Fixed getgovernanceinfo help message
* Removed old governance fee constant
* Fixed bug in IsSignatureValid and added debugging code
* Fixed parent hash variable index and added debugging code
* Modified GetBudgetSystemCollateralTX to take fee amount parameter
* Changes due to code review comments
- Naming changes
- Removed confusing comment
As a client, submit part of a future mixing transaction to a Masternode to start the process (SubmitDenominate):
step 1: prepare denominated inputs and outputs (PrepareDenominate, code moved from wallet.cpp, slightly refactored)
step 2: send denominated inputs and outputs (SendDenominate, slightly refactored)
86d8505 Refactor CActiveMasternode
+ move strMasterNodeAddr to CActiveMasternode
a005c79 Refactor InstantSend
+ new lock cs_instantsend to protect maps on CleanTransactionLocksList()
+ new DEFAULT_INSTANTSEND_DEPTH constant
+ rename MIN_INSTANTX_PROTO_VERSION to MIN_INSTANTSEND_PROTO_VERSION and bump it
d24182c Refactor Privatesend
+ decouple from util.h and version.h
+ more functions for CDarksendBroadcastTx: constructors, signing, serialization
+ move from rand() to insecure_rand() in general but to GetRand() for session id
+ fix defaults
ca207f6 Improve CreateDenominated and MakeCollateralAmounts:
- should use funds only from the same receiving address
- should denominate while has funds but has not enough denoms
- slightly refactored
20d3a23 Add few more improvements to CreateDenominated and MakeCollateralAmounts:
- return change to the origin address to use it in future splits
- fix a bug with incorrect overshoot
- more debug (optional/errors only) and fixed var names
- move wallet related functions GetMasternodeVin and GetVinFromOutput to wallet.cpp/h (renamed, refactored)
- use new ONLY_1000 coin type to avoid unlocking/locking mn outputs and cut down loops count from 2 to 1 (SelectCoinsMasternode removed)
1c860ce Autobackup refactoring and improvements:
- make nWalletBackups globally accessable
- move autobackup code from init.cpp to walletdb.cpp, see AutoBackupWallet function
- refactor autobackup code to warn user if autobackup failed instead of silently ignoring this fact
- refactor autobackup code to be able to backup fresh new wallet right after it was created, add this functionality to init sequence
- add new cmd-line option "-walletbackupsdir" to specify full path to directory for automatic wallet backups, see GetBackupsDir function
0ba1548 autobackup in PS:
- add nKeysLeftSinceAutoBackup to have some idea how many keys in keypool are more or less safe, show it in advanced PS UI mode and in rpc output for privatesend and getwalletinfo commands
- add autobackups support in PrivateSend mixing both in daemon and QT mode, warn user if number of keys left since last autobackup is very low or even stop mixing completely if it's too low
f3a2494 Warn about a special case - less than 60 seconds between restarts i.e. backup file name is the same as previos one. Continue and do not disable automatic backups in this case
.
e7b56bd Refactor to address locked wallets issue, replenish keypool and re-initialize autobackup on unlock (only if was disabled due to keypool issue)
Adjust few message strings.
No longer consider coins which aren't in our mempool.
Add test for regression in abandonconflict.py
Github-Pull: #7715
Rebased-From: 68d4282774d6a60c609301cddad0b652f16df4d9
- Fix CreateTransaction and GetDepthInMainChain for IX compatibility
- Prepare IsIXTXValid for the next update (see FIXME in CreateTransaction)
- Unify processing of TX/IX/DSTX a bit more
- Clean up some code
Should be smth like "smallest DS denomination (0.10000100)" + X * "denom tails"
to avoid triggering "absurd fee" error.
I think that 0.2 i.e. having 100 of 100s "tails" (or 1000 of 10s etc) should be enough.
Closes#737
If number of conflict confirms cannot be determined, this means
that the block is still unknown or not yet part of the main chain,
for example during a reindex. Do nothing in that case,
instead of crash with an assertion.
Fixes#7234.
Github-Pull: #7491
Rebased-From: 40e7b61835cbe5fd471d0b4b71972526bf0e523c