-
Notifications
You must be signed in to change notification settings - Fork 9
chore(sdk): Simplify generics syntax by using adapters #549
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
base: unstable
Are you sure you want to change the base?
Conversation
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.
Pull request overview
This PR simplifies generic syntax throughout the codebase by introducing and using the PrimitivesTy<N> type adapter instead of the fully qualified syntax <N as NodeTypes>::Primitives. The change improves code readability by reducing boilerplate in type declarations.
Key changes:
- Introduces
PrimitivesTytype adapter for cleaner access toNodeTypes::Primitives - Updates type bounds and associated types across node components, RPC handlers, and engine services
- Replaces verbose
<Node::Types as NodeTypes>::Primitivessyntax with concisePrimitivesTy<Node::Types>
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
crates/optimism/node/tests/it/builder.rs |
Updates test EVM configuration to use PrimitivesTy adapter |
crates/optimism/node/src/node.rs |
Updates EVM config and validator builder to use PrimitivesTy adapter |
crates/node/builder/src/rpc.rs |
Updates RPC handle types and engine validator traits to use PrimitivesTy adapter |
crates/node/builder/src/node.rs |
Adds import and updates NodeTypes implementation with PrimitivesTy adapter |
crates/node/builder/src/launch/invalid_block_hook.rs |
Updates invalid block hook extension trait to use PrimitivesTy adapter |
crates/node/builder/src/launch/common.rs |
Updates static file provider return type to use PrimitivesTy adapter |
crates/node/builder/src/components/mod.rs |
Updates component trait bounds to use PrimitivesTy adapter |
crates/node/api/src/node.rs |
Adds import and updates component traits and context to use PrimitivesTy adapter |
crates/engine/service/src/service.rs |
Updates engine service type aliases to use PrimitivesTy adapter |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
PrimitivesTy adapter
Wiz Scan Summary
To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension. |
…163) @dhyaniarun1993 @itschaindev @sadiq1971 @meyer9 think these are the only crates we will need to touch. can update as we go. ideally the new logic will only live inside of _crates/optimism_, but we may need to generalise some components in the other crates I listed and make them customisable up at SDK (node builder _crates/node_) level to achieve this.
Fixes label name on bug issues
Closes #179 --------- Co-authored-by: Julian Meyer <[email protected]>
Fixes #177 I added a few methods that should allow atomically pruning and reorging blocks. Each function should represent a single transaction. We can store trie nodes, reorg, prune in a single transaction now. I kept the bulk insert methods available for storing the current state. --------- Co-authored-by: Arun Dhyani <[email protected]>
Ref #176 This PR adds an in-memory storage backend and tests that work with any storage backend. We can easily add more test cases to the file to test against a future SQLite backend. --------- Co-authored-by: Arun Dhyani <[email protected]> Co-authored-by: Emilia Hane <[email protected]>
Based on #183 This PR adds a backfill job that accepts a DB transaction and copies the current state to the database. The transaction ensures we see a consistent view of the database at the current block, even if the node is syncing. This requires `--db.read-transaction-timeout 0`. This currently doesn't handle interrupting the job because the state may update while syncing and may read a different version of the database upon restart. --------- Co-authored-by: Arun Dhyani <[email protected]> Co-authored-by: Emilia Hane <[email protected]>
No token, so this check always fails annoyingly. Disabling the upload step if missing token.
Closes #209
Description: - This PR adds scaffold MDBX proofs storage with impl to unblock parallel work. - Unblock multiple developers and avoid merge conflicts while the MDBX backend is being built. - Provide a compilable stub that wires types and env init, without committing to final storage logic.
…e` (#204) - Adds new crates `reth-optimism-exex` and `reth_optimism_trie` - Moves `reth_exex::external_proofs` -> `reth_optimism_exex` - Moves `reth_exex::external_proofs::storage` -> `reth_optimism_trie`
Revert all the changes made as part of the hybrid storage experiment.
Closes #566 (1/5) Co-authored-by: Arun Dhyani <[email protected]>
Closes #311 Performace comparison under load test: ``` previous: 4.873750666s sorted delete: 3.278444083s sorted delete + seperate read (current as per the PR): 2.980065583s ```
c30e6f7 to
a105bfe
Compare
Fix conflict from pulling latest upstream main Co-authored-by: Arun Dhyani <[email protected]>
Closes #562 Validated the optimization by rewriting an initial state with N=50,000 updated entries. - Throughput: Increased by ~20.9% (326k → 394k entries/sec). - Latency: Reduced by ~17.2% (153ms → 126ms). ``` Old approach: Rewrite Duration: 153.26ms Throughput: 326,248 entries/sec New approach: Rewrite Duration: 126.77ms Throughput: 394,410 entries/sec ``` bench: 180e132
Part of #483. First wait for theo's PR [paradigmxyz#18754](ethereum-optimism/optimism#18754) to be merged. Then wait for our PR [paradigmxyz#18772](ethereum-optimism/optimism#18772) to be merged. After that, in this repo, remove the current submodule and replace it with optimism itself.
Closes #449 The approach used is to perform full block verification after every N blocks to ensure the state is still correct. --------- Co-authored-by: Arun Dhyani <[email protected]>
…s/op-reth into emhane/use-primitive-types-adapters
Closes #566 --------- Co-authored-by: Himess <[email protected]> Co-authored-by: Himess <[email protected]>
Ref #520
Simplifies generics in various places by instead of using fully qualified syntax to access associated type, using adapters
PrimitivesTyto access associated typeNodeTypes::PrimitivesTxTyto accessNodePrimitives::SignedTxReceiptTyto accessNodePrimitives::ReceiptBlockTyto accessNodePrimitives::BlockHeaderTyto accessNodePrimitives::Header