Add Watchtower Signer Requirement for Verification#13
Open
RonTuretzky wants to merge 2 commits intomainfrom
Open
Add Watchtower Signer Requirement for Verification#13RonTuretzky wants to merge 2 commits intomainfrom
RonTuretzky wants to merge 2 commits intomainfrom
Conversation
Implements a mandatory Watchtower component that must participate in every verification for it to be considered valid, adding an additional layer of security and trust. Changes: - Added watchtowerSignature field to VerificationParams struct - Implemented ECDSA signature verification for Watchtower - Added watchtower state management (address, enabled status) - Updated example consumer contracts to support Watchtower - Added comprehensive test suite for Watchtower functionality - Updated deployment scripts to configure Watchtower address The Watchtower acts as a trusted oversight entity that: - Must sign every verification for it to be valid - Can be enabled/disabled by contract admin - Can have its address updated for key rotation - Provides an audit trail via events All tests passing (8/8 Watchtower-specific tests). 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
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
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 issue #11 by adding a mandatory Watchtower component to the OpacitySDK verification system. The Watchtower acts as a trusted signer that must participate in every verification for it to be considered valid, providing an additional layer of security and trust.
Changes
Core SDK Updates (
src/OpacitySDK.sol)watchtowerSignaturefield toVerificationParamsstructwatchtowerAddress,watchtowerEnabled)WatchtowerUpdated,WatchtowerStatusChanged,WatchtowerVerification)verify()function to check watchtower signature before operator quorumupdateWatchtower,setWatchtowerStatus)Example Contracts Updates
SimpleVerificationConsumerconstructor to accept watchtower addressStorageQueryConsumerconstructor and verification result structDeployment Scripts (
script/DeployOpacityExamples.s.sol)Testing (
test/OpacitySDKWatchtower.t.sol)How the Watchtower Works
Security Benefits
Test Results
Breaking Changes
Deployment Instructions
Set the watchtower address via environment variable:
Closes #11
🤖 Generated with Claude Code