Commit Graph

25743 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
fbc783635a
refactor: make m_info private, get const refs (or copies) from Get*() functions
External logic should not be able to mutate the CActiveMasternodeManager
state (i.e. CActiveMasternodeInfo). Access is brokered through getter
functions.
2024-03-24 07:37:29 +00:00
Kittywhiskers Van Gogh
1b516ce4ed
refactor: use signing helper function instead of passing blsKeyOperator 2024-03-24 07:20:58 +00:00
Kittywhiskers Van Gogh
33702aca39
refactor: add helper function to decrypt messages with blsKeyOperator 2024-03-24 07:20:58 +00:00
Kittywhiskers Van Gogh
3eb931b596
refactor: add helper function to sign messages with blsKeyOperator
Avoid passing around the operator secret key if we can help it. Ask
CActiveMasternodeManager to perform the operation for you instead.
2024-03-24 07:20:58 +00:00
Kittywhiskers Van Gogh
3827355cce
refactor: move key initialization to InitKeys, define destructor 2024-03-24 07:20:57 +00:00
Kittywhiskers Van Gogh
e5295dec1f
refactor: move activeMasternodeInfo{Cs} into CActiveMasternodeManager 2024-03-24 07:20:57 +00:00
Kittywhiskers Van Gogh
b8c1f010e7
refactor: avoid accessing active masternode info if not in masternode mode
A later commit will be moving activeMasternodeInfo into activeMasternodeManager
and that is only conditionally initialized if the node is in masternode
mode, which will render access attempts outside of masternode mode invalid.
We need to adjust behaviour to account for that.
2024-03-24 07:20:41 +00:00
MarcoFalke
c326830f48
Merge bitcoin-core/gui#243: fix issue when disabling the auto-enabled blank wallet checkbox
915e34112b5a4c2ef391d7e3706603bcd6f62a2a qt: fix issue when disabling the auto-enabled blank wallet checkbox (Jarol Rodriguez)

Pull request description:

  As detailed by #151, On `master` a user can create the confusing scenario where you have a disabled `Encrypt Wallet` checkbox and a selected `Disable Private Keys` checkbox after unselecting the auto-enabled `Blank Wallet` checkbox.

  This commit makes it so that when the `Blank Wallet` checkbox is auto-selected after the user selects `Disable Private keys`, unselecting it will also unselect the `Disable Private Keys` checkbox, which in turn re-enables the `Encrypt Wallet` checkbox.

  Below are screenshots comparing the behavior of selecting `Disable Private Keys` then unselecting the `Blank Wallet` between `master` and this `PR`:

  **Master:**
  | Select `Disable Private Keys` | Unselect `Blank Wallet` |
  | ----------------------------- | ------------------------ |
  | ![Screen Shot 2021-03-09 at 7 57 14 PM](https://user-images.githubusercontent.com/23396902/110560141-77405a80-8113-11eb-9285-5acba6241dcf.png) |   ![Screen Shot 2021-03-09 at 7 57 31 PM](https://user-images.githubusercontent.com/23396902/110560159-81faef80-8113-11eb-9b37-086aa39ecb9f.png)    |

  **PR:**
  | Select `Disable Private Keys` | Unselect `Blank Wallet` |
  | ----------------------------- | ------------------------ |
  | ![Screen Shot 2021-03-09 at 7 34 12 PM](https://user-images.githubusercontent.com/23396902/110560379-e3bb5980-8113-11eb-899a-3a4c6a1bc115.png) | ![Screen Shot 2021-03-09 at 7 34 20 PM](https://user-images.githubusercontent.com/23396902/110560412-f170df00-8113-11eb-8bd0-f7fe6fc0d739.png) |

ACKs for top commit:
  hebasto:
    ACK 915e34112b5a4c2ef391d7e3706603bcd6f62a2a
  Talkless:
    ACK 915e34112b5a4c2ef391d7e3706603bcd6f62a2a

Tree-SHA512: ce6ecbc35b94a08cabf0b8a24dbdfc874d82cc8918cc8623dce8172c7fc9c75d63a13b036bae5f7ab2c090f8d020574a542285d1651600813faf5d91e2506a8d
2024-03-23 19:26:50 -05:00
fanquake
267f42fd6a
Merge #21382: build: Clean remnants of QTBUG-34748 fix
173ef8980d921c9c0e46257747ab1165965e3ced build: Small libxcb.mk improvements (Hennadii Stepanov)
5129b36573cb07d8bcbac493506c46e26d7239eb build: Clean remnants of QTBUG-34748 fix (Hennadii Stepanov)

Pull request description:

  Hope, this PR will make [transit](https://github.com/bitcoin/bitcoin/pull/21376) to Qt 5.12.10 neater.

  A fix for [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was introduced in #5915 (v0.11.0, Qt 5.2.1).

  [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was [fixed](b19b080894) in Qt 5.3.0.

  The separated [`fix-xcb-include-order.patch`](bb44d9e754/depends/patches/qt/fix-xcb-include-order.patch), provided by #5915, was dropped in #12971 while bumping Qt to 5.9.4 (5.9.6). But `libxcb.mk` remained unchanged.

  This PR reverts #5915 for `libxcb.mk` as well.

ACKs for top commit:
  practicalswift:
    cr ACK 173ef8980d921c9c0e46257747ab1165965e3ced: patch looks correct
  fanquake:
    ACK 173ef8980d921c9c0e46257747ab1165965e3ced

Tree-SHA512: 9815a7e532ff4aa08f9623ded8d5708eca1c9c73ac7a2684419a18c125da7627b44ac3191f2e7978946942c8d0580e73b1a93df624986fb2a13791a68ce1e025
2024-03-23 19:26:38 -05:00
pasta
4301ab9dfb
Merge #5773: refactor: resolve a lot of sonarlint and clang-tidy warnings in llmq code
bf57b15496 refactor: remove unneeded variable (pasta)
358ae3283d refactor: add some const (pasta)
4804aad2c9 refactor: a few more structured bindings (pasta)
ee6dc2d6ab refactor: remove some nested code blocks (pasta)
c2ac444abf refactor: create a immediately executed llamda; use some structed bindings inside of ti (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Resolve a lot of sonarlint and clang-tidy warnings. Please see individual commits

  ## What was done?

  ## How Has This Been Tested?
  `make check`

  ## Breaking Changes
  Should be none

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] 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)_

Top commit has no ACKs.

Tree-SHA512: 7481aaf5e5fae42fa896a9b770f41d9d3e1fa395569d2f9fffc952ec556737898283c5a4929063975852dd58fa857cd8374e78dd518983550870fd2683ad5f79
2024-03-23 14:37:45 -05:00
pasta
bf57b15496
refactor: remove unneeded variable 2024-03-23 14:37:23 -05:00
pasta
358ae3283d
refactor: add some const 2024-03-23 14:37:23 -05:00
pasta
4804aad2c9
refactor: a few more structured bindings 2024-03-23 14:37:23 -05:00
pasta
ee6dc2d6ab
refactor: remove some nested code blocks 2024-03-23 14:37:22 -05:00
pasta
c2ac444abf
refactor: create a immediately executed llamda; use some structed bindings inside of ti 2024-03-23 14:37:20 -05:00
Konstantin Akimov
0c884f9740
chore: narrow score of clang-diff-format for dash specific files only 2024-03-24 00:41:24 +07:00
Konstantin Akimov
4bc0e1f697
chore: intentionally introducing wrong formatting to bip39.cpp to trigger CI 2024-03-24 00:41:23 +07:00
Konstantin Akimov
2c74ad427d
fix: adjust wallet/bip39 accordingly linter comments 2024-03-24 00:41:23 +07:00
Konstantin Akimov
d3faa8522c
refactor: use better masks for list of files; add missing bip39.{h,cpp} 2024-03-24 00:41:23 +07:00
Konstantin Akimov
7788f1db0e
refactor: move list of non backported files o test/util/data/non-backported.txt
This files is refactored out from 'lint-cppcheck-dash' to dedicated file.
It is supposed to be used by clang formatter also in CI
2024-03-24 00:41:22 +07:00
pasta
1af51b2004
Merge #5950: refactor: RecursiveMutex -> Mutex for cs_mnauth
7cc305f1b2 refactor: RecursiveMutex -> Mutex for cs_mnauth (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Avoid using recursive mutexes where a non-recursive one does the job

  ## What was done?
  RecursiveMutex -> Mutex

  ## How Has This Been Tested?
  Built

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] 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)_

Top commit has no ACKs.

Tree-SHA512: 7c624263a1aa7aca61b12598a24fc570beca8a240ef66c5a80c86b410487a1450b3c3f31394d773c5a6041abe244708007a115f29212746d549268d376a267e1
2024-03-23 09:57:05 -05:00
MarcoFalke
1fcc5f1101
Merge #20540: test: Fix wallet_multiwallet issue on windows
fada2dfcac1c4b47ee76b877d91d515cf1d36410 test: Fix wallet_multiwallet issue on windows (MarcoFalke)

Pull request description:

  The error message on windows:

  > 2020-11-30T18:10:47.536032Z ListWalletDir: Error scanning C:\Users\user\AppData\Local\Temp\test_runner_₿_🏃_20201130_181042\wallet_multiwallet_0\node0\regtest\wallets\self_walletdat_symlink: boost::filesystem::status: The name of the file cannot be resolved by the system: "C:\Users\user\AppData\Local\Temp\test_runner_₿_🏃_20201130_181042\wallet_multiwallet_0\node0\regtest\wallets\self_walletdat_symlink\wallet.dat"

ACKs for top commit:
  promag:
    Code review ACK fada2dfcac1c4b47ee76b877d91d515cf1d36410. Although it could ignore (don't log) directories that lead to no permission error.
  fanquake:
    ACK fada2dfcac1c4b47ee76b877d91d515cf1d36410

Tree-SHA512: b475162cc3cd1574209d916605b229a79c8089714295f5e16569b71f958f0007d54dc76833938492d931387784588b11b73e3ef00f963540af42c079417f8d72
2024-03-22 11:20:57 -05:00
MarcoFalke
4afbaf2ea1
Merge #20322: test: Fix intermittent issue in wallet_listsinceblock
444412821e5349ce0e0b039d884583edb70c4399 test: Fix intermittent issue in wallet_listsinceblock (MarcoFalke)

Pull request description:

ACKs for top commit:
  Empact:
    Code Review ACK 444412821e

Tree-SHA512: 86d47b1e3c8681dd479654589c894016ac81a3c96a34c3b4a75278b2af85054ea8c6f768e518a5322a4928d82d5e99105bbce0f4fa6a7a18c40e3e0799f9ab54
2024-03-22 11:20:51 -05:00
pasta
2397209ac8
Merge #5511: backport!: Merge bitcoin#19915, 19469, 19464, 19512, 22495
a266abef75 Merge bitcoin/bitcoin#22495: p2p: refactor: tidy up `PeerManagerImpl::Misbehaving(...)` (MarcoFalke)
d7985aa36a Merge #19512: p2p: banscore updates to gui, tests, release notes (Wladimir J. van der Laan)
b9799de985 Merge #19464: net: remove -banscore configuration option (MarcoFalke)
c0c5d05419 Merge #19469: rpc: deprecate banscore field in getpeerinfo (fanquake)
02faef78c2 Merge #19915: p2p, refactor: Use Mutex type for some mutexes in CNode class (MarcoFalke)

Pull request description:

  bitcoin backports

Top commit has no ACKs.

Tree-SHA512: 7537fd2203e10f3de03e3e2df7f9c7b4fcf05387325635c352a4e9898338e979bfd46626ceee8d267ea48aded4f342bca56ff8020e71dab79f37f4b1bb7cf27c
2024-03-22 11:09:17 -05:00
MarcoFalke
a266abef75
Merge bitcoin/bitcoin#22495: p2p: refactor: tidy up PeerManagerImpl::Misbehaving(...)
8858e88c840197cdcabea07dd1380ef2aa4ece02 p2p: refactor: tidy up `PeerManagerImpl::Misbehaving(...)` (Sebastian Falbesoner)

Pull request description:

  This simple refactoring PR has the goal to improve the readability of the `Misbehaving` method by

  - introducing constant variables `score_before` and  `score_now` (to avoid repeatedly calculating the former)
  - deduplicating calls to LogPrint(), eliminates else-branch

ACKs for top commit:
  jnewbery:
    utACK 8858e88c840197cdcabea07dd1380ef2aa4ece02
  rajarshimaitra:
    tACK 8858e88c84

Tree-SHA512: 1d4dd5ac1d16ee9595edf4fa46e4960915a203641d74e6c33cffaba62ea71328834309a4451256fb45daf759f0cf6f4f199c46815afff6c89c0746e2ad4d4092
2024-03-22 11:08:11 -05:00
Wladimir J. van der Laan
d7985aa36a
Merge #19512: p2p: banscore updates to gui, tests, release notes
fa108d6a757838225179a8df942cfb6d99c98c90 test: update tests for peer discouragement (Jon Atack)
1a9f462caa63fa16d7b4415312d2032a42b3fe0b gui, doc: rm Ban Score in GUI Peers window/release notes updates (Jon Atack)

Pull request description:

  This is the third `-banscore` PR in the mini-series described in #19464. See that PR for the intention and reasoning.

  - no longer display "Ban Score" in the GUI peers window and add a release note, plus release note fixups per https://github.com/bitcoin/bitcoin/pull/19464#pullrequestreview-447452052
  - update tests (`src/test/denialofservice_tests.cpp` and `test/functional/p2p_leak.py`) from banning to discouragement and per https://github.com/bitcoin/bitcoin/pull/19464#issuecomment-658052518

ACKs for top commit:
  jnewbery:
    ACK fa108d6a757838225179a8df942cfb6d99c98c90
  laanwj:
    ACK fa108d6a757838225179a8df942cfb6d99c98c90

Tree-SHA512: 58a449b3f47b8cb5490b34e4442ee8675bfad1ce48af4e4fd5c67715b0c1a596fb8e731d42e576b4c3b64627f76e0a68cbb1da9ea9f588a5932fe119baf40d50
2024-03-22 11:08:11 -05:00
MarcoFalke
b9799de985
Merge #19464: net: remove -banscore configuration option
06059b0c2a6c2db70c87a7715f8a344a13400fa1 net: rename DEFAULT_BANSCORE_THRESHOLD to DISCOURAGEMENT_THRESHOLD (Jon Atack)
1d4024bca8086cceff7539dd8c15e0b7fe1cc5ea net: remove -banscore configuration option (Jon Atack)

Pull request description:

  per https://github.com/bitcoin/bitcoin/pull/19219#issuecomment-652684340, https://github.com/bitcoin/bitcoin/pull/19219#discussion_r443074487 and https://github.com/bitcoin/bitcoin/pull/19219#issuecomment-652699592. Edit: now split into 3 straightforward PRs:
  - net: remove -banscore configuration option (this PR)
  - rpc: deprecate banscore field in getpeerinfo (#19469, *merged*)
  - gui: no longer display banscores (TBA in the gui repo)

ACKs for top commit:
  MarcoFalke:
    review ACK 06059b0c2a6c2db70c87a7715f8a344a13400fa1 📙
  vasild:
    ACK 06059b0c

Tree-SHA512: 03fad249986e0896697033fbb8ba2cbfaae7d7603b1fb2a38b3d41db697630d238623f4d732b9098c82af249ce5a1767dd432b7ca0fec10544e23d24fbd57c50
2024-03-22 11:08:10 -05:00
fanquake
c0c5d05419
Merge #19469: rpc: deprecate banscore field in getpeerinfo
41d55d30579358c805036201664ad6a1c1d48681 doc: getpeerinfo banscore deprecation release note (Jon Atack)
dd54e3796e633cfdf6954af306afd26eadc25116 test: getpeerinfo banscore deprecation test (Jon Atack)
8c7647b3fbbab03ea84071cf3cd2d0d2bf8be255 rpc: deprecate banscore field in rpc getpeerinfo (Jon Atack)

Pull request description:

  Per https://github.com/bitcoin/bitcoin/pull/19219#discussion_r443074487 and https://github.com/bitcoin/bitcoin/pull/19219#issuecomment-652699592, this PR deprecates returning the `banscore` field in the `getpeerinfo` RPC, updates the help, adds a test, and updates the release notes. Related to #19464.

ACKs for top commit:
  fanquake:
    ACK 41d55d30579358c805036201664ad6a1c1d48681

Tree-SHA512: 8eca08332581e2fe191a2aafff6ba89ce39413f0491ed0de8b86577739f0ec430b1a8fbff2914b0f3138a229563dfcc1981c0cf5b7dd6061b5c48680a28423bc
2024-03-22 11:08:10 -05:00
MarcoFalke
02faef78c2
Merge #19915: p2p, refactor: Use Mutex type for some mutexes in CNode class
0e51a355128a825d428fe2b9017c25085731fc04 refactor: Use Mutex type for some mutexes in CNode class (Hennadii Stepanov)

Pull request description:

  No need the `RecursiveMutex` type for the `CNode::cs_vSend`, `CNode::cs_hSocket` and `CNode::cs_vRecv`.

  Related to #19303.

ACKs for top commit:
  jnewbery:
    utACK 0e51a35512
  MarcoFalke:
    review ACK 0e51a355128a825d428fe2b9017c25085731fc04 🔊

Tree-SHA512: 678ee5e3c15ad21a41cb86ec7179741bd505a138638fdc07f41d6d677c38fbf2208219bfc0509e3675e721fc8d8816e858070db7b87c5d72ad93aae81f7e1636
2024-03-22 11:08:10 -05:00
pasta
7cc305f1b2
refactor: RecursiveMutex -> Mutex for cs_mnauth 2024-03-22 11:05:33 -05:00
pasta
b7c5a92f06
Merge #5923: backport: Merge bitcoin#22408 ,20772, 21056, 22257, 19776, 20599
57b6fe7327 Merge bitcoin/bitcoin#22257: test: refactor: various (de)serialization helpers cleanups/improvements (MarcoFalke)
5c85b7dc14 Merge bitcoin/bitcoin#21056: rpc: Add a `-rpcwaittimeout` parameter to limit time spent waiting (W. J. van der Laan)
eaa5f8ea31 Merge bitcoin/bitcoin#20772: fuzz: bolster ExtractDestination(s) checks (MarcoFalke)
17598db793 Merge bitcoin/bitcoin#22408: test: add tests for `bad-txns-prevout-null` reject reason (MarcoFalke)

Pull request description:

  This PR and does not introduce breaking changes

  ## Issue being fixed or feature implemented
  Bitcoin backports

  ## What was done?
  backports bitcoin PRS 22408 ,20772, 21056, 22257, 19776, 20599

  ## How Has This Been Tested?
  In CI

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [ ] 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

Top commit has no ACKs.

Tree-SHA512: 7261331876606bd46725116ecfcc39765428727840ecd557eee59ebd04de535485e1b02f15d03c5b8d58553bf1a62378707dd5eda08df9f1f9d0bf7171020815
2024-03-22 10:30:25 -05:00
MarcoFalke
57b6fe7327
Merge bitcoin/bitcoin#22257: test: refactor: various (de)serialization helpers cleanups/improvements
bdb8b9a347e68f80a2e8d44ce5590a2e8214b6bb test: doc: improve doc for `from_hex` helper (mention `to_hex` alternative) (Sebastian Falbesoner)
191405420815d49ab50184513717a303fc2744d6 scripted-diff: test: rename `FromHex` to `from_hex` (Sebastian Falbesoner)
a79396fe5f8f81c78cf84117a87074c6ff6c9d95 test: remove `ToHex` helper, use .serialize().hex() instead (Sebastian Falbesoner)
2ce7b47958c4a10ba20dc86c011d71cda4b070a5 test: introduce `tx_from_hex` helper for tx deserialization (Sebastian Falbesoner)

Pull request description:

  There are still many functional tests that perform conversions from a hex-string to a message object (deserialization) manually. This PR identifies all those instances and replaces them with a newly introduced helper `tx_from_hex`.

  Instances were found via
  * `git grep "deserialize.*BytesIO"`

  and some of them manually, when it were not one-liners.

  Further, the helper `ToHex` was removed and simply replaced by `.serialize().hex()`, since now both variants are in use (sometimes even within the same test) and using the helper doesn't really have an advantage in readability. (see discussion https://github.com/bitcoin/bitcoin/pull/22257#discussion_r652404782)

ACKs for top commit:
  MarcoFalke:
    review re-ACK bdb8b9a347e68f80a2e8d44ce5590a2e8214b6bb 😁

Tree-SHA512: e25d7dc85918de1d6755a5cea65471b07a743204c20ad1c2f71ff07ef48cc1b9ad3fe5f515c1efaba2b2e3d89384e7980380c5d81895f9826e2046808cd3266e
2024-03-22 10:29:15 -05:00
W. J. van der Laan
5c85b7dc14
Merge bitcoin/bitcoin#21056: rpc: Add a -rpcwaittimeout parameter to limit time spent waiting
b9e76f1bf08c52fcd402b2314e00db4ad247ebc8 rpc: Add test for -rpcwaittimeout (Christian Decker)
f76cb10d7dc9a7b0c55d28011161606399417664 rpc: Prefix rpcwaittimeout error with details on its nature (Christian Decker)
c490e17ef698a1695050f82ef6567b3b87a21861 doc: Add release notes for the `-rpcwaittimeout` cli parameter (Christian Decker)
a7fcc8eb59fe51473571661316214156fbdbdcae rpc: Add a `-rpcwaittimeout` parameter to limit time spent waiting (Christian Decker)

Pull request description:

  Adds a new numeric `-rpcwaittimeout` that can be used to limit the
  time we spend waiting on the RPC server to appear. This is used by
  downstream projects to provide a bit of slack when `bitcoind`s RPC
  interface is not available right away.

  This makes the `-rpcwait` argument more useful, since we can now limit
  how long we'll ultimately wait, before potentially giving up and reporting
  an error to the caller. It was discussed in the context of the BTCPayServer
  wanting to have c-lightning wait for the RPC interface to become available
  but still have the option of giving up eventually ([4355]).

  I checked with laanwj whether this is already possible ([comment]), and
  whether this would be a welcome change. Initially I intended to repurpose
  the (optional) argument to `-rpcwait`, however I decided against it since it
  would potentially break existing configurations, using things like `rpcwait=1`,
  or `rpcwait=true` (the former would have an unintended short timeout, when
  old behavior was to wait indefinitely).

  ~Due to its simplicity I didn't implement a test for it yet, but if that's desired I
  can provide one.~ Test was added during reviews.

  [4355]: https://github.com/ElementsProject/lightning/issues/4355
  [comment]: https://github.com/ElementsProject/lightning/issues/4355#issuecomment-768288261

ACKs for top commit:
  laanwj:
    Code review ACK b9e76f1bf08c52fcd402b2314e00db4ad247ebc8
  promag:
    ACK b9e76f1bf08c52fcd402b2314e00db4ad247ebc8.

Tree-SHA512: 3cd6728038ec7ca7c35c2e7ccb213bfbe963f99a49bb48bbc1e511c4dd23d9957c04f9af1f8ec57120e47b26eaf580b46817b099d5fc5083c98da7aa92db8638

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2024-03-22 10:29:15 -05:00
MarcoFalke
eaa5f8ea31
Merge bitcoin/bitcoin#20772: fuzz: bolster ExtractDestination(s) checks
a29f522ba4aa71582b54025c5682b4c1687ae9f3 fuzz: bolster ExtractDestination(s) checks (Michael Dietz)

Pull request description:

ACKs for top commit:
  practicalswift:
    Tested ACK a29f522ba4aa71582b54025c5682b4c1687ae9f3

Tree-SHA512: 0fc194edb7b0fce77c7bb725fe65dec7976598edcd53882b5a0eb7cd83281a3ddcd2b3de00282468be659a7e5bc9991eb482816418f55b30e657cdc5a3bd7438
2024-03-22 10:29:15 -05:00
MarcoFalke
17598db793
Merge bitcoin/bitcoin#22408: test: add tests for bad-txns-prevout-null reject reason
1f449586a9e39bc4fb53cb5c7a31362e47aea19b test: add `bad-txns-prevout-null` test to mempool_accept.py (Sebastian Falbesoner)
aa0a5bb70d77739d43d5a9ceae78fb0c6fafd435 test: add `bad-txns-prevout-null` test case to invalid_txs.py (Sebastian Falbesoner)

Pull request description:

  This simple PR adds missing tests for the reject reason `bad-txns-prevout-null`, which is thrown in the function `CheckTransaction()`: a62fc35a15/src/consensus/tx_check.cpp (L52-L54)

  Basically this condition is met for non-coinbase transactions (the code snippet above only hits if `!tx.IsCoinBase()`) with coinbase-like outpoints, i.e. hash=0, n=0xffffffff.

  Can be tested by running the functional tests `feature_block.py`, `p2p_invalid_tx.py` and `mempool_accept.py`. Not sure if the redundancy in the tests is desired (I guess it would make sense if the mempool acceptance test also makes use of the invalid_txs templates?).

ACKs for top commit:
  rajarshimaitra:
    tACK 1f449586a9
  brunoerg:
    tACK 1f449586a9e39bc4fb53cb5c7a31362e47aea19b
  kristapsk:
    ACK 1f449586a9e39bc4fb53cb5c7a31362e47aea19b, code looks correct and all tests pass.

Tree-SHA512: 2d4f940a6ac8e0d80d2670c9e1111cbf43ae6ac62809a2ccf17cffee9a41d387ea4d889ee300eb4a407c055b13bfa5d37102a32ed59964a9b6950bd907ba7204
2024-03-22 10:29:12 -05:00
Kittywhiskers Van Gogh
9a3c5a3c48
trivial: access activeMasternodeInfo when lock is in scope 2024-03-22 12:26:50 +00:00
pasta
1c30df0afe
Merge #5947: fix: revert "drop circular dependencies over deterministicmns in validationinterface"
419a8af274 fix: revert "drop circular dependencies over deterministicmns in validationinterface" (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  In https://github.com/dashpay/dash/pull/5933, a commit was added that changed a copy to a ref in the arguments of a lambda (fa6847d2fb), which helped get rid of a circular dependency. This unfortunately also caused a functional test to start failing (`interface_zmq_dash.py`).

  This is reflected in the PR itself and in `develop` with CI results:
  * PR at commit before fa6847d2fb, i.e. f8d1853903 ([build](https://gitlab.com/dashpay/dash/-/pipelines/1219453638), passes)
  * PR at commit fa6847d2fb ([build](https://gitlab.com/dashpay/dash/-/pipelines/1221199595), fails 2/4 instances)
  * `develop`, as of this writing, a7e61114f8 ([build](https://gitlab.com/dashpay/dash/-/pipelines/1221235772), fails 3/4 instances)

  This change was also confirmed locally....

  <details>
  <summary>
  develop (a7e61114f8):
  </summary>

  ```
  dash@1914d5152e74:/src/dash$ ./test/functional/interface_zmq_dash.py
  2024-03-21T12:18:10.643000Z TestFramework (INFO): Initializing test directory /tmp/dash_func_test_m7b0f114
  2024-03-21T12:18:10.644000Z TestFramework (INFO): Creating and starting controller node
  2024-03-21T12:18:10.644000Z TestFramework (INFO): Creating and starting 1 simple nodes
  2024-03-21T12:18:11.587000Z TestFramework (INFO): Generating 4100 coins
  2024-03-21T12:18:13.424000Z TestFramework (INFO): Activating DIP3
  2024-03-21T12:18:13.427000Z TestFramework (INFO): Preparing 4 masternodes
  [...]
  2024-03-21T12:19:36.716000Z TestFramework (INFO): Testing 3 ChainLock publishers
  2024-03-21T12:19:37.139000Z TestFramework (INFO): Testing 4 governance publishers
  2024-03-21T12:19:38.547000Z TestFramework (ERROR): Unexpected exception caught during testing
  Traceback (most recent call last):
    File "/src/dash/test/functional/test_framework/authproxy.py", line 108, in _request
      return self._get_response()
    File "/src/dash/test/functional/test_framework/authproxy.py", line 170, in _get_response
      http_response = self.__conn.getresponse()
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1348, in getresponse
      response.begin()
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 316, in begin
      version, status, reason = self._read_status()
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 285, in _read_status
      raise RemoteDisconnected("Remote end closed connection without"
  http.client.RemoteDisconnected: Remote end closed connection without response

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/src/dash/test/functional/test_framework/test_framework.py", line 157, in main
      self.run_test()
    File "./test/functional/interface_zmq_dash.py", line 152, in run_test
      self.test_governance_publishers()
    File "./test/functional/interface_zmq_dash.py", line 409, in test_governance_publishers
      self.nodes[0].gobject("vote-many", rpc_proposal_hash, map_vote_signals[1], map_vote_outcomes[1])
    File "/src/dash/test/functional/test_framework/coverage.py", line 49, in __call__
      return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
    File "/src/dash/test/functional/test_framework/authproxy.py", line 146, in __call__
      response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
    File "/src/dash/test/functional/test_framework/authproxy.py", line 113, in _request
      self.__conn.request(method, path, postdata, headers)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1256, in request
      self._send_request(method, url, body, headers, encode_chunked)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1302, in _send_request
      self.endheaders(body, encode_chunked=encode_chunked)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1251, in endheaders
      self._send_output(message_body, encode_chunked=encode_chunked)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1011, in _send_output
      self.send(msg)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 951, in send
      self.connect()
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 922, in connect
      self.sock = self._create_connection(
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/socket.py", line 808, in create_connection
      raise err
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/socket.py", line 796, in create_connection
      sock.connect(sa)
  ConnectionRefusedError: [Errno 111] Connection refused
  2024-03-21T12:19:39.050000Z TestFramework (INFO): Stopping nodes
  2024-03-21T12:19:39.051000Z TestFramework.node0 (ERROR): Unable to stop node.
  Traceback (most recent call last):
    File "/src/dash/test/functional/test_framework/test_node.py", line 338, in stop_node
      self.stop(wait=wait)
    File "/src/dash/test/functional/test_framework/coverage.py", line 49, in __call__
      return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
    File "/src/dash/test/functional/test_framework/authproxy.py", line 146, in __call__
      response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
    File "/src/dash/test/functional/test_framework/authproxy.py", line 107, in _request
      self.__conn.request(method, path, postdata, headers)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1256, in request
      self._send_request(method, url, body, headers, encode_chunked)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1267, in _send_request
      self.putrequest(method, url, **skips)
    File "/usr/local/pyenv/versions/3.8.16/lib/python3.8/http/client.py", line 1093, in putrequest
      raise CannotSendRequest(self.__state)
  http.client.CannotSendRequest: Request-sent
  2024-03-21T12:19:39.052000Z TestFramework (ERROR): Unexpected exception caught during shutdown
  Traceback (most recent call last):
    File "/src/dash/test/functional/test_framework/test_framework.py", line 324, in shutdown
      self.stop_nodes()
    File "/src/dash/test/functional/test_framework/test_framework.py", line 665, in stop_nodes
      node.stop_node(expected_stderr=expected_stderr, wait=wait, wait_until_stopped=False)
    File "/src/dash/test/functional/test_framework/test_node.py", line 352, in stop_node
      raise AssertionError("Unexpected stderr {} != {}".format(stderr, expected_stderr))
  AssertionError: Unexpected stderr dashd: ./immer/immer/detail/hamts/node.hpp:144: auto immer::detail::hamts::node<T, Hash, Equal, MemoryPolicy, B>::nodemap() const [with T = std::pair<uint256, std::pair<uint256, unsigned int> >; Hash = immer::map<uint256, std::pair<uint256, unsigned int>, CDeterministicMNList::ImmerHasher>::hash_key; Equal = immer::map<uint256, std::pair<uint256, unsigned int>, CDeterministicMNList::ImmerHasher>::equal_key; MemoryPolicy = immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap>, immer::refcount_policy, immer::spinlock_policy>; unsigned int B = 5]: Assertion `kind() == kind_t::inner' failed.
  Posix Signal: Aborted
  No debug information available for stacktrace. You should add debug information and then run:
  dashd -printcrashinfo=bvcgc43iinzgc43ijfxgm3ybaacwiyltnbsbkudponuxqictnftw4ylmhiqecytpoj2gkzaaaa====== !=
  2024-03-21T12:19:39.052000Z TestFramework (WARNING): Not cleaning up dir /tmp/dash_func_test_m7b0f114
  2024-03-21T12:19:39.052000Z TestFramework (ERROR): Test failed. Test logging available at /tmp/dash_func_test_m7b0f114/test_framework.log
  2024-03-21T12:19:39.053000Z TestFramework (ERROR):
  2024-03-21T12:19:39.053000Z TestFramework (ERROR): Hint: Call /src/dash/test/functional/combine_logs.py '/tmp/dash_func_test_m7b0f114' to consolidate all logs
  2024-03-21T12:19:39.053000Z TestFramework (ERROR):
  2024-03-21T12:19:39.053000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
  2024-03-21T12:19:39.053000Z TestFramework (ERROR): https://github.com/dashpay/dash/issues
  2024-03-21T12:19:39.054000Z TestFramework (ERROR):
  [node 0] Cleaning up leftover process
  [node 4] Cleaning up leftover process
  [node 3] Cleaning up leftover process
  [node 2] Cleaning up leftover process
  [node 1] Cleaning up leftover process
  ```

  </details>

  <details>
  <summary>
  develop with revert (419a8af274)
  </summary>

  ```
  dash@1914d5152e74:/src/dash$ ./test/functional/interface_zmq_dash.py
  2024-03-21T12:23:50.749000Z TestFramework (INFO): Initializing test directory /tmp/dash_func_test__2tlpe0x
  2024-03-21T12:23:50.751000Z TestFramework (INFO): Creating and starting controller node
  2024-03-21T12:23:50.751000Z TestFramework (INFO): Creating and starting 1 simple nodes
  2024-03-21T12:23:51.717000Z TestFramework (INFO): Generating 4100 coins
  2024-03-21T12:23:53.648000Z TestFramework (INFO): Activating DIP3
  2024-03-21T12:23:53.651000Z TestFramework (INFO): Preparing 4 masternodes
  [...]
  2024-03-21T12:25:22.935000Z TestFramework (INFO): Testing 3 ChainLock publishers
  2024-03-21T12:25:23.357000Z TestFramework (INFO): Testing 4 governance publishers
  2024-03-21T12:25:24.750000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:25:30.789000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:25:39.270000Z TestFramework (INFO): Moved from block 1013 to 1032
  2024-03-21T12:25:39.270000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:25:48.155000Z TestFramework (INFO): Moved from block 1033 to 1056
  2024-03-21T12:25:48.155000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:25:56.533000Z TestFramework (INFO): Moved from block 1057 to 1080
  2024-03-21T12:25:56.533000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:26:02.538000Z TestFramework (INFO): Mining quorum: expected_members=4, expected_connections=2, expected_contributions=4, expected_complaints=0, expected_justifications=0, expected_commitments=4
  2024-03-21T12:26:04.923000Z TestFramework (INFO): Expected quorum_0 at:1104
  2024-03-21T12:26:04.924000Z TestFramework (INFO): Expected quorum_0 hash:0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf
  2024-03-21T12:26:04.924000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 1 (init)
  2024-03-21T12:26:04.928000Z TestFramework (INFO): quorumIndex 0: Waiting for quorum connections (init)
  2024-03-21T12:26:05.947000Z TestFramework (INFO): Expected quorum_1 at:1105
  2024-03-21T12:26:05.947000Z TestFramework (INFO): Expected quorum_1 hash:6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831
  2024-03-21T12:26:05.947000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 1 (init)
  2024-03-21T12:26:06.458000Z TestFramework (INFO): quorumIndex 1: Waiting for quorum connections (init)
  2024-03-21T12:26:07.475000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 2 (contribute)
  2024-03-21T12:26:09.502000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 2 (contribute)
  2024-03-21T12:26:11.027000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 3 (complain)
  2024-03-21T12:26:12.551000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 3 (complain)
  2024-03-21T12:26:14.075000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 4 (justify)
  2024-03-21T12:26:15.600000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 4 (justify)
  2024-03-21T12:26:17.123000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 5 (commit)
  2024-03-21T12:26:19.149000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 5 (commit)
  2024-03-21T12:26:20.674000Z TestFramework (INFO): quorumIndex 0: Waiting for phase 6 (finalization)
  2024-03-21T12:26:22.267000Z TestFramework (INFO): quorumIndex 1: Waiting for phase 6 (finalization)
  2024-03-21T12:26:28.780000Z TestFramework (INFO): Mining final commitments
  2024-03-21T12:26:34.892000Z TestFramework (INFO): Waiting for quorum(s) to appear in the list
  2024-03-21T12:26:34.894000Z TestFramework (INFO): h(1116) quorums: {'llmq_test': ['0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676'], 'llmq_test_v17': ['0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676'], 'llmq_test_dip0024': ['0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', '6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831'], 'llmq_test_platform': []}
  2024-03-21T12:26:35.047000Z TestFramework (INFO): New quorum: height=1104, quorumHash=0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf, quorumIndex=0, minedBlock=4e0193af47e244afe7ca8b4644e8b7f655afc29035de61e42b7c867bfd0469c4
  2024-03-21T12:26:35.047000Z TestFramework (INFO): New quorum: height=1105, quorumHash=6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831, quorumIndex=1, minedBlock=4e0193af47e244afe7ca8b4644e8b7f655afc29035de61e42b7c867bfd0469c4
  2024-03-21T12:26:35.047000Z TestFramework (INFO): quorum_info_0:{'height': 1104, 'type': 'llmq_test_dip0024', 'quorumHash': '0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', 'quorumIndex': 0, 'minedBlock': '4e0193af47e244afe7ca8b4644e8b7f655afc29035de61e42b7c867bfd0469c4', 'previousConsecutiveDKGFailures': 4, 'members': [{'proTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'valid': True}, {'proTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'valid': True}, {'proTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'valid': True}, {'proTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'valid': True}], 'quorumPublicKey': '9731adc67399062095a817c369c977ceedc5f0e8597d72b6d70a4ba1a4a496cf780d0d62e3f038f129998b8a323d20c4'}
  2024-03-21T12:26:35.047000Z TestFramework (INFO): quorum_info_1:{'height': 1105, 'type': 'llmq_test_dip0024', 'quorumHash': '6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831', 'quorumIndex': 1, 'minedBlock': '4e0193af47e244afe7ca8b4644e8b7f655afc29035de61e42b7c867bfd0469c4', 'previousConsecutiveDKGFailures': 4, 'members': [{'proTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'valid': True}, {'proTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'valid': True}, {'proTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'valid': True}, {'proTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'valid': True}], 'quorumPublicKey': '98e0e6f79d1697f88867bb7c4f7ef5f07dd39e34daf206f9865179dd1e63ec7d24b20592b664cc86e9278e3613db856d'}
  2024-03-21T12:26:35.093000Z TestFramework (INFO): h(1124):{'extraShare': False, 'quorumSnapshotAtHMinusC': {'activeQuorumMembers': [True, True, True, True], 'mnSkipListMode': 1, 'mnSkipList': [1]}, 'quorumSnapshotAtHMinus2C': {'activeQuorumMembers': [True, True, True, True], 'mnSkipListMode': 1, 'mnSkipList': [0, 1, 1]}, 'quorumSnapshotAtHMinus3C': {'activeQuorumMembers': [True, True, True, True], 'mnSkipListMode': 1, 'mnSkipList': [0, 1, 2, -1]}, 'mnListDiffTip': {'nVersion': 1, 'baseBlockHash': '000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e', 'blockHash': '253738c2e3254a2b784f467972ba707761ed501fb5cb3c90551da506abe5ad70', 'cbTxMerkleTree': '01000000010cae3eb3b5c3fb57b5d29d780fb31713a37b37348c91e7fd884aaf83785aeca00101', 'cbTx': '03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff050264040101ffffffff03aa8b4e1e030000001976a9148708dff2bf8b31363cb4201d179b4714aa7b54a088acec36570e030000001976a914f4f68699fb7649bdfa3fb8fe578000d213917a8488acb654f70f000000001976a914eb747196393894238cb18ebd758b97c3529fae7288ac0000000046020064040000e1cb7a0efab5d02b994a4771530f7cbbbec97354a60e1189d3903837cdc310fb4550993dacee7dc971faa0a337b12825293d124aff20d939fd4b5f9addd43eb8', 'deletedMNs': [], 'mnList': [{'nVersion': 1, 'nType': 0, 'proRegTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'confirmedHash': '4d6a402ef0eea8ccfb24199f1618708fc34e0461abdd4692b4c23bafbd4e3713', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'votingAddress': 'ybcNcsLwcyVQg7xYKhBfNdsJ349ZMebvS5', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'confirmedHash': '646f457335100a95018c2eb649113d1073455c962c522db363bb433968239e15', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'votingAddress': 'yerSqmXyuxUZrdt7XKPg34aGyyKzNuVUiw', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'confirmedHash': '0befc211c744b063cca4e02277a0f60728b42c27ace99ff9724afec226bbfd0e', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'votingAddress': 'yi923TRM2dQLTA9S2zDWtFtrxrm97qZn3t', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'confirmedHash': '15fe17827cb7815a0e5751be60a54d7e7f37ee17f2bdf8894665ab2a88ebbf3e', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'votingAddress': 'yQ4EppPanEhNtnrLv9PnmuYu7FeBnBCANj', 'isValid': True}], 'deletedQuorums': [], 'newQuorums': [{'version': 3, 'llmqType': 100, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'af5b4e78031a9e331a268815e34006e459be897cc6e127b166a6f5ab6673db82bfd42bc58939177fe643fba89d74a0b6', 'quorumVvecHash': 'a861a37614e2104197931ac07d39c91a2cc4a1ae69a8029c94ebbfe19d2cb926', 'quorumSig': '911808c92a4bc2619ac26551f9e8060fa1a9b29e34f10f6707a608c10fd6658eea706f0fbcbbdee0866076d5bb05d7430c4267c97c051d274202230fc54cc625511542ad6d85e93a23f55b92d0b50439b0cf1ff0734849f253e42f9cd3ea7e9f', 'membersSig': '94e8ac60c25554bb16d8707c61c40c2cef15a0eee283e962875ef85eb5a3760de0a4196ef1c02c5f5df08cea0e644b4f13c4529a6f826230a088800db7f34a2feab70959e5932690b6d8ad5276a7eca2fe4bb79abf0618bc0bab30800714eab8'}, {'version': 3, 'llmqType': 100, 'quorumHash': '0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'a5c2d937b34c8eb136b61cf3fba2ee3de855a48e3c66a229be3347eaf66163d055c48139031674b0239ed6b0ee9ca86a', 'quorumVvecHash': 'c24cb0c0b34d6b4e66a52bff65b580aae1264e3ed8d4470ef9515b7098343ffd', 'quorumSig': '9240f7c351fd4125fe6bd41b25cf77154ba71c8c045eed32d7ae5d16a59103287dda670072d5614baeb85e6f83666d91161b9fe0fd5d9754fe9bc8d1f8ff3be1b123d72546855d790a17a38f3d5e0a1ae1fb12b2730fecd942152012375b6f5c', 'membersSig': 'ab5816f66fb9ff46094a8c2e0581736ea9daa2b928e61c8c5ab286bfd99114e5eddea37583f8749ec29d87f2199a6878009c6c416ed63ec47c83ef0028522fd115791c27ec951a20dcfb85831139bd7ef4b9464ccad03edc18ead38cc8eb8d1c'}, {'version': 3, 'llmqType': 102, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': 'af1ad4c55ab202ab037ebc926692e46236c1ece38a7f54fb14149ce26d14a4adb91f6786d6c37a560a8a82390541af57', 'quorumVvecHash': 'b723ccd68828dbea11ac1ab7951db69ad9682b1bc1d9e9388fa8d7078dd4c18d', 'quorumSig': '8a96a6b8acce6ad81f5f7e643e31e00f6e7407220c9e1764655940ca13ee7432add78b858eac6629d29966b97d294716061f2a6f107cf8131321da26ca718f771a41a912763bd74f4c7cf5859a02a7fe536a93223b58d691484f73e804184862', 'membersSig': 'b073fef22c18faf0ed70e3c5681419f850eac1059c3417fc126275468b6477d06287bf7cdc710c128314ec19a6a5f0961266c6ada6e84466437ec3a966c45aa31709d7af3d8b6edb196e50386d9c501ae5e247b6b850060f324c8c7031a62b90'}, {'version': 3, 'llmqType': 102, 'quorumHash': '0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': '849e7ae1ee8769979f2882ff0e66cd73bbbaf9a7d6caeddbd6cfbf1d2127dd2363f64e18b8f8659ed5bd3dd585fea08e', 'quorumVvecHash': '586e3b287b62684f8293af74942c01a3a60546e63891bd7e60ab4aecb7d2fe24', 'quorumSig': '8329edb1d468a5a0ec4d53c66311918eb06a75379942b06de77a25d9eaa97b3eda09ad5287e471afd02a9d5049337cb000ec3a8fd41c8b3b0516d138c6ec5ace54314a3f5fff0a563174a5c6a2fe9e36f7fb9e2d75e6fcc371c45f12e2a5ca53', 'membersSig': 'b95cc6c940e462d0840c530878bc4f9ff21e2ab6bb626e6a81b0804a1da4eb1d23f76cd1d421efcf54f4d9505d70328904ed7e20b2b4b674b937e377557bb87bd5c1bbcb24e3e79795d3035472e9157902946d47a5a1371e2a90f7d162a3bc0e'}, {'version': 4, 'llmqType': 103, 'quorumHash': '6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '98e0e6f79d1697f88867bb7c4f7ef5f07dd39e34daf206f9865179dd1e63ec7d24b20592b664cc86e9278e3613db856d', 'quorumVvecHash': '167be83587b1d056d0767ae711ad3cfe991ce99eb3729466c40d8a68ef5808e2', 'quorumSig': '99ba923647e8fa942cf929969be2c498853236e114cd52805529e43c778c9b6413e6bbc5e3871ee3fff4895f302eff900f0d8f773f36ed739308fdc3a157d0c5fd2caca4a8bf4fb50385489de5cf2e45b2dd5ae4fa64635ae12edcf4038c5ca5', 'membersSig': 'b4a1cc904b7570c448713e0912d77dd550a143d775fbb97750f3d675661af7bb37c11b7ca39650d7ca041bc2b241a7830f39880987834e7a0c160de9d156c2a2cba6773c14985a00521c362750ee7ea27bf0c77ce9abc056aecbd9747dd223f7'}, {'version': 4, 'llmqType': 103, 'quorumHash': '0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9731adc67399062095a817c369c977ceedc5f0e8597d72b6d70a4ba1a4a496cf780d0d62e3f038f129998b8a323d20c4', 'quorumVvecHash': '90ab3d4a2ffa7d6eb801032b679efef9974f2f9979c7c2cb3e8ef9b33cbee6f2', 'quorumSig': '906c32ecc9ef25466ce3f2970e9c95fc6f896866ccb45b2a140fccca15d1a3c8801c1b7a6e8de365e211ef87f69b361416d09f03d6f0779aa211aefc7658b3b2a45d990a24577956ff7fdc2307d0a943ff9945bf5fe2ef29ff8cfd42ee4e29ee', 'membersSig': 'af1aebef49703fae9144cee3543b8d79bdd191371b80bfff70d59479c1a1cbe3fb496572abc2bf58c63dce84ecb0409e07c605b1f207d34385eda8bca3277ea21e8408b4081d917eda4b07ebbe1372edd2dfe4ca8e50c0d78ddeae1f131a3d99'}], 'merkleRootMNList': 'fb10c3cd373890d389110ea65473c9bebb7c0f5371474a992bd0b5fa0e7acbe1', 'merkleRootQuorums': 'b83ed4dd9a5f4bfd39d920ff4a123d292528b137a3a0fa71c97deeac3d995045', 'quorumsCLSigs': []}, 'mnListDiffH': {'nVersion': 1, 'baseBlockHash': '000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e', 'blockHash': '07a540b8771f23ff922ed652687f866e5efc27b94a6d922aec68d91225127939', 'cbTxMerkleTree': '0600000004ddafdc2768a33ace8cb6984492f3e8290b7e87a53eeea1a7d2574607edde4c269e1a578d8b4639335e0571893e738378ac9d97e6b5f607e730942eeadb4e378b1da3ab94d9851954b265a5f94ebe7d837ef36d555a6d7dbbb0754c53920e84022b3c986ce641cb943e56a63c085f9988c01b38fc1b5b90f76dd3345bcf0d0693010f', 'cbTx': '03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff050248040101ffffffff03aa8b4e1e030000001976a9148708dff2bf8b31363cb4201d179b4714aa7b54a088acec36570e030000001976a914f4f68699fb7649bdfa3fb8fe578000d213917a8488acb654f70f000000001976a914eb747196393894238cb18ebd758b97c3529fae7288ac0000000046020048040000e1cb7a0efab5d02b994a4771530f7cbbbec97354a60e1189d3903837cdc310fba3bb79ae14a2179a5debbdc1dd4497b993f5162ba779a16fc0fc57d593f71fa0', 'deletedMNs': [], 'mnList': [{'nVersion': 1, 'nType': 0, 'proRegTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'confirmedHash': '4d6a402ef0eea8ccfb24199f1618708fc34e0461abdd4692b4c23bafbd4e3713', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'votingAddress': 'ybcNcsLwcyVQg7xYKhBfNdsJ349ZMebvS5', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'confirmedHash': '646f457335100a95018c2eb649113d1073455c962c522db363bb433968239e15', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'votingAddress': 'yerSqmXyuxUZrdt7XKPg34aGyyKzNuVUiw', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'confirmedHash': '0befc211c744b063cca4e02277a0f60728b42c27ace99ff9724afec226bbfd0e', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'votingAddress': 'yi923TRM2dQLTA9S2zDWtFtrxrm97qZn3t', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'confirmedHash': '15fe17827cb7815a0e5751be60a54d7e7f37ee17f2bdf8894665ab2a88ebbf3e', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'votingAddress': 'yQ4EppPanEhNtnrLv9PnmuYu7FeBnBCANj', 'isValid': True}], 'deletedQuorums': [], 'newQuorums': [{'version': 3, 'llmqType': 100, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'af5b4e78031a9e331a268815e34006e459be897cc6e127b166a6f5ab6673db82bfd42bc58939177fe643fba89d74a0b6', 'quorumVvecHash': 'a861a37614e2104197931ac07d39c91a2cc4a1ae69a8029c94ebbfe19d2cb926', 'quorumSig': '911808c92a4bc2619ac26551f9e8060fa1a9b29e34f10f6707a608c10fd6658eea706f0fbcbbdee0866076d5bb05d7430c4267c97c051d274202230fc54cc625511542ad6d85e93a23f55b92d0b50439b0cf1ff0734849f253e42f9cd3ea7e9f', 'membersSig': '94e8ac60c25554bb16d8707c61c40c2cef15a0eee283e962875ef85eb5a3760de0a4196ef1c02c5f5df08cea0e644b4f13c4529a6f826230a088800db7f34a2feab70959e5932690b6d8ad5276a7eca2fe4bb79abf0618bc0bab30800714eab8'}, {'version': 3, 'llmqType': 102, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': 'af1ad4c55ab202ab037ebc926692e46236c1ece38a7f54fb14149ce26d14a4adb91f6786d6c37a560a8a82390541af57', 'quorumVvecHash': 'b723ccd68828dbea11ac1ab7951db69ad9682b1bc1d9e9388fa8d7078dd4c18d', 'quorumSig': '8a96a6b8acce6ad81f5f7e643e31e00f6e7407220c9e1764655940ca13ee7432add78b858eac6629d29966b97d294716061f2a6f107cf8131321da26ca718f771a41a912763bd74f4c7cf5859a02a7fe536a93223b58d691484f73e804184862', 'membersSig': 'b073fef22c18faf0ed70e3c5681419f850eac1059c3417fc126275468b6477d06287bf7cdc710c128314ec19a6a5f0961266c6ada6e84466437ec3a966c45aa31709d7af3d8b6edb196e50386d9c501ae5e247b6b850060f324c8c7031a62b90'}, {'version': 4, 'llmqType': 103, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'b877734e0ed98cb7f4baf8fc8539d456eebdd64036c64987690da226ce68207b38669a8a0d91b764235bde95bc41ab16', 'quorumVvecHash': '5f1c8afcd752bfe5befa0e8a244abcdc425ed7f32f51e9711c337aab540b5dd9', 'quorumSig': 'a36e754b87a834f1ca812eb090677029e8e91a2e4e5abbef1c6fcc8762fb74532aec1a9fd106fad64357345cc2817be0056208b0669836f65fb4e875858df025707c64d933afbf8410a2f946cc2428b6ad7465e5e6a03f860856fde1b8839e2e', 'membersSig': '883188df63b21a4dc82a4f9403effd74819d9fcf1620e3ca8bb8d1666f8be65ff3c732f7c6b6f80014c611adb891fd2614a69c9ef9eba8105c90c1c6ae0e3f69dc1529e1834dbb5c44e36e7feff4b927954393c80891e3251f302f322ddec152'}, {'version': 4, 'llmqType': 103, 'quorumHash': '297c60280af8be06a9188b7c5292bd99fee26f98338759f2464fccc70111e18b', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9285d97ba5cb48c750f271cc03e1435fe33218760932f6480e6616816f3192d08352179a588609d03f3202e23d327a2c', 'quorumVvecHash': '5bf005cd26d533c89fe164a1f36bad1cb2ac91dc58dbdc478c2fd423711a3882', 'quorumSig': '84a1616edc76a39a0b299ffd5e1a5b35ca8a2a059bf983c3e63116b177c6e9e3e021342faac70a73f6ecaef81e141d8f0a2f711433acd1d9c4725a58f4ffcce12e5085dd3476b41b38dd3f9e1779938f0acd9f33f1c758397c9629f0b7f1d6b5', 'membersSig': 'a493232862a3c89eaea55418d66cf2b943b6ed38fda0193901e06de1258d12da09c028bdf6e87cdd6d20af14bd70c577076042815407cd5e371e4b7bc89a0457659325e085c2bafe57856a86cc6e38431f2f08116762e4ecb82af02e28b0cfad'}], 'merkleRootMNList': 'fb10c3cd373890d389110ea65473c9bebb7c0f5371474a992bd0b5fa0e7acbe1', 'merkleRootQuorums': 'a01ff793d557fcc06fa179a72b16f593b99744ddc1bdeb5d9a17a214ae79bba3', 'quorumsCLSigs': []}, 'mnListDiffAtHMinusC': {'nVersion': 1, 'baseBlockHash': '000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e', 'blockHash': '12c7009f07b53d874420231f8f2ec5288ae5cbf51cb6476dfdd5c36fd4cbbad0', 'cbTxMerkleTree': '06000000045fa16425880430a42bef8a38474acfa2094b86a1d2bec4c8b9641997b2c39a618a2f871ab75360c9175095ef3e628b9f6d38cbfe4f4092466a280bbf4c27c1fdbef343683f1251082048bafa1b393dd61d915316cbb89fbee2c0824c144c9a94b2d012772005631a1b84112cfd307e31a02518f4a1e42967cd12c9480eafc4fb010f', 'cbTx': '03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff050230040101ffffffff03aa8b4e1e030000001976a9148708dff2bf8b31363cb4201d179b4714aa7b54a088acec36570e030000001976a914f4f68699fb7649bdfa3fb8fe578000d213917a8488acb654f70f000000001976a914eb747196393894238cb18ebd758b97c3529fae7288ac0000000046020030040000e1cb7a0efab5d02b994a4771530f7cbbbec97354a60e1189d3903837cdc310fba3bb79ae14a2179a5debbdc1dd4497b993f5162ba779a16fc0fc57d593f71fa0', 'deletedMNs': [], 'mnList': [{'nVersion': 1, 'nType': 0, 'proRegTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'confirmedHash': '4d6a402ef0eea8ccfb24199f1618708fc34e0461abdd4692b4c23bafbd4e3713', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'votingAddress': 'ybcNcsLwcyVQg7xYKhBfNdsJ349ZMebvS5', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'confirmedHash': '646f457335100a95018c2eb649113d1073455c962c522db363bb433968239e15', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'votingAddress': 'yerSqmXyuxUZrdt7XKPg34aGyyKzNuVUiw', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'confirmedHash': '0befc211c744b063cca4e02277a0f60728b42c27ace99ff9724afec226bbfd0e', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'votingAddress': 'yi923TRM2dQLTA9S2zDWtFtrxrm97qZn3t', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'confirmedHash': '15fe17827cb7815a0e5751be60a54d7e7f37ee17f2bdf8894665ab2a88ebbf3e', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'votingAddress': 'yQ4EppPanEhNtnrLv9PnmuYu7FeBnBCANj', 'isValid': True}], 'deletedQuorums': [], 'newQuorums': [{'version': 3, 'llmqType': 100, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'af5b4e78031a9e331a268815e34006e459be897cc6e127b166a6f5ab6673db82bfd42bc58939177fe643fba89d74a0b6', 'quorumVvecHash': 'a861a37614e2104197931ac07d39c91a2cc4a1ae69a8029c94ebbfe19d2cb926', 'quorumSig': '911808c92a4bc2619ac26551f9e8060fa1a9b29e34f10f6707a608c10fd6658eea706f0fbcbbdee0866076d5bb05d7430c4267c97c051d274202230fc54cc625511542ad6d85e93a23f55b92d0b50439b0cf1ff0734849f253e42f9cd3ea7e9f', 'membersSig': '94e8ac60c25554bb16d8707c61c40c2cef15a0eee283e962875ef85eb5a3760de0a4196ef1c02c5f5df08cea0e644b4f13c4529a6f826230a088800db7f34a2feab70959e5932690b6d8ad5276a7eca2fe4bb79abf0618bc0bab30800714eab8'}, {'version': 3, 'llmqType': 102, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': 'af1ad4c55ab202ab037ebc926692e46236c1ece38a7f54fb14149ce26d14a4adb91f6786d6c37a560a8a82390541af57', 'quorumVvecHash': 'b723ccd68828dbea11ac1ab7951db69ad9682b1bc1d9e9388fa8d7078dd4c18d', 'quorumSig': '8a96a6b8acce6ad81f5f7e643e31e00f6e7407220c9e1764655940ca13ee7432add78b858eac6629d29966b97d294716061f2a6f107cf8131321da26ca718f771a41a912763bd74f4c7cf5859a02a7fe536a93223b58d691484f73e804184862', 'membersSig': 'b073fef22c18faf0ed70e3c5681419f850eac1059c3417fc126275468b6477d06287bf7cdc710c128314ec19a6a5f0961266c6ada6e84466437ec3a966c45aa31709d7af3d8b6edb196e50386d9c501ae5e247b6b850060f324c8c7031a62b90'}, {'version': 4, 'llmqType': 103, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'b877734e0ed98cb7f4baf8fc8539d456eebdd64036c64987690da226ce68207b38669a8a0d91b764235bde95bc41ab16', 'quorumVvecHash': '5f1c8afcd752bfe5befa0e8a244abcdc425ed7f32f51e9711c337aab540b5dd9', 'quorumSig': 'a36e754b87a834f1ca812eb090677029e8e91a2e4e5abbef1c6fcc8762fb74532aec1a9fd106fad64357345cc2817be0056208b0669836f65fb4e875858df025707c64d933afbf8410a2f946cc2428b6ad7465e5e6a03f860856fde1b8839e2e', 'membersSig': '883188df63b21a4dc82a4f9403effd74819d9fcf1620e3ca8bb8d1666f8be65ff3c732f7c6b6f80014c611adb891fd2614a69c9ef9eba8105c90c1c6ae0e3f69dc1529e1834dbb5c44e36e7feff4b927954393c80891e3251f302f322ddec152'}, {'version': 4, 'llmqType': 103, 'quorumHash': '297c60280af8be06a9188b7c5292bd99fee26f98338759f2464fccc70111e18b', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9285d97ba5cb48c750f271cc03e1435fe33218760932f6480e6616816f3192d08352179a588609d03f3202e23d327a2c', 'quorumVvecHash': '5bf005cd26d533c89fe164a1f36bad1cb2ac91dc58dbdc478c2fd423711a3882', 'quorumSig': '84a1616edc76a39a0b299ffd5e1a5b35ca8a2a059bf983c3e63116b177c6e9e3e021342faac70a73f6ecaef81e141d8f0a2f711433acd1d9c4725a58f4ffcce12e5085dd3476b41b38dd3f9e1779938f0acd9f33f1c758397c9629f0b7f1d6b5', 'membersSig': 'a493232862a3c89eaea55418d66cf2b943b6ed38fda0193901e06de1258d12da09c028bdf6e87cdd6d20af14bd70c577076042815407cd5e371e4b7bc89a0457659325e085c2bafe57856a86cc6e38431f2f08116762e4ecb82af02e28b0cfad'}], 'merkleRootMNList': 'fb10c3cd373890d389110ea65473c9bebb7c0f5371474a992bd0b5fa0e7acbe1', 'merkleRootQuorums': 'a01ff793d557fcc06fa179a72b16f593b99744ddc1bdeb5d9a17a214ae79bba3', 'quorumsCLSigs': []}, 'mnListDiffAtHMinus2C': {'nVersion': 1, 'baseBlockHash': '000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e', 'blockHash': '42fcbde4cc4dcf7099d0eccb217724e67cd188c7cbd881ab1c98fedfb976b572', 'cbTxMerkleTree': '060000000400177b12c13e03602a6cccb93fa168d936aa9e2b5bfc31745123d9dbd20a3b807d7d6c62591b7eb9302cc2c0a0f6188b4f051da48469dbef7835a4bd1ac7af112bc47a257531df3f48ba843e121888c9918e9598e76a1439e65d2ddf3ac7e1969903ece25a1b5678d0ca9c9771cf43063d349042f6527927f3645c2b5bc32d17010f', 'cbTx': '03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff050218040101ffffffff038d0cb75b030000001976a9148708dff2bf8b31363cb4201d179b4714aa7b54a088acd94e854a030000001976a914f4f68699fb7649bdfa3fb8fe578000d213917a8488acb0bd3111000000001976a914eb747196393894238cb18ebd758b97c3529fae7288ac0000000046020018040000e1cb7a0efab5d02b994a4771530f7cbbbec97354a60e1189d3903837cdc310fba3bb79ae14a2179a5debbdc1dd4497b993f5162ba779a16fc0fc57d593f71fa0', 'deletedMNs': [], 'mnList': [{'nVersion': 1, 'nType': 0, 'proRegTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'confirmedHash': '4d6a402ef0eea8ccfb24199f1618708fc34e0461abdd4692b4c23bafbd4e3713', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'votingAddress': 'ybcNcsLwcyVQg7xYKhBfNdsJ349ZMebvS5', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'confirmedHash': '646f457335100a95018c2eb649113d1073455c962c522db363bb433968239e15', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'votingAddress': 'yerSqmXyuxUZrdt7XKPg34aGyyKzNuVUiw', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'confirmedHash': '0befc211c744b063cca4e02277a0f60728b42c27ace99ff9724afec226bbfd0e', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'votingAddress': 'yi923TRM2dQLTA9S2zDWtFtrxrm97qZn3t', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'confirmedHash': '15fe17827cb7815a0e5751be60a54d7e7f37ee17f2bdf8894665ab2a88ebbf3e', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'votingAddress': 'yQ4EppPanEhNtnrLv9PnmuYu7FeBnBCANj', 'isValid': True}], 'deletedQuorums': [], 'newQuorums': [{'version': 3, 'llmqType': 100, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'af5b4e78031a9e331a268815e34006e459be897cc6e127b166a6f5ab6673db82bfd42bc58939177fe643fba89d74a0b6', 'quorumVvecHash': 'a861a37614e2104197931ac07d39c91a2cc4a1ae69a8029c94ebbfe19d2cb926', 'quorumSig': '911808c92a4bc2619ac26551f9e8060fa1a9b29e34f10f6707a608c10fd6658eea706f0fbcbbdee0866076d5bb05d7430c4267c97c051d274202230fc54cc625511542ad6d85e93a23f55b92d0b50439b0cf1ff0734849f253e42f9cd3ea7e9f', 'membersSig': '94e8ac60c25554bb16d8707c61c40c2cef15a0eee283e962875ef85eb5a3760de0a4196ef1c02c5f5df08cea0e644b4f13c4529a6f826230a088800db7f34a2feab70959e5932690b6d8ad5276a7eca2fe4bb79abf0618bc0bab30800714eab8'}, {'version': 3, 'llmqType': 102, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': 'af1ad4c55ab202ab037ebc926692e46236c1ece38a7f54fb14149ce26d14a4adb91f6786d6c37a560a8a82390541af57', 'quorumVvecHash': 'b723ccd68828dbea11ac1ab7951db69ad9682b1bc1d9e9388fa8d7078dd4c18d', 'quorumSig': '8a96a6b8acce6ad81f5f7e643e31e00f6e7407220c9e1764655940ca13ee7432add78b858eac6629d29966b97d294716061f2a6f107cf8131321da26ca718f771a41a912763bd74f4c7cf5859a02a7fe536a93223b58d691484f73e804184862', 'membersSig': 'b073fef22c18faf0ed70e3c5681419f850eac1059c3417fc126275468b6477d06287bf7cdc710c128314ec19a6a5f0961266c6ada6e84466437ec3a966c45aa31709d7af3d8b6edb196e50386d9c501ae5e247b6b850060f324c8c7031a62b90'}, {'version': 4, 'llmqType': 103, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'b877734e0ed98cb7f4baf8fc8539d456eebdd64036c64987690da226ce68207b38669a8a0d91b764235bde95bc41ab16', 'quorumVvecHash': '5f1c8afcd752bfe5befa0e8a244abcdc425ed7f32f51e9711c337aab540b5dd9', 'quorumSig': 'a36e754b87a834f1ca812eb090677029e8e91a2e4e5abbef1c6fcc8762fb74532aec1a9fd106fad64357345cc2817be0056208b0669836f65fb4e875858df025707c64d933afbf8410a2f946cc2428b6ad7465e5e6a03f860856fde1b8839e2e', 'membersSig': '883188df63b21a4dc82a4f9403effd74819d9fcf1620e3ca8bb8d1666f8be65ff3c732f7c6b6f80014c611adb891fd2614a69c9ef9eba8105c90c1c6ae0e3f69dc1529e1834dbb5c44e36e7feff4b927954393c80891e3251f302f322ddec152'}, {'version': 4, 'llmqType': 103, 'quorumHash': '297c60280af8be06a9188b7c5292bd99fee26f98338759f2464fccc70111e18b', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9285d97ba5cb48c750f271cc03e1435fe33218760932f6480e6616816f3192d08352179a588609d03f3202e23d327a2c', 'quorumVvecHash': '5bf005cd26d533c89fe164a1f36bad1cb2ac91dc58dbdc478c2fd423711a3882', 'quorumSig': '84a1616edc76a39a0b299ffd5e1a5b35ca8a2a059bf983c3e63116b177c6e9e3e021342faac70a73f6ecaef81e141d8f0a2f711433acd1d9c4725a58f4ffcce12e5085dd3476b41b38dd3f9e1779938f0acd9f33f1c758397c9629f0b7f1d6b5', 'membersSig': 'a493232862a3c89eaea55418d66cf2b943b6ed38fda0193901e06de1258d12da09c028bdf6e87cdd6d20af14bd70c577076042815407cd5e371e4b7bc89a0457659325e085c2bafe57856a86cc6e38431f2f08116762e4ecb82af02e28b0cfad'}], 'merkleRootMNList': 'fb10c3cd373890d389110ea65473c9bebb7c0f5371474a992bd0b5fa0e7acbe1', 'merkleRootQuorums': 'a01ff793d557fcc06fa179a72b16f593b99744ddc1bdeb5d9a17a214ae79bba3', 'quorumsCLSigs': []}, 'mnListDiffAtHMinus3C': {'nVersion': 1, 'baseBlockHash': '000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e', 'blockHash': '4d3be11188ed1bb0ab7049b68dd5907106cc72f092f8f1d20b32b99c80012a10', 'cbTxMerkleTree': '06000000043efffa4312a68d2ecca7513b85ac9a06f6c57be827d791f356af2f657ff55c6042d1895271a7baa9b7705201a35351e7411a3b738788a4545aee28995f47b2d53d7a9ff92fe3843e0d22dcf5fdca7b9e8609b046981468f58c636a0d69e7e697181d8915e0fe965c3ce9f1c833ceac88f86f8d7a22e9f4b5987f8b154b4b270a010f', 'cbTx': '03000500010000000000000000000000000000000000000000000000000000000000000000ffffffff050200040101ffffffff038d0cb75b030000001976a9148708dff2bf8b31363cb4201d179b4714aa7b54a088acd94e854a030000001976a914f4f68699fb7649bdfa3fb8fe578000d213917a8488acb0bd3111000000001976a914eb747196393894238cb18ebd758b97c3529fae7288ac0000000046020000040000e1cb7a0efab5d02b994a4771530f7cbbbec97354a60e1189d3903837cdc310fba3bb79ae14a2179a5debbdc1dd4497b993f5162ba779a16fc0fc57d593f71fa0', 'deletedMNs': [], 'mnList': [{'nVersion': 1, 'nType': 0, 'proRegTxHash': 'b1ff91bb4247d4883c988d40c9f847b422f20a011ae681ad0852368f3e31d266', 'confirmedHash': '4d6a402ef0eea8ccfb24199f1618708fc34e0461abdd4692b4c23bafbd4e3713', 'service': '127.0.0.1:14125', 'pubKeyOperator': '93ec5f0eee5bfc0a24b7c95c088a60d3765b288bf975888765cd049d21c62215a558af147678162e9f5401cc44d9ed9c', 'votingAddress': 'ybcNcsLwcyVQg7xYKhBfNdsJ349ZMebvS5', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '9c0a7c8a579ab8a3feab270b870a56fa06732a66246da291543ee93d781f5828', 'confirmedHash': '646f457335100a95018c2eb649113d1073455c962c522db363bb433968239e15', 'service': '127.0.0.1:14124', 'pubKeyOperator': '12dae6139d97b43b44b6d6017ee1bfc9c37337d9987d08c0308dca421ba5c2074341b59a9b35a91935e5a8ac83953335', 'votingAddress': 'yerSqmXyuxUZrdt7XKPg34aGyyKzNuVUiw', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': 'cef65784031e9f1e30887474375ea1086088839d012450da1fc030e413bf330a', 'confirmedHash': '0befc211c744b063cca4e02277a0f60728b42c27ace99ff9724afec226bbfd0e', 'service': '127.0.0.1:14123', 'pubKeyOperator': '074729dd7f8ea073f4694550de8c6c5e258c742f6e300067646bedc09c66e53256bc7b40ae835f6fdcc5b5c420aa925a', 'votingAddress': 'yi923TRM2dQLTA9S2zDWtFtrxrm97qZn3t', 'isValid': True}, {'nVersion': 1, 'nType': 0, 'proRegTxHash': '01a1dd6d7de668d3d2e8d225ded648d713c405e98d2b155e294cf2e8d8279a13', 'confirmedHash': '15fe17827cb7815a0e5751be60a54d7e7f37ee17f2bdf8894665ab2a88ebbf3e', 'service': '127.0.0.1:14126', 'pubKeyOperator': '05ec4b528a5bdbdd353e4687f9187caf0399a713590bae6ebff8fc44af3dffeb953c378bd91b7416484ee55d99602498', 'votingAddress': 'yQ4EppPanEhNtnrLv9PnmuYu7FeBnBCANj', 'isValid': True}], 'deletedQuorums': [], 'newQuorums': [{'version': 3, 'llmqType': 100, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'af5b4e78031a9e331a268815e34006e459be897cc6e127b166a6f5ab6673db82bfd42bc58939177fe643fba89d74a0b6', 'quorumVvecHash': 'a861a37614e2104197931ac07d39c91a2cc4a1ae69a8029c94ebbfe19d2cb926', 'quorumSig': '911808c92a4bc2619ac26551f9e8060fa1a9b29e34f10f6707a608c10fd6658eea706f0fbcbbdee0866076d5bb05d7430c4267c97c051d274202230fc54cc625511542ad6d85e93a23f55b92d0b50439b0cf1ff0734849f253e42f9cd3ea7e9f', 'membersSig': '94e8ac60c25554bb16d8707c61c40c2cef15a0eee283e962875ef85eb5a3760de0a4196ef1c02c5f5df08cea0e644b4f13c4529a6f826230a088800db7f34a2feab70959e5932690b6d8ad5276a7eca2fe4bb79abf0618bc0bab30800714eab8'}, {'version': 3, 'llmqType': 102, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 3, 'signers': '07', 'validMembersCount': 3, 'validMembers': '07', 'quorumPublicKey': 'af1ad4c55ab202ab037ebc926692e46236c1ece38a7f54fb14149ce26d14a4adb91f6786d6c37a560a8a82390541af57', 'quorumVvecHash': 'b723ccd68828dbea11ac1ab7951db69ad9682b1bc1d9e9388fa8d7078dd4c18d', 'quorumSig': '8a96a6b8acce6ad81f5f7e643e31e00f6e7407220c9e1764655940ca13ee7432add78b858eac6629d29966b97d294716061f2a6f107cf8131321da26ca718f771a41a912763bd74f4c7cf5859a02a7fe536a93223b58d691484f73e804184862', 'membersSig': 'b073fef22c18faf0ed70e3c5681419f850eac1059c3417fc126275468b6477d06287bf7cdc710c128314ec19a6a5f0961266c6ada6e84466437ec3a966c45aa31709d7af3d8b6edb196e50386d9c501ae5e247b6b850060f324c8c7031a62b90'}, {'version': 4, 'llmqType': 103, 'quorumHash': '7efe443cd3f6c0faa09cc0faa5f9f09af1f17a27751d529bfb3f83b695965676', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': 'b877734e0ed98cb7f4baf8fc8539d456eebdd64036c64987690da226ce68207b38669a8a0d91b764235bde95bc41ab16', 'quorumVvecHash': '5f1c8afcd752bfe5befa0e8a244abcdc425ed7f32f51e9711c337aab540b5dd9', 'quorumSig': 'a36e754b87a834f1ca812eb090677029e8e91a2e4e5abbef1c6fcc8762fb74532aec1a9fd106fad64357345cc2817be0056208b0669836f65fb4e875858df025707c64d933afbf8410a2f946cc2428b6ad7465e5e6a03f860856fde1b8839e2e', 'membersSig': '883188df63b21a4dc82a4f9403effd74819d9fcf1620e3ca8bb8d1666f8be65ff3c732f7c6b6f80014c611adb891fd2614a69c9ef9eba8105c90c1c6ae0e3f69dc1529e1834dbb5c44e36e7feff4b927954393c80891e3251f302f322ddec152'}, {'version': 4, 'llmqType': 103, 'quorumHash': '297c60280af8be06a9188b7c5292bd99fee26f98338759f2464fccc70111e18b', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9285d97ba5cb48c750f271cc03e1435fe33218760932f6480e6616816f3192d08352179a588609d03f3202e23d327a2c', 'quorumVvecHash': '5bf005cd26d533c89fe164a1f36bad1cb2ac91dc58dbdc478c2fd423711a3882', 'quorumSig': '84a1616edc76a39a0b299ffd5e1a5b35ca8a2a059bf983c3e63116b177c6e9e3e021342faac70a73f6ecaef81e141d8f0a2f711433acd1d9c4725a58f4ffcce12e5085dd3476b41b38dd3f9e1779938f0acd9f33f1c758397c9629f0b7f1d6b5', 'membersSig': 'a493232862a3c89eaea55418d66cf2b943b6ed38fda0193901e06de1258d12da09c028bdf6e87cdd6d20af14bd70c577076042815407cd5e371e4b7bc89a0457659325e085c2bafe57856a86cc6e38431f2f08116762e4ecb82af02e28b0cfad'}], 'merkleRootMNList': 'fb10c3cd373890d389110ea65473c9bebb7c0f5371474a992bd0b5fa0e7acbe1', 'merkleRootQuorums': 'a01ff793d557fcc06fa179a72b16f593b99744ddc1bdeb5d9a17a214ae79bba3', 'quorumsCLSigs': []}, 'lastCommitmentPerIndex': [{'version': 4, 'llmqType': 103, 'quorumHash': '0a0edca11eb8f6c3716c396ef96d31a175dc7cb9f1fbc66334d720774989aedf', 'quorumIndex': 0, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '9731adc67399062095a817c369c977ceedc5f0e8597d72b6d70a4ba1a4a496cf780d0d62e3f038f129998b8a323d20c4', 'quorumVvecHash': '90ab3d4a2ffa7d6eb801032b679efef9974f2f9979c7c2cb3e8ef9b33cbee6f2', 'quorumSig': '906c32ecc9ef25466ce3f2970e9c95fc6f896866ccb45b2a140fccca15d1a3c8801c1b7a6e8de365e211ef87f69b361416d09f03d6f0779aa211aefc7658b3b2a45d990a24577956ff7fdc2307d0a943ff9945bf5fe2ef29ff8cfd42ee4e29ee', 'membersSig': 'af1aebef49703fae9144cee3543b8d79bdd191371b80bfff70d59479c1a1cbe3fb496572abc2bf58c63dce84ecb0409e07c605b1f207d34385eda8bca3277ea21e8408b4081d917eda4b07ebbe1372edd2dfe4ca8e50c0d78ddeae1f131a3d99'}, {'version': 4, 'llmqType': 103, 'quorumHash': '6ea7ea40198c86f773933c1fa086ea054f1b3bc3efa1b78d64a578f6019f9831', 'quorumIndex': 1, 'signersCount': 4, 'signers': '0f', 'validMembersCount': 4, 'validMembers': '0f', 'quorumPublicKey': '98e0e6f79d1697f88867bb7c4f7ef5f07dd39e34daf206f9865179dd1e63ec7d24b20592b664cc86e9278e3613db856d', 'quorumVvecHash': '167be83587b1d056d0767ae711ad3cfe991ce99eb3729466c40d8a68ef5808e2', 'quorumSig': '99ba923647e8fa942cf929969be2c498853236e114cd52805529e43c778c9b6413e6bbc5e3871ee3fff4895f302eff900f0d8f773f36ed739308fdc3a157d0c5fd2caca4a8bf4fb50385489de5cf2e45b2dd5ae4fa64635ae12edcf4038c5ca5', 'membersSig': 'b4a1cc904b7570c448713e0912d77dd550a143d775fbb97750f3d675661af7bb37c11b7ca39650d7ca041bc2b241a7830f39880987834e7a0c160de9d156c2a2cba6773c14985a00521c362750ee7ea27bf0c77ce9abc056aecbd9747dd223f7'}], 'quorumSnapshotList': [], 'mnListDiffList': []}
  2024-03-21T12:26:35.093000Z TestFramework (INFO): Testing 5 InstantSend publishers
  2024-03-21T12:26:42.353000Z TestFramework (INFO): Stopping nodes
  2024-03-21T12:26:43.360000Z TestFramework (INFO): Cleaning up /tmp/dash_func_test__2tlpe0x on exit
  2024-03-21T12:26:43.360000Z TestFramework (INFO): Tests successful
  ```

  </details>

  ## Breaking Changes

  None. Fixes crash.

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

Top commit has no ACKs.

Tree-SHA512: f94799aeb091dc85a36599f231df5cd00784172320750e2e23dd1c29ce22539340d39c66f7ced9d7a935e73b5db38666e9b800220ed7071a664c5b01b0bc2be1
2024-03-21 13:41:57 -05:00
Kittywhiskers Van Gogh
419a8af274
fix: revert "drop circular dependencies over deterministicmns in validationinterface"
This reverts commit fa6847d2fb.
2024-03-21 12:24:38 +00:00
pasta
a7e61114f8
Merge #5933: refactor: reduce CDeterministicMNManager globals use
fa6847d2fb refactor: drop circular dependencies over deterministicmns in validationinterface (Konstantin Akimov)
f8d1853903 refactor: even more passing CDeterministicMNManager by ref (Kittywhiskers Van Gogh)
d4aa891735 refactor: more passing CDeterministicMNManager by ref (Kittywhiskers Van Gogh)
e628d7517a refactor: pass CDeterministicMNManager by ref to CJContext members (Kittywhiskers Van Gogh)
d731f4127e refactor: pass CDeterministicMNManager by ref to LLMQContext members (Kittywhiskers Van Gogh)
6bd23f40aa refactor: pass CDeterministicMNManager by ref to CGovernanceManager (Kittywhiskers Van Gogh)
055dbba1fa refactor: move GetListAtChainTip() calls out of llmq::utils::*, misc changes (Kittywhiskers Van Gogh)
da39b73f01 refactor: move GetListAtChainTip() calls out of CGovernanceVote (Kittywhiskers Van Gogh)
e9de972982 refactor: move GetListAtChainTip() calls out of CGovernanceObject (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/5929

  ## Breaking Changes

  None. Changes are limited to refactoring, no logical changes have been made.

  ## Checklist:

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

ACKs for top commit:
  PastaPastaPasta:
    (self) utACK fa6847d2fb
  knst:
    utACK fa6847d2fb

Tree-SHA512: f1acf44bad25789d03c48788a3ac1807d7c553ee45164276ffa6f0dc39dc02e5d29d364469633aa84b341e8c4c13508e0e7a114de6e01fb624f256acfd97199b
2024-03-20 12:45:06 -05:00
Konstantin Akimov
fa6847d2fb
refactor: drop circular dependencies over deterministicmns in validationinterface 2024-03-20 12:37:03 -05:00
pasta
b8fdf67887
Merge #5944: backport: merge bitcoin#20864 (Move SocketSendData lock annotation to header)
140e91fdca merge bitcoin#20864: Move SocketSendData lock annotation to header (Kittywhiskers Van Gogh)
e432122cbd net: Move CConnman/NetEventsInterface after CNode in header file (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  Broken off from upcoming backport PR relating to networking due to primarily move-only large diff.

  Review large-diff commit using `git diff develop..e432122cbd1cc9bec45cc01c3eb4194a05af1d0e --color-moved=dimmed-zebra --patience` ([source](fa0a71781a))

  ## Breaking Changes

  None. Changes are primarily move-only with minor changes.

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

ACKs for top commit:
  PastaPastaPasta:
    utACK 140e91fdca

Tree-SHA512: f2a42532819085aa8d0908b7b102f8d777681d247cd5cecf7f46f71435df2408f39fddd52382ed55ccee686a185092b0dd7f5029b2610be56d3a57b309466238
2024-03-20 09:06:47 -05:00
Kittywhiskers Van Gogh
140e91fdca
merge bitcoin#20864: Move SocketSendData lock annotation to header
includes:
- fa210689e27b0d78b2fe894e51e364179db7a3ce
2024-03-20 07:21:16 +00:00
Kittywhiskers Van Gogh
e432122cbd
net: Move CConnman/NetEventsInterface after CNode in header file 2024-03-19 18:54:38 +00:00
Kittywhiskers Van Gogh
f8d1853903
refactor: even more passing CDeterministicMNManager by ref 2024-03-19 15:21:01 +00:00
Kittywhiskers Van Gogh
d4aa891735
refactor: more passing CDeterministicMNManager by ref 2024-03-19 15:21:00 +00:00
Kittywhiskers Van Gogh
e628d7517a
refactor: pass CDeterministicMNManager by ref to CJContext members 2024-03-19 15:21:00 +00:00
Kittywhiskers Van Gogh
d731f4127e
refactor: pass CDeterministicMNManager by ref to LLMQContext members 2024-03-19 15:21:00 +00:00
Kittywhiskers Van Gogh
6bd23f40aa
refactor: pass CDeterministicMNManager by ref to CGovernanceManager 2024-03-19 15:20:59 +00:00
Kittywhiskers Van Gogh
055dbba1fa
refactor: move GetListAtChainTip() calls out of llmq::utils::*, misc changes 2024-03-19 15:20:59 +00:00
Kittywhiskers Van Gogh
da39b73f01
refactor: move GetListAtChainTip() calls out of CGovernanceVote 2024-03-19 15:20:59 +00:00