Closed marcocastignoli closed 1 month ago
See the points. I haven't reviewed the full code as it depends on my comment. I'll do another review after our discussion.
(Couldn't write it in the review message)
@kuzdogan Ok got your point, so now we don't calculate sha256 from javascript but we use directly postgres digest function
[!IMPORTANT]
Review skipped
Auto incremental reviews are disabled on this repository.
Please check the settings in the CodeRabbit UI or the
.coderabbit.yaml
file in this repository. To trigger a single review, invoke the@coderabbitai review
command.You can disable this status message by setting the
reviews.review_status
tofalse
in the CodeRabbit configuration file.
Recent updates involve refining the lib-sourcify
package, updating PostgreSQL database configurations, and migration processes, and enhancing type safety with branded types for cryptographic hashes. Additionally, new capabilities for handling code hashes at the database level were introduced, focused on ensuring integrity and improving storage.
File/Path | Change Summary |
---|---|
packages/lib-sourcify/src/lib/types.ts |
Modified Match interface by removing null from the blockNumber field type. |
packages/lib-sourcify/src/lib/verification.ts |
Updated assignment of match.blockNumber to handle undefined values. |
services/database/README.md |
Clarified and adjusted database migration process, specifying usage of POSTGRES_HOST for production migrations, and outlined a synchronization process for transitioning to the new database setup. |
services/database/database.json |
Added a new production configuration section specifying PostgreSQL connection details using environment variables. |
services/database/migrations/20240627084509-code-hash-becomes-sha256.js |
Implemented hash calculation at the database level, switched to sha3-256 for reference hashes, and added a keccak column to the code table. |
services/server/src/server/services/storageServices/AbstractDatabaseService.ts |
Added QueryResult and BytesKeccak imports, restructured getKeccak256Bytecodes method, and made modifications to handle keccak values within bytecodeHashes , including enhanced error handling. |
services/server/src/server/services/utils/database-util.ts |
Updated types for bytecode hashes and addresses, and modified related functions to align with new types for enhanced type safety. |
services/server/src/server/types.ts |
Introduced branded types for Bytes , BytesSha , and BytesKeccak to improve type safety. |
services/server/test/integration/database.spec.ts |
Added new imports for crypto and Bytes , introduced sha3_256 function, and included new keccak256 hash comparisons. |
sequenceDiagram
participant Client
participant Server
participant Database
Client->>Server: Request to verify code
Server->>Database: Use production config with POSTGRES_HOST
Database->>Server: Verify code hash with sha3-256
Server->>Client: Return verification result
In the land of Sourcify's code, Where hash and byte reside and bode, A keccak twist, a
blockNumber
small, PostgreSQL now leads them all. Migrations smooth, integrity plans, CodeRabbit smiles and claps his hands. 🐇🎉
[!TIP]
Early access features: enabled
We are currently testing the following features in early access: - **OpenAI `gpt-4o` model for code reviews and chat**: OpenAI claims that this model is better at understanding and generating code than the previous models. We seek your feedback over the next few weeks before making it generally available. Note: - You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues. - OSS projects are currently opted into early access features by default.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
See #1453
This PR:
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Refactor
Chores