Skip to content

Blocks

Fetch Ethereum block data for blocks 17000000 to 17000010.

Code

Rust
use futures::StreamExt;
use std::{collections::HashSet, sync::Arc};
use pangea_client::{
    core::types::ChainId, query::Bound,
    ClientBuilder, Format, WsProvider,
    provider::ChainProvider, requests::blocks::GetBlocksRequest, 
};
 
#[tokio::main]
async fn main() {
    dotenvy::dotenv_override().ok();
 
    let client = match ClientBuilder::default()
        .endpoint("app.pangea.foundation")
        .build::<WsProvider>()
        .await
    {
        Ok(client) => Arc::new(client),
        Err(e) => {
            eprintln!("Client failed to initialize:\n{e}");
            return;
        }
    };
 
    {
        let request = GetBlocksRequest { 
            chains: HashSet::from([ChainId::ETH]), 
            from_block: Bound::Exact(17000000), 
            to_block: Bound::Exact(17000010), 
            ..Default::default() 
        }; 
        let stream = match client 
            .get_blocks_by_format(request, Format::JsonStream, false) 
            .await
        {
            Ok(stream) => stream,
            Err(e) => {
                eprintln!("Request failed\n{e}");
                return;
            }
        };
 
        futures::pin_mut!(stream);
 
        while let Some(chunk) = stream.next().await {
            let chunk = String::from_utf8(chunk.unwrap()).unwrap();
            println!("{chunk}");
        }
    }
}

Response

[
  ...
  {
    "chain": 1,
    "block_number": "0x103664a",
    "hash": "0x5bad63a542b4deebf2d8ba93bf83b98a96ac4693640dfc3c2ccec38c3adc2bf2",
    "parent_hash": "0xe284afd9d7793371fefa661de0cfe9e7eafd47c9634834d384dac97dfefc3cbf",
    "uncles_hash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
    "miner": "0x6d2e03b7effeae98bd302a9f836d0d6ab0002766",
    "state_root": "0x61e2f2ee1df07942e84f94fafb826fddff381e1a82a8652d01999cdfd1894be9",
    "transactions_root": "0xcdfc28cae2dc1b46abca4a4da51c31e98af2e570ee42b2ad5926074162157ec3",
    "receipts_root": "0xb9efc1da0504fce1cb5149a678088563fcd16cf82b29df0e5568f39820d53460",
    "gas_used": "0xe27ff1",
    "gas_limit": "0x1c9c380",
    "base_fee_per_gas": "0x56767072e",
    "extra_data": "0x6279206275696c64657230783639",
    "logs_bloom": "0x09259370d316ab0c5c8406758195932900a878131598e3646645ada6b6e01bb656a5137a926a980feddb3b036a860b9e163b34adabd0ea97675173c995fe2081d712c0004fb028beabb3f74f4832b57ed30747b1906d3a61d01064cdc8f90c41b7bb0ec9be5aa23a0e8dd9c01b84a86b9137b54e0678f6a01e1a5b7213af81ce734a5453e665785015d369088586913bb70785b7f9ac25a8437983d80313bccb8aed91c33785795e0607ceffdb5aee541e006a9560a6a973c3400b1ac121c95f7618f08ad96082d1a0c0e8ab762b9cd2d74ce376848a7e11026478a288bcec8132fcabbf8d10c084768c909d8d92688147128009392a4dfa00def95b80979c90",
    "timestamp": 1680912011,
    "difficulty": "0x0",
    "total_difficulty": "0xc70d815d562d3cfa955",
    "size": "0x195ea",
    "mix_hash": "0xe59ae8bea3febedcfb6c7cadcefe9b21d562951988b114a87f710702c3a004fc",
    "nonce": "0x0000000000000000"
  }
]

Query Parameters

  • chains: Filters the data by specific blockchain networks.
  • from_block: Filters the data by a starting block_number.
  • to_block: Filters the data by an ending block_number.