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()
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])
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)