feat(chains): add ethereum monitoring integration#193
Merged
mijinummi merged 2 commits intoJun 22, 2026
Merged
Conversation
- Implement EthereumChainMonitor implementing IChainMonitor - Poll Ethereum JSON-RPC for new blocks and normalize transactions - Support transfer, contract_call, and contract_deploy event types - Register monitor in ChainsModule behind ETHEREUM_RPC_URL env var - Add comprehensive test suite for normalization, polling, and health Closes MD-Creative-Production#136
- Replace jest.clearAllMocks() with targeted mockReset() calls to properly clear mockResolvedValueOnce queues between tests - Simplify ethers jest.mock to avoid recursive ethers.ethers reference - Use eslint-disable-next-line instead of tslint directive
3 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.
Summary
Extends Sentinel monitoring capabilities to Ethereum by implementing an
EthereumChainMonitorthat polls the Ethereum JSON-RPC for new blocks, extracts transactions, and normalizes them into the sharedNormalizedChainEventformat.Changes
New Files
apps/backend/src/modules/chains/monitors/ethereum.chain-monitor.ts— Ethereum chain monitor implementingIChainMonitorJsonRpcProviderETHEREUM_POLL_INTERVAL_MS)contract_deploy>contract_call>transfergetBlockNumber()apps/backend/src/modules/chains/monitors/ethereum.chain-monitor.spec.ts— 12 tests covering:Modified Files
apps/backend/src/modules/chains/chains.module.ts— RegistersEthereumChainMonitorin theCHAIN_MONITORSprovider array, gated behind theETHEREUM_RPC_URLenvironment variableEnvironment Variables
ETHEREUM_RPC_URLhttp://localhost:8545ETHEREUM_POLL_INTERVAL_MS15000Verification
Related
Closes #136