Closed leonz789 closed 2 months ago
[!WARNING]
Rate limit exceeded
@leonz789 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 56 minutes and 2 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 fe204f0ccb40927d7e069d556b8db3f7fc22f482 and 97d55a8bcfb8575242f44d8e9e7a78e04909535a.
These changes primarily focus on enhancing timestamp handling and validation across different modules in the x/oracle
keeper. The updates ensure timestamps are sourced correctly, validated properly, and incorporated neatly within tests and error handling, thereby improving data consistency and reducing potential errors associated with date-time fields.
File Path | Change Summary |
---|---|
x/oracle/keeper/aggregator/context.go |
Modified the Timestamp field assignment in the FillPrice method to source timestamps from msg.Prices[0].Prices[0].Timestamp |
x/oracle/keeper/msg_server_create_price.go |
Introduced checkTimestamp function to validate message timestamps for non-emptiness, valid format, and non-future dates |
x/oracle/keeper/testdata/helper.go |
Updated Timestamp field initialization in newPTD and newPTR functions to use a constant timestamp value t |
x/oracle/types/errors.go |
Adjusted error codes, added a new error ErrPriceProposalFormatInvalid with code 3, and corrected ErrSample registration code |
testutil/keeper/oracle.go |
Added import for time and included current UTC time in context ctx initialization using tmproto.Header{} |
sequenceDiagram
participant User
participant MsgServer
participant Keeper
participant Clock
User ->> MsgServer: Create Price Message
MsgServer ->> MsgServer: checkTimestamp()
MsgServer ->> Clock: Validate Timestamp
Clock -->> MsgServer: Timestamp Validated
MsgServer ->> Keeper: Store Price with Timestamp
Keeper ->> User: Price Stored Successfully
In fields of green where data sways,
We tweaked the times in subtle ways,
Errors numbered, clean and sleek,
Now our prices hum and speak.
Code refined in lines so sure,
Our oracle's wisdom shall endure.
🌸💻⏰
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?
Test passed, the timestamp is added to the price info.
exocored q oracle show-prices 1
prices:
next_round_id: "4"
price_list:
- decimal: 0
price: ""
round_id: "0"
timestamp: ""
- decimal: 18
price: "318966000000"
round_id: "1"
timestamp: "2024-07-04 07:28:57"
- decimal: 18
price: "318966000000"
round_id: "2"
timestamp: "2024-07-04 07:28:57"
- decimal: 18
price: "318966000000"
round_id: "3"
timestamp: "2024-07-04 07:28:57"
token_id: "1"
Description
Set timestamp of final price with the timestamp from message
Closes #XXX
Summary by CodeRabbit
New Features
ErrPriceProposalFormatInvalid
for improved error handling of price proposal message formats.Bug Fixes
Enhancements