staking: change compute_unbonding_height
api
#4041
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.
This PR modifies the staking module logic responsible for determining the unbonding schedule, in particular it:
compute_unbonding_height
API to return anOption<u64>
to allow callers to detect an unbonded poolOne tricky aspect of our unbonding mechanism is that we want to:
One thing to note is that this mechanism works relative to the current bonding state of the pool. This is generally fine for the protocol security because this leads the application to "overshoot" the penalty window range since it cannot know the exact moment a note was allowed to unbond (since bonding the state could have changed). This means that when processing a claim, we detect if the pool is unbonded, and if so, we set the "allowed unbonding height" to the current height.