From 85010a979278a7d8263f4c33b6060ef794a78b09 Mon Sep 17 00:00:00 2001
From: Holger Nahrstaedt <holgernahrstaedt@gmx.de>
Date: Fri, 9 Oct 2020 20:21:42 +0200
Subject: [PATCH] Fix severial issues for HF24

* Add new operation ids for HF 24
* Remove remaining py2 code
* Run unit tests on beta.openhive.network
* Fix compatibility issues with HF 24
* account get_follow_count, get_followers and get_following have been fixed
---
 CHANGELOG.rst                            |  4 ++
 beem/account.py                          | 44 +++++++-----
 beem/amount.py                           |  9 +--
 beem/asciichart.py                       |  7 +-
 beem/asset.py                            |  6 +-
 beem/block.py                            |  6 +-
 beem/blockchain.py                       | 16 +----
 beem/blockchaininstance.py               |  8 +--
 beem/blockchainobject.py                 |  2 +-
 beem/blurt.py                            |  8 +--
 beem/cli.py                              | 18 +++--
 beem/comment.py                          | 15 ++--
 beem/community.py                        |  7 +-
 beem/constants.py                        |  6 +-
 beem/conveyor.py                         |  6 +-
 beem/discussions.py                      |  6 +-
 beem/exceptions.py                       |  6 +-
 beem/hive.py                             |  8 +--
 beem/hivesigner.py                       |  7 +-
 beem/imageuploader.py                    |  6 +-
 beem/instance.py                         |  7 +-
 beem/market.py                           |  7 +-
 beem/memo.py                             |  8 +--
 beem/message.py                          |  7 +-
 beem/nodelist.py                         |  7 +-
 beem/notify.py                           |  6 +-
 beem/price.py                            |  9 +--
 beem/profile.py                          |  6 +-
 beem/rc.py                               |  6 +-
 beem/snapshot.py                         |  7 +-
 beem/steem.py                            |  8 +--
 beem/storage.py                          |  6 +-
 beem/transactionbuilder.py               |  9 +--
 beem/utils.py                            |  7 +-
 beem/vote.py                             |  7 +-
 beem/wallet.py                           |  7 +-
 beem/witness.py                          |  7 +-
 beemapi/graphenerpc.py                   | 14 +---
 beemapi/node.py                          |  7 +-
 beemapi/noderpc.py                       |  6 +-
 beemapi/rpcutils.py                      |  6 +-
 beemapi/websocket.py                     |  7 +-
 beembase/ledgertransactions.py           |  6 +-
 beembase/memo.py                         |  7 +-
 beembase/objects.py                      |  8 +--
 beembase/objecttypes.py                  |  5 +-
 beembase/operationids.py                 | 10 +--
 beembase/operations.py                   |  6 +-
 beembase/signedtransactions.py           |  6 +-
 beembase/transactions.py                 |  5 +-
 beemgraphenebase/account.py              | 15 ----
 beemgraphenebase/aes.py                  |  8 +--
 beemgraphenebase/base58.py               |  8 +--
 beemgraphenebase/bip38.py                |  6 +-
 beemgraphenebase/chains.py               |  5 +-
 beemgraphenebase/ecdsasig.py             |  8 +--
 beemgraphenebase/objects.py              | 10 +--
 beemgraphenebase/operations.py           |  6 +-
 beemgraphenebase/py23.py                 |  6 +-
 beemgraphenebase/signedtransactions.py   |  6 +-
 beemgraphenebase/types.py                | 39 +---------
 beemgraphenebase/unsignedtransactions.py |  7 +-
 setup.py                                 |  1 +
 tests/beem/nodes.py                      | 15 ++++
 tests/beem/test_account.py               | 16 ++---
 tests/beem/test_aes.py                   |  8 +--
 tests/beem/test_amount.py                | 58 +++++++--------
 tests/beem/test_asset.py                 | 51 +++++--------
 tests/beem/test_base_objects.py          | 11 +--
 tests/beem/test_block.py                 | 12 +---
 tests/beem/test_blockchain.py            | 13 +---
 tests/beem/test_blockchain_batch.py      | 12 +---
 tests/beem/test_blockchain_threading.py  | 13 ++--
 tests/beem/test_cli.py                   | 18 ++---
 tests/beem/test_comment.py               | 12 +---
 tests/beem/test_connection.py            |  1 +
 tests/beem/test_constants.py             | 13 +---
 tests/beem/test_conveyor.py              | 10 +--
 tests/beem/test_discussions.py           | 12 +---
 tests/beem/test_hive.py                  | 39 ++++------
 tests/beem/test_hivesigner.py            | 13 +---
 tests/beem/test_instance.py              | 17 ++---
 tests/beem/test_market.py                | 92 +++++++++++-------------
 tests/beem/test_memo.py                  |  8 +--
 tests/beem/test_message.py               |  8 +--
 tests/beem/test_nodelist.py              |  6 +-
 tests/beem/test_objectcache.py           |  9 +--
 tests/beem/test_price.py                 | 87 +++++++++++-----------
 tests/beem/test_profile.py               |  8 +--
 tests/beem/test_steem.py                 | 21 ++----
 tests/beem/test_storage.py               | 13 +---
 tests/beem/test_testnet.py               |  7 +-
 tests/beem/test_txbuffers.py             | 12 +---
 tests/beem/test_utils.py                 |  5 +-
 tests/beem/test_vote.py                  | 12 +---
 tests/beem/test_wallet.py                | 12 +---
 tests/beem/test_witness.py               | 14 ++--
 97 files changed, 350 insertions(+), 842 deletions(-)
 create mode 100644 tests/beem/nodes.py

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index d23ef879..e6b0333d 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -5,6 +5,10 @@ Changelog
 * Add hbd_interest_rate to beempy witnessproperties
 * Add beempy listdelegations (thanks to @crokkon)
 * fix account_name assignment from dict in get_account_reputations() (PR #259)
+* Add new operation ids for HF 24
+* Remove remaining py2 code
+* Run unit tests on beta.openhive.network
+* Fix compatibility issues with HF 24
 
 0.24.9
 ------
diff --git a/beem/account.py b/beem/account.py
index ec9a9985..3d817f8c 100644
--- a/beem/account.py
+++ b/beem/account.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import pytz
 import json
 from datetime import datetime, timedelta, date, time
@@ -1005,7 +1000,10 @@ class Account(BlockchainObject):
             raise OfflineHasNoRPCException("No RPC available in offline mode!")
         self.blockchain.rpc.set_next_node_on_empty_reply(False)
         if self.blockchain.rpc.get_use_appbase():
-            return self.blockchain.rpc.get_follow_count({'account': account}, api='follow')
+            try:
+                return self.blockchain.rpc.get_follow_count({'account': account}, api='follow')
+            except:
+                return self.blockchain.rpc.get_follow_count(account, api='condenser')
         else:
             return self.blockchain.rpc.get_follow_count(account, api='follow')
 
@@ -1086,18 +1084,30 @@ class Account(BlockchainObject):
             if self.blockchain.rpc.get_use_appbase():
                 query = {'account': self.name, 'start': last_user, 'type': what, 'limit': limit}
                 if direction == "follower":
-                    followers = self.blockchain.rpc.get_followers(query, api='follow')
+                    try:
+                        followers = self.blockchain.rpc.get_followers(query, api='follow')
+                    except:
+                        followers = self.blockchain.rpc.get_followers(self.name, last_user, what, limit, api='condenser')
                     if isinstance(followers, dict) and 'followers' in followers:
                         followers = followers['followers']
                 elif direction == "following":
-                    followers = self.blockchain.rpc.get_following(query, api='follow')
+                    try:
+                        followers = self.blockchain.rpc.get_following(query, api='follow')
+                    except:
+                        followers = self.blockchain.rpc.get_following(self.name, last_user, what, limit, api='condenser')
                     if isinstance(followers, dict) and 'following' in followers:
                         followers = followers['following']
             else:
                 if direction == "follower":
-                    followers = self.blockchain.rpc.get_followers(self.name, last_user, what, limit, api='follow')
+                    try:
+                        followers = self.blockchain.rpc.get_followers(self.name, last_user, what, limit, api='follow')
+                    except:
+                        followers = self.blockchain.rpc.get_followers([self.name, last_user, what, limit], api='condenser')
                 elif direction == "following":
-                    followers = self.blockchain.rpc.get_following(self.name, last_user, what, limit, api='follow')
+                    try:
+                        followers = self.blockchain.rpc.get_following(self.name, last_user, what, limit, api='follow')
+                    except:
+                        followers = self.blockchain.rpc.get_following(self.name, last_user, what, limit, api='condenser')
             if cnt == 0:
                 followers_list = followers
             elif followers is not None and len(followers) > 1:
@@ -1741,9 +1751,9 @@ class Account(BlockchainObject):
         else:
             return self.blockchain.rpc.get_expiring_vesting_delegations(account, formatTimeString(after), limit)
 
-    def get_account_votes(self, account=None, start_author="", start_permlink=""):
+    def get_account_votes(self, account=None, start_author="", start_permlink="", limit=1000, start_date=None):
         """ Returns all votes that the account has done
-
+            
             :rtype: list
 
             .. code-block:: python
@@ -1774,15 +1784,17 @@ class Account(BlockchainObject):
         vote_list = []
         finished = False
         while not finished:
-            ret = self.blockchain.rpc.list_votes({"start": [account, start_author, start_permlink], "limit": 1000, "order": "by_voter_comment"}, api="database")["votes"]
+            ret = self.blockchain.rpc.list_votes({"start": [account, start_author, start_permlink], "limit": limit, "order": "by_voter_comment"}, api="database")["votes"]
+            if len(ret) < limit:
+                finished = True
             if start_author != "":
                 if len(ret) == 0:
                     finished = True
                 ret = ret[1:]
             for vote in ret:
-                if vote["voter"] != account:
+                last_update = formatTimeString(vote["last_update"])
+                if start_date is not None and last_update < start_date:
                     finished = True
-                    continue
                 vote_list.append(vote)
                 start_author = vote["author"]
                 start_permlink = vote["permlink"]
diff --git a/beem/amount.py b/beem/amount.py
index d6929c4b..70877573 100644
--- a/beem/amount.py
+++ b/beem/amount.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
 from beem.instance import shared_blockchain_instance
 from beem.asset import Asset
@@ -27,7 +21,6 @@ def quantize(amount, precision):
     return amount.quantize(places, rounding=ROUND_DOWN)  
 
 
-@python_2_unicode_compatible
 class Amount(dict):
     """ This class deals with Amounts of any asset to simplify dealing with the tuple::
 
diff --git a/beem/asciichart.py b/beem/asciichart.py
index 9e1be974..7ac82f54 100644
--- a/beem/asciichart.py
+++ b/beem/asciichart.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import sys
 from math import cos
 from math import sin
diff --git a/beem/asset.py b/beem/asset.py
index 91520e63..257a3172 100644
--- a/beem/asset.py
+++ b/beem/asset.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import json
 from .exceptions import AssetDoesNotExistsException
 from .blockchainobject import BlockchainObject
diff --git a/beem/block.py b/beem/block.py
index edaf68c5..dd09ec78 100644
--- a/beem/block.py
+++ b/beem/block.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 from datetime import datetime, timedelta, date
 import json
 from .exceptions import BlockDoesNotExistsException
diff --git a/beem/blockchain.py b/beem/blockchain.py
index a6cd622f..72638b8a 100644
--- a/beem/blockchain.py
+++ b/beem/blockchain.py
@@ -1,12 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from future.utils import python_2_unicode_compatible
-from builtins import str
-from builtins import range
-from builtins import object
+# -*- coding: utf-8 -*-
 import sys
 import time
 import hashlib
@@ -26,10 +18,7 @@ from beem.instance import shared_blockchain_instance
 from .amount import Amount
 import beem as stm
 log = logging.getLogger(__name__)
-if sys.version_info < (3, 0):
-    from Queue import Queue
-else:
-    from queue import Queue
+from queue import Queue
 FUTURES_MODULE = None
 if not FUTURES_MODULE:
     try:
@@ -171,7 +160,6 @@ class Pool:
         return results
 
 
-@python_2_unicode_compatible
 class Blockchain(object):
     """ This class allows to access the blockchain and read data
         from it
diff --git a/beem/blockchaininstance.py b/beem/blockchaininstance.py
index 176edbdb..a7d7fe67 100644
--- a/beem/blockchaininstance.py
+++ b/beem/blockchaininstance.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 import json
 import logging
 import re
diff --git a/beem/blockchainobject.py b/beem/blockchainobject.py
index 9702717e..82315a49 100644
--- a/beem/blockchainobject.py
+++ b/beem/blockchainobject.py
@@ -1,4 +1,4 @@
-# This Python file uses the following encoding: utf-8
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
 from beem.instance import shared_blockchain_instance
 from datetime import datetime, timedelta
diff --git a/beem/blurt.py b/beem/blurt.py
index 6d84e333..4bc17168 100644
--- a/beem/blurt.py
+++ b/beem/blurt.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 import json
 import logging
 import re
diff --git a/beem/cli.py b/beem/cli.py
index ae1df7ce..44e56083 100644
--- a/beem/cli.py
+++ b/beem/cli.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import os
 import ast
 import json
@@ -440,7 +435,7 @@ def nextnode(results):
     stm.move_current_node_to_front()
     node = stm.get_default_nodes()
     offline = stm.offline
-    if len(node) < 2:
+    if len(node) < 2 or isinstance(node, str):
         print("At least two nodes are needed!")
         return
     node = node[1:] + [node[0]]
@@ -2252,13 +2247,16 @@ def beneficiaries(authorperm, beneficiaries, export):
         account = stm.config["default_account"]
     if not unlock_wallet(stm):
         return
-
+    
     options = {"author": c["author"],
                "permlink": c["permlink"],
                "max_accepted_payout": c["max_accepted_payout"],
-               "percent_steem_dollars": c["percent_steem_dollars"],
                "allow_votes": c["allow_votes"],
                "allow_curation_rewards": c["allow_curation_rewards"]}
+    if "percent_steem_dollars" in c:
+        options["percent_steem_dollars"] = c["percent_steem_dollars"]
+    elif "percent_hbd" in c:
+        options["percent_hbd"] = c["percent_hbd"]
 
     if isinstance(beneficiaries, tuple) and len(beneficiaries) == 1:
         beneficiaries = beneficiaries[0].split(",")
@@ -2530,7 +2528,7 @@ def download(permlink, account, save, export):
         yaml_prefix += 'max_accepted_payout: %s\n' % str(comment["max_accepted_payout"])
         if "percent_steem_dollars" in comment:
             yaml_prefix += 'percent_steem_dollars: %s\n' %  str(comment["percent_steem_dollars"])
-        else:
+        elif "percent_hbd" in comment:
             yaml_prefix += 'percent_hbd: %s\n' %  str(comment["percent_hbd"])
         if "tags" in comment.json_metadata:
             if len(comment.json_metadata["tags"]) > 0 and comment["category"] != comment.json_metadata["tags"][0] and len(comment["category"]) > 0:
diff --git a/beem/comment.py b/beem/comment.py
index 37c61071..43d784bd 100644
--- a/beem/comment.py
+++ b/beem/comment.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import json
 import re
 import logging
@@ -499,12 +494,16 @@ class Comment(BlockchainObject):
         benefactor_tokens = author_tokens * beneficiaries_pct / 100.
         author_tokens -= benefactor_tokens
 
-        if median_hist is not None:
+        if median_hist is not None and "percent_steem_dollars" in self:
             sbd_steem = author_tokens * self["percent_steem_dollars"] / 20000.
             vesting_steem = median_price.as_base(self.blockchain.token_symbol) * (author_tokens - sbd_steem)
             return {'pending_rewards': True, "payout_SP": vesting_steem, "payout_SBD": sbd_steem, "total_payout_SBD": author_tokens}
+        elif median_hist is not None and "percent_hbd" in self:
+            sbd_steem = author_tokens * self["percent_hbd"] / 20000.
+            vesting_steem = median_price.as_base(self.blockchain.token_symbol) * (author_tokens - sbd_steem)
+            return {'pending_rewards': True, "payout_SP": vesting_steem, "payout_SBD": sbd_steem, "total_payout_SBD": author_tokens}        
         else:
-            return {'pending_rewards': True, "total_payout": author_tokens}
+            return {'pending_rewards': True, "total_payout": author_tokens, "payout_SBD": None, "total_payout_SBD": None}
 
     def get_curation_rewards(self, pending_payout_SBD=False, pending_payout_value=None):
         """ Returns the curation rewards. The split between creator/curator is currently 50%/50%.
diff --git a/beem/community.py b/beem/community.py
index 1e64c79a..57c542b5 100644
--- a/beem/community.py
+++ b/beem/community.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import pytz
 import json
 from datetime import datetime, timedelta, date, time
diff --git a/beem/constants.py b/beem/constants.py
index 6d003bc7..eed6663e 100644
--- a/beem/constants.py
+++ b/beem/constants.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 
 
 STEEM_100_PERCENT = 10000
diff --git a/beem/conveyor.py b/beem/conveyor.py
index 28a336bd..8c7f12f5 100644
--- a/beem/conveyor.py
+++ b/beem/conveyor.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import hashlib
 import base64
 import json
diff --git a/beem/discussions.py b/beem/discussions.py
index 39fec91b..6f52824f 100644
--- a/beem/discussions.py
+++ b/beem/discussions.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 from .instance import shared_blockchain_instance
 from .account import Account
 from .comment import Comment
diff --git a/beem/exceptions.py b/beem/exceptions.py
index baee5db5..4c8b47a6 100644
--- a/beem/exceptions.py
+++ b/beem/exceptions.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 
 
 class WalletExists(Exception):
diff --git a/beem/hive.py b/beem/hive.py
index 47bc19e3..95fbc8a0 100644
--- a/beem/hive.py
+++ b/beem/hive.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 import json
 import logging
 import re
diff --git a/beem/hivesigner.py b/beem/hivesigner.py
index 58aef166..882e58b6 100644
--- a/beem/hivesigner.py
+++ b/beem/hivesigner.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import json
 try:
     from urllib.parse import urlparse, urlencode, urljoin
diff --git a/beem/imageuploader.py b/beem/imageuploader.py
index 7ec054b5..6cff85c2 100644
--- a/beem/imageuploader.py
+++ b/beem/imageuploader.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import logging
 import json
 import io
diff --git a/beem/instance.py b/beem/instance.py
index bccf638f..0a8d788a 100644
--- a/beem/instance.py
+++ b/beem/instance.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import object
+# -*- coding: utf-8 -*-
 import beem
 
 
diff --git a/beem/market.py b/beem/market.py
index 281ef6f6..a3a914d9 100644
--- a/beem/market.py
+++ b/beem/market.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import random
 import pytz
 import logging
diff --git a/beem/memo.py b/beem/memo.py
index 3b715d36..0681142e 100644
--- a/beem/memo.py
+++ b/beem/memo.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 from beem.instance import shared_blockchain_instance
 import random
 import os
diff --git a/beem/message.py b/beem/message.py
index 597ef9b4..aabedb74 100644
--- a/beem/message.py
+++ b/beem/message.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import object
+# -*- coding: utf-8 -*-
 import re
 import json
 import logging
diff --git a/beem/nodelist.py b/beem/nodelist.py
index e6426bbe..6252dec9 100644
--- a/beem/nodelist.py
+++ b/beem/nodelist.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import next
+# -*- coding: utf-8 -*-
 import re
 import time
 import math
diff --git a/beem/notify.py b/beem/notify.py
index d0d1a8b0..bcea5432 100644
--- a/beem/notify.py
+++ b/beem/notify.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import logging
 from events import Events
 from beemapi.websocket import NodeWebsocket
diff --git a/beem/price.py b/beem/price.py
index aeee4159..4ef97834 100644
--- a/beem/price.py
+++ b/beem/price.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
 from fractions import Fraction
 from beem.instance import shared_blockchain_instance
@@ -26,7 +20,6 @@ def check_asset(other, self, stm):
             raise AssertionError()
 
 
-@python_2_unicode_compatible
 class Price(dict):
     """ This class deals with all sorts of prices of any pair of assets to
         simplify dealing with the tuple::
diff --git a/beem/profile.py b/beem/profile.py
index f5128746..523b2a65 100644
--- a/beem/profile.py
+++ b/beem/profile.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import logging
 import json
 try:
diff --git a/beem/rc.py b/beem/rc.py
index 78cd66c6..dc04a43c 100644
--- a/beem/rc.py
+++ b/beem/rc.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import logging
 import json
 from .instance import shared_blockchain_instance
diff --git a/beem/snapshot.py b/beem/snapshot.py
index 9801b4ea..5e27cdaa 100644
--- a/beem/snapshot.py
+++ b/beem/snapshot.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import pytz
 import json
 import re
diff --git a/beem/steem.py b/beem/steem.py
index 0de7952c..9bb79ad4 100644
--- a/beem/steem.py
+++ b/beem/steem.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 import json
 import logging
 import re
diff --git a/beem/storage.py b/beem/storage.py
index b6494e08..7a82c452 100644
--- a/beem/storage.py
+++ b/beem/storage.py
@@ -1,8 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import logging
 from .nodelist import NodeList
 log = logging.getLogger(__name__)
diff --git a/beem/transactionbuilder.py b/beem/transactionbuilder.py
index b321ed62..ca76a1b3 100644
--- a/beem/transactionbuilder.py
+++ b/beem/transactionbuilder.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 import logging
 import struct
 import time
@@ -29,7 +23,6 @@ from beem.instance import shared_blockchain_instance
 log = logging.getLogger(__name__)
 
 
-@python_2_unicode_compatible
 class TransactionBuilder(dict):
     """ This class simplifies the creation of transactions by adding
         operations and signers.
diff --git a/beem/utils.py b/beem/utils.py
index 99bce729..36a631c0 100644
--- a/beem/utils.py
+++ b/beem/utils.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import next
+# -*- coding: utf-8 -*-
 import re
 import json
 import time as timenow
diff --git a/beem/vote.py b/beem/vote.py
index 6798ca8d..94cf30b7 100644
--- a/beem/vote.py
+++ b/beem/vote.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import json
 import math
 import pytz
diff --git a/beem/wallet.py b/beem/wallet.py
index 4a4dea7a..89a75ec3 100644
--- a/beem/wallet.py
+++ b/beem/wallet.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str, bytes
-from builtins import object
+# -*- coding: utf-8 -*-
 import logging
 import os
 from beemgraphenebase.account import PrivateKey
diff --git a/beem/witness.py b/beem/witness.py
index 6474b8fa..402dec8d 100644
--- a/beem/witness.py
+++ b/beem/witness.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import json
 from beem.instance import shared_blockchain_instance
 from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
diff --git a/beemapi/graphenerpc.py b/beemapi/graphenerpc.py
index 598f11d2..d4e12b7d 100644
--- a/beemapi/graphenerpc.py
+++ b/beemapi/graphenerpc.py
@@ -1,11 +1,4 @@
-"""graphennewsrpc."""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import next
-from builtins import str
-from builtins import object
+# -*- coding: utf-8 -*-
 from itertools import cycle
 import threading
 import sys
@@ -27,10 +20,7 @@ from .rpcutils import (
 from .node import Nodes
 from beemgraphenebase.version import version as beem_version
 from beemgraphenebase.chains import known_chains
-if sys.version_info[0] < 3:
-    from thread import interrupt_main
-else:
-    from _thread import interrupt_main
+from _thread import interrupt_main
 WEBSOCKET_MODULE = None
 if not WEBSOCKET_MODULE:
     try:
diff --git a/beemapi/node.py b/beemapi/node.py
index 6a943489..16842988 100644
--- a/beemapi/node.py
+++ b/beemapi/node.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
+# -*- coding: utf-8 -*-
 import json
 import re
 import time
diff --git a/beemapi/noderpc.py b/beemapi/noderpc.py
index 6b3123b5..ce8cc830 100644
--- a/beemapi/noderpc.py
+++ b/beemapi/noderpc.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import re
 import sys
 from .graphenerpc import GrapheneRPC
diff --git a/beemapi/rpcutils.py b/beemapi/rpcutils.py
index ceb427eb..57ad381f 100644
--- a/beemapi/rpcutils.py
+++ b/beemapi/rpcutils.py
@@ -1,8 +1,4 @@
-"""graphennewsrpc."""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import time
 import json
 import logging
diff --git a/beemapi/websocket.py b/beemapi/websocket.py
index 5185b624..43acf424 100644
--- a/beemapi/websocket.py
+++ b/beemapi/websocket.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import next
-from builtins import str
+# -*- coding: utf-8 -*-
 import traceback
 import threading
 import ssl
diff --git a/beembase/ledgertransactions.py b/beembase/ledgertransactions.py
index d5601206..43bf1187 100644
--- a/beembase/ledgertransactions.py
+++ b/beembase/ledgertransactions.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import int, str
+# -*- coding: utf-8 -*-
 from beemgraphenebase.unsignedtransactions import Unsigned_Transaction as GrapheneUnsigned_Transaction
 from .operations import Operation
 from beemgraphenebase.chains import known_chains
diff --git a/beembase/memo.py b/beembase/memo.py
index f7e351d3..be030979 100644
--- a/beembase/memo.py
+++ b/beembase/memo.py
@@ -1,9 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import py23_bytes, bytes_types
 from beemgraphenebase.base58 import base58encode, base58decode
 from beemgraphenebase.types import varintdecode
diff --git a/beembase/objects.py b/beembase/objects.py
index 8dd1416c..2f45d010 100644
--- a/beembase/objects.py
+++ b/beembase/objects.py
@@ -1,10 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
-from builtins import object
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 import json
 from math import floor
 from beemgraphenebase.py23 import py23_bytes, bytes_types, integer_types, string_types, text_type
diff --git a/beembase/objecttypes.py b/beembase/objecttypes.py
index 80f1f860..eaade3b2 100644
--- a/beembase/objecttypes.py
+++ b/beembase/objecttypes.py
@@ -1,7 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 #: Object types for object ids
 object_type = {}
 object_type["dynamic_global_property"] = 0
diff --git a/beembase/operationids.py b/beembase/operationids.py
index 4e72b546..6b3d023c 100644
--- a/beembase/operationids.py
+++ b/beembase/operationids.py
@@ -1,7 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 #: Operation ids
 ops = [
     'vote',
@@ -73,6 +70,11 @@ ops = [
     'sps_fund',
     'hardfork_hive',
     'hardfork_hive_restore',
+    'delayed_voting',
+    'consolidate_treasury_balance',
+    'effective_comment_vote',
+    'ineffective_delete_comment',
+    'sps_convert'
 ]
 operations = {o: ops.index(o) for o in ops}
 
diff --git a/beembase/operations.py b/beembase/operations.py
index c83d1965..e2a54e9d 100644
--- a/beembase/operations.py
+++ b/beembase/operations.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import int, str
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import bytes_types, integer_types, string_types, text_type
 from collections import OrderedDict
 import json
diff --git a/beembase/signedtransactions.py b/beembase/signedtransactions.py
index 963882e7..2c0c6c94 100644
--- a/beembase/signedtransactions.py
+++ b/beembase/signedtransactions.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import int, str
+# -*- coding: utf-8 -*-
 from beemgraphenebase.signedtransactions import Signed_Transaction as GrapheneSigned_Transaction
 from .operations import Operation
 from beemgraphenebase.chains import known_chains
diff --git a/beembase/transactions.py b/beembase/transactions.py
index 53182e8b..dba77a2f 100644
--- a/beembase/transactions.py
+++ b/beembase/transactions.py
@@ -1,7 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 
 
 def getBlockParams(ws):
diff --git a/beemgraphenebase/account.py b/beemgraphenebase/account.py
index 03b1df17..5c5ba6a4 100644
--- a/beemgraphenebase/account.py
+++ b/beemgraphenebase/account.py
@@ -1,13 +1,4 @@
 # -*- coding: utf-8 -*-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes
-from builtins import chr
-from builtins import range
-from builtins import object
-from future.utils import python_2_unicode_compatible
 import hashlib
 import sys
 import re
@@ -80,7 +71,6 @@ class PasswordKey(Prefix):
         return self.get_public()
 
 
-@python_2_unicode_compatible
 class BrainKey(Prefix):
     """Brainkey implementation similar to the graphene-ui web-wallet.
 
@@ -178,7 +168,6 @@ class BrainKey(Prefix):
 # 
 # Copyright (c) 2013 Pavol Rusnak
 # Copyright (c) 2017 mruddy
-@python_2_unicode_compatible
 class Mnemonic(object):
     """BIP39 mnemoric implementation"""
     def __init__(self):
@@ -456,7 +445,6 @@ class MnemonicKey(Prefix):
         return self.get_public()
 
 
-@python_2_unicode_compatible
 class Address(Prefix):
     """ Address class
 
@@ -541,7 +529,6 @@ class Address(Prefix):
         return py23_bytes(self._address)
 
 
-@python_2_unicode_compatible
 class GrapheneAddress(Address):
     """ Graphene Addresses are different. Hence we have a different class
     """
@@ -561,7 +548,6 @@ class GrapheneAddress(Address):
         return cls(result, prefix=pubkey.prefix)
 
 
-@python_2_unicode_compatible
 class PublicKey(Prefix):
     """ This class deals with Public Keys and inherits ``Address``.
 
@@ -714,7 +700,6 @@ class PublicKey(Prefix):
         return GrapheneAddress.from_pubkey(repr(self), prefix=self.prefix)
 
 
-@python_2_unicode_compatible
 class PrivateKey(Prefix):
     """ Derives the compressed and uncompressed public keys and
         constructs two instances of :class:`PublicKey`:
diff --git a/beemgraphenebase/aes.py b/beemgraphenebase/aes.py
index 517bb072..0e5e3de8 100644
--- a/beemgraphenebase/aes.py
+++ b/beemgraphenebase/aes.py
@@ -1,10 +1,4 @@
-# This Python file uses the following encoding: utf-8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import chr
-from builtins import object
+# -*- coding: utf-8 -*-
 import hashlib
 import base64
 try:
diff --git a/beemgraphenebase/base58.py b/beemgraphenebase/base58.py
index e822c5c3..f1c3ba27 100644
--- a/beemgraphenebase/base58.py
+++ b/beemgraphenebase/base58.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 from binascii import hexlify, unhexlify
 from .py23 import py23_bytes, py23_chr, bytes_types, integer_types, string_types, text_type
 from .prefix import Prefix
@@ -13,7 +8,6 @@ import logging
 log = logging.getLogger(__name__)
 
 
-@python_2_unicode_compatible
 class Base58(Prefix):
     """Base58 base class
 
diff --git a/beemgraphenebase/bip38.py b/beemgraphenebase/bip38.py
index f804a95f..1c994419 100644
--- a/beemgraphenebase/bip38.py
+++ b/beemgraphenebase/bip38.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str
+# -*- coding: utf-8 -*-
 import sys
 import logging
 import hashlib
diff --git a/beemgraphenebase/chains.py b/beemgraphenebase/chains.py
index d2b76c9f..faa1e8a9 100644
--- a/beemgraphenebase/chains.py
+++ b/beemgraphenebase/chains.py
@@ -1,7 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 default_prefix = "STM"
 known_chains = {
     "HIVE": {
diff --git a/beemgraphenebase/ecdsasig.py b/beemgraphenebase/ecdsasig.py
index 81a3d463..d7deb97a 100644
--- a/beemgraphenebase/ecdsasig.py
+++ b/beemgraphenebase/ecdsasig.py
@@ -1,10 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, str
-from builtins import chr
-from builtins import range
+# -*- coding: utf-8 -*-
 import sys
 import time
 import ecdsa
diff --git a/beemgraphenebase/objects.py b/beemgraphenebase/objects.py
index f141a05a..29acbde4 100644
--- a/beemgraphenebase/objects.py
+++ b/beemgraphenebase/objects.py
@@ -1,10 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import object
-from future.utils import python_2_unicode_compatible
+# -*- coding: utf-8 -*-
 from collections import OrderedDict
 import json
 from beemgraphenebase.types import (
@@ -19,7 +13,6 @@ from .objecttypes import object_type
 from .operationids import operations
 
 
-@python_2_unicode_compatible
 class Operation(object):
     def __init__(self, op):
         if isinstance(op, list) and len(op) == 2:
@@ -81,7 +74,6 @@ class Operation(object):
         return json.dumps([self.opId, self.op.toJson()])
 
 
-@python_2_unicode_compatible
 class GrapheneObject(object):
     """ Core abstraction class
 
diff --git a/beemgraphenebase/operations.py b/beemgraphenebase/operations.py
index 8bf23dd6..971d8ce0 100644
--- a/beemgraphenebase/operations.py
+++ b/beemgraphenebase/operations.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from collections import OrderedDict
+# -*- coding: utf-8 -*-
 import json
 from .types import (
     Uint8, Int16, Uint16, Uint32, Uint64,
diff --git a/beemgraphenebase/py23.py b/beemgraphenebase/py23.py
index 20ab4492..1e909def 100644
--- a/beemgraphenebase/py23.py
+++ b/beemgraphenebase/py23.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, int, str, chr
+# -*- coding: utf-8 -*-
 import sys
 
 PY2 = sys.version_info[0] == 2
diff --git a/beemgraphenebase/signedtransactions.py b/beemgraphenebase/signedtransactions.py
index 136f52e4..b652abec 100644
--- a/beemgraphenebase/signedtransactions.py
+++ b/beemgraphenebase/signedtransactions.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, str, int
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import py23_bytes, bytes_types
 import ecdsa
 import hashlib
diff --git a/beemgraphenebase/types.py b/beemgraphenebase/types.py
index 2d3b4d28..b62bd2a5 100644
--- a/beemgraphenebase/types.py
+++ b/beemgraphenebase/types.py
@@ -1,14 +1,4 @@
-"""types."""
-# encoding=utf8
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-from builtins import bytes
-from builtins import str
-from builtins import object
-from builtins import int
+# -*- coding: utf-8 -*-
 import json
 import struct
 import sys
@@ -18,8 +8,6 @@ from binascii import hexlify, unhexlify
 from datetime import datetime
 from collections import OrderedDict
 from .objecttypes import object_type
-
-from future.utils import python_2_unicode_compatible
 from .py23 import py23_bytes
 
 timeformat = '%Y-%m-%dT%H:%M:%S%Z'
@@ -57,7 +45,6 @@ def JsonObj(data):
     return json.loads(str(data))
 
 
-@python_2_unicode_compatible
 class Uint8(object):
     """Uint8."""
 
@@ -74,7 +61,6 @@ class Uint8(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Int16(object):
     """Int16."""
 
@@ -90,7 +76,6 @@ class Int16(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Uint16(object):
     def __init__(self, d):
         self.data = int(d)
@@ -103,7 +88,6 @@ class Uint16(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Uint32(object):
     def __init__(self, d):
         self.data = int(d)
@@ -117,7 +101,6 @@ class Uint32(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Uint64(object):
     def __init__(self, d):
         self.data = int(d)
@@ -131,7 +114,6 @@ class Uint64(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Varint32(object):
     def __init__(self, d):
         self.data = int(d)
@@ -145,7 +127,6 @@ class Varint32(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class Int64(object):
     def __init__(self, d):
         self.data = int(d)
@@ -159,7 +140,6 @@ class Int64(object):
         return '%d' % self.data
 
 
-@python_2_unicode_compatible
 class HexString(object):
     def __init__(self, d):
         self.data = d
@@ -174,7 +154,6 @@ class HexString(object):
         return '%s' % str(self.data)
 
 
-@python_2_unicode_compatible
 class String(object):
     def __init__(self, d):
         self.data = d
@@ -209,7 +188,6 @@ class String(object):
         return bytes("".join(r), "utf-8")
 
 
-@python_2_unicode_compatible
 class Bytes(object):
     def __init__(self, d):
         self.data = d
@@ -224,7 +202,6 @@ class Bytes(object):
         return str(self.data)
 
 
-@python_2_unicode_compatible
 class Hash(Bytes):
     def json(self):
         return str(self.data)
@@ -233,28 +210,24 @@ class Hash(Bytes):
         return unhexlify(bytes(self.data, "utf-8"))
 
 
-@python_2_unicode_compatible
 class Ripemd160(Hash):
     def __init__(self, a):
         assert len(a) == 40, "Require 40 char long hex"
         super().__init__(a)
 
 
-@python_2_unicode_compatible
 class Sha1(Hash):
     def __init__(self, a):
         assert len(a) == 40, "Require 40 char long hex"
         super().__init__(a)
 
 
-@python_2_unicode_compatible
 class Sha256(Hash):
     def __init__(self, a):
         assert len(a) == 64, "Require 64 char long hex"
         super().__init__(a)
 
 
-@python_2_unicode_compatible
 class Void(object):
     def __init__(self):
         pass
@@ -268,7 +241,6 @@ class Void(object):
         return ""
 
 
-@python_2_unicode_compatible
 class Array(object):
     def __init__(self, d):
         self.data = d
@@ -292,7 +264,6 @@ class Array(object):
         return json.dumps(r)
 
 
-@python_2_unicode_compatible
 class PointInTime(object):
     def __init__(self, d):
         self.data = d
@@ -314,7 +285,6 @@ class PointInTime(object):
         return self.data
 
 
-@python_2_unicode_compatible
 class Signature(object):
     def __init__(self, d):
         self.data = d
@@ -328,7 +298,6 @@ class Signature(object):
         return json.dumps(hexlify(self.data).decode('ascii'))
 
 
-@python_2_unicode_compatible
 class Bool(Uint8):  # Bool = Uint8
     def __init__(self, d):
         super(Bool, self).__init__(d)
@@ -343,7 +312,6 @@ class Set(Array):  # Set = Array
         super(Set, self).__init__(d)
 
 
-@python_2_unicode_compatible
 class Fixed_array(object):
     def __init__(self, d):
         raise NotImplementedError
@@ -357,7 +325,6 @@ class Fixed_array(object):
         raise NotImplementedError
 
 
-@python_2_unicode_compatible
 class Optional(object):
     def __init__(self, d):
         self.data = d
@@ -379,7 +346,6 @@ class Optional(object):
         return not bool(py23_bytes(self.data))
 
 
-@python_2_unicode_compatible
 class Static_variant(object):
     def __init__(self, d, type_id):
         self.data = d
@@ -394,7 +360,6 @@ class Static_variant(object):
         return json.dumps([self.type_id, self.data.json()])
 
 
-@python_2_unicode_compatible
 class Map(object):
     def __init__(self, data):
         self.data = data
@@ -415,7 +380,6 @@ class Map(object):
         return json.dumps(r)
 
 
-@python_2_unicode_compatible
 class Id(object):
     def __init__(self, d):
         self.data = Varint32(d)
@@ -429,7 +393,6 @@ class Id(object):
         return str(self.data)
 
 
-@python_2_unicode_compatible
 class Enum8(Uint8):
     # List needs to be provided by super class
     options = []
diff --git a/beemgraphenebase/unsignedtransactions.py b/beemgraphenebase/unsignedtransactions.py
index 15fc9178..d8f79e8a 100644
--- a/beemgraphenebase/unsignedtransactions.py
+++ b/beemgraphenebase/unsignedtransactions.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes, str, int
+# -*- coding: utf-8 -*-
 from beemgraphenebase.py23 import py23_bytes, bytes_types
 import ecdsa
 import hashlib
@@ -10,7 +6,6 @@ from binascii import hexlify, unhexlify
 from collections import OrderedDict
 from asn1crypto.core import OctetString
 import struct
-from future.utils import python_2_unicode_compatible
 from collections import OrderedDict
 import json
 
diff --git a/setup.py b/setup.py
index 3205cb47..d44826fa 100755
--- a/setup.py
+++ b/setup.py
@@ -94,6 +94,7 @@ if __name__ == '__main__':
             'Programming Language :: Python :: 3.6',
             'Programming Language :: Python :: 3.7',
             'Programming Language :: Python :: 3.8',
+            'Programming Language :: Python :: 3.9',
             'Development Status :: 4 - Beta',
             'Intended Audience :: Developers',
             'Intended Audience :: Financial and Insurance Industry',
diff --git a/tests/beem/nodes.py b/tests/beem/nodes.py
new file mode 100644
index 00000000..498f9dd8
--- /dev/null
+++ b/tests/beem/nodes.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+from beem.nodelist import NodeList
+from beem import Steem, Hive
+
+
+def get_hive_nodes():
+    #nodelist = NodeList()
+    #nodes = nodelist.get_hive_nodes()
+    #nodelist.update_nodes(blockchain_instance=Hive(node=nodes, num_retries=10))
+    #return nodelist.get_hive_nodes()
+    return "https://beta.openhive.network"
+
+
+def get_steem_nodes():
+    return "https://api.steemit.com"
diff --git a/tests/beem/test_account.py b/tests/beem/test_account.py
index 9ed97a3c..7098f19f 100644
--- a/tests/beem/test_account.py
+++ b/tests/beem/test_account.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 import pytz
 from datetime import datetime, timedelta
@@ -15,8 +10,8 @@ from beem.block import Block
 from beem.amount import Amount
 from beem.asset import Asset
 from beem.utils import formatTimeString
-from beem.nodelist import NodeList
 from beem.instance import set_shared_steem_instance
+from .nodes import get_hive_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -25,10 +20,7 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodes = nodelist.get_nodes(hive=True)
-        nodelist.update_nodes(steem_instance=Steem(node=nodes, num_retries=10))
-        node_list = nodelist.get_nodes(hive=True)
+        node_list = get_hive_nodes()
       
         cls.bts = Steem(
             node=node_list,
@@ -121,7 +113,7 @@ class Testcases(unittest.TestCase):
         h_list = []
         for h in account.history_reverse(start=start, stop=stop, use_block_num=False, batch_size=10, raw_output=True):
             h_list.append(h)
-        self.assertEqual(h_list[0][0], 9)
+        self.assertEqual(h_list[0][0], 8)
         self.assertEqual(h_list[-1][0], 1)
         self.assertEqual(h_list[0][1]['block'], h_all_raw[-10 + zero_element][1]['block'])
         self.assertEqual(h_list[-1][1]['block'], h_all_raw[-2 + zero_element][1]['block'])
diff --git a/tests/beem/test_aes.py b/tests/beem/test_aes.py
index 7ff65083..072c591b 100644
--- a/tests/beem/test_aes.py
+++ b/tests/beem/test_aes.py
@@ -1,10 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import random
 import unittest
diff --git a/tests/beem/test_amount.py b/tests/beem/test_amount.py
index a64d8687..0a3fcefa 100644
--- a/tests/beem/test_amount.py
+++ b/tests/beem/test_amount.py
@@ -1,33 +1,27 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from beem import Steem
 from beem.amount import Amount
 from beem.asset import Asset
-from beem.nodelist import NodeList
-from beem.instance import set_shared_steem_instance, SharedInstance
+from beem.instance import set_shared_blockchain_instance, SharedInstance
 from decimal import Decimal
+from .nodes import get_hive_nodes, get_steem_nodes
 
 
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_steem_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_steem_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             num_retries=10
         )
-        set_shared_steem_instance(cls.bts)
-        cls.asset = Asset("SBD")
+        set_shared_blockchain_instance(cls.bts)
+        cls.asset = Asset("HBD")
         cls.symbol = cls.asset["symbol"]
         cls.precision = cls.asset["precision"]
-        cls.asset2 = Asset("STEEM")
+        cls.asset2 = Asset("HIVE")
 
     def dotest(self, ret, amount, symbol):
         self.assertEqual(float(ret), float(amount))
@@ -38,54 +32,54 @@ class Testcases(unittest.TestCase):
     def test_init(self):
         stm = self.bts
         # String init
-        asset = Asset("SBD", steem_instance=stm)
+        asset = Asset("HBD", blockchain_instance=stm)
         symbol = asset["symbol"]
         precision = asset["precision"]
-        amount = Amount("1 {}".format(symbol), steem_instance=stm)
+        amount = Amount("1 {}".format(symbol), blockchain_instance=stm)
         self.dotest(amount, 1, symbol)
 
         # Amount init
-        amount = Amount(amount, steem_instance=stm)
+        amount = Amount(amount, blockchain_instance=stm)
         self.dotest(amount, 1, symbol)
 
         # blockchain dict init
         amount = Amount({
             "amount": 1 * 10 ** precision,
             "asset_id": asset["id"]
-        }, steem_instance=stm)
+        }, blockchain_instance=stm)
         self.dotest(amount, 1, symbol)
 
         # API dict init
         amount = Amount({
             "amount": 1.3 * 10 ** precision,
             "asset": asset["id"]
-        }, steem_instance=stm)
+        }, blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
         # Asset as symbol
-        amount = Amount(1.3, Asset("SBD"), steem_instance=stm)
+        amount = Amount(1.3, Asset("HBD"), blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
         # Asset as symbol
-        amount = Amount(1.3, symbol, steem_instance=stm)
+        amount = Amount(1.3, symbol, blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
         # keyword inits
-        amount = Amount(amount=1.3, asset=Asset("SBD", steem_instance=stm), steem_instance=stm)
+        amount = Amount(amount=1.3, asset=Asset("HBD", blockchain_instance=stm), blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
         
-        amount = Amount(amount=1.3001, asset=Asset("SBD", steem_instance=stm), steem_instance=stm)
+        amount = Amount(amount=1.3001, asset=Asset("HBD", blockchain_instance=stm), blockchain_instance=stm)
         self.dotest(amount, 1.3001, symbol)        
 
-        amount = Amount(amount=1.3001, asset=Asset("SBD", steem_instance=stm), fixed_point_arithmetic=True, steem_instance=stm)
+        amount = Amount(amount=1.3001, asset=Asset("HBD", blockchain_instance=stm), fixed_point_arithmetic=True, blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
         # keyword inits
-        amount = Amount(amount=1.3, asset=dict(Asset("SBD", steem_instance=stm)), steem_instance=stm)
+        amount = Amount(amount=1.3, asset=dict(Asset("HBD", blockchain_instance=stm)), blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
         # keyword inits
-        amount = Amount(amount=1.3, asset=symbol, steem_instance=stm)
+        amount = Amount(amount=1.3, asset=symbol, blockchain_instance=stm)
         self.dotest(amount, 1.3, symbol)
 
     def test_copy(self):
@@ -106,24 +100,24 @@ class Testcases(unittest.TestCase):
             (1.0, self.symbol))
 
     def test_json_appbase(self):
-        asset = Asset("SBD", steem_instance=self.bts)
-        amount = Amount("1", asset, new_appbase_format=False, steem_instance=self.bts)
+        asset = Asset("HBD", blockchain_instance=self.bts)
+        amount = Amount("1", asset, new_appbase_format=False, blockchain_instance=self.bts)
         if self.bts.rpc.get_use_appbase():
             self.assertEqual(
                 amount.json(),
                 [str(1 * 10 ** asset.precision), asset.precision, asset.asset])
         else:
-            self.assertEqual(amount.json(), "1.000 SBD")
+            self.assertEqual(amount.json(), "1.000 HBD")
 
     def test_json_appbase2(self):
-        asset = Asset("SBD", steem_instance=self.bts)
-        amount = Amount("1", asset, new_appbase_format=True, steem_instance=self.bts)
+        asset = Asset("HBD", blockchain_instance=self.bts)
+        amount = Amount("1", asset, new_appbase_format=True, blockchain_instance=self.bts)
         if self.bts.rpc.get_use_appbase():
             self.assertEqual(
                 amount.json(),
                 {'amount': str(1 * 10 ** asset.precision), 'nai': asset.asset, 'precision': asset.precision})
         else:
-            self.assertEqual(amount.json(), "1.000 SBD")
+            self.assertEqual(amount.json(), "1.000 HBD")
 
     def test_string(self):
         self.assertEqual(
@@ -147,7 +141,7 @@ class Testcases(unittest.TestCase):
             int(Amount(int(1), self.symbol)),
             1000)      
         self.assertEqual(
-            int(Amount(amount=round(0.1509,3), asset=Asset("SBD"))),
+            int(Amount(amount=round(0.1509,3), asset=Asset("HBD"))),
             151)
 
     def test_dict(self):
diff --git a/tests/beem/test_asset.py b/tests/beem/test_asset.py
index 0c962037..a7470269 100644
--- a/tests/beem/test_asset.py
+++ b/tests/beem/test_asset.py
@@ -1,25 +1,19 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from beem import Steem
 from beem.asset import Asset
 from beem.instance import set_shared_steem_instance
 from beem.exceptions import AssetDoesNotExistsException
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
+
 
 
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_steem_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_steem_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             num_retries=10
         )
@@ -43,11 +37,11 @@ class Testcases(unittest.TestCase):
             Asset("FOObarNonExisting", full=False, steem_instance=stm)
 
     @parameterized.expand([
-        ("normal", "SBD", "SBD", 3, "@@000000013"),
-        ("normal", "STEEM", "STEEM", 3, "@@000000021"),
+        ("normal", "HBD", "HBD", 3, "@@000000013"),
+        ("normal", "HIVE", "HIVE", 3, "@@000000021"),
         ("normal", "VESTS", "VESTS", 6, "@@000000037"),
-        ("normal", "@@000000013", "SBD", 3, "@@000000013"),
-        ("normal", "@@000000021", "STEEM", 3, "@@000000021"),
+        ("normal", "@@000000013", "HBD", 3, "@@000000013"),
+        ("normal", "@@000000021", "HIVE", 3, "@@000000021"),
         ("normal", "@@000000037", "VESTS", 6, "@@000000037"),
     ])
     def test_properties(self, node_param, data, symbol_str, precision, asset_str):
@@ -60,27 +54,20 @@ class Testcases(unittest.TestCase):
         self.assertEqual(asset.precision, precision)
         self.assertEqual(asset.asset, asset_str)
 
-    @parameterized.expand([
-        ("normal"),
-        ("steemit"),
-    ])
-    def test_assert_equal(self, node_param):
-        if node_param == "normal":
-            stm = self.bts
-        else:
-            stm = self.steemit
-        asset1 = Asset("SBD", full=False, steem_instance=stm)
-        asset2 = Asset("SBD", full=False, steem_instance=stm)
+    def test_assert_equal(self):
+        stm = self.bts
+        asset1 = Asset("HBD", full=False, steem_instance=stm)
+        asset2 = Asset("HBD", full=False, steem_instance=stm)
         self.assertTrue(asset1 == asset2)
-        self.assertTrue(asset1 == "SBD")
-        self.assertTrue(asset2 == "SBD")
-        asset3 = Asset("STEEM", full=False, steem_instance=stm)
+        self.assertTrue(asset1 == "HBD")
+        self.assertTrue(asset2 == "HBD")
+        asset3 = Asset("HIVE", full=False, steem_instance=stm)
         self.assertTrue(asset1 != asset3)
-        self.assertTrue(asset3 != "SBD")
-        self.assertTrue(asset1 != "STEEM")
+        self.assertTrue(asset3 != "HBD")
+        self.assertTrue(asset1 != "HIVE")
 
-        a = {'asset': '@@000000021', 'precision': 3, 'id': 'STEEM', 'symbol': 'STEEM'}
-        b = {'asset': '@@000000021', 'precision': 3, 'id': '@@000000021', 'symbol': 'STEEM'}
+        a = {'asset': '@@000000021', 'precision': 3, 'id': 'HIVE', 'symbol': 'HIVE'}
+        b = {'asset': '@@000000021', 'precision': 3, 'id': '@@000000021', 'symbol': 'HIVE'}
         self.assertTrue(Asset(a, steem_instance=stm) == Asset(b, steem_instance=stm))
 
     """
diff --git a/tests/beem/test_base_objects.py b/tests/beem/test_base_objects.py
index 00c1d7e4..8ed6314f 100644
--- a/tests/beem/test_base_objects.py
+++ b/tests/beem/test_base_objects.py
@@ -1,23 +1,18 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from beem import Steem, exceptions
 from beem.instance import set_shared_steem_instance
 from beem.account import Account
 from beem.witness import Witness
 from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_steem_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_steem_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             num_retries=10
         )
diff --git a/tests/beem/test_block.py b/tests/beem/test_block.py
index c4a5ca97..ade19383 100644
--- a/tests/beem/test_block.py
+++ b/tests/beem/test_block.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
@@ -10,7 +6,7 @@ from beem import Steem, exceptions
 from beem.block import Block, BlockHeader
 from datetime import datetime
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -18,10 +14,8 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             keys={"active": wif},
             num_retries=10
diff --git a/tests/beem/test_blockchain.py b/tests/beem/test_blockchain.py
index 64de096a..0d9112a7 100644
--- a/tests/beem/test_blockchain.py
+++ b/tests/beem/test_blockchain.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from datetime import datetime, timedelta
@@ -14,8 +10,8 @@ from beem.blockchain import Blockchain
 from beem.exceptions import BlockWaitTimeExceeded
 from beem.block import Block
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
 from beembase.signedtransactions import Signed_Transaction
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -23,11 +19,8 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodes = nodelist.get_nodes(hive=True)
-        nodelist.update_nodes(steem_instance=Steem(node=nodes, num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             keys={"active": wif},
             num_retries=10
diff --git a/tests/beem/test_blockchain_batch.py b/tests/beem/test_blockchain_batch.py
index 7e0f14ea..65c3c270 100644
--- a/tests/beem/test_blockchain_batch.py
+++ b/tests/beem/test_blockchain_batch.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from datetime import datetime, timedelta
@@ -14,7 +10,7 @@ from beem.blockchain import Blockchain
 from beem.block import Block
 from beem.instance import set_shared_steem_instance
 from beem.utils import formatTimeString
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -22,10 +18,8 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             num_retries=10,
             timeout=30,
diff --git a/tests/beem/test_blockchain_threading.py b/tests/beem/test_blockchain_threading.py
index 090c2099..86244a09 100644
--- a/tests/beem/test_blockchain_threading.py
+++ b/tests/beem/test_blockchain_threading.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from datetime import datetime, timedelta
@@ -13,16 +9,15 @@ from beem import Steem
 from beem.blockchain import Blockchain
 from beem.block import Block
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
+
 
 
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_hive_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_hive_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             timeout=30,
             num_retries=30,
diff --git a/tests/beem/test_cli.py b/tests/beem/test_cli.py
index 93a4db44..8dfc28df 100644
--- a/tests/beem/test_cli.py
+++ b/tests/beem/test_cli.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 import click
 from click.testing import CliRunner
@@ -15,7 +10,7 @@ from beemgraphenebase.account import PrivateKey
 from beem.cli import cli, balance
 from beem.instance import set_shared_steem_instance, shared_steem_instance
 from beembase.operationids import getOperationNameForId
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5Jt2wTfhUt5GkZHV1HYVfkEaJ6XnY8D2iA4qjtK9nnGXAhThM3w"
 posting_key = "5Jh1Gtu2j4Yi16TfhoDmg8Qj3ULcgRi7A49JXdfUUTVPkaFaRKz"
@@ -26,10 +21,7 @@ pub_key = "STX52xMqKegLk4tdpNcUXU9Rw5DtdM9fxf3f12Gp55v1UjLX3ELZf"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
-        cls.node_list = nodelist.get_nodes(hive=True)
+        cls.node_list = get_hive_nodes()
        
         # stm = shared_steem_instance()
         # stm.config.refreshBackup()
@@ -401,8 +393,8 @@ class Testcases(unittest.TestCase):
 
     def test_claimaccount(self):
         runner = CliRunner()
-        result = runner.invoke(cli, ['-dx', 'claimaccount', 'holger80'], input="test\n")
-        result = runner.invoke(cli, ['-dx', 'claimaccount', '-n', '2', 'holger80'], input="test\n")
+        result = runner.invoke(cli, ['-dx', 'claimaccount', 'holger80'])
+        result = runner.invoke(cli, ['-dx', 'claimaccount', '-n', '2', 'holger80'])
         self.assertEqual(result.exit_code, 0)
 
     def test_power(self):
diff --git a/tests/beem/test_comment.py b/tests/beem/test_comment.py
index e439b22b..df1537f2 100644
--- a/tests/beem/test_comment.py
+++ b/tests/beem/test_comment.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super, str
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
@@ -12,7 +8,7 @@ from beem.vote import Vote
 from beem.account import Account
 from beem.instance import set_shared_blockchain_instance
 from beem.utils import resolve_authorperm
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -20,9 +16,7 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(blockchain_instance=Hive(node=nodelist.get_hive_nodes(), num_retries=10))
-        node_list = nodelist.get_hive_nodes()
+        node_list = get_hive_nodes()
 
         cls.bts = Hive(
             node=node_list,
diff --git a/tests/beem/test_connection.py b/tests/beem/test_connection.py
index f3f7f409..b4d56668 100644
--- a/tests/beem/test_connection.py
+++ b/tests/beem/test_connection.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 import unittest
 from beem import Hive, Steem
 from beem.account import Account
diff --git a/tests/beem/test_constants.py b/tests/beem/test_constants.py
index 429a3b08..5f8d28d6 100644
--- a/tests/beem/test_constants.py
+++ b/tests/beem/test_constants.py
@@ -1,16 +1,11 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import str
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 import pytz
 from datetime import datetime, timedelta
 from parameterized import parameterized
 from pprint import pprint
 from beem import Steem, exceptions, constants
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -19,10 +14,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
         cls.appbase = Steem(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_steem_nodes(),
             nobroadcast=True,
             bundle=False,
             # Overwrite wallet to use this list of wifs only
diff --git a/tests/beem/test_conveyor.py b/tests/beem/test_conveyor.py
index aac0b2d9..fac15d3a 100644
--- a/tests/beem/test_conveyor.py
+++ b/tests/beem/test_conveyor.py
@@ -1,12 +1,9 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import unittest
 from beem import Steem
 from beem.conveyor import Conveyor
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = '5Jh1Gtu2j4Yi16TfhoDmg8Qj3ULcgRi7A49JXdfUUTVPkaFaRKz'
 
@@ -15,8 +12,7 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        stm = Steem(node=nodelist.get_nodes(), nobroadcast=True,
+        stm = Steem(node=get_steem_nodes(), nobroadcast=True,
                     num_retries=10, expiration=120)
         set_shared_steem_instance(stm)
 
diff --git a/tests/beem/test_discussions.py b/tests/beem/test_discussions.py
index 7a0b01d6..65f8edc6 100644
--- a/tests/beem/test_discussions.py
+++ b/tests/beem/test_discussions.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
@@ -16,7 +12,7 @@ from beem.discussions import (
 )
 from datetime import datetime
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -24,9 +20,7 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
-        node_list = nodelist.get_nodes(hive=True)
+        node_list = get_hive_nodes()
       
         cls.bts = Steem(
             node=node_list,
diff --git a/tests/beem/test_hive.py b/tests/beem/test_hive.py
index 79521d86..817b5f22 100644
--- a/tests/beem/test_hive.py
+++ b/tests/beem/test_hive.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 from parameterized import parameterized
@@ -15,7 +10,7 @@ from beem.amount import Amount
 from beem.version import version as beem_version
 from beem.account import Account
 from beemgraphenebase.account import PrivateKey
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 # Py3 compatibility
 import sys
 
@@ -28,10 +23,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        cls.nodelist = NodeList()
-        cls.nodelist.update_nodes(steem_instance=Hive(node=cls.nodelist.get_hive_nodes(), num_retries=10))
         cls.bts = Hive(
-            node=cls.nodelist.get_hive_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             unsigned=True,
             data_refresh_time_seconds=900,
@@ -67,7 +60,7 @@ class Testcases(unittest.TestCase):
         self.assertEqual(float(amount), 1.33)
 
     def test_create_account(self):
-        bts = Hive(node=self.nodelist.get_hive_nodes(),
+        bts = Hive(node=get_hive_nodes(),
                     nobroadcast=True,
                     unsigned=True,
                     data_refresh_time_seconds=900,
@@ -143,7 +136,7 @@ class Testcases(unittest.TestCase):
             "test")
 
     def test_create_account_password(self):
-        bts = Hive(node=self.nodelist.get_hive_nodes(),
+        bts = Hive(node=get_hive_nodes(),
                     nobroadcast=True,
                     unsigned=True,
                     data_refresh_time_seconds=900,
@@ -416,8 +409,12 @@ class Testcases(unittest.TestCase):
         self.assertIn(
             "gtg",
             op["author"])
-        self.assertEqual('1000000.000 SBD', op["max_accepted_payout"])
-        self.assertEqual(10000, op["percent_steem_dollars"])
+        if "percent_steem_dollars" in op:
+            self.assertEqual('1000000.000 SBD', op["max_accepted_payout"])
+            self.assertEqual(10000, op["percent_steem_dollars"])
+        else:
+            self.assertEqual('1000000.000 HBD', op["max_accepted_payout"])
+            self.assertEqual(10000, op["percent_hbd"])            
         self.assertEqual(True, op["allow_votes"])
         self.assertEqual(True, op["allow_curation_rewards"])
         self.assertEqual("witness-gtg-log", op["permlink"])
@@ -427,7 +424,7 @@ class Testcases(unittest.TestCase):
         self.assertFalse(bts.get_blockchain_version() == '0.0.0')
 
     def test_offline(self):
-        bts = Hive(node=self.nodelist.get_hive_nodes(),
+        bts = Hive(node=get_hive_nodes(),
                     offline=True,
                     data_refresh_time_seconds=900,
                     keys={"active": wif, "owner": wif2, "memo": wif3})
@@ -456,7 +453,7 @@ class Testcases(unittest.TestCase):
         self.assertFalse(bts.is_steem)
 
     def test_properties(self):
-        bts = Hive(node=self.nodelist.get_hive_nodes(),
+        bts = Hive(node=get_hive_nodes(),
                     nobroadcast=True,
                     data_refresh_time_seconds=900,
                     keys={"active": wif, "owner": wif2, "memo": wif3},
@@ -535,13 +532,3 @@ class Testcases(unittest.TestCase):
         bts.switch_blockchain("hive", update_nodes=True)
         assert bts.is_hive        
 
-    def test_switch_blockchain(self):
-        bts = self.bts
-        nodes_hive = self.nodelist.get_hive_nodes()
-        nodes_steem = self.nodelist.get_steem_nodes()
-        rpc = Steem(nodes_steem)
-        assert rpc.is_steem
-        assert not rpc.get_replace_hive_by_steem()
-        rpc = Hive(nodes_hive)
-        assert rpc.is_hive
-        assert rpc.get_replace_hive_by_steem()
diff --git a/tests/beem/test_hivesigner.py b/tests/beem/test_hivesigner.py
index 24f86416..5512ed9a 100644
--- a/tests/beem/test_hivesigner.py
+++ b/tests/beem/test_hivesigner.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 from parameterized import parameterized
@@ -19,7 +14,7 @@ from beem.witness import Witness
 from beem.account import Account
 from beemgraphenebase.account import PrivateKey
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 from beem.hivesigner import HiveSigner
 # Py3 compatibility
 import sys
@@ -30,10 +25,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             unsigned=True,
             data_refresh_time_seconds=900,
diff --git a/tests/beem/test_instance.py b/tests/beem/test_instance.py
index 93da62ac..b4c7f9cd 100644
--- a/tests/beem/test_instance.py
+++ b/tests/beem/test_instance.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 import random
@@ -26,7 +21,7 @@ from beem.transactionbuilder import TransactionBuilder
 from beembase.operations import Transfer
 from beemgraphenebase.account import PasswordKey, PrivateKey, PublicKey
 from beem.utils import parse_time, formatTimedelta
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 # Py3 compatibility
 import sys
@@ -37,14 +32,12 @@ core_unit = "STM"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        cls.nodelist = NodeList()
-        cls.nodelist.update_nodes(steem_instance=Steem(node=cls.nodelist.get_nodes(hive=True), num_retries=10))
-        stm = Steem(node=cls.nodelist.get_nodes(hive=True))
+        stm = Steem(node=get_hive_nodes())
         stm.config.refreshBackup()
         stm.set_default_nodes(["xyz"])
         del stm
 
-        cls.urls = cls.nodelist.get_nodes(hive=True)
+        cls.urls = get_hive_nodes()
         cls.bts = Steem(
             node=cls.urls,
             nobroadcast=True,
@@ -60,7 +53,7 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
-        stm = Steem(node=cls.nodelist.get_nodes())
+        stm = Steem(node=get_hive_nodes())
         stm.config.recover_with_latest_backup()
 
     @parameterized.expand([
diff --git a/tests/beem/test_market.py b/tests/beem/test_market.py
index a769ed42..7eb8a0ce 100644
--- a/tests/beem/test_market.py
+++ b/tests/beem/test_market.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
@@ -12,7 +8,7 @@ from beem.price import Price
 from beem.asset import Asset
 from beem.amount import Amount
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -21,10 +17,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_steem_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_steem_nodes(),
+            node=get_hive_nodes(),
             nobroadcast=True,
             unsigned=True,
             keys={"active": wif},
@@ -37,37 +31,37 @@ class Testcases(unittest.TestCase):
 
     def test_market(self):
         bts = self.bts
-        m1 = Market(u'STEEM', u'SBD', steem_instance=bts)
-        self.assertEqual(m1.get_string(), u'SBD:STEEM')
+        m1 = Market(u'HIVE', u'HBD', steem_instance=bts)
+        self.assertEqual(m1.get_string(), u'HBD:HIVE')
         m2 = Market(steem_instance=bts)
-        self.assertEqual(m2.get_string(), u'SBD:STEEM')
-        m3 = Market(u'STEEM:SBD', steem_instance=bts)
-        self.assertEqual(m3.get_string(), u'STEEM:SBD')
+        self.assertEqual(m2.get_string(), u'HBD:HIVE')
+        m3 = Market(u'HIVE:HBD', steem_instance=bts)
+        self.assertEqual(m3.get_string(), u'HIVE:HBD')
         self.assertTrue(m1 == m2)
 
-        base = Asset("SBD", steem_instance=bts)
-        quote = Asset("STEEM", steem_instance=bts)
+        base = Asset("HBD", steem_instance=bts)
+        quote = Asset("HIVE", steem_instance=bts)
         m = Market(base, quote, steem_instance=bts)
-        self.assertEqual(m.get_string(), u'STEEM:SBD')
+        self.assertEqual(m.get_string(), u'HIVE:HBD')
 
     def test_ticker(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         ticker = m.ticker()
         self.assertEqual(len(ticker), 6)
-        self.assertEqual(ticker['steem_volume']["symbol"], u'STEEM')
-        self.assertEqual(ticker['sbd_volume']["symbol"], u'SBD')
+        self.assertEqual(ticker['hive_volume']["symbol"], u'HIVE')
+        self.assertEqual(ticker['hbd_volume']["symbol"], u'HBD')
 
     def test_volume(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         volume = m.volume24h()
-        self.assertEqual(volume['STEEM']["symbol"], u'STEEM')
-        self.assertEqual(volume['SBD']["symbol"], u'SBD')
+        self.assertEqual(volume['HIVE']["symbol"], u'HIVE')
+        self.assertEqual(volume['HBD']["symbol"], u'HBD')
 
     def test_orderbook(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         orderbook = m.orderbook(limit=10)
         self.assertEqual(len(orderbook['asks_date']), 10)
         self.assertEqual(len(orderbook['asks']), 10)
@@ -76,7 +70,7 @@ class Testcases(unittest.TestCase):
 
     def test_recenttrades(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         recenttrades = m.recent_trades(limit=10)
         recenttrades_raw = m.recent_trades(limit=10, raw_data=True)
         self.assertEqual(len(recenttrades), 10)
@@ -84,7 +78,7 @@ class Testcases(unittest.TestCase):
 
     def test_trades(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         trades = m.trades(limit=10)
         trades_raw = m.trades(limit=10, raw_data=True)
         trades_history = m.trade_history(limit=10)
@@ -94,20 +88,20 @@ class Testcases(unittest.TestCase):
 
     def test_market_history(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         buckets = m.market_history_buckets()
         history = m.market_history(buckets[2])
         self.assertTrue(len(history) > 0)
 
     def test_accountopenorders(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         openOrder = m.accountopenorders("test")
         self.assertTrue(isinstance(openOrder, list))
 
     def test_buy(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         bts.txbuffer.clear()
         tx = m.buy(5, 0.1, account="test")
         self.assertEqual(
@@ -116,26 +110,26 @@ class Testcases(unittest.TestCase):
         )
         op = tx["operations"][0][1]
         self.assertIn("test", op["owner"])
-        self.assertEqual(str(Amount('0.100 STEEM', steem_instance=bts)), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.100 HIVE', steem_instance=bts)), op["min_to_receive"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["amount_to_sell"])
 
-        p = Price(5, u"SBD:STEEM", steem_instance=bts)
+        p = Price(5, u"HBD:HIVE", steem_instance=bts)
         tx = m.buy(p, 0.1, account="test")
         op = tx["operations"][0][1]
-        self.assertEqual(str(Amount('0.100 STEEM', steem_instance=bts)), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.100 HIVE', steem_instance=bts)), op["min_to_receive"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["amount_to_sell"])
 
-        p = Price(5, u"SBD:STEEM", steem_instance=bts)
-        a = Amount(0.1, "STEEM", steem_instance=bts)
+        p = Price(5, u"HBD:HIVE", steem_instance=bts)
+        a = Amount(0.1, "HIVE", steem_instance=bts)
         tx = m.buy(p, a, account="test")
         op = tx["operations"][0][1]
         self.assertEqual(str(a), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["amount_to_sell"])
 
     def test_sell(self):
         bts = self.bts
         bts.txbuffer.clear()
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         tx = m.sell(5, 0.1, account="test")
         self.assertEqual(
             (tx["operations"][0][0]),
@@ -143,26 +137,26 @@ class Testcases(unittest.TestCase):
         )
         op = tx["operations"][0][1]
         self.assertIn("test", op["owner"])
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.100 STEEM', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["min_to_receive"])
+        self.assertEqual(str(Amount('0.100 HIVE', steem_instance=bts)), op["amount_to_sell"])
 
-        p = Price(5, u"SBD:STEEM")
+        p = Price(5, u"HBD:HIVE")
         tx = m.sell(p, 0.1, account="test")
         op = tx["operations"][0][1]
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.100 STEEM', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["min_to_receive"])
+        self.assertEqual(str(Amount('0.100 HIVE', steem_instance=bts)), op["amount_to_sell"])
 
-        p = Price(5, u"SBD:STEEM", steem_instance=bts)
-        a = Amount(0.1, "STEEM", steem_instance=bts)
+        p = Price(5, u"HBD:HIVE", steem_instance=bts)
+        a = Amount(0.1, "HIVE", steem_instance=bts)
         tx = m.sell(p, a, account="test")
         op = tx["operations"][0][1]
-        self.assertEqual(str(Amount('0.500 SBD', steem_instance=bts)), op["min_to_receive"])
-        self.assertEqual(str(Amount('0.100 STEEM', steem_instance=bts)), op["amount_to_sell"])
+        self.assertEqual(str(Amount('0.500 HBD', steem_instance=bts)), op["min_to_receive"])
+        self.assertEqual(str(Amount('0.100 HIVE', steem_instance=bts)), op["amount_to_sell"])
 
     def test_cancel(self):
         bts = self.bts
         bts.txbuffer.clear()
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         tx = m.cancel(5, account="test")
         self.assertEqual(
             (tx["operations"][0][0]),
@@ -175,6 +169,6 @@ class Testcases(unittest.TestCase):
 
     def test_steem_usb_impied(self):
         bts = self.bts
-        m = Market(u'STEEM:SBD', steem_instance=bts)
+        m = Market(u'HIVE:HBD', steem_instance=bts)
         steem_usd = m.steem_usd_implied()
         self.assertGreater(steem_usd, 0)
diff --git a/tests/beem/test_memo.py b/tests/beem/test_memo.py
index 5deb2139..a7fb685e 100644
--- a/tests/beem/test_memo.py
+++ b/tests/beem/test_memo.py
@@ -1,4 +1,4 @@
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 import mock
 from beem import Hive
@@ -9,7 +9,7 @@ import random
 import shutil, tempfile
 import os
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 core_unit = "STM"
@@ -19,10 +19,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Hive(node=nodelist.get_hive_nodes(), num_retries=10))
         cls.bts = Hive(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             keys=[wif],
             num_retries=10
diff --git a/tests/beem/test_message.py b/tests/beem/test_message.py
index 75969cd7..6d18ca6b 100644
--- a/tests/beem/test_message.py
+++ b/tests/beem/test_message.py
@@ -1,11 +1,11 @@
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 import mock
 from beem import Hive
 from beem.message import Message
 from beem.account import Account
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 core_unit = "STM"
@@ -15,10 +15,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Hive(node=nodelist.get_hive_nodes(), num_retries=10))
         cls.bts = Hive(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             keys=[wif],
             num_retries=10
diff --git a/tests/beem/test_nodelist.py b/tests/beem/test_nodelist.py
index 2421103b..9beac5bb 100644
--- a/tests/beem/test_nodelist.py
+++ b/tests/beem/test_nodelist.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from beem import Steem, exceptions, Hive
 from beem.instance import set_shared_blockchain_instance
diff --git a/tests/beem/test_objectcache.py b/tests/beem/test_objectcache.py
index 4c2a6090..e3b90e2a 100644
--- a/tests/beem/test_objectcache.py
+++ b/tests/beem/test_objectcache.py
@@ -1,16 +1,9 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
-from builtins import str
+# -*- coding: utf-8 -*-
 import time
 import unittest
 from beem import Steem, exceptions
 from beem.instance import set_shared_steem_instance
 from beem.blockchainobject import ObjectCache
-from beem.account import Account
-from beem.nodelist import NodeList
 
 
 class Testcases(unittest.TestCase):
diff --git a/tests/beem/test_price.py b/tests/beem/test_price.py
index dbd3fafd..e7452aa5 100644
--- a/tests/beem/test_price.py
+++ b/tests/beem/test_price.py
@@ -1,23 +1,18 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 from beem import Steem
 from beem.instance import set_shared_steem_instance
 from beem.amount import Amount
 from beem.price import Price, Order, FilledOrder
 from beem.asset import Asset
 import unittest
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
         steem = Steem(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             num_retries=10
         )
@@ -26,69 +21,69 @@ class Testcases(unittest.TestCase):
     def test_init(self):
         # self.assertEqual(1, 1)
 
-        Price("0.315 STEEM/SBD")
-        Price(1.0, "STEEM/SBD")
-        Price(0.315, base="STEEM", quote="SBD")
-        Price(0.315, base=Asset("STEEM"), quote=Asset("SBD"))
+        Price("0.315 HIVE/HBD")
+        Price(1.0, "HIVE/HBD")
+        Price(0.315, base="HIVE", quote="HBD")
+        Price(0.315, base=Asset("HIVE"), quote=Asset("HBD"))
         Price({
-            "base": {"amount": 1, "asset_id": "SBD"},
-            "quote": {"amount": 10, "asset_id": "STEEM"}})
-        Price("", quote="10 SBD", base="1 STEEM")
-        Price("10 SBD", "1 STEEM")
-        Price(Amount("10 SBD"), Amount("1 STEEM"))
+            "base": {"amount": 1, "asset_id": "HBD"},
+            "quote": {"amount": 10, "asset_id": "HIVE"}})
+        Price("", quote="10 HBD", base="1 HIVE")
+        Price("10 HBD", "1 HIVE")
+        Price(Amount("10 HBD"), Amount("1 HIVE"))
 
     def test_multiplication(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "VESTS/STEEM")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "VESTS/HIVE")
         p3 = p1 * p2
-        p4 = p3.as_base("SBD")
+        p4 = p3.as_base("HBD")
         p4_2 = p3.as_quote("VESTS")
 
         self.assertEqual(p4["quote"]["symbol"], "VESTS")
-        self.assertEqual(p4["base"]["symbol"], "SBD")
-        # 10 STEEM/SBD * 0.2 VESTS/STEEM = 50 VESTS/SBD = 0.02 SBD/VESTS
+        self.assertEqual(p4["base"]["symbol"], "HBD")
+        # 10 HIVE/HBD * 0.2 VESTS/HIVE = 50 VESTS/HBD = 0.02 HBD/VESTS
         self.assertEqual(float(p4), 0.02)
         self.assertEqual(p4_2["quote"]["symbol"], "VESTS")
-        self.assertEqual(p4_2["base"]["symbol"], "SBD")
+        self.assertEqual(p4_2["base"]["symbol"], "HBD")
         self.assertEqual(float(p4_2), 0.02)
         p3 = p1 * 5
         self.assertEqual(float(p3), 50)
 
         # Inline multiplication
-        p5 = Price(10.0, "STEEM/SBD")
+        p5 = Price(10.0, "HIVE/HBD")
         p5 *= p2
-        p4 = p5.as_base("SBD")
+        p4 = p5.as_base("HBD")
         self.assertEqual(p4["quote"]["symbol"], "VESTS")
-        self.assertEqual(p4["base"]["symbol"], "SBD")
-        # 10 STEEM/SBD * 0.2 VESTS/STEEM = 2 VESTS/SBD = 0.02 SBD/VESTS
+        self.assertEqual(p4["base"]["symbol"], "HBD")
+        # 10 HIVE/HBD * 0.2 VESTS/HIVE = 2 VESTS/HBD = 0.02 HBD/VESTS
         self.assertEqual(float(p4), 0.02)
-        p6 = Price(10.0, "STEEM/SBD")
+        p6 = Price(10.0, "HIVE/HBD")
         p6 *= 5
         self.assertEqual(float(p6), 50)
 
     def test_div(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "STEEM/VESTS")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "HIVE/VESTS")
 
-        # 10 STEEM/SBD / 5 STEEM/VESTS = 2 VESTS/SBD
+        # 10 HIVE/HBD / 5 HIVE/VESTS = 2 VESTS/HBD
         p3 = p1 / p2
         p4 = p3.as_base("VESTS")
         self.assertEqual(p4["base"]["symbol"], "VESTS")
-        self.assertEqual(p4["quote"]["symbol"], "SBD")
-        # 10 STEEM/SBD * 0.2 VESTS/STEEM = 2 VESTS/SBD = 0.5 SBD/VESTS
+        self.assertEqual(p4["quote"]["symbol"], "HBD")
+        # 10 HIVE/HBD * 0.2 VESTS/HIVE = 2 VESTS/HBD = 0.5 HBD/VESTS
         self.assertEqual(float(p4), 2)
 
     def test_div2(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "STEEM/SBD")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "HIVE/HBD")
 
-        # 10 STEEM/SBD / 5 STEEM/VESTS = 2 VESTS/SBD
+        # 10 HIVE/HBD / 5 HIVE/VESTS = 2 VESTS/HBD
         p3 = p1 / p2
         self.assertTrue(isinstance(p3, (float, int)))
         self.assertEqual(float(p3), 2.0)
         p3 = p1 / 5
         self.assertEqual(float(p3), 2.0)
-        p3 = p1 / Amount("1 SBD")
+        p3 = p1 / Amount("1 HBD")
         self.assertEqual(float(p3), 0.1)
         p3 = p1
         p3 /= p2
@@ -98,8 +93,8 @@ class Testcases(unittest.TestCase):
         self.assertEqual(float(p3), 2.0)
 
     def test_ltge(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "STEEM/SBD")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "HIVE/HBD")
 
         self.assertTrue(p1 > p2)
         self.assertTrue(p2 < p1)
@@ -107,8 +102,8 @@ class Testcases(unittest.TestCase):
         self.assertTrue(p2 < 10)
 
     def test_leeq(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "STEEM/SBD")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "HIVE/HBD")
 
         self.assertTrue(p1 >= p2)
         self.assertTrue(p2 <= p1)
@@ -116,8 +111,8 @@ class Testcases(unittest.TestCase):
         self.assertTrue(p2 <= 10)
 
     def test_ne(self):
-        p1 = Price(10.0, "STEEM/SBD")
-        p2 = Price(5.0, "STEEM/SBD")
+        p1 = Price(10.0, "HIVE/HBD")
+        p2 = Price(5.0, "HIVE/HBD")
 
         self.assertTrue(p1 != p2)
         self.assertTrue(p1 == p1)
@@ -125,11 +120,11 @@ class Testcases(unittest.TestCase):
         self.assertTrue(p1 == 10)
 
     def test_order(self):
-        order = Order(Amount("2 SBD"), Amount("1 STEEM"))
+        order = Order(Amount("2 HBD"), Amount("1 HIVE"))
         self.assertTrue(repr(order) is not None)
 
     def test_filled_order(self):
-        order = {"date": "1900-01-01T00:00:00", "current_pays": "2 SBD", "open_pays": "1 STEEM"}
+        order = {"date": "1900-01-01T00:00:00", "current_pays": "2 HBD", "open_pays": "1 HIVE"}
         filledOrder = FilledOrder(order)
         self.assertTrue(repr(filledOrder) is not None)
-        self.assertEqual(filledOrder.json()["current_pays"], Amount("2.000 SBD").json())
+        self.assertEqual(filledOrder.json()["current_pays"], Amount("2.000 HBD").json())
diff --git a/tests/beem/test_profile.py b/tests/beem/test_profile.py
index 2c4c0b86..32265a05 100644
--- a/tests/beem/test_profile.py
+++ b/tests/beem/test_profile.py
@@ -1,10 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import bytes
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import random
 import unittest
diff --git a/tests/beem/test_steem.py b/tests/beem/test_steem.py
index b563ea59..e58cc91a 100644
--- a/tests/beem/test_steem.py
+++ b/tests/beem/test_steem.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 from parameterized import parameterized
@@ -15,7 +10,7 @@ from beem.amount import Amount
 from beem.version import version as beem_version
 from beem.account import Account
 from beemgraphenebase.account import PrivateKey
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 # Py3 compatibility
 import sys
 
@@ -27,10 +22,8 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        cls.nodelist = NodeList()
-        cls.nodelist.update_nodes(steem_instance=Steem(node=cls.nodelist.get_steem_nodes(), num_retries=10))
         cls.bts = Steem(
-            node=cls.nodelist.get_steem_nodes(),
+            node=get_steem_nodes(),
             nobroadcast=True,
             unsigned=True,
             data_refresh_time_seconds=900,
@@ -67,7 +60,7 @@ class Testcases(unittest.TestCase):
         self.assertEqual(float(amount), 1.33)
 
     def test_create_account(self):
-        bts = Steem(node=self.nodelist.get_steem_nodes(),
+        bts = Steem(node=get_steem_nodes(),
                     nobroadcast=True,
                     unsigned=True,
                     data_refresh_time_seconds=900,
@@ -143,7 +136,7 @@ class Testcases(unittest.TestCase):
             "test")
 
     def test_create_account_password(self):
-        bts = Steem(node=self.nodelist.get_steem_nodes(),
+        bts = Steem(node=get_steem_nodes(),
                     nobroadcast=True,
                     unsigned=True,
                     data_refresh_time_seconds=900,
@@ -423,7 +416,7 @@ class Testcases(unittest.TestCase):
         self.assertFalse(bts.get_blockchain_version() == '0.0.0')
 
     def test_offline(self):
-        bts = Steem(node=self.nodelist.get_steem_nodes(),
+        bts = Steem(node=get_steem_nodes(),
                     offline=True,
                     data_refresh_time_seconds=900,
                     keys={"active": wif, "owner": wif2, "memo": wif3})
@@ -452,7 +445,7 @@ class Testcases(unittest.TestCase):
         self.assertTrue(bts.is_steem)        
 
     def test_properties(self):
-        bts = Steem(node=self.nodelist.get_steem_nodes(),
+        bts = Steem(node=get_steem_nodes(),
                     nobroadcast=True,
                     data_refresh_time_seconds=900,
                     keys={"active": wif, "owner": wif2, "memo": wif3},
diff --git a/tests/beem/test_storage.py b/tests/beem/test_storage.py
index cca88694..77310181 100644
--- a/tests/beem/test_storage.py
+++ b/tests/beem/test_storage.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 from parameterized import parameterized
@@ -19,7 +14,7 @@ from beem.witness import Witness
 from beem.account import Account
 from beemgraphenebase.account import PrivateKey
 from beem.instance import set_shared_steem_instance, shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 # Py3 compatibility
 import sys
 core_unit = "STM"
@@ -31,11 +26,9 @@ class Testcases(unittest.TestCase):
     def setUpClass(cls):
         stm = shared_steem_instance()
         stm.config.refreshBackup()
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
 
         cls.stm = Steem(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_steem_nodes(),
             nobroadcast=True,
             # We want to bundle many operations into a single transaction
             bundle=True,
diff --git a/tests/beem/test_testnet.py b/tests/beem/test_testnet.py
index b26963f8..c00b588b 100644
--- a/tests/beem/test_testnet.py
+++ b/tests/beem/test_testnet.py
@@ -1,9 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import range
-from builtins import super
+# -*- coding: utf-8 -*-
 import string
 import unittest
 import random
diff --git a/tests/beem/test_txbuffers.py b/tests/beem/test_txbuffers.py
index 63838310..67bff1ab 100644
--- a/tests/beem/test_txbuffers.py
+++ b/tests/beem/test_txbuffers.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from beem import Steem
@@ -23,7 +19,7 @@ from beemstorage.exceptions import WalletLocked
 from beemapi import exceptions
 from beem.wallet import Wallet
 from beem.utils import formatTimeFromNow
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 wif2 = "5JKu2dFfjKAcD6aP1HqBDxMNbdwtvPS99CaxBzvMYhY94Pt6RDS"
 wif3 = "5K1daXjehgPZgUHz6kvm55ahEArBHfCHLy6ew8sT7sjDb76PU2P"
@@ -33,9 +29,7 @@ class Testcases(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
-        node_list = nodelist.get_nodes(exclude_limited=True)
+        node_list = get_hive_nodes()
         cls.stm = Steem(
             node=node_list,
             keys={"active": wif, "owner": wif2, "memo": wif3},
diff --git a/tests/beem/test_utils.py b/tests/beem/test_utils.py
index 5228d6eb..c86abaaf 100644
--- a/tests/beem/test_utils.py
+++ b/tests/beem/test_utils.py
@@ -1,7 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
+# -*- coding: utf-8 -*-
 import unittest
 from datetime import datetime, date, timedelta
 from beem.utils import (
diff --git a/tests/beem/test_vote.py b/tests/beem/test_vote.py
index 9b8b4a4c..268fe6ae 100644
--- a/tests/beem/test_vote.py
+++ b/tests/beem/test_vote.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 import pytz
@@ -14,7 +10,7 @@ from beem.account import Account
 from beem.vote import Vote, ActiveVotes, AccountVotes
 from beem.instance import set_shared_steem_instance
 from beem.utils import construct_authorperm, resolve_authorperm, resolve_authorpermvoter, construct_authorpermvoter
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -22,10 +18,8 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             keys={"active": wif},
             num_retries=10
diff --git a/tests/beem/test_wallet.py b/tests/beem/test_wallet.py
index 78c8dc07..5ae74dd4 100644
--- a/tests/beem/test_wallet.py
+++ b/tests/beem/test_wallet.py
@@ -1,8 +1,4 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
@@ -12,7 +8,7 @@ from beem.amount import Amount
 from beem.asset import Asset
 from beem.wallet import Wallet
 from beem.instance import set_shared_steem_instance, shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -22,11 +18,9 @@ class Testcases(unittest.TestCase):
     def setUpClass(cls):
         stm = shared_steem_instance()
         stm.config.refreshBackup()
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
 
         cls.stm = Steem(
-            node=nodelist.get_nodes(exclude_limited=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             # We want to bundle many operations into a single transaction
             bundle=True,
diff --git a/tests/beem/test_witness.py b/tests/beem/test_witness.py
index ed09f107..474b6058 100644
--- a/tests/beem/test_witness.py
+++ b/tests/beem/test_witness.py
@@ -1,15 +1,11 @@
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-from builtins import super
+# -*- coding: utf-8 -*-
 import unittest
 from parameterized import parameterized
 from pprint import pprint
 from beem import Steem
 from beem.witness import Witness, Witnesses, WitnessesVotedByAccount, WitnessesRankedByVote
 from beem.instance import set_shared_steem_instance
-from beem.nodelist import NodeList
+from .nodes import get_hive_nodes, get_steem_nodes
 
 wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 
@@ -17,17 +13,15 @@ wif = "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
 class Testcases(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
-        nodelist = NodeList()
-        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(hive=True), num_retries=10))
         cls.bts = Steem(
-            node=nodelist.get_nodes(hive=True),
+            node=get_hive_nodes(),
             nobroadcast=True,
             unsigned=True,
             keys={"active": wif},
             num_retries=10
         )
         cls.steemit = Steem(
-            node="https://api.steemit.com",
+            node=get_steem_nodes(),
             nobroadcast=True,
             unsigned=True,
             keys={"active": wif},
-- 
GitLab