-
Notifications
You must be signed in to change notification settings - Fork 10
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
feat: implemented a universal ModuleContainer with configurability per module #31
Conversation
… work with generic modularity
Can you please explain in your mental model, which of these new packages depends on our existing ones and what of these modules will be used where? |
The Subsequently i think all actual appchains, should publish their own packages based on @yab/sdk, exposing their configured appChains such as
|
This PR introduces
ModuleContainer
, a generic way to provide modular components across our stack.Sequencer
,Runtime
andAppChain
have been migrated to adhere to the new modularity concepts.Furthermore, two new packages have been introduced:
@yab/common
, holds code shared among other packages such asModuleContainer
@yab/sdk
, composes other packages into a user facing package, exposesAppChain
.This PR has a lot of file changes since the mixup in modularity between Runtime and Sequencer had far reaching implications. The easiest way to review this PR is by looking at the following files:
common/test/config/ModuleContainer.test.ts
, tests how the module container behavessdk/test/appChain/AppChain.test.ts
, tests how Runtime and Sequencer are composed into an AppChain, including configurabilitysequencer/test/sequencer/executor/Sequencer.test.ts
showcases how the newly migrated Sequencer inherits the new ModuleContainerAdditionally there were notable changes to both
@runtimeModule()
and@sequencerModule()
decorators, they were simplified down to a point where they enforce extension ofRuntimeModule
andSequencerModule
respectively.