use subxt::config::RpcConfigFor;
use subxt::{Error, OnlineClient, PolkadotConfig};
use subxt_rpcs::client::{ReconnectingRpcClient, RpcClient};
#[tokio::main]
async fn main() -> Result<(), Error> {
let inner_rpc_client = ReconnectingRpcClient::builder()
.build("wss://rpc.ibp.network/polkadot")
.await
.map_err(Error::other)?;
let rpc_client = RpcClient::new(inner_rpc_client);
let client = OnlineClient::<PolkadotConfig>::from_rpc_client(rpc_client.clone()).await?;
let at_block = client.at_current_block().await?;
let header = at_block.block_header().await?;
println!("Current block header via Subxt: {header:?}");
let legacy_rpcs =
subxt_rpcs::methods::LegacyRpcMethods::<RpcConfigFor<PolkadotConfig>>::new(rpc_client);
let header = legacy_rpcs
.chain_get_header(Some(at_block.block_hash()))
.await?
.unwrap();
println!("Current block header via RPC call: {header:?}");
Ok(())
}