Skip to content

Dvisacker/evm-projects

Repository files navigation

EVM projects

Various crates and binaries to trade and interact with EVM chains.

The event and blocks pub/sub engine is originally forked from Artemis.

Project Structure

/
├── bin/                    # Binary crates (bot, cli, swap)
├── crates/                 # Core library crates
│   ├── addressbook/       # Blockchain address management
│   ├── amms/              # AMM integrations
│   ├── engine/            # Core engine
│   ├── bindings/          # Contract bindings (rust interfaces)
│   ├── db/                # Database interface
│   ├── encoder-client/    # Blockchain transaction encoding
│   ├── executor-binding/  # Executor contract binding 
│   ├── odos-client/       # Odos protocol client
│   ├── provider/          # Blockchain provider
│   ├── shared/            # Shared utilities
│   ├── strategies/        # Strategy folder
│   └── types/             # Common types
├── contracts/             # Smart contracts
└── docker/               # Docker configuration

Getting Started

Prerequisites

  • Rust 1.70 or higher
  • Docker (optional)
  • Access to Ethereum nodes or providers

Installation

  1. Copy the example environment file:
cp .env.example .env
  1. Configure your environment variables in .env

  2. Build the project:

cargo build --release

Running the Bot

  1. Using the CLI:
cargo run --bin cli -- --help
  1. Using Docker:
docker-compose up -d

Configuration

The bot can be configured through:

  • Environment variables (.env file)
  • Command-line arguments
  • Configuration files

See .env.example for available configuration options.

Development

Adding New Strategies

  1. Create a new crate in crates/strategies/
  2. Implement the strategy traits from engine

License

This project is dual-licensed under:

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Disclaimer

This software is for educational purposes only. Do not use it to exploit blockchain networks or engage in harmful MEV practices. Users are responsible for ensuring compliance with all applicable laws and regulations.