fix(x/protocolpool)!: do not incur into extra writes if there are no continuous funds#21356
fix(x/protocolpool)!: do not incur into extra writes if there are no continuous funds#21356julienrbrt merged 3 commits intomainfrom
Conversation
|
Warning Rate limit exceeded@facundomedica has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 5 minutes and 55 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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 for further information. 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? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
|
@facundomedica your pull request is missing a changelog! |
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
Files selected for processing (1)
- x/protocolpool/keeper/keeper.go (1 hunks)
Additional context used
Path-based instructions (1)
x/protocolpool/keeper/keeper.go (1)
Pattern
**/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.
Learnings (1)
x/protocolpool/keeper/keeper.go (1)
Learnt from: likhita-809 PR: cosmos/cosmos-sdk#18471 File: x/protocolpool/keeper/keeper.go:263-307 Timestamp: 2023-11-22T12:32:53.928Z Learning: User likhita-809 has confirmed that the logic for checking the cap in the continuousDistribution function is correct as originally implemented.
Additional comments not posted (2)
x/protocolpool/keeper/keeper.go (2)
180-189: Efficient handling of continuous funds check.The introduction of
hasContinuousFundsand the use ofk.ContinuousFund.Walkto determine if there are any continuous funds is a good approach to avoid unnecessary operations. This efficiently checks for recipients before proceeding with fund distribution.
191-203: Streamlined fund handling when no continuous funds exist.The logic to send all funds to the community pool when no continuous funds are present is well-implemented. Resetting the last balance only when it's non-zero is a thoughtful optimization.
There was a problem hiding this comment.
Actionable comments posted: 0
Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
Files selected for processing (2)
- x/protocolpool/keeper/keeper.go (1 hunks)
- x/protocolpool/keeper/keeper_test.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- x/protocolpool/keeper/keeper.go
Additional context used
Path-based instructions (1)
x/protocolpool/keeper/keeper_test.go (2)
Pattern
**/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.
Pattern
**/*_test.go: "Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request"
Additional comments not posted (5)
x/protocolpool/keeper/keeper_test.go (5)
189-191: Test expectation for no continuous funds is correct.The test correctly verifies that all funds are directed to the community pool when there are no continuous funds. This aligns with the intended functionality described in the PR summary.
195-197: Correctly verifies thatLastBalanceis not set.The test ensures that
LastBalanceremains unset when there are no continuous funds, which is the expected behavior.
199-209: Setup for continuous fund is appropriate.The test correctly sets up a continuous fund to verify distribution behavior when such funds are present. This enhances the test coverage for the
SetToDistributemethod.
211-213: Re-testingSetToDistributewith continuous fund is essential.The test re-invokes
SetToDistributeafter setting up a continuous fund to validate the method's behavior. This is a necessary step for thorough testing.
Line range hint
215-219: Verification of state changes is accurate.The test correctly verifies that
LastBalanceand distribution are set when continuous funds are present, ensuring the method's correctness.
Description
Issue found by @julienrbrt . We can avoid writing to the Distributions map if there are no continuous funds, and we send the funds straight to the community pool.
Right now if there are no continuous funds, the Distribution map would grow indefinitely + when a new continuous fund is added, we'll have to go through them for no reason.
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...
!in the type prefix if API or client breaking changeCHANGELOG.mdReviewers 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.
Please see Pull Request Reviewer section in the contributing guide for more information on how to review a pull request.
I have...
Summary by CodeRabbit
New Features
Bug Fixes