A test for random address generation #2213

Merged
PeterSurda merged 2 commits from gitea-87 into v0.6 2024-04-16 06:17:13 +02:00
3 changed files with 21 additions and 6 deletions

View File

@ -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 = \

View File

@ -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(

View File

@ -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'))