Fix SPDD for epoch 216/217 #513
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes SPDD differences in epoch 216,217 and through to 220.
Problem was that when an SPO retires its deposit refund needs to be paid to the reward account as it was most recently updated. However for rewards the reward account is captured from the state at the end of the previous epoch, before the previous epoch's pool updates are applied.
We therefore capture the reward account to pay to from the SPOState's live state, and pass it in the retired_pools part of the SPOState message so that AccountsState can use it to pay the refund.
The result of this is SPDD is good at least until 220, when there is a monetary divergence (rewards vs treasury).
Related Issue(s)
Fixes #493
How was this tested?
Run standard Omnibus and observe rewards and SPDD verifier logs:
Checklist
Impact / Side effects
No side effects other than other things that depend on SPDD will now work further into Shelley.
Reviewer notes / Areas to focus