project(sidecar): Add oracle attestation endpoint on signature aggregator (handler ID 4)#1406
Open
boraerincplusplus wants to merge 2 commits into
Open
Conversation
6e6dba2 to
29e4ac1
Compare
batconjurer
approved these changes
Jul 13, 2026
b324085 to
606330c
Compare
606330c to
f074af9
Compare
cf31ee0 to
1d81190
Compare
f074af9 to
4a64d45
Compare
mdelle1
approved these changes
Jul 13, 2026
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.
NOTE: (PR2)
This is a draft, not to be merged just yet. I'm opening this up to mark it for review.
Why this should be merged
The signature aggregator previously hardcoded handler ID 2 (SignatureRequestHandlerID) on every AppRequest it sends to validators. Originally I had created another aggregator, but the only thing different between that one and this one was the handler ID. After some discussions with @geoff-vball we decided it was fine to be a bit more invasive. This PR modifies signature aggregation to accept an explicit handler ID, updates existing call sites to pass 2 (standard warp), and adds a new
/oracle/aggregate-signatures endpointthat passes 4, routing validator AppRequests to the oracle verifier instead of the native warp handler.How this works
CreateSignedMessagepreviously hardcoded the p2p handler ID inmarshalRequest. This PR addshandlerID uint64as an explicit parameter so callers control which validator handler processes their signing request.A new HTTP endpoint
/oracle/aggregate-signaturesis registered alongside the existing/aggregate-signatures. It accepts the same request/response format but passes OracleHandlerID = 4 toCreateSignedMessage, so the protocol prefix on each AppRequest tells validators to dispatch to their oracle verifier rather than the native warp handler.How this was tested
Existing aggregator unit tests updated to pass the handler ID explicitly and continue to pass.
How is this documented
The
oracle_api.gofile describes the endpoint, its expected request format (justification = hex-encoded Solana transaction signature), and how it differs from the standard endpoint