def test_relaySlaveTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address 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)) resp = service.RelaySlaveTxn(qrlwallet_pb2.RelaySlaveTxnReq( slave_pks=slave_pks, access_types=access_types, fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)
def test_relayTokenTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address 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)) resp = service.RelayTokenTxn(qrlwallet_pb2.RelayTokenTxnReq( symbol=b'QRL', name=b'Quantum Resistant Ledger', owner=alice_xmss.qaddress, decimals=5, addresses=qaddresses, amounts=amounts, fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)
def test_relayTransferTokenTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address 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)) resp = service.RelayTransferTokenTxn( qrlwallet_pb2.RelayTransferTokenTxnReq( addresses_to=qaddresses_to, amounts=amounts, token_txhash='', fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)
def test_unlockWallet(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 0) self.assertEqual(len(resp.addresses), 1) resp = service.EncryptWallet(qrlwallet_pb2.EncryptWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 1) resp = service.UnlockWallet(qrlwallet_pb2.UnlockWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 0) resp = service.LockWallet(qrlwallet_pb2.LockWalletReq(), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 1) resp = service.UnlockWallet(qrlwallet_pb2.UnlockWalletReq(), context=None) self.assertEqual(resp.code, 1) resp = service.UnlockWallet(qrlwallet_pb2.UnlockWalletReq(passphrase="wrong"), context=None) self.assertEqual(resp.code, 1)
def test_addNewAddress(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) self.assertEqual(resp.code, 0) self.assertEqual(resp.address[0], 'Q')
def test_relaySlaveTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address addr_state = AddressState.get_default(walletd.qaddress_to_address(qaddress)) walletd._public_stub.GetAddressState = Mock( return_value=qrl_pb2.GetAddressStateResp(state=addr_state.pbdata)) walletd._public_stub.IsSlave = Mock( return_value=qrl_pb2.IsSlaveResp(result=True)) walletd._public_stub.GetOTS = Mock( return_value=qrl_pb2.GetOTSResp(next_unused_ots_index=0, unused_ots_index_found=True)) 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)) resp = service.RelaySlaveTxn(qrlwallet_pb2.RelaySlaveTxnReq(slave_pks=slave_pks, access_types=access_types, fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)
def test_relayMessageTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() walletd._public_stub.PushTransaction = Mock( return_value=qrl_pb2.PushTransactionResp(error_code=qrl_pb2.PushTransactionResp.SUBMITTED)) service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address addr_state = AddressState.get_default(walletd.qaddress_to_address(qaddress)) walletd._public_stub.GetAddressState = Mock( return_value=qrl_pb2.GetAddressStateResp(state=addr_state.pbdata)) walletd._public_stub.GetOTS = Mock( return_value=qrl_pb2.GetOTSResp(next_unused_ots_index=0, unused_ots_index_found=True)) resp = service.RelayMessageTxn(qrlwallet_pb2.RelayMessageTxnReq(message=b'Hello QRL!', fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(0, resp.code) self.assertIsNotNone(resp.tx)
def test_listAddresses(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) address = resp.address resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.addresses[0], address)
def test_changePassphrase(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 0) self.assertEqual(len(resp.addresses), 1) resp = service.EncryptWallet( qrlwallet_pb2.EncryptWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 1) resp = service.UnlockWallet( qrlwallet_pb2.UnlockWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(resp.code, 0) resp = service.LockWallet(qrlwallet_pb2.LockWalletReq(), context=None) self.assertEqual(resp.code, 0) new_passphrase = "Hello World" resp = service.ChangePassphrase(qrlwallet_pb2.ChangePassphraseReq( oldPassphrase=self.passphrase, newPassphrase=new_passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.UnlockWallet( qrlwallet_pb2.UnlockWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 1) resp = service.UnlockWallet( qrlwallet_pb2.UnlockWalletReq(passphrase=new_passphrase), context=None) self.assertEqual(resp.code, 0)
def test_encryptWallet(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) resp = service.EncryptWallet(qrlwallet_pb2.EncryptWalletReq(), context=None) self.assertEqual(resp.code, 1) resp = service.EncryptWallet(qrlwallet_pb2.EncryptWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 0) resp = service.EncryptWallet(qrlwallet_pb2.EncryptWalletReq(passphrase=self.passphrase), context=None) self.assertEqual(resp.code, 1)
def test_removeAddress(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) address = resp.address resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(len(resp.addresses), 1) resp = service.RemoveAddress(qrlwallet_pb2.RemoveAddressReq(address=address), context=None) self.assertEqual(resp.code, 0) resp = service.ListAddresses(qrlwallet_pb2.ListAddressesReq(), context=None) self.assertEqual(len(resp.addresses), 0)
def test_relayMessageTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address walletd._public_stub.PushTransaction = Mock( return_value=qrl_pb2.PushTransactionResp( error_code=qrl_pb2.PushTransactionResp.SUBMITTED)) resp = service.RelayMessageTxn(qrlwallet_pb2.RelayMessageTxnReq( message=b'Hello QRL!', fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)
def test_relayTokenTxn(self): with set_qrl_dir("wallet_ver1"): walletd = WalletD() service = WalletAPIService(walletd) resp = service.AddNewAddress(qrlwallet_pb2.AddNewAddressReq(), context=None) qaddress = resp.address addr_state = AddressState.get_default(walletd.qaddress_to_address(qaddress)) walletd._public_stub.GetAddressState = Mock( return_value=qrl_pb2.GetAddressStateResp(state=addr_state.pbdata)) walletd._public_stub.IsSlave = Mock( return_value=qrl_pb2.IsSlaveResp(result=True)) walletd._public_stub.GetOTS = Mock( return_value=qrl_pb2.GetOTSResp(next_unused_ots_index=0, unused_ots_index_found=True)) 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)) resp = service.RelayTokenTxn(qrlwallet_pb2.RelayTokenTxnReq(symbol=b'QRL', name=b'Quantum Resistant Ledger', owner=alice_xmss.qaddress, decimals=5, addresses=qaddresses, amounts=amounts, fee=100000000, master_address=None, signer_address=qaddress, ots_index=0), context=None) self.assertEqual(resp.code, 0) self.assertIsNotNone(resp.tx)