Project Structure
This document provides detailed information about each directory in the OpenZeppelin Monitor project.
Source Code Organization
src/ Directory
The main source code directory contains the core implementation files organized into several modules:
-
bootstrap/: Application initialization and setup formain.rs-
Handles service initialization and dependency injection
-
-
models/: Core data structures and types-
blockchain/: Platform-specific implementations-
evm/: Ethereum Virtual Machine specific types -
stellar/: Stellar blockchain specific types
-
-
config/: Configuration loading and validation -
core/: Core domain models -
security/: Security and secret management
-
-
repositories/: Configuration storage-
Handles loading and validating configuration files
-
Provides storage interfaces for monitors, networks, and triggers
-
Implements validation of configuration references
-
-
services/: Core business logic-
blockchain/: Blockchain client interfaces-
transports/: Transport clients-
evm/: Ethereum Virtual Machine transport client -
stellar/: Stellar transport client
-
-
clients/: Client implementations-
evm/: Ethereum Virtual Machine client -
stellar/: Stellar client
-
-
-
blockwatcher/: Block monitoring and processing -
filter/: Transaction and event filtering-
filters/: Filter implementations-
evm/: Ethereum Virtual Machine filter -
stellar/: Stellar filter
-
-
-
notification/: Alert handling -
trigger/: Trigger evaluation and execution-
script/: Script execution utilities
-
-
-
utils/: Helper functions-
cron_utils: Cron schedule utilities -
expression: Expression evaluation -
logging/: Logging utilities -
macros/: Macros for common functionality -
metrics/: Metrics utilities -
monitor/: Monitor configuration test utilities -
tests/: Contains test utilities and helper functions-
builders/: Test builder patterns implementing fluent interfaces for creating test fixtures-
evm/: Builder implementations specific to Ethereum Virtual Machine (EVM) testing -
stellar/: Builder implementations specific to Stellar blockchain testing
-
-
-
Configuration and Data
config/ Directory
Contains JSON configuration files for:
-
Network configurations (
networks/)-
Connection details for blockchain networks
-
RPC endpoints and network parameters
-
-
Monitor configurations (
monitors/)-
Monitoring rules and conditions
-
Network and trigger references
-
-
Trigger configurations (
triggers/)-
Notification settings
-
Script definitions
-
-
Filter configurations (
filters/)-
Match filter scripts
-
|
The |
Testing and Documentation
Docker Support
The project includes Docker configurations for different environments:
-
Dockerfile.development: Development container setup. -
Dockerfile.production: Production-ready container. -
Before running the docker compose set your env variables in
.envaccording to your needs.
|
For detailed information about running the monitor in containers, see the Docker deployment section in the main documentation. |