feat(defi): implement dynamic protocol adapter registry and auto-disc…#16
Merged
Merged
Conversation
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
defiModule — Protocol Adapter Registry & Strategy Discovery #9Description
This PR refactors the DeFi protocol adapter registration process to use a dynamic discovery mechanism. Previously, adding a new protocol required manual wiring and constructor updates. This update introduces a plugin-like architecture, allowing the application to auto-discover and expose adapters cleanly.
Changes Made
ProtocolRegistryto allow runtime registration of adapters via a genericregister()method and introduced theProtocolAdapterMetadatainterface.DeFiModuleto leverage NestJS'sDiscoveryService. It now automatically scans and registers any provider implementing theProtocolAdapterinterface during theonModuleInitlifecycle hook.GET /defi/protocolsendpoint inDeFiControllerthat returns a list of all currently supported protocols. It dynamically calculates capabilities based on implemented methods (e.g.,borrow,stake,swap).Impact
Adding a new protocol (e.g., Uniswap, Yearn) to the DeFi module is now completely plug-and-play. Developers only need to:
DeFiModuleproviders array.No changes to the registry class or module constructors are required.
Testing
AaveAdapterandCompoundAdapterare automatically discovered and registered on application start.GET /defi/protocolscorrectly returns the metadata and capabilities of all registered adapters.