def METHOD_NAME(
        self,
        token: Optional[EvmToken],  # pylint: disable=unused-argument
        tx_log: EvmTxReceiptLog,
        transaction: EvmTransaction,  # pylint: disable=unused-argument
        decoded_events: list['EvmEvent'],
        action_items: list[ActionItem],  # pylint: disable=unused-argument
        all_logs: list[EvmTxReceiptLog],  # pylint: disable=unused-argument
) -> DecodingOutput:
    """Search for both events. Since the order is not guaranteed try reshuffle in both cases"""
    out_event = in_event = None
    if tx_log.topics[0] == TOKEN_PURCHASE:
        buyer = hex_or_bytes_to_address(tx_log.topics[1])
        # search for a send to buyer from a tracked address
        for event in decoded_events:
            if event.event_type == HistoryEventType.SPEND and event.address == buyer:
                try:
                    crypto_asset = event.asset.resolve_to_crypto_asset()
                except (UnknownAsset, WrongAssetType):
                    self.notify_user(event=event, counterparty=CPT_UNISWAP_V1)
                    continue
                event.event_type = HistoryEventType.TRADE
                event.event_subtype = HistoryEventSubType.SPEND
                event.counterparty = CPT_UNISWAP_V1
                event.notes = f'Swap {event.balance.amount} {crypto_asset.symbol} in uniswap-v1 from {event.location_label}'  # noqa: E501
                out_event = event
            elif event.event_type == HistoryEventType.TRADE and event.event_subtype == HistoryEventSubType.RECEIVE and event.counterparty == CPT_UNISWAP_V1:  # noqa: E501
                in_event = event
    elif tx_log.topics[0] == ETH_PURCHASE:
        buyer = hex_or_bytes_to_address(tx_log.topics[1])
        # search for a receive to buyer
        for event in decoded_events:
            if event.event_type == HistoryEventType.RECEIVE and event.location_label == buyer:
                try:
                    crypto_asset = event.asset.resolve_to_crypto_asset()
                except (UnknownAsset, WrongAssetType):
                    self.notify_user(event=event, counterparty=CPT_UNISWAP_V1)
                    continue
                event.event_type = HistoryEventType.TRADE
                event.event_subtype = HistoryEventSubType.RECEIVE
                event.counterparty = CPT_UNISWAP_V1
                event.notes = f'Receive {event.balance.amount} {crypto_asset.symbol} from uniswap-v1 swap in {event.location_label}'  # noqa: E501
                in_event = event
            elif event.event_type == HistoryEventType.TRADE and event.event_subtype == HistoryEventSubType.SPEND and event.counterparty == CPT_UNISWAP_V1:  # noqa: E501
                out_event = event
    maybe_reshuffle_events(ordered_events=[out_event, in_event], events_list=decoded_events)
    return DEFAULT_DECODING_OUTPUT