Skip to content

barreleye/barreleye-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

barreleye.rs

The official Rust driver for Barreleye.

Status beta Docs Github Actions Dependency Status Crates.io Downloads 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 resource
	let rpc_endpoint = "http://127.0.0.1:8545";
	let network = Network::create(
		&client,
		"Ethereum",
		Env::Mainnet,
		Blockchain::Evm,
		1,                  // chain id
		12_000,             // block time in milliseconds
		vec![rpc_endpoint], // rpc endpoints
		100,                // indexing 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