-
Notifications
You must be signed in to change notification settings - Fork 1.2k
fix!: use the same version along all protx special transactions #7302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
348a69d
9670e98
0097537
dbf0f1f
bcd24cd
f676023
5d1e1fe
4f764fa
bb5f1b0
c864cbe
19d35cc
cd64757
94c3f8d
cf0da49
9a522fe
de9461b
b6260a5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -101,7 +101,7 @@ class CDeterministicMNState | |
| obj.keyIDVoting, | ||
| NetInfoSerWrapper(const_cast<std::shared_ptr<NetInfoInterface>&>(obj.netInfo), | ||
| obj.nVersion >= ProTxVersion::ExtAddr)); | ||
| if (obj.nVersion >= ProTxVersion::MultiPayout) { | ||
| if (obj.nVersion >= ProTxVersion::ExtAddr) { | ||
| READWRITE(obj.payouts); | ||
|
Comment on lines
+104
to
105
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
For nodes that have already written deterministic MN snapshots containing v3 states with the previous encoding, this switch makes Useful? React with 👍 / 👎. |
||
| } else { | ||
| READWRITE(obj.scriptPayout); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because v3 states now take the
payoutsbranch, a basic v2 masternode upgraded by a post-v24ProUpServTxloses its owner payee: the service-update path inCSpecialTxProcessor::RebuildListFromBlockcan raisenVersionfrom 2 to 3 while only convertingnetInfo, and v2 states have an emptypayoutsvector because they serializedscriptPayout. After that,GetOwnerPayouts(state)returns an empty list, so masternode payment construction omits the owner payout (and callers that use.front()can fail) until a registrar update backfills it. Please migratescriptPayouttoLegacyPayoutAsListwhen any non-registrar version bump crossesExtAddr.Useful? React with 👍 / 👎.