-
Notifications
You must be signed in to change notification settings - Fork 244
feat: DA Client remove interface part 3, replace types with new code #2910
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
…sult types and error handling
|
The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).
|
|
Claude finished @randygrok's task in 4m 21s —— View job Code Review - DA Client Refactoring (Part 3)This PR represents a significant architectural shift from a generic DA interface to a Celestia-specific implementation. I've conducted a comprehensive code review focusing on code quality, architecture, error handling, security, performance, testing, and documentation. Executive SummaryOverall Assessment: This is a well-executed refactoring that improves code clarity and reduces dependency footprint. The implementation is solid with good error handling and test coverage. However, there are several areas that need attention before merging. Key Findings:
1. Code Quality & Architecture✅ StrengthsClean Interface Design (
Improved Type Safety:
Namespace Management:
|
Summary of ChangesHello @randygrok, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request undertakes a significant refactoring of the Data Availability (DA) client architecture. The primary goal is to streamline interactions with the Celestia network by introducing a dedicated Celestia-specific client and replacing abstract DA interface types with concrete, purpose-built structures. This approach enhances type safety and reduces the project's dependency footprint on larger Celestia libraries, while ensuring full compatibility with the Celestia blob RPC. The changes are supported by comprehensive dependency updates and new integration tests to verify the robustness of the new implementation. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request continues the refactoring of the Data Availability (DA) client by moving types, errors, and namespace logic out of the core/da package and into new, more modular packages like pkg/da/types and pkg/namespace. The changes are mostly mechanical, replacing old type references with new ones across several files. The refactoring is well-executed, and new tests have been added for the extracted namespace logic. I found one issue where a change in a function's signature led to the loss of error handling for malformed IDs. I've provided a suggestion to fix this.
…ype safety and consistency
…d clarity and migration support
- Updated the DA interface to use new types from the datypes package, facilitating a smoother migration from the core DA interface. - Modified various components (e.g., syncer, local DA, sequencers) to utilize the new datypes.DA interface and its associated types. - Adjusted test cases to align with the new DA interface and types, ensuring compatibility and correctness. - Removed legacy DA interface references and replaced them with the new datatypes implementation across the codebase. - Enhanced the DummyDA implementation to support the new datatypes, allowing for easier testing and integration.
julienrbrt
left a comment
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.
mostly lgtm. left some nits. ACK once CI is green.
julienrbrt
left a comment
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.
utACK! :Amazing cleaup
|
Remove core/da folder and da folder
Replace the old jsonrpc and internal/da clients with new one based on blob endpoint.
Overview
Closes: #2796