// Copyright 2019-2022 Parity Technologies (UK) Ltd. // This file is dual-licensed as Apache-2.0 or GPL-3.0. // see LICENSE for license details. //! To run this example, a local polkadot node should be running. Example verified against polkadot 0.9.18-4542a603cc-aarch64-macos. //! //! E.g. //! ```bash //! curl "https://github.com/paritytech/polkadot/releases/download/v0.9.18/polkadot" --output /usr/local/bin/polkadot --location //! polkadot --dev --tmp //! ``` use subxt::{ ClientBuilder, DefaultConfig, PolkadotExtrinsicParams, }; #[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata.scale")] pub mod polkadot {} #[tokio::main] async fn main() -> Result<(), Box> { tracing_subscriber::fmt::init(); let api = ClientBuilder::new() .set_url("wss://rpc.polkadot.io:443") .build() .await? .to_runtime_api::>>(); let block_number = 1u32; let block_hash = api .client .rpc() .block_hash(Some(block_number.into())) .await?; if let Some(hash) = block_hash { println!("Block hash for block number {block_number}: {hash}"); } else { println!("Block number {block_number} not found."); } Ok(()) }