Closed bdeneux closed 1 month ago
The recent changes streamline limit checks and enhance documentation in the codebase. Notably, the params.proto
file clarifies the behavior of size limits, while the grpc_query_ask.go
file strengthens logic to prevent zero values for parameters. New utility functions and corresponding tests improve robustness and type safety. Overall, these updates aim to optimize query processing and error handling, ensuring clearer expectations for developers.
File | Change Summary |
---|---|
proto/logic/v1beta2/params.proto | Clarified comments for max_size and max_result_count to state both nil and zero values remove limitations. |
x/logic/keeper/grpc_query_ask.go | Modified checkLimits function to use NonZeroOrDefaultUInt , preventing zero values for maximum size and result count. |
x/logic/keeper/grpc_query_ask_test.go | Updated maxResultCount and maxSize types from int to uint64 . Added tests for zero values. Refined error messages for clarity. |
x/logic/util/pointer.go | Added NonZeroOrDefaultUInt function to handle pointers of sdkmath.Uint , returning default if nil or zero. Updated imports. |
x/logic/util/pointer_test.go | Introduced TestNonZeroOrDefaultUInt to validate new function behavior with various input scenarios. |
sequenceDiagram
participant Client
participant LimitChecker
participant QueryProcessor
Client->>LimitChecker: Request query with maxSize and maxResultCount
LimitChecker->>LimitChecker: Check if values are nil or zero
LimitChecker->>QueryProcessor: Pass valid limits
QueryProcessor->>Client: Return query results
π° In the code burrow, changes take flight,
With limits clarified, all feels just right.
Type safety blooms, errors refined,
Robustness grows, leaving doubts behind.
Hopping through code, we joyfully cheer,
For clearer logic, letβs give a great cheer! π
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?
All modified and coverable lines are covered by tests :white_check_mark:
@@ Coverage Diff @@
## main #713 +/- ##
==========================================
+ Coverage 54.42% 54.49% +0.06%
==========================================
Files 73 73
Lines 2901 2905 +4
==========================================
+ Hits 1579 1583 +4
Misses 1228 1228
Partials 94 94
Files | Coverage Ξ | |
---|---|---|
x/logic/keeper/grpc_query_ask.go | 91.17% <100.00%> (ΓΈ) |
|
x/logic/util/pointer.go | 86.66% <100.00%> (+4.84%) |
:arrow_up: |
Following this comment, this PR aligns the behavior for all parameters regarding the unlimited case. Most parameters are now configured to be considered unlimited if either a
nil
value or a zero value is set. I chose to align the behavior of themax_size
andmax_result_count
parameters with this approach, as they previously did not follow the same behavior.Summary by CodeRabbit