A test for random address generation #2213
|
@ -201,10 +201,11 @@ class singleWorker(StoppableThread):
|
||||||
'Could not read or decode privkey for address %s', address)
|
'Could not read or decode privkey for address %s', address)
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
privSigningKeyHex = hexlify(
|
privSigningKeyHex = hexlify(highlevelcrypto.decodeWalletImportFormat(
|
||||||
highlevelcrypto.decodeWalletImportFormat(privSigningKeyBase58))
|
privSigningKeyBase58.encode()))
|
||||||
privEncryptionKeyHex = hexlify(
|
privEncryptionKeyHex = hexlify(
|
||||||
highlevelcrypto.decodeWalletImportFormat(privEncryptionKeyBase58))
|
highlevelcrypto.decodeWalletImportFormat(
|
||||||
|
privEncryptionKeyBase58.encode()))
|
||||||
|
|
||||||
# The \x04 on the beginning of the public keys are not sent.
|
# The \x04 on the beginning of the public keys are not sent.
|
||||||
# This way there is only one acceptable way to encode
|
# This way there is only one acceptable way to encode
|
||||||
|
@ -1113,7 +1114,7 @@ class singleWorker(StoppableThread):
|
||||||
continue
|
continue
|
||||||
privEncryptionKeyHex = hexlify(
|
privEncryptionKeyHex = hexlify(
|
||||||
highlevelcrypto.decodeWalletImportFormat(
|
highlevelcrypto.decodeWalletImportFormat(
|
||||||
privEncryptionKeyBase58))
|
privEncryptionKeyBase58.encode()))
|
||||||
pubEncryptionKeyBase256 = unhexlify(highlevelcrypto.privToPub(
|
pubEncryptionKeyBase256 = unhexlify(highlevelcrypto.privToPub(
|
||||||
privEncryptionKeyHex))[1:]
|
privEncryptionKeyHex))[1:]
|
||||||
requiredAverageProofOfWorkNonceTrialsPerByte = \
|
requiredAverageProofOfWorkNonceTrialsPerByte = \
|
||||||
|
|
|
@ -102,8 +102,8 @@ def reloadMyAddressHashes():
|
||||||
# Returns a simple 32 bytes of information encoded in 64 Hex characters
|
# Returns a simple 32 bytes of information encoded in 64 Hex characters
|
||||||
try:
|
try:
|
||||||
privEncryptionKey = hexlify(
|
privEncryptionKey = hexlify(
|
||||||
highlevelcrypto.decodeWalletImportFormat(
|
highlevelcrypto.decodeWalletImportFormat(config.get(
|
||||||
config.get(addressInKeysFile, 'privencryptionkey')
|
addressInKeysFile, 'privencryptionkey').encode()
|
||||||
))
|
))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
logger.error(
|
logger.error(
|
||||||
|
|
|
@ -85,3 +85,17 @@ class TestAddressGenerator(TestPartialRun):
|
||||||
self.config.getboolean(sample_deterministic_addr4, 'chan'))
|
self.config.getboolean(sample_deterministic_addr4, 'chan'))
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
self.config.getboolean(sample_deterministic_addr4, 'enabled'))
|
self.config.getboolean(sample_deterministic_addr4, 'enabled'))
|
||||||
|
|
||||||
|
def test_random(self):
|
||||||
|
"""Test random address"""
|
||||||
|
self.command_queue.put((
|
||||||
|
'createRandomAddress', 4, 1, 'test_random', 1, '', False, 0, 0))
|
||||||
|
addr = self.return_queue.get()
|
||||||
|
self.assertRegexpMatches(addr, r'^BM-')
|
||||||
|
self.assertRegexpMatches(addr[3:], r'[a-zA-Z1-9]+$')
|
||||||
|
self.assertLessEqual(len(addr[3:]), 40)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
self.worker_queue.get(), ('sendOutOrStoreMyV4Pubkey', addr))
|
||||||
|
self.assertEqual(self.config.get(addr, 'label'), 'test_random')
|
||||||
|
self.assertTrue(self.config.getboolean(addr, 'enabled'))
|
||||||
|
|
Reference in New Issue
Block a user