-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
fix(x/auth/vesting): Add BlockedAddr check in CreatePeriodicVestingAccount
#19480
Conversation
@julienrbrt your pull request is missing a changelog! |
WalkthroughWalkthroughThe recent update introduces a safeguard in the Changes
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 Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: .coderabbit.yml
Files selected for processing (2)
- x/auth/vesting/msg_server.go (1 hunks)
- x/auth/vesting/msg_server_test.go (4 hunks)
Additional comments: 6
x/auth/vesting/msg_server.go (2)
- 197-199: The implementation correctly checks if the recipient address is blocked by the
BankKeeper
before allowing the creation of aPeriodicVestingAccount
. This change aligns with the PR's objective to enhance security and compliance within the Cosmos SDK. The use oferrorsmod.Wrapf
to return a descriptive error message is appropriate and follows the Cosmos SDK's error handling conventions.- 194-203: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [1-436]
Overall, the changes made to the
msg_server.go
file are focused and directly address the PR's objectives without introducing any apparent side effects or deviations from the Cosmos SDK's coding standards. The rest of the file, including other account creation functions, remains consistent with the SDK's design principles, such as clear error handling, validation checks, and telemetry instrumentation.x/auth/vesting/msg_server_test.go (4)
- 139-153: The test case "create for blocked account" for
CreateVestingAccount
correctly verifies that an error is returned when attempting to create a vesting account for a blocked address. This test case is well-structured and effectively tests the new functionality. It's good to see that the expected error message is checked to ensure that the function behaves as intended when faced with a blocked address.- 253-267: The test case "create for blocked account" for
CreatePermanentLockedAccount
follows the same pattern as the previous test case and correctly asserts that creating a permanent locked account for a blocked address results in an error. This consistency in testing methodology across different account types is commendable and ensures comprehensive coverage of the new functionality.- 411-433: The test case "create for blocked address" for
CreatePeriodicVestingAccount
is particularly relevant to the PR's main objective. It effectively tests the new check by asserting that an attempt to create a periodic vesting account for a blocked address fails with the appropriate error message. This test case is crucial for validating the PR's changes and is implemented correctly.- 408-441: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [1-438]
Overall, the additions to the
msg_server_test.go
file provide sufficient test coverage for the changes associated with preventing blocked addresses from creating vesting accounts. The tests are well-organized, and the use of mock expectations for theBankKeeper
's behavior is appropriate for isolating the functionality being tested. These tests are an essential part of the PR, ensuring that the new security and compliance feature works as intended.
Description
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.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...
Summary by CodeRabbit
New Features
Tests