Skip to main content

A Rust-based library to fetch and decode Uniswap V3 pool events, designed to be used as a Python module.

Project description

Uniswap Fetcher

Uniswap Fetcher is a Rust-based library that provides functionalities to fetch and decode Uniswap V3 pool events. It is designed to be used as a Python module using PyO3.

Features

  • Fetch pool events by token pairs within a specified block range.
  • Fetch pool events by token pairs within a specified time range.
  • Fetch pool created events between two timestamps.
  • Get block number range for a given timestamp range.

Prerequisites

  • Rust and Cargo: Install from rustup.rs
  • Python 3.10 or higher
  • An Ethereum node RPC URL

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/uniswap-fetcher-rs.git
    cd uniswap-fetcher-rs
    
  2. Build the Python module:

    maturin develop
    

    This will build the Rust code and install the Python module locally.

Usage

Python

from uniswap_fetcher_rs import UniswapFetcher

# Initialize the fetcher with the RPC URL
fetcher = UniswapFetcher("http://localhost:8545")

# Define token pairs and block range
token_pairs = [("0xaea46a60368a7bd060eec7df8cba43b7ef41ad85", "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", 3000)]
from_block = 12345678
to_block = 12345778

# Fetch pool events by token pairs
events = fetcher.get_pool_events_by_token_pairs(token_pairs, from_block, to_block)
print(events)

# Define time range
start_timestamp = 1633046400  # Example start timestamp
end_timestamp = 1633132800    # Example end timestamp

# Fetch pool data by token pairs within the specified time range
pool_data = fetcher.fetch_pool_data(token_pairs, start_timestamp, end_timestamp)
print(pool_data)

# Fetch pool created events between two timestamps
pool_created_events = fetcher.get_pool_created_events_between_two_timestamps(start_timestamp, end_timestamp)
print(pool_created_events)

To use the library directly in Rust, you can call the asynchronous functions provided in the lib.rs file.

Testing

To run the tests, use the following command:

cargo test

License

This project is licensed under the MIT License. See the MIT License file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uniswap_fetcher_rs-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

uniswap_fetcher_rs-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

uniswap_fetcher_rs-0.1.3-cp310-cp310-manylinux_2_34_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

Details for the file uniswap_fetcher_rs-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e19946487e72a34fa83e554c7656c6ab204b1add27bd4e716c37bae5cfc011d3
MD5 9e27b40d948e876e17b1c95183f28da8
BLAKE2b-256 524a76eeb0bc55a1bcc5916b0b1d630201d18fa133da3faff34fc47d35ae6bd7

See more details on using hashes here.

File details

Details for the file uniswap_fetcher_rs-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c095ba27c869a096255003aee1ab7d61a3760d2caef4c90f358af32d49535852
MD5 5f451006b1977e86f474bc72f0de0b7c
BLAKE2b-256 c8b1d0ae67f1a3e361493b1d8fa710cbe152ebd62cd49840cd0cae4d4b0240b3

See more details on using hashes here.

File details

Details for the file uniswap_fetcher_rs-0.1.3-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.3-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e83a5146ab758bff395a5ab0e0b575cc3e8b8a3a30b08eadfcc1ce34e87ae8e9
MD5 14d3d6cbfe00860aa1088084fcc7bc36
BLAKE2b-256 dc5349c2af5bd2bf8b83dfd687c2a9bd74cbfe7a404698b611c48c77f8fd88d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page