// Copyright 2019-2022 Parity Technologies (UK) Ltd. // This file is part of subxt. // // subxt is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // subxt is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with subxt. If not, see . use subxt::ClientBuilder; #[subxt::subxt(runtime_metadata_path = "examples/polkadot_metadata.scale")] pub mod polkadot {} #[async_std::main] async fn main() -> Result<(), Box> { env_logger::init(); let api = ClientBuilder::new() .set_url("wss://rpc.polkadot.io") .build() .await? .to_runtime_api::>(); let block_number = 1; 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 {} not found.", block_number); } Ok(()) }