Beispiel #1
0
    def search_lumino(self, registry_address: typing.PaymentNetworkID, query, only_receivers):

        channel_identifiers_by_token_network = []
        node_addresses_by_token_network = []
        token_addresses = self._get_token_addresses_for_search(registry_address)

        chain_state = views.state_from_raiden(self.raiden)

        for payment_network in chain_state.identifiers_to_paymentnetworks.values():
            for token_network in payment_network.tokenidentifiers_to_tokennetworks.values():
                node_addresses = self._get_node_addresses_for_search(token_network)
                if len(node_addresses) > 0:
                    node_addresses_by_token_network.append(node_addresses)
                channel_identifiers = self._get_channel_identifiers_for_search(token_network)
                if len(channel_identifiers) > 0:
                    channel_identifiers_by_token_network.append(channel_identifiers)

        result_search = self._search_in(channel_identifiers_by_token_network, node_addresses_by_token_network, token_addresses, query, only_receivers)

        # First we check if the address received is an RNS address or a hexadecimal address
        if is_rns_address(query):
            rns_resolved_address = self.raiden.chain.get_address_from_rns(query)
            if rns_resolved_address != RNS_ADDRESS_ZERO:
                result_search["rns_address_matches"].append(rns_resolved_address)

        return {"results":result_search}
Beispiel #2
0
    def to_python(self, value):
        if is_rns_address(value):
            return value
        if not is_0x_prefixed(value):
            raise InvalidEndpoint('Not a valid hex address, 0x prefix missing.')

        if not is_checksum_address(value):
            raise InvalidEndpoint('Not a valid EIP55 encoded address.')

        try:
            value = to_canonical_address(value)
        except ValueError:
            raise InvalidEndpoint('Could not decode hex.')

        return value
Beispiel #3
0
    def _deserialize(self, value, attr, data):
        if not is_rns_address(value):
            self.fail('missing_dot')

        return value
Beispiel #4
0
    def _deserialize(self, value, attr, data):
        if not is_rns_address(value):
            deserialize_address_helper(self, value, attr, data)

        return value