From 84137694e1be14446a6d8a6731bc29321761765b Mon Sep 17 00:00:00 2001
From: Holger <holger@nahrstaedt.de>
Date: Mon, 30 Jul 2018 13:22:50 +0200
Subject: [PATCH] Add missing trx_num to streamed block operation

* set_next_node_on_empty_reply added to some appbase rpc calls
---
 README.rst                     | 7 +++++++
 beem/account.py                | 2 +-
 beem/blockchain.py             | 6 ++++--
 beem/utils.py                  | 2 ++
 tests/beem/test_discussions.py | 7 ++++++-
 5 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/README.rst b/README.rst
index c0e0174c..e2b4303e 100644
--- a/README.rst
+++ b/README.rst
@@ -156,6 +156,13 @@ before transmitting the packed file. Please check the hash-sum after downloading
 
 Changelog
 =========
+0.19.51
+-------
+* Add missing trx_num to streamed block operation
+* Add d.tube format to resolve_authorperm
+* disable_chain_detection added to graphenerpc (for testing hivemind e.g.)
+* set_next_node_on_empty_reply added to some appbase rpc calls
+
 0.19.50
 -------
 * Class to access Steemit Conveyor instances added by crokkon
diff --git a/beem/account.py b/beem/account.py
index 8ca130d2..42883a6f 100644
--- a/beem/account.py
+++ b/beem/account.py
@@ -94,7 +94,7 @@ class Account(BlockchainObject):
         """
         if not self.steem.is_connected():
             return
-        self.steem.rpc.set_next_node_on_empty_reply(False)
+        self.steem.rpc.set_next_node_on_empty_reply(self.steem.rpc.get_use_appbase())
         if self.steem.rpc.get_use_appbase():
                 account = self.steem.rpc.find_accounts({'accounts': [self.identifier]}, api="database")
         else:
diff --git a/beem/blockchain.py b/beem/blockchain.py
index a2828f54..131e84e4 100644
--- a/beem/blockchain.py
+++ b/beem/blockchain.py
@@ -675,7 +675,7 @@ class Blockchain(object):
                     'memo': 'https://steemit.com/lofi/@johngreenfield/lofi-joji-yeah-right',
                     '_id': '6d4c5f2d4d8ef1918acaee4a8dce34f9da384786',
                     'timestamp': datetime.datetime(2018, 5, 9, 11, 23, 6, tzinfo=<UTC>),
-                    'block_num': 22277588, 'trx_id': 'cf11b2ac8493c71063ec121b2e8517ab1e0e6bea'
+                    'block_num': 22277588, 'trx_num': 35, 'trx_id': 'cf11b2ac8493c71063ec121b2e8517ab1e0e6bea'
                 }
 
             output when `raw_ops=True` is set:
@@ -733,6 +733,7 @@ class Blockchain(object):
                     if not bool(opNames) or op_type in opNames and block_num > 0:
                         if raw_ops:
                             yield {"block_num": block_num,
+                                   "trx_num": trx_nr,
                                    "op": [op_type, op],
                                    "timestamp": timestamp}
                         else:
@@ -741,6 +742,7 @@ class Blockchain(object):
                             updated_op.update({"_id": _id,
                                                "timestamp": timestamp,
                                                "block_num": block_num,
+                                               "trx_num": trx_nr,
                                                "trx_id": trx_id})
                             yield updated_op
 
@@ -800,7 +802,7 @@ class Blockchain(object):
             lastname = None
         else:
             lastname = start
-        self.steem.rpc.set_next_node_on_empty_reply(False)
+        self.steem.rpc.set_next_node_on_empty_reply(self.steem.rpc.get_use_appbase())
         while True:
             if self.steem.rpc.get_use_appbase():
                 ret = self.steem.rpc.list_accounts({'start': lastname, 'limit': steps, 'order': 'by_name'}, api="database")["accounts"]
diff --git a/beem/utils.py b/beem/utils.py
index 09b688f5..746c773c 100644
--- a/beem/utils.py
+++ b/beem/utils.py
@@ -268,6 +268,8 @@ def remove_from_dict(obj, keys=list(), keep_keys=True):
     """
     if type(obj) == dict:
         items = list(obj.items())
+    elif isinstance(obj, dict):
+        items = list(obj.items())
     else:
         items = list(obj.__dict__.items())
     if keep_keys:
diff --git a/tests/beem/test_discussions.py b/tests/beem/test_discussions.py
index 742673dc..04d96277 100644
--- a/tests/beem/test_discussions.py
+++ b/tests/beem/test_discussions.py
@@ -12,7 +12,7 @@ from beem.discussions import (
     Post_discussions_by_payout, Discussions_by_created, Discussions_by_active,
     Discussions_by_cashout, Discussions_by_votes,
     Discussions_by_children, Discussions_by_hot, Discussions_by_feed, Discussions_by_blog,
-    Discussions_by_comments, Discussions_by_promoted
+    Discussions_by_comments, Discussions_by_promoted, Discussions
 )
 from datetime import datetime
 from beem.instance import set_shared_steem_instance
@@ -214,4 +214,9 @@ class Testcases(unittest.TestCase):
         query["limit"] = 10
         query["tag"] = "steemit"
         d = Discussions_by_promoted(query, steem_instance=bts)
+        discussions = Discussions(steem_instance=bts)
+        d2 = []
+        for dd in discussions.get_discussions("promoted", query, limit=10):
+            d2.append(dd)
         self.assertEqual(len(d), 10)
+        self.assertEqual(len(d2), 10)
-- 
GitLab