-
Notifications
You must be signed in to change notification settings - Fork 9
Update Rosetta for malleability changes #86
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
Conversation
WalkthroughThe changes update dependency versions in the Go module, extend protocol support to version 8 in state conversion logic, adjust spork version validation, correct a JSON syntax error, and refine timestamp handling in block finalization logs. Several new functions and case branches are added to support protocol version 8's updated hashing and verification schemes. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant StateConverter
participant HashingFunctions
Client->>StateConverter: Submit block/event/receipt (protocol version 8)
StateConverter->>HashingFunctions: Call deriveBlockHashV8 / deriveEventsHashV8 / deriveExecutionReceiptHash / deriveCollectionGuaranteeID
HashingFunctions-->>StateConverter: Return computed hash (v8 logic)
StateConverter-->>Client: Return/verify result with v8-compliant hash
Estimated code review effort🎯 4 (Complex) | ⏱️ ~35 minutes Suggested reviewers
Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
✨ Finishing Touches
🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Completed testing Rosetta (Initially on benchnet, finished on localnet) according to https://github.com/onflow/rosetta/blob/main/script/README.md, everything looks good. |
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.
Functionally the changes looks good to me.
| } | ||
|
|
||
| if spork.Version < 1 || spork.Version > 7 { | ||
| if spork.Version < 1 || spork.Version > 8 { |
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.
Could you add a comment to the Spork.Version field:
// Version is a Rosetta-internal version number that tracks Rosetta compatibility with Flow network versions.
// This version number is incremented each time there is a Flow network upgrades which includes a breaking change for Rosetta.
// Not all Flow network upgrades cause breaking changes for Rosetta, so this version number is not incremented for every network upgrade.Co-authored-by: Jordan Schalm <jordan.schalm@flowfoundation.org>
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.
Looks good to me👍
This PR implements the first part of required changes for issue #80, covering most major malleability changes (everything up until 2025-07-30).
Summary by CodeRabbit
New Features
Bug Fixes
Chores