use avail_rust_client::{prelude::*, subscription::BlockSub};
#[tokio::main]
pub async fn main() -> Result<(), Error> {
let client = Client::new(TURING_ENDPOINT).await?;
let mut sub = BlockSub::new(client.clone());
let next_block = sub.next().await?;
let prev_block = sub.prev().await?;
println!(
"Finalized Next: Block Height: {}, Block Author: {}",
next_block.block_height,
next_block.value.author().await?
);
println!(
"Finalized Previous: Block Height: {}, Block Author: {}",
prev_block.block_height,
prev_block.value.author().await?
);
let mut sub = BlockSub::new(client.clone());
sub.use_best_block(true);
let next_block = sub.next().await?;
let prev_block = sub.prev().await?;
println!(
"Best Next: Block Height: {}, Block Author: {}",
next_block.block_height,
next_block.value.author().await?
);
println!(
"Best Previous: Block Height: {}, Block Author: {}",
prev_block.block_height,
prev_block.value.author().await?
);
let mut sub = BlockSub::new(client.clone());
sub.set_block_height(2000000);
let next_block = sub.next().await?;
let prev_block = sub.prev().await?;
println!(
"Historical Next: Block Height: {}, Block Author: {}",
next_block.block_height,
next_block.value.author().await?
);
println!(
"Historical Previous: Block Height: {}, Block Author: {}",
prev_block.block_height,
prev_block.value.author().await?
);
Ok(())
}