1 unstable release

0.0.1 Jan 17, 2023

#279 in #env

Apache-2.0

20KB
470 lines

barreleye.rs

The official Rust driver for Barreleye.

Status beta Docs Github Actions Dependency Status Crates.io License

Usage

Add to Cargo.toml:

cargo add barreleye-client

Programmatically add a network so Barreleye can start indexing:

use barreleye_client::{Barreleye, Blockchain, Env, Network};

#[tokio::main]
async fn main() {
	// Define the client
	let url = "http://localhost:22775";
	let api_key = Some("7f9e9182-122d-45e1-b4be-d73fc99e9bc9");
	let client = Barreleye::new(url, api_key);

	// Create a new network
	let rpc_endpoint = "http://127.0.0.1:8545";
	let network = Network::create(
		&client,
		"Ethereum",         // name
		"Ethereum",         // tag
		Env::Mainnet,       // env
		Blockchain::Evm,    // blockchain
		1,                  // chain id
		12_000,             // block time in milliseconds
		vec![rpc_endpoint], // rpc endpoints
		100,                // rate limiter (requests per second)
	)
	.await;

	println!("{:?}", network);
}

Get info about an address:

use barreleye_client::{Barreleye, Error, Info};

#[tokio::main]
async fn main() {
	// Define the client
	let url = "http://localhost:22775";
	let api_key = None;
	let client = Barreleye::new(url, api_key);

	// Get info about the address
	match Info::get(&client, "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa").await {
		Ok(info) => println!("{:?}", info),
		Err(Error::Unavailable) => println!("Is Barreleye server running?"),
		Err(e) => println!("Error: {e}"),
	}
}

Check out more examples.

License

Apache-2.0

Dependencies

~7–20MB
~293K SLoC