def __init__( self, host: str, port: int, initial_reconnect_delay: int, concent_public_key: bytes, signing_service_private_key: bytes, ethereum_private_key: str, maximum_reconnect_attempts: int, notifier: Union[ConsoleNotifier, EmailNotifier], ) -> None: assert isinstance(host, str) assert isinstance(port, int) assert isinstance(initial_reconnect_delay, int) assert isinstance(concent_public_key, bytes) assert isinstance(signing_service_private_key, bytes) assert isinstance(ethereum_private_key, str) self.host = host # type: str self.port = port # type: int self.initial_reconnect_delay: int = initial_reconnect_delay self.concent_public_key = concent_public_key # type: bytes self.signing_service_private_key = signing_service_private_key # type: bytes self.signing_service_public_key = privtopub(signing_service_private_key) self.ethereum_private_key = ethereum_private_key # type: str self.current_reconnect_delay: Union[int, None] = None self.was_sigterm_caught: bool = False self.reconnection_counter = 0 self.maximum_reconnection_attempts = maximum_reconnect_attempts self.notifier = notifier self.signing_service_daily_transaction_sum_so_far = 0 self.daily_transactions_limit_file_name = datetime.datetime.now().strftime('%Y-%m-%d') self._validate_arguments() def _set_was_sigterm_caught_true(signum: int, frame: Optional[FrameType]) -> None: # pylint: disable=unused-argument logger.info('Closing connection and exiting on SIGTERM.') self.was_sigterm_caught = True # Handle shutdown signal. signal.signal(signal.SIGTERM, _set_was_sigterm_caught_true)
def __init__( self, host: str, port: int, initial_reconnect_delay: int, concent_public_key: bytes, signing_service_private_key: bytes, ethereum_private_key: str, maximum_reconnect_attempts: int, notifier: Notifier, ) -> None: assert isinstance(host, str) assert isinstance(port, int) assert isinstance(initial_reconnect_delay, int) assert isinstance(concent_public_key, bytes) assert isinstance(signing_service_private_key, bytes) assert isinstance(ethereum_private_key, str) self.host = host # type: str self.port = port # type: int self.initial_reconnect_delay: int = initial_reconnect_delay self.concent_public_key = concent_public_key # type: bytes self.signing_service_private_key = signing_service_private_key # type: bytes self.signing_service_public_key = privtopub( signing_service_private_key) self.ethereum_private_key = ethereum_private_key # type: str self.current_reconnect_delay: Union[int, None] = None self.was_sigterm_caught: bool = False self.reconnection_counter = 0 self.maximum_reconnection_attempts = maximum_reconnect_attempts self.notifier = notifier self.signing_service_daily_transaction_sum_so_far = 0 self.daily_transactions_limit_file_name = datetime.datetime.now( ).strftime('%Y-%m-%d') self._validate_arguments() # Handle shutdown signal. signal.signal(signal.SIGTERM, self._set_was_sigterm_caught_true)
def generate_priv_and_pub_eth_account_key(): client_eth_priv_key = os.urandom(32) client_eth_pub_key = privtopub(client_eth_priv_key) return (client_eth_priv_key, client_eth_pub_key)
def test_pubkey_suits_privkey(self): ka = self._create_keysauth() self.assertEqual(ka.public_key, privtopub(ka._private_key))
def test_privtopub(self): priv = mk_privkey('test') pub = privtopub(priv) pub2 = ECCx(raw_privkey=priv).raw_pubkey assert pub == pub2