-
Notifications
You must be signed in to change notification settings - Fork 3.9k
devnet-SDK: decouple Chain and Node interfaces #14616
Copy link
Copy link
Closed
Labels
A-devnet-sdkArea: devnet-sdkArea: devnet-sdkA-integrationArea: integration testsArea: integration testsH-interopHardfork: change planned for interop upgradeHardfork: change planned for interop upgrade
Milestone
Description
For both L1 nodes and L2 nodes, decouple the idea of a "chain" and a "node".
A chain should:
- have a way to access configuration
- have a way to access deployment info
- have a way to access nodes by name (and per type, e.g. getting an EL node, or getting a rollup-node)
An (EL) node should:
- provide high level interface, to interact with all common RPC client bindings, without leaking the client binding to the test itself.
- direct RPC access in a test is bad, it's not DSL, it makes it harder to maintain and apply shared behaviors too.
Similarly, an interface for a rollup-node, around the rollup-client RPC bindings, is useful to have.
Start really minimal, interfaces and composition is important. We can expand the interfaces later.
E.g. the sync-status RPC.
Over time, preventing boilerplate in tests is important. E.g. an interface can provide "wait for unsafe head change", instead of making it poll the sync-status manually.
Also see ticket for expanding the EL op-service client bindings.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-devnet-sdkArea: devnet-sdkArea: devnet-sdkA-integrationArea: integration testsArea: integration testsH-interopHardfork: change planned for interop upgradeHardfork: change planned for interop upgrade