-
Notifications
You must be signed in to change notification settings - Fork 22
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
Small fixes pre-audit #565
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cam-schultz
reviewed
Sep 20, 2024
geoff-vball
requested review from
iansuvak,
minghinmatthewlam,
bernard-avalabs,
michaelkaplan13 and
cam-schultz
September 20, 2024 19:57
contracts/validator-manager/interfaces/IPoSValidatorManager.sol
Outdated
Show resolved
Hide resolved
michaelkaplan13
approved these changes
Sep 20, 2024
iansuvak
approved these changes
Sep 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why this should be merged
Fixes a bug where the map for
nodeID
->ValidationID
was only populated once a validation period was active, and deleted when the validation period wasCompleted
orInvalidated
.Someone could have registered two validation periods with the same NodeID, if one came back as active first, and then the second came back as
invalid
, this would delete thenodeID
->ValidationID
entry in the map.I chose to add the NodeID to the map when the validator is registered, that way any NodeID can only ever be registered once at a time.
Separates some
requires
cases, and eliminates some checks that are not possible to hit.Renames
PoSValidatorRequirements
toPoSValidatorInfo
sinceowner
is not a requirement. We can also put the cached uptime into this struct in a future PR.For delegations, adds checks that the unpacked validation ID matches the delegator's validation ID.
Fixes the case where a Validator exits while a Delegator is
PendingAdded
. The Delegator's start time would be greater than it's end time, causing an underflow in the reward calculation, causing a revert in the completion step.Adds a new external method
endDelegationCompletedValidator
to account for the case where a validator has fully exited and the Delegator will not be able to get aSubnetValidatorWeightUpdateMessage
signed by the p-chain because the validator's state will have been removed.How this works
How this was tested
How is this documented