def get_payment_events(self, token_network_identifier, our_address, initiator_address, target_address, from_date, to_date, event_type: int = None, limit: int = None, offset: int = None): entries = self._query_payments_events(token_network_identifier, our_address, initiator_address, target_address, from_date, to_date, event_type, limit, offset) result = [ TimestampedEvent(self.serializer.deserialize(entry[0]), entry[1]) for entry in entries ] return result
def get_events_with_timestamps(self, limit: int = None, offset: int = None): entries = self._query_events(limit, offset) result = [ TimestampedEvent(self.serializer.deserialize(entry[0]), entry[1]) for entry in entries ] return result
def get_events_with_timestamps(self, limit: int = None, offset: int = None): events = super().get_events_with_timestamps(limit, offset) return [ TimestampedEvent(self.serializer.deserialize(event.wrapped_event), event.log_time) for event in events ]
def test_timestamped_event(): event = EventPaymentSentFailed(make_token_network_registry_address(), make_address(), 1, make_address(), "whatever") log_time = "2018-09-07T20:02:35.000" timestamped = TimestampedEvent(event, log_time) assert timestamped.log_time == log_time assert timestamped.reason == timestamped.wrapped_event.reason == "whatever" assert timestamped.identifier == 1
def test_timestamped_event(): event = EventPaymentSentFailed(make_token_network_registry_address(), make_address(), 1, make_address(), "whatever") log_time = datetime.fromisoformat("2018-09-07T20:02:35.000") timestamped = TimestampedEvent(event, log_time) assert timestamped.log_time == log_time assert isinstance(timestamped.event, EventPaymentSentFailed) assert timestamped.reason == timestamped.event.reason == "whatever" assert timestamped.identifier == timestamped.event.identifier == 1
def get_events_with_timestamps( self, limit: int = None, offset: int = None, filters: List[Tuple[str, Any]] = None, logical_and: bool = True, ) -> List[TimestampedEvent]: entries = self._query_events( limit=limit, offset=offset, filters=filters, logical_and=logical_and ) return [TimestampedEvent(entry[0], entry[1]) for entry in entries]
def test_timestamped_event(): event = EventPaymentSentFailed( factories.make_payment_network_identifier(), factories.make_address(), 1, factories.make_address(), 'whatever', ) log_time = '2018-09-07T20:02:35.000' timestamped = TimestampedEvent(event, log_time) assert timestamped.log_time == log_time assert timestamped.reason == timestamped.wrapped_event.reason == 'whatever' assert timestamped.identifier == 1
def get_events_with_timestamps( self, limit: int = None, offset: int = None, filters: List[Tuple[str, Any]] = None, logical_and: bool = True, ) -> List[TimestampedEvent]: events = self.database.get_events_with_timestamps( limit=limit, offset=offset, filters=filters, logical_and=logical_and ) return [ TimestampedEvent(self.serializer.deserialize(event.wrapped_event), event.log_time) for event in events ]
def get_raiden_events_payment_history_with_timestamps( self, event_types: List[str], limit: int = None, offset: int = None, token_network_address: TokenNetworkAddress = None, partner_address: Address = None, ) -> List[TimestampedEvent]: events = self.database.get_raiden_events_payment_history_with_timestamps( event_types=event_types, limit=limit, offset=offset, token_network_address=token_network_address, partner_address=partner_address, ) return [ TimestampedEvent(self.serializer.deserialize(data), timestamp) for data, timestamp in events ]
def test_v1_event_payment_sent_failed_schema(): event = EventPaymentSentFailed( factories.make_payment_network_identifier(), factories.make_address(), 1, factories.make_address(), 'whatever', ) log_time = '2018-09-07T20:02:35.000' timestamped = TimestampedEvent(event, log_time) dumped = EventPaymentSentFailedSchema().dump(timestamped) expected = { 'event': 'EventPaymentSentFailed', 'log_time': log_time, 'reason': 'whatever', } assert all(dumped.data.get(key) == value for key, value in expected.items())
def test_v1_event_payment_sent_failed_schema(): event = EventPaymentSentFailed( token_network_registry_address=UNIT_TOKEN_NETWORK_REGISTRY_ADDRESS, token_network_address=UNIT_TOKEN_NETWORK_ADDRESS, identifier=PaymentID(1), target=TargetAddress(factories.make_address()), reason="whatever", ) log_time = datetime.datetime.now() timestamped = TimestampedEvent(event, log_time) dumped = EventPaymentSentFailedSchema().dump(timestamped) expected = { "event": "EventPaymentSentFailed", "log_time": log_time.isoformat(), "reason": "whatever", } assert all(dumped.get(key) == value for key, value in expected.items())
def test_v1_event_payment_sent_failed_schema(): event = EventPaymentSentFailed( payment_network_identifier=factories.make_payment_network_identifier(), token_network_identifier=factories.make_address(), identifier=1, target=factories.make_address(), reason="whatever", ) log_time = "2018-09-07T20:02:35.000" timestamped = TimestampedEvent(event, log_time) dumped = EventPaymentSentFailedSchema().dump(timestamped) expected = { "event": "EventPaymentSentFailed", "log_time": log_time, "reason": "whatever" } assert all( dumped.data.get(key) == value for key, value in expected.items())
def get_events_with_timestamps(self, limit: int = None, offset: int = None): entries = self._query_events(limit, offset) return [ TimestampedEvent(entry[0], entry[1]) for entry in entries ]
def get_raiden_events_payment_history_with_timestamps( self, event_types: List[str], limit: int = None, offset: int = None, token_network_address: TokenNetworkAddress = None, partner_address: Address = None, ) -> List[TimestampedEvent]: limit, offset = _sanitize_limit_and_offset(limit, offset) cursor = self.conn.cursor() args: List = list(event_types) sql_helper = ",".join("?" * len(event_types)) if token_network_address and partner_address: query = """ SELECT data, timestamp FROM state_events WHERE json_extract(data, '$._type') IN ({}) AND json_extract(data, '$.token_network_address') LIKE ? AND ( json_extract(data, '$.target') LIKE ? OR json_extract(data, '$.initiator') LIKE ? ) ORDER BY identifier ASC LIMIT ? OFFSET ? """ args.append(to_normalized_address(token_network_address)) # We need to append partner_address two times # since it is used in the OR statement args.append(to_normalized_address(partner_address)) args.append(to_normalized_address(partner_address)) elif token_network_address and not partner_address: query = """ SELECT data, timestamp FROM state_events WHERE json_extract(data, '$._type') IN ({}) AND json_extract(data, '$.token_network_address') LIKE ? ORDER BY identifier ASC LIMIT ? OFFSET ? """ args.append(to_normalized_address(token_network_address)) elif partner_address and not token_network_address: query = """ SELECT data, timestamp FROM state_events WHERE json_extract(data, '$._type') IN ({}) AND ( json_extract(data, '$.target') LIKE ? OR json_extract(data, '$.initiator') LIKE ? ) ORDER BY identifier ASC LIMIT ? OFFSET ? """ # We need to append partner_address two times # since it is used in the OR statement args.append(to_normalized_address(partner_address)) args.append(to_normalized_address(partner_address)) else: query = """ SELECT data, timestamp FROM state_events WHERE json_extract(data, '$._type') IN ({}) ORDER BY identifier ASC LIMIT ? OFFSET ? """ query = query.format(sql_helper) args.append(limit) args.append(offset) cursor.execute(query, args) return [TimestampedEvent(entry[0], entry[1]) for entry in cursor]