This repository has been archived on 2024-08-21. You can view files and clone it, but cannot push or open issues or pull requests.
PyBitmessage-2024-08-21/src/backend/address_generator.py

50 lines
1.6 KiB
Python

"""
Common methods and functions for kivy and qt.
"""
import queues
from bmconfigparser import config
from defaults import (
networkDefaultProofOfWorkNonceTrialsPerByte,
networkDefaultPayloadLengthExtraBytes
)
class AddressGenerator(object):
""""Base class for address generation and validation"""
def __init__(self):
pass
@staticmethod
def random_address_generation(
label, streamNumberForAddress=1, eighteenByteRipe=False,
nonceTrialsPerByte=networkDefaultProofOfWorkNonceTrialsPerByte,
payloadLengthExtraBytes=networkDefaultPayloadLengthExtraBytes
):
"""Start address generation and return whether validation was successful"""
labels = [config.get(obj, 'label')
for obj in config.addresses()]
if label and label not in labels:
queues.addressGeneratorQueue.put((
'createRandomAddress', 4, streamNumberForAddress, label, 1,
"", eighteenByteRipe, nonceTrialsPerByte,
payloadLengthExtraBytes))
return True
return False
@staticmethod
def address_validation(instance, label):
"""Checking address validation while creating"""
labels = [config.get(obj, 'label') for obj in config.addresses()]
if label in labels:
instance.error = True
instance.helper_text = 'it is already exist you'\
' can try this Ex. ( {0}_1, {0}_2 )'.format(
label)
elif label:
instance.error = False
else:
instance.error = True
instance.helper_text = 'This field is required'