From 0f0afadc944b9e509e3a067c263767b553d497b7 Mon Sep 17 00:00:00 2001
From: Jack <jack@lbry.io>
Date: Fri, 9 Sep 2016 00:48:54 -0400
Subject: [PATCH] add 'height' parameter to get_block

---
 lbrynet/core/LBRYWallet.py           | 17 +++++++++++++++++
 lbrynet/lbrynet_daemon/LBRYDaemon.py |  7 +++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/lbrynet/core/LBRYWallet.py b/lbrynet/core/LBRYWallet.py
index 3bcac43f6..4248194b7 100644
--- a/lbrynet/core/LBRYWallet.py
+++ b/lbrynet/core/LBRYWallet.py
@@ -494,6 +494,10 @@ class LBRYWallet(object):
         d.addCallback(self._get_decoded_tx)
         return d
 
+    def get_block_info(self, height):
+        d = self._get_blockhash(height)
+        return d
+
     def get_history(self):
         d = self._get_history()
         return d
@@ -862,6 +866,9 @@ class LBRYcrdWallet(LBRYWallet):
     def get_claims_from_tx(self, txid):
         return threads.deferToThread(self._get_claims_from_tx_rpc, txid)
 
+    def _get_blockhash(self, blockhash):
+        return threads.deferToThread(self._get_blockhash_rpc, blockhash)
+
     def _get_value_for_name(self, name):
         return threads.deferToThread(self._get_value_for_name_rpc, name)
 
@@ -994,6 +1001,11 @@ class LBRYcrdWallet(LBRYWallet):
         rpc_conn = self._get_rpc_conn()
         return rpc_conn.getblock(blockhash)
 
+    @_catch_connection_error
+    def _get_blockhash_rpc(self, height):
+        rpc_conn = self._get_rpc_conn()
+        return rpc_conn.getblockhash(height)
+
     @_catch_connection_error
     def _get_claims_from_tx_rpc(self, txid):
         rpc_conn = self._get_rpc_conn()
@@ -1247,6 +1259,11 @@ class LBRYumWallet(LBRYWallet):
         d.addCallback(lambda header: self.network.blockchain.hash_header(header))
         return d
 
+    def _get_blockhash(self, height):
+        d = threads.deferToThread(self.network.blockchain.read_header, height)
+        d.addCallback(lambda header: self.network.blockchain.hash_header(header))
+        return d
+
     def get_name_claims(self):
         cmd = known_commands['getnameclaims']
         func = getattr(self.cmd_runner, cmd.name)
diff --git a/lbrynet/lbrynet_daemon/LBRYDaemon.py b/lbrynet/lbrynet_daemon/LBRYDaemon.py
index 9d2acd65a..f59ad099f 100644
--- a/lbrynet/lbrynet_daemon/LBRYDaemon.py
+++ b/lbrynet/lbrynet_daemon/LBRYDaemon.py
@@ -2255,10 +2255,13 @@ class LBRYDaemon(jsonrpc.JSONRPC):
 
         if 'blockhash' in p.keys():
             blockhash = p['blockhash']
+            d = self.session.wallet.get_block(blockhash)
+        elif 'height' in p.keys():
+            height = p['height']
+            d = self.session.wallet.get_block_info(height)
+            d.addCallback(lambda blockhash: self.session.wallet.get_block(blockhash))
         else:
             return server.failure
-
-        d = self.session.wallet.get_block(blockhash)
         d.addCallback(lambda r: self._render_response(r, OK_CODE))
         return d