def test_witness(self, node_param):
     if node_param == "instance":
         set_shared_steem_instance(self.bts)
         o = Witness("gtg")
         self.assertIn(o.steem.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Witness("gtg",
                     steem_instance=Steem(node="https://abc.d",
                                          autoconnect=False,
                                          num_retries=1))
     else:
         set_shared_steem_instance(
             Steem(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = Witness("gtg", steem_instance=stm)
         self.assertIn(o.steem.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Witness("gtg")
 def test_wallet(self, node_param):
     if node_param == "instance":
         set_shared_steem_instance(self.bts)
         o = Wallet()
         self.assertIn(o.steem.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             o = Wallet(steem_instance=Steem(
                 node="https://abc.d", autoconnect=False, num_retries=1))
             o.steem.get_config()
     else:
         set_shared_steem_instance(
             Steem(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = Wallet(steem_instance=stm)
         self.assertIn(o.steem.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             o = Wallet()
             o.steem.get_config()
Example #3
0
 def setUpClass(cls):
     cls.bts = Steem(
         node=get_steem_nodes(),
         nobroadcast=True,
         unsigned=True,
         data_refresh_time_seconds=900,
         keys={"active": wif, "owner": wif2, "memo": wif3},
         num_retries=10)
     cls.account = Account("test", full=True, steem_instance=cls.bts)
Example #4
0
 def test_create_account_password(self):
     bts = Steem(node=get_steem_nodes(),
                 nobroadcast=True,
                 unsigned=True,
                 data_refresh_time_seconds=900,
                 keys={"active": wif, "owner": wif2, "memo": wif3},
                 num_retries=10)
     core_unit = "STM"
     name = ''.join(random.choice(string.ascii_lowercase) for _ in range(12))
     key5 = PrivateKey()
     bts.txbuffer.clear()
     tx = bts.create_account(
         name,
         creator="test",   # 1.2.7
         password="******",
         additional_owner_keys=[format(key5.pubkey, core_unit)],
         additional_active_keys=[format(key5.pubkey, core_unit)],
         additional_posting_keys=[format(key5.pubkey, core_unit)],
         additional_owner_accounts=["test1"],  # 1.2.0
         additional_active_accounts=["test1"],
         storekeys=False,
     )
     if isinstance(tx["operations"][0], list):
         self.assertEqual(
             tx["operations"][0][0],
             "account_create"
         )
         op = tx["operations"][0][1]
     else:
         self.assertEqual(
             tx["operations"][0]["type"],
             "account_create_operation"
         )
         op = tx["operations"][0]["value"]            
     role = "active"
     self.assertIn(
         format(key5.pubkey, core_unit),
         [x[0] for x in op[role]["key_auths"]])
     self.assertIn(
         format(key5.pubkey, core_unit),
         [x[0] for x in op[role]["key_auths"]])
     self.assertIn(
         "test1",
         [x[0] for x in op[role]["account_auths"]])
     role = "owner"
     self.assertIn(
         format(key5.pubkey, core_unit),
         [x[0] for x in op[role]["key_auths"]])
     self.assertIn(
         format(key5.pubkey, core_unit),
         [x[0] for x in op[role]["key_auths"]])
     self.assertIn(
         "test1",
         [x[0] for x in op[role]["account_auths"]])
     self.assertEqual(
         op["creator"],
         "test")
 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)
     cls.stm = Steem(
         node=node_list,
         keys={"active": wif, "owner": wif, "memo": wif},
         nobroadcast=True,
         num_retries=10
     )
     cls.steemit = Steem(
         node="https://api.steemit.com",
         nobroadcast=True,
         keys={"active": wif, "owner": wif, "memo": wif},
         num_retries=10
     )
     set_shared_steem_instance(cls.stm)
     cls.stm.set_default_account("test")
Example #6
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     set_shared_steem_instance(None)
     self.stm = Steem(
         node=get_node_list(appbase=False),
         nobroadcast=True,
         bundle=False,
         # Overwrite wallet to use this list of wifs only
         wif={"active": wif},
         num_retries=10)
     self.bts = Steem(node=["wss://ws.golos.io"],
                      keys={
                          "active": wif,
                          "owner": wif,
                          "posting": wif
                      },
                      nobroadcast=True,
                      num_retries=10)
Example #7
0
    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),
            nobroadcast=True,
            keys={"active": wif},
            num_retries=10
        )
        b = Blockchain(steem_instance=cls.bts)
        num = b.get_current_block_num()
        cls.start = num - 5
        cls.stop = num

        # from getpass import getpass
        # self.bts.wallet.unlock(getpass())
        set_shared_steem_instance(cls.bts)
Example #8
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(
         normal=True, appbase=True),
                                                num_retries=10))
     cls.bts = Steem(node=nodelist.get_nodes(appbase=False),
                     nobroadcast=True,
                     num_retries=10)
     cls.appbase = Steem(node=nodelist.get_nodes(normal=False,
                                                 appbase=True),
                         nobroadcast=True,
                         use_condenser=False,
                         num_retries=10)
     set_shared_steem_instance(cls.bts)
     cls.asset = Asset("SBD")
     cls.symbol = cls.asset["symbol"]
     cls.precision = cls.asset["precision"]
     cls.asset2 = Asset("STEEM")
Example #9
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(
         node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
     cls.bts = Steem(node=nodelist.get_nodes(exclude_limited=True),
                     nobroadcast=True,
                     unsigned=True,
                     keys={"active": wif},
                     num_retries=10)
     cls.steemit = Steem(node="https://api.steemit.com",
                         nobroadcast=True,
                         unsigned=True,
                         keys={"active": wif},
                         num_retries=10)
     # from getpass import getpass
     # self.bts.wallet.unlock(getpass())
     set_shared_steem_instance(cls.bts)
     cls.bts.set_default_account("test")
 def test_follow_posting_key(self):
     nodelist = NodeList()
     stm = Steem(node=self.nodes,
                 keys=[self.posting_key],
                 nobroadcast=True,
                 expiration=120,
                 num_retries=10)
     account = Account("beem", steem_instance=stm)
     account.follow("beem1")
Example #11
0
 def test_normal_appbase_switch(self):
     bts = Steem(node=[self.nodes[0], self.nodes_appbase[0]])
     self.assertTrue(bts.chain_params['min_version'] == '0.19.5')
     self.assertFalse(bts.rpc.get_use_appbase())
     self.assertTrue(isinstance(bts.rpc.get_config(api="database"), dict))
     bts.rpc.next()
     self.assertTrue(bts.chain_params['min_version'] == '0.19.10')
     self.assertTrue(bts.rpc.get_use_appbase())
     self.assertTrue(isinstance(bts.rpc.get_config(api="database"), dict))
Example #12
0
 def setUpClass(cls):
     cls.bts = Steem(
         node=nodes,
         nobroadcast=True,
         keys={"active": wif, "owner": wif, "memo": wif},
         num_retries=10
     )
     cls.appbase = Steem(
         node=nodes_appbase,
         nobroadcast=True,
         keys={"active": wif, "owner": wif, "memo": wif},
         num_retries=10
     )
     cls.rpc = SteemNodeRPC(urls=test_list)
     # from getpass import getpass
     # self.bts.wallet.unlock(getpass())
     set_shared_steem_instance(cls.bts)
     cls.bts.set_default_account("test")
Example #13
0
    def setUpClass(cls):
        cls.bts = Steem(node=nodes,
                        nobroadcast=True,
                        keys={"active": wif},
                        num_retries=10)
        cls.appbase = Steem(node=nodes_appbase,
                            nobroadcast=True,
                            keys={"active": wif},
                            num_retries=10)
        # from getpass import getpass
        # self.bts.wallet.unlock(getpass())
        set_shared_steem_instance(cls.bts)
        cls.bts.set_default_account("test")

        b = Blockchain(steem_instance=cls.bts)
        num = b.get_current_block_num()
        cls.start = num - 25
        cls.stop = num
Example #14
0
 def setUpClass(cls):
     stm = shared_steem_instance()
     stm.config.refreshBackup()
     cls.bts = Steem(node=["wss://testnet.steem.vc"],
                     nobroadcast=True,
                     num_retries=10)
     # from getpass import getpass
     # self.bts.wallet.unlock(getpass())
     cls.bts.set_default_account("beem")
Example #15
0
 def test_transactionbuilder(self, node_param):
     if node_param == "instance":
         set_shared_steem_instance(self.bts)
         o = TransactionBuilder()
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             o = TransactionBuilder(steem_instance=Steem(
                 node="https://abc.d", autoconnect=False, num_retries=1))
             o.blockchain.get_config()
     else:
         set_shared_steem_instance(
             Steem(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = TransactionBuilder(steem_instance=stm)
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             o = TransactionBuilder()
             o.blockchain.get_config()
Example #16
0
 def test_amount(self, node_param):
     if node_param == "instance":
         stm = Steem(node="https://abc.d", autoconnect=False, num_retries=1)
         set_shared_steem_instance(self.bts)
         o = Amount("1 %s" % self.bts.backed_token_symbol)
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Amount("1 %s" % self.bts.backed_token_symbol,
                    steem_instance=stm)
     else:
         set_shared_steem_instance(
             Steem(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = Amount("1 %s" % self.bts.backed_token_symbol,
                    steem_instance=stm)
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Amount("1 %s" % self.bts.backed_token_symbol)
Example #17
0
 def test_block(self, node_param):
     if node_param == "instance":
         set_shared_steem_instance(self.bts)
         o = Block(1)
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Block(1,
                   steem_instance=Steem(node="https://abc.d",
                                        autoconnect=False,
                                        num_retries=1))
     else:
         set_shared_steem_instance(
             Steem(node="https://abc.d", autoconnect=False, num_retries=1))
         stm = self.bts
         o = Block(1, steem_instance=stm)
         self.assertIn(o.blockchain.rpc.url, self.urls)
         with self.assertRaises(RPCConnection):
             Block(1)
Example #18
0
 def test_follow_active_key(self):
     nodelist = NodeList()
     stm = Steem(node=nodelist.get_testnet(),
                 keys=[self.active_key],
                 nobroadcast=True,
                 expiration=120,
                 num_retries=10)
     account = Account("beem", steem_instance=stm)
     account.follow("beem1")
Example #19
0
 def test_create_account(self):
     bts = Steem(node=self.nodelist.get_steem_nodes(),
                 nobroadcast=True,
                 unsigned=True,
                 data_refresh_time_seconds=900,
                 keys={
                     "active": wif,
                     "owner": wif,
                     "memo": wif
                 },
                 num_retries=10)
     core_unit = "STM"
     name = ''.join(
         random.choice(string.ascii_lowercase) for _ in range(12))
     key1 = PrivateKey()
     key2 = PrivateKey()
     key3 = PrivateKey()
     key4 = PrivateKey()
     key5 = PrivateKey()
     bts.txbuffer.clear()
     tx = bts.create_account(
         name,
         creator="test",  # 1.2.7
         owner_key=format(key1.pubkey, core_unit),
         active_key=format(key2.pubkey, core_unit),
         posting_key=format(key3.pubkey, core_unit),
         memo_key=format(key4.pubkey, core_unit),
         additional_owner_keys=[format(key5.pubkey, core_unit)],
         additional_active_keys=[format(key5.pubkey, core_unit)],
         additional_posting_keys=[format(key5.pubkey, core_unit)],
         additional_owner_accounts=["test1"],  # 1.2.0
         additional_active_accounts=["test2"],
         additional_posting_accounts=["test3"],
         storekeys=False,
     )
     self.assertEqual(tx["operations"][0][0], "account_create")
     op = tx["operations"][0][1]
     role = "active"
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn("test2", [x[0] for x in op[role]["account_auths"]])
     role = "posting"
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn("test3", [x[0] for x in op[role]["account_auths"]])
     role = "owner"
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn(format(key5.pubkey, core_unit),
                   [x[0] for x in op[role]["key_auths"]])
     self.assertIn("test1", [x[0] for x in op[role]["account_auths"]])
     self.assertEqual(op["creator"], "test")
Example #20
0
 def setUpClass(cls):
     cls.stm = Steem(node=get_node_list(appbase=False),
                     keys={
                         "active": wif,
                         "owner": wif,
                         "memo": wif
                     },
                     nobroadcast=True,
                     num_retries=10)
     cls.appbase = Steem(node=get_node_list(appbase=True),
                         nobroadcast=True,
                         keys={
                             "active": wif,
                             "owner": wif,
                             "memo": wif
                         },
                         num_retries=10)
     set_shared_steem_instance(cls.stm)
     cls.stm.set_default_account("test")
Example #21
0
    def setUpClass(cls):
        cls.nodelist = NodeList()
        cls.nodelist.update_nodes(steem_instance=Steem(
            node=cls.nodelist.get_nodes(normal=True, appbase=True),
            num_retries=10))
        stm = Steem(node=cls.nodelist.get_nodes())
        stm.config.refreshBackup()
        stm.set_default_nodes(["xyz"])
        del stm

        cls.urls = cls.nodelist.get_nodes()
        cls.bts = Steem(node=cls.urls, nobroadcast=True, num_retries=10)
        set_shared_steem_instance(cls.bts)
        acc = Account("holger80", steem_instance=cls.bts)
        comment = acc.get_blog(limit=20)[-1]
        cls.authorperm = comment.authorperm
        votes = acc.get_account_votes()
        last_vote = votes[-1]
        cls.authorpermvoter = '@' + last_vote['authorperm'] + '|' + acc["name"]
Example #22
0
    def setUpClass(cls):
        nodelist = NodeList()
        nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(normal=True, appbase=True), num_retries=10))
        cls.bts = Steem(
            node=nodelist.get_nodes(),
            nobroadcast=True,
            timeout=30,
            num_retries=30,
        )
        # from getpass import getpass
        # self.bts.wallet.unlock(getpass())
        set_shared_steem_instance(cls.bts)
        cls.bts.set_default_account("test")

        b = Blockchain(steem_instance=cls.bts)
        num = b.get_current_block_num()
        # num = 23346630
        cls.start = num - 25
        cls.stop = num
Example #23
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(
         normal=True, appbase=True),
                                                num_retries=10))
     cls.bts = Steem(node=nodelist.get_nodes(),
                     nobroadcast=True,
                     keys={"active": wif},
                     num_retries=10)
     cls.testnet = Steem(node="https://testnet.steemitdev.com",
                         nobroadcast=True,
                         keys={"active": wif},
                         num_retries=10)
     cls.test_block_id = 19273700
     cls.test_block_id_testnet = 10000
     # from getpass import getpass
     # self.bts.wallet.unlock(getpass())
     set_shared_steem_instance(cls.bts)
     cls.bts.set_default_account("test")
Example #24
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(
         normal=True, appbase=True),
                                                num_retries=10))
     cls.bts = Steem(
         node=nodelist.get_nodes(appbase=False),
         nobroadcast=True,
         bundle=False,
         # Overwrite wallet to use this list of wifs only
         keys={"active": wif},
         num_retries=10)
     cls.appbase = Steem(
         node=nodelist.get_nodes(appbase=True, dev=True),
         nobroadcast=True,
         bundle=False,
         # Overwrite wallet to use this list of wifs only
         keys={"active": wif},
         num_retries=10)
Example #25
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(exclude_limited=False), num_retries=10))
     cls.bts = Steem(
         node=nodelist.get_nodes(exclude_limited=True),
         nobroadcast=True,
         num_retries=10
     )
     cls.steemit = Steem(
         node="https://api.steemit.com",
         nobroadcast=True,
         use_condenser=False,
         num_retries=10
     )
     set_shared_steem_instance(cls.bts)
     cls.asset = Asset("SBD")
     cls.symbol = cls.asset["symbol"]
     cls.precision = cls.asset["precision"]
     cls.asset2 = Asset("STEEM")
Example #26
0
 def setUpClass(cls):
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=Steem(node=nodelist.get_nodes(
         normal=True, appbase=True),
                                                num_retries=10))
     cls.bts = Steem(node=nodelist.get_nodes(appbase=False),
                     use_condenser=True,
                     nobroadcast=True,
                     keys={"active": wif},
                     num_retries=10)
     cls.appbase = Steem(node=nodelist.get_nodes(normal=False,
                                                 appbase=True),
                         nobroadcast=True,
                         keys={"active": wif},
                         num_retries=10)
     # from getpass import getpass
     # self.bts.wallet.unlock(getpass())
     set_shared_steem_instance(cls.bts)
     cls.bts.set_default_account("test")
Example #27
0
    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.config.refreshBackup()
        stm.set_default_nodes(["xyz"])
        del stm

        cls.urls = cls.nodelist.get_nodes(hive=True)
        cls.bts = Steem(node=cls.urls, nobroadcast=True, num_retries=10)
        set_shared_steem_instance(cls.bts)
        acc = Account("fullnodeupdate", steem_instance=cls.bts)
        comment = Comment(acc.get_blog_entries(limit=20)[-1],
                          steem_instance=cls.bts)
        cls.authorperm = comment.authorperm
        votes = comment.get_votes()
        last_vote = votes[-1]
        cls.authorpermvoter = comment['authorperm'] + '|' + last_vote["voter"]
Example #28
0
    def test_default_connection(self):
        nodelist = NodeList()
        b1 = Steem(
            node=nodelist.get_testnet(),
            nobroadcast=True,
        )
        set_shared_steem_instance(b1)
        test = Account("test")

        b2 = Steem(
            node=nodelist.get_nodes(appbase=False),
            nobroadcast=True,
        )
        set_shared_steem_instance(b2)

        bts = Account("test")

        self.assertEqual(test.steem.prefix, "STX")
        self.assertEqual(bts.steem.prefix, "STM")
Example #29
0
 def test_steem(self, node_param):
     if node_param == "instance":
         stm = Steem(node="abc", autoconnect=False, num_retries=1)
         set_shared_steem_instance(self.bts)
         o = Steem(node=self.urls)
         o.get_config()
         self.assertIn(o.rpc.url, self.urls)
         with self.assertRaises(NumRetriesReached):
             stm.get_config()
     else:
         set_shared_steem_instance(
             Steem(node="abc", autoconnect=False, num_retries=1))
         stm = self.bts
         o = stm
         o.get_config()
         self.assertIn(o.rpc.url, self.urls)
         with self.assertRaises(NumRetriesReached):
             stm = shared_steem_instance()
             stm.get_config()
Example #30
0
    def setUpClass(cls):

        cls.bts = Steem(
            node=get_node_list(appbase=False),
            nobroadcast=True,
            keys={"active": wif},
            num_retries=10
        )
        cls.appbase = Steem(
            node=nodes_appbase,
            nobroadcast=True,
            keys={"active": wif},
            num_retries=10
        )
        cls.test_block_id = 19273700
        # from getpass import getpass
        # self.bts.wallet.unlock(getpass())
        set_shared_steem_instance(cls.bts)
        cls.bts.set_default_account("test")