Example #1
0
    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
Example #2
0
 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
Example #3
0
 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
     ]
Example #4
0
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
Example #5
0
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
Example #6
0
    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]
Example #7
0
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
Example #8
0
 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
     ]
Example #9
0
    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
        ]
Example #10
0
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())
Example #11
0
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())
Example #12
0
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())
Example #13
0
 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
     ]
Example #14
0
    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]