The Velora Pool Data Fetcher is a Python-based application designed to retrieve and process data from Uniswap V3 pools. It stores the fetched data in a PostgreSQL database with the TimescaleDB extension for efficient time-series handling. The application is containerized using Docker and includes a CI/CD pipeline for automated testing and deployment.
- Efficient Batch Processing: Processes data in batches of tokens to ensure optimal performance.
- Comprehensive Uniswap Data Retrieval: Supports fetching data for events like swaps, mints, burns, and collects.
- Database Integration: Leverages PostgreSQL with TimescaleDB for scalable and efficient storage.
- Signal Generation: Automatically generates and stores signals based on the fetched data.
- CI/CD Pipeline: Includes a GitHub Actions workflow for automated testing and deployment.
Before you begin, ensure you have the following installed:
- Python 3.10 or higher
- PostgreSQL with TimescaleDB extension
You can run your own Ethereum node locally using the following command:
docker compose up -d geth prysmPlease note that this process may take a significant amount of time to fetch all the necessary data.
If you have an alternative Ethereum node that you’d like to use, you can specify it in your .env file.
Run PostgreSQL timescale db with docker compose
docker compose up -d timescaledbIf you are already running postgres server, you can specify it in your .env file.
-
Clone the repository:
git clone https://github.com/nestlest/velora-pool-data-fetcher.git cd velora-pool-data-fetcher -
Create and configure the
.envfile:
Copy the provided.env.examplefile and fill in the required environment variables.cp .env.example .env
-
Install Virtual Environment It is recommended to use virtual environment.
python3 -m venv venv source venv/bin/activate -
Install Python dependencies:
pip3 install -r requirements.txt
-
Run the application:
pm2 start --name velora-pool-data-fetcher python main.py
-
Access the PostgreSQL database:
The database is exposed on the port specified in your.envfile. Use any PostgreSQL client to connect and query the data.
The application uses environment variables for configuration, loaded from the .env file. Key variables include:
POSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DBPOSTGRES_HOSTPOSTGRES_PORTETHEREUM_RPC_NODE_URL
We welcome contributions to improve Velora Pool Data Fetcher! Here's how you can contribute:
- 🍴 Fork the repository: Create a copy on your GitHub account.
- 🛠️ Make updates or add features: Work on your changes locally.
- 📤 Submit a pull request (PR): Propose your updates to the main repository.
- 🔍 All PRs are reviewed before merging.
- 💡 Suggestions for enhancements are always welcome!
Your contributions help us grow! 🌱
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or issues, please open an issue on the GitHub repository.
Join our community if you have any questions: Join Our Velora Channel