Beispiel #1
0
 def test_lock_wallet(self):
     with set_qrl_dir("wallet_ver1"):
         walletd = WalletD()
         walletd.add_new_address()
         walletd.encrypt_wallet(passphrase=self.passphrase)
         walletd.lock_wallet()
         with self.assertRaises(ValueError):
             walletd.add_new_address()
Beispiel #2
0
    def test_encrypt_last_item(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            walletd.authenticate()

            walletd.add_new_address(height=4)
            self.assertFalse(walletd.get_wallet_info()[2])
            walletd._passphrase = self.passphrase
            walletd._encrypt_last_item()
            self.assertTrue(walletd.get_wallet_info()[2])
Beispiel #3
0
    def test_add_new_address2(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address(height=4)
            self.assertEqual(qaddress[0], 'Q')

            self.assertEqual(len(walletd.list_address()), 1)

            qaddress = walletd.add_new_address(height=4)
            self.assertEqual(qaddress[0], 'Q')

            self.assertEqual(len(walletd.list_address()), 2)
Beispiel #4
0
 def test_get_wallet_index_xmss(self):
     with set_qrl_dir("wallet_ver1"):
         walletd = WalletD()
         qaddress = walletd.add_new_address(height=4)
         index, xmss = walletd._get_wallet_index_xmss(qaddress, 0)
         self.assertEqual(index, 0)
         self.assertEqual(xmss.qaddress, qaddress)
Beispiel #5
0
    def test_relay_slave_txn(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address(height=4)
            walletd.encrypt_wallet(self.passphrase)
            walletd.unlock_wallet(self.passphrase)

            alice_xmss = get_alice_xmss(4)
            slave_pks = [alice_xmss.pk]
            access_types = [0]
            walletd._public_stub.PushTransaction = Mock(
                return_value=qrl_pb2.PushTransactionResp(
                    error_code=qrl_pb2.PushTransactionResp.SUBMITTED))
            tx = walletd.relay_slave_txn(slave_pks=slave_pks,
                                         access_types=access_types,
                                         fee=100000000,
                                         master_qaddress=None,
                                         signer_address=qaddress,
                                         ots_index=0)
            self.assertIsNotNone(tx)

            walletd.lock_wallet()
            with self.assertRaises(ValueError):
                walletd.relay_slave_txn(slave_pks=slave_pks,
                                        access_types=access_types,
                                        fee=100000000,
                                        master_qaddress=None,
                                        signer_address=qaddress,
                                        ots_index=0)
Beispiel #6
0
    def test_relay_transfer_token_txn(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address(height=4)
            walletd.encrypt_wallet(self.passphrase)
            walletd.unlock_wallet(self.passphrase)

            alice_xmss = get_alice_xmss(4)
            bob_xmss = get_bob_xmss(4)
            qaddresses_to = [alice_xmss.qaddress, bob_xmss.qaddress]
            amounts = [1000000000, 1000000000]
            walletd._public_stub.PushTransaction = Mock(
                return_value=qrl_pb2.PushTransactionResp(
                    error_code=qrl_pb2.PushTransactionResp.SUBMITTED))
            tx = walletd.relay_transfer_token_txn(qaddresses_to=qaddresses_to,
                                                  amounts=amounts,
                                                  token_txhash='',
                                                  fee=100000000,
                                                  master_qaddress=None,
                                                  signer_address=qaddress,
                                                  ots_index=0)
            self.assertIsNotNone(tx)

            walletd.lock_wallet()
            with self.assertRaises(ValueError):
                walletd.relay_transfer_token_txn(qaddresses_to=qaddresses_to,
                                                 amounts=amounts,
                                                 token_txhash='',
                                                 fee=100000000,
                                                 master_qaddress=None,
                                                 signer_address=qaddress,
                                                 ots_index=0)
Beispiel #7
0
    def test_remove_address(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address(height=4)
            self.assertEqual(qaddress[0], 'Q')

            self.assertEqual(len(walletd.list_address()), 1)

            result = walletd.remove_address(qaddress)
            self.assertTrue(result)

            self.assertEqual(len(walletd.list_address()), 0)
Beispiel #8
0
 def test_relay_message_txn(self):
     with set_qrl_dir("wallet_ver1"):
         walletd = WalletD()
         qaddress = walletd.add_new_address(height=4)
         walletd._public_stub.PushTransaction = Mock(
             return_value=qrl_pb2.PushTransactionResp(
                 error_code=qrl_pb2.PushTransactionResp.SUBMITTED))
         tx = walletd.relay_message_txn(message='Hello QRL!',
                                        fee=100000000,
                                        master_qaddress=None,
                                        signer_address=qaddress,
                                        ots_index=0)
         self.assertIsNotNone(tx)
Beispiel #9
0
 def test_unlock_wallet(self):
     with set_qrl_dir("wallet_ver1"):
         walletd = WalletD()
         walletd.add_new_address()
         walletd.encrypt_wallet(passphrase=self.passphrase)
         walletd.lock_wallet()
         with self.assertRaises(ValueError):
             walletd.add_new_address()
         with self.assertRaises(WalletDecryptionError):
             walletd.unlock_wallet(passphrase='pass123')
         walletd.unlock_wallet(passphrase=self.passphrase)
         walletd.add_new_address()
         self.assertEqual(len(walletd.list_address()), 2)
Beispiel #10
0
    def test_change_passphrase(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address()
            walletd.encrypt_wallet(passphrase=self.passphrase)
            walletd.lock_wallet()

            passphrase2 = 'pass000'

            with self.assertRaises(ValueError):
                walletd.change_passphrase(old_passphrase='pass123',
                                          new_passphrase='pass234')
            walletd.change_passphrase(old_passphrase=self.passphrase,
                                      new_passphrase=passphrase2)

            with self.assertRaises(WalletDecryptionError):
                walletd.unlock_wallet(passphrase=self.passphrase)

            walletd.unlock_wallet(passphrase=passphrase2)
            qaddresses = walletd.list_address()
            self.assertEqual(len(qaddresses), 1)
            self.assertEqual(qaddresses[0], qaddress)
Beispiel #11
0
 def test_relay_token_txn(self):
     with set_qrl_dir("wallet_ver1"):
         walletd = WalletD()
         qaddress = walletd.add_new_address(height=4)
         alice_xmss = get_alice_xmss(4)
         bob_xmss = get_bob_xmss(4)
         qaddresses = [alice_xmss.qaddress, bob_xmss.qaddress]
         amounts = [1000000000, 1000000000]
         walletd._public_stub.PushTransaction = Mock(
             return_value=qrl_pb2.PushTransactionResp(
                 error_code=qrl_pb2.PushTransactionResp.SUBMITTED))
         tx = walletd.relay_token_txn(symbol='QRL',
                                      name='Quantum Resistant Ledger',
                                      owner_qaddress=alice_xmss.qaddress,
                                      decimals=5,
                                      qaddresses=qaddresses,
                                      amounts=amounts,
                                      fee=100000000,
                                      master_qaddress=None,
                                      signer_address=qaddress,
                                      ots_index=0)
         self.assertIsNotNone(tx)
Beispiel #12
0
    def test_get_recovery_seeds(self):
        with set_qrl_dir("wallet_ver1"):
            walletd = WalletD()
            qaddress = walletd.add_new_address(height=4)
            self.assertEqual(qaddress[0], 'Q')

            seeds = walletd.get_recovery_seeds(qaddress)
            self.assertIsInstance(seeds, tuple)
            walletd.remove_address(qaddress)
            self.assertEqual(len(walletd.list_address()), 0)

            qaddress2 = walletd.add_address_from_seed(
                seeds[0])  # Using Hex Seed
            self.assertEqual(qaddress, qaddress2)
            walletd.remove_address(qaddress2)
            self.assertEqual(len(walletd.list_address()), 0)

            qaddress2 = walletd.add_address_from_seed(
                seeds[1])  # Using Mnemonic
            self.assertEqual(qaddress, qaddress2)
            walletd.remove_address(qaddress2)
            self.assertEqual(len(walletd.list_address()), 0)