Closed p-offtermatt closed 4 days ago
[!WARNING]
Rate limit exceeded
@p-offtermatt has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 7 minutes and 31 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.Commits
Files that changed from the base of the PR and between 5e30dd93fe0ce0a73760e229c34935c9b991b2e0 and 43aa65ad4a893e46d127d76f23a1e871ce96479c.
The latest updates enhance interchain security by managing and interacting with the provider consensus validator sets. Key changes include methods for setting, resetting, deleting, and retrieving validator sets and their powers. The refactoring also consolidates key retrieval logic, modifies how validators are manipulated, and simplifies validator set retrieval.
File(s) | Change Summary |
---|---|
x/.../keeper/provider_consensus.go |
Introduces methods to manage last provider consensus validator set: set, reset, delete, retrieve validators, and get total power. |
x/.../keeper/validator_set_storage.go |
Adds functionality for managing validator sets with operations to set, delete, check existence, and calculate total power. |
x/.../keeper/validator_set_update.go |
Refactors consumer validator handling, consolidating key retrieval logic, updating set/delete methods, and simplifying retrieval functions. |
x/.../types/keys.go |
Adds LastProviderConsensusValsPrefix constant and LastProviderConsensusValidatorKey function for managing last validator set keys. |
x/.../types/keys_test.go |
Adds new key prefix LastProviderConsensusValsPrefix to key prefixes' test list. |
sequenceDiagram
participant Client
participant Keeper
participant Store
Client->>Keeper: SetLastProviderConsensusValSet(nextValidators)
Keeper->>Store: Store Validator Set with LastProviderConsensusValsPrefix
Client->>Keeper: GetLastProviderConsensusValSet()
Keeper->>Store: Retrieve Validator Set with LastProviderConsensusValsPrefix
Store-->>Keeper: Return Validator Set
Keeper-->>Client: Return Validator Set
Client->>Keeper: DeleteLastProviderConsensusValSet()
Keeper->>Store: Delete Validator Set with LastProviderConsensusValsPrefix
Client->>Keeper: GetLastTotalProviderConsensusPower()
Keeper->>Store: Retrieve Validator Set with LastProviderConsensusValsPrefix
Store-->>Keeper: Return Validator Set
Keeper-->>Client: Calculate and Return Total Power
sequenceDiagram
participant Client
participant Keeper
participant Store
Client->>Keeper: setValidator(prefix, validator)
Keeper->>Store: Store Validator with specified prefix
Client->>Keeper: deleteValidator(prefix, providerConsAddr)
Keeper->>Store: Delete Validator with specified prefix
Client->>Keeper: getTotalPower(prefix)
Keeper->>Store: Retrieve Validators with specified prefix
Store-->>Keeper: Return Validators
Keeper-->>Client: Calculate and Return Total Power
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Failing CI checks are unrelated and also happen on the target branch afaict
LGTM! Just two small nits in the UTs.
Description
Closes: Part of #1913
Refactors the validator set storage. This is done to allow storing a separate validator set under its own individual key, namely the provider consensus validator set, without ever clashing with the storage for consumer chains here.
Changes:
The provider_consensus methods are not used yet, but will be in a future PR. I want to split the functionality and keep this PR small to keep it easy to review
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.
I have...
!
to the type prefix if the change is state-machine breakingCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.
I have...
!
the type prefix if the change is state-machine breakingSummary by CodeRabbit
New Features
Refactor