graph-networks-registry 0.7.0

The Graph Networks Registry types and helpers
Documentation

The Graph Networks Registry Rust Library

Crates.io Docs.rs License: MIT

Rust types and helpers for working with The Graph Networks Registry.

Documentation available here.

Usage

If you want to always get up-to-date registry, make sure to use the latest version of the crate.

Cargo.toml:

[dependencies]
graph-networks-registry = "0.7.0"

Reading from a local file

To read the registry from a local file

use graph_networks_registry::NetworksRegistry;
fn main() {
    // Parse registry from JSON file
    let registry = NetworksRegistry::from_file("TheGraphNetworksRegistry_v0_7_0.json")
        .expect("Failed to parse registry");

    if let Some(network) = registry.get_network_by_graph_id("mainnet") {
        println!("Found mainnet: {:?}", network);
    }

    // You can also use an alias with get_network_by_graph_id
    if let Some(network) = registry.get_network_by_graph_id("eth") {
        println!("Found ethereum by alias: {:?}", network);
    }

    // Find network by CAIP-2 chain ID
    if let Some(network) = registry.get_network_by_caip2_id("eip155:1") {
        println!("Found ethereum by CAIP-2 ID: {:?}", network);
        println!("ID: {}, CAIP-2 ID: {}", network.id, network.caip2_id);
    }
}

Fetching the latest registry

To fetch the latest compatible registry version from networks-registry.thegraph.com

use graph_networks_registry::NetworksRegistry;

#[tokio::main]
async fn main() {
    let registry = NetworksRegistry::from_latest_version()
        .await
        .expect("Failed to fetch registry");
    println!("Loaded {} networks", registry.networks.len());
}

Features

  • fetch - Enables remote registry fetching functionality using reqwest (enabled by default)

If you don't need to fetch the registry from the network, you can turn off the fetch feature in your Cargo.toml:

[dependencies]
graph-networks-registry = { version = "0.7.0", default-features = false }