dash/test/functional/test_framework
Konstantin Akimov 63ed462c54
feat: auto generation EHF and spork+EHF activation for MN_RR (#5597)
Implementation EHF mechanism, part 4. Previous changes are: 
 - https://github.com/dashpay/dash/pull/4577
 - https://github.com/dashpay/dash/pull/5505
 - https://github.com/dashpay/dash/pull/5469

## Issue being fixed or feature implemented
Currently MN_RR is activated automatically by soft-fork activation after
v20 is activated.
It is not flexible enough, because platform may not be released by that
time yet or in opposite it can be too long to wait.
Also, any signal of EHF requires manual actions from MN owners to sign
EHF signal - it is automated here.

## What was done?
New spork `SPORK_24_MN_RR_READY`; new EHF manager that sign EHF signals
semi-automatically without manual actions; and send transaction with EHF
signal when signal is signed to network.
Updated rpc `getblockchaininfo` to return information about of EHF
activated forks.
Fixed function `IsTxSafeForMining` in chainlock's handler to skip
transactions without inputs (empty `vin`).

## How Has This Been Tested?
Run unit/functional tests. Some tests have been updated due to new way
of MN_RR activation: `feature_asset_locks.py`, `feature_mnehf.py`,
`feature_llmq_evo.py` and unit test `block_reward_reallocation_tests`.


## Breaking Changes
New way of MN_RR activation.

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
2023-10-17 22:31:40 -05:00
..
__init__.py
address.py Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
authproxy.py merge bitcoin#19762: Allow named and positional arguments to be used together 2023-07-28 00:18:27 -05:00
blocktools.py Merge pull request #5490 from vijaydasmp/bp22_2 2023-08-20 23:39:50 -05:00
coverage.py
descriptors.py Merge #18032: rpc: Output a descriptor in createmultisig and addmultisigaddress 2023-04-06 20:15:47 +03:00
key.py
messages.py Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
mininode.py Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
muhash.py
netutil.py
ripemd160.py
script_util.py Merge #18732: test: Remove unused, undocumented and misleading CScript.__add__ 2023-03-03 23:07:15 +05:30
script.py Merge #18673: scripted-diff: Sort test includes 2023-08-29 22:00:59 -05:00
siphash.py
socks5.py
test_framework.py feat: auto generation EHF and spork+EHF activation for MN_RR (#5597) 2023-10-17 22:31:40 -05:00
test_node.py fix: missing changes from Merge #18873: Fix intermittent sync_blocks failures 2023-09-19 08:54:12 -05:00
test_shell.py Merge #17378: TestShell: Fix typos & implement cleanups 2023-01-23 12:22:29 -06:00
util.py fix: fillow-up Merge #18774: test: added test for upgradewallet RPC 2023-09-19 08:54:12 -05:00
wallet_util.py Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00