-
Notifications
You must be signed in to change notification settings - Fork 15
Add view function path for Data Streams llo-feeds Verifier contracts #319
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
Add view function path for Data Streams llo-feeds Verifier contracts #319
Conversation
|
👋 cawthorne, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
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.
Pull request overview
This PR adds view function paths to the LLO Feeds Verifier and VerifierProxy contracts, enabling read-only verification of reports without state changes or billing. The changes introduce verifyView and verifyBulkView functions alongside comprehensive test coverage for the v0.5.1 implementation.
Key Changes
- Added
verifyView()andverifyBulkView()view functions to both Verifier and VerifierProxy contracts - Implemented comprehensive test suites covering verification, configuration management, fee processing, and reward distribution
- Added NoOpFeeManager for zero-fee scenarios
- Created mock contracts and utility functions to support testing infrastructure
Reviewed changes
Copilot reviewed 53 out of 53 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| contracts/src/v0.8/llo-feeds/v0.5.1/interfaces/IVerifier.sol | Added verifyView() interface declaration |
| contracts/src/v0.8/llo-feeds/v0.5.1/interfaces/IVerifierProxy.sol | Added verifyView() and verifyBulkView() interface declarations |
| contracts/src/v0.8/llo-feeds/v0.5.1/test/verifier/*.t.sol | Test coverage for verifier functionality including configuration, verification, and access control |
| contracts/src/v0.8/llo-feeds/v0.5.1/test/fee-manager/*.t.sol | Test coverage for fee processing, discounts, surcharges, and billing logic |
| contracts/src/v0.8/llo-feeds/v0.5.1/test/reward-manager/*.t.sol | Test coverage for reward distribution, recipient management, and claiming |
| contracts/src/v0.8/llo-feeds/v0.5.1/test/mocks/*.sol | Mock contracts for testing (FeeManager, Configurator, ErroredVerifier, etc.) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import {Verifier} from "../../Verifier.sol"; | ||
| import {BaseTestWithMultipleConfiguredDigests} from "./BaseVerifierTest.t.sol"; | ||
|
|
||
| contract VerificationdeactivateConfigWhenThereAreMultipleDigestsTestV05 is BaseTestWithMultipleConfiguredDigests { |
Copilot
AI
Jan 7, 2026
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.
The contract name has incorrect capitalization and concatenation. It should be 'VerifierDeactivateConfigWhenThereAreMultipleDigestsTestV05' (capitalize 'Deactivate' and separate 'Verification' from 'deactivate').
| contract VerificationdeactivateConfigWhenThereAreMultipleDigestsTestV05 is BaseTestWithMultipleConfiguredDigests { | |
| contract VerifierDeactivateConfigWhenThereAreMultipleDigestsTestV05 is BaseTestWithMultipleConfiguredDigests { |
| * @param configDigest The digest of the configuration we're updating | ||
| * @param prevSigners the existing signers that need to be removed | ||
| * @param newSigners the signers to be added | ||
| * @param f the newnumber of faulty oracles the system can tolerate |
Copilot
AI
Jan 7, 2026
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.
Corrected spelling: 'newnumber' should be 'new number' (two separate words).
| * @param f the newnumber of faulty oracles the system can tolerate | |
| * @param f the new number of faulty oracles the system can tolerate |
Static analysis results are availableHey @cawthorne, you can view Slither reports in the job summary here or download them as artifact here. |
….5.1 gethwrappers - Fix foundry.toml lint warning by changing [lint] to [profile.lint] - Regenerate gas snapshot for llo-feeds tests - Generate and add gethwrappers for v0.5.1 contracts (Verifier, VerifierProxy, FeeManager, RewardManager, NoOpFeeManager)
- Add V03 suffix to v0.3.0 gas test contracts (Verifier_setConfigV03, Verifier_verifyV03, etc.) - Update gas snapshot to reflect renamed tests - This resolves naming conflicts between v0.3.0, v0.5.0, and v0.5.1 gas tests
- Gas values are non-deterministic and vary between runs - Updated snapshot to reflect current test outputs - Small variations (~146 gas) are expected due to compiler optimizations - CI should handle these variations
- Update FeeManagerProcessFeeTest gas values to match current test output - All tests now passing with correct gas values in snapshot
- Update FeeManagerProcessFeeTest gas values to match CI (27833) - Update DestinationFeeManagerProcessFeeTest gas values to match CI (30097) - CI environment produces different gas values than local - This ensures CI snapshot check passes
Upgrading the LLO Feeds Verifier and Verifier Proxy to have a view function path.
Audit by dedaub:
https://docs.google.com/document/d/1zjdP_BjsHij5M76LaHfW3OoU1fbEaSj4njdcEq1syZ0/edit?usp=sharing