From 783b8647eb2f5f35fd8a8bf600ad77b039f5a0cd Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Fri, 16 Nov 2018 17:29:49 +0200 Subject: [PATCH] Add partial support for "blockchain.block.header" Electrum RPC https://electrumx.readthedocs.io/en/latest/protocol-methods.html#blockchain-block-header --- src/rpc.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/rpc.rs b/src/rpc.rs index c99f545..016e0d4 100644 --- a/src/rpc.rs +++ b/src/rpc.rs @@ -125,6 +125,17 @@ impl Connection { Ok(json!(self.query.get_fee_histogram())) } + fn blockchain_block_header(&self, params: &[Value]) -> Result { + let height = usize_from_value(params.get(0), "height")?; + let header: String = self + .query + .get_headers(&[height]) + .into_iter() + .map(|entry| hex::encode(&serialize(entry.header()))) + .collect(); + Ok(json!(header)) + } + fn blockchain_block_headers(&self, params: &[Value]) -> Result { let start_height = usize_from_value(params.get(0), "start_height")?; let count = usize_from_value(params.get(1), "count")?; @@ -285,6 +296,7 @@ impl Connection { "server.donation_address" => self.server_donation_address(), "server.peers.subscribe" => self.server_peers_subscribe(), "mempool.get_fee_histogram" => self.mempool_get_fee_histogram(), + "blockchain.block.header" => self.blockchain_block_header(¶ms), "blockchain.block.headers" => self.blockchain_block_headers(¶ms), "blockchain.block.get_header" => self.blockchain_block_get_header(¶ms), "blockchain.estimatefee" => self.blockchain_estimatefee(¶ms),