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/nestlest/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.11-cp312-cp312-manylinux_2_34_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

uniswap_fetcher_rs-0.1.11-cp311-cp311-manylinux_2_34_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

uniswap_fetcher_rs-0.1.11-cp310-cp310-manylinux_2_34_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

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

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.11-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2c743cc2ffb81a6a1220025f3437598219f9b321ab03f6c5b4984f968c9ba5c0
MD5 021478531a49e278a88c81c15b6ae901
BLAKE2b-256 33e440495500b6a0e9201d7e91abf990366ccbbcb9e136e84d62c06c0e304e14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.11-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a052d699b9f98391bfe127c5b52143667c541614151cd79471b58f74fa14f556
MD5 64aac17849f986274920e533cabfb1ed
BLAKE2b-256 1691299288d59d848098d831af388884ec447659633dcfe16c9a25feb86a201d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uniswap_fetcher_rs-0.1.11-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 96efff5686e70643bc786dade0b22f0bde354572b7b4e2feacb8e3cbbedd9b95
MD5 a1d07b0578e63d388613db0986868be6
BLAKE2b-256 81b9f02f8f428e1d72a8733e6576862deedf79b2d2564f13be4fb05a2d10b877

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