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}
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
def _deserialize(self, value, attr, data): if not is_rns_address(value): self.fail('missing_dot') return value
def _deserialize(self, value, attr, data): if not is_rns_address(value): deserialize_address_helper(self, value, attr, data) return value