Skip to content

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
wants to merge 23 commits into
base: pyth-stylus-additional-update-parse-fxns
Choose a base branch
from

Conversation

ayushboss
Copy link
Contributor

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?

  • Current tests cover my changes
  • Added new tests
  • Manually tested the code

ayushboss and others added 23 commits July 9, 2025 11:58
- 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
Copy link

vercel bot commented Jul 10, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
api-reference ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
component-library ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
developer-hub ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
entropy-debugger ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
entropy-explorer ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
insights ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
proposals ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm
staking ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 10, 2025 9:36pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant