-
Notifications
You must be signed in to change notification settings - Fork 267
feat(stylus): implement queryPriceFeed, priceFeedExists functions, clean tests #2849
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
Draft
ayushboss
wants to merge
23
commits into
pyth-stylus-additional-update-parse-fxns
Choose a base branch
from
pyth-stylus-final-functions
base: pyth-stylus-additional-update-parse-fxns
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
feat(stylus): implement queryPriceFeed, priceFeedExists functions, clean tests #2849
ayushboss
wants to merge
23
commits into
pyth-stylus-additional-update-parse-fxns
from
pyth-stylus-final-functions
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… to support multiple updates
- Modified get_current_timestamp to use MockClock::time().as_secs() in test mode - Added MockClock::set_time(Duration::from_secs(1761573860)) to three specific tests: - test_get_price_no_older_than_with_random_id_reverts_with_price_unavailable - test_get_price_no_older_than_where_update_younger_than_max_age_returns_price - test_get_price_no_older_than_reverts_too_old - Contract functionality unchanged (still uses block_timestamp in production) - All specified tests pass with mocked timestamp Co-Authored-By: ayush.suresh@dourolabs.xyz <byteSlayer31037@gmail.com>
- Added #[cfg(test)] to all 9 functions in test_data.rs: - good_update1() - good_update2() - multiple_updates_same_vaa() - multiple_updates_diff_vaa() - multiple_updates_diff_vaa_results() - good_update1_results() - multiple_updates_results() - good_update2_results() - current_guardians() - Ensures test data functions are only compiled during testing - All tests continue to pass with cfg(test) attributes Co-Authored-By: ayush.suresh@dourolabs.xyz <byteSlayer31037@gmail.com>
… price values - Fixed compilation errors by making all_parsed_price_pairs mutable - Modified logic after first for loop to iterate through price pairs and preserve existing values - Updated parse_price_feed_updates to wrap single update_data in vector - All tests passing Co-Authored-By: ayush.suresh@dourolabs.xyz <byteSlayer31037@gmail.com>
…logic - Change PriceFeedReturn from hex string to byte array ([u8; 32], U64, I32, I64, U64, I64, U64) - Update parse_price_feed_updates_internal to return Vec<PriceFeedReturn> instead of Vec<([u8; 32], PriceFeedReturn)> - Simplify parse_price_feed_updates_with_config by removing price_map and using direct indexing with find() - Simplify update_price_feeds_internal to avoid dual variable iteration and directly index structs - Update test data functions to use byte arrays from helper functions instead of hex strings - Add helper functions for different feed IDs used in multiple updates tests All tests pass successfully with these changes. Co-Authored-By: ayush.suresh@dourolabs.xyz <byteSlayer31037@gmail.com>
…oStorage - Add price_id field as StorageFixedBytes<32> to PriceInfoStorage struct - Rename PriceInfoStorage to PriceFeedStorage for consistency - Update import statement and storage map declaration in lib.rs - Update update_price_feeds_internal to populate price_id field when storing price data - All tests pass with structural changes Co-Authored-By: ayush.suresh@dourolabs.xyz <byteSlayer31037@gmail.com>
…turn type and the overall price feed return that will be given from the query function
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements the queryPriceFeed and priceFeedExists functions. It also cleans up a lot of the testing logic, which was pretty messy to this point,
How has this been tested?