def register_channel_manager(self, manager_address): manager = self.default_registry.manager(manager_address) netting_channels = [ self.chain.netting_channel(channel_address) for channel_address in manager.channels_by_participant(self.address) ] # Install the filters first to avoid missing changes, as a consequence # some events might be applied twice. self.blockchain_events.add_channel_manager_listener(manager) for channel in netting_channels: self.blockchain_events.add_netting_channel_listener(channel) token_address = manager.token_address() edge_list = manager.channels_addresses() channels_detail = [ self.get_channel_details(token_address, channel) for channel in netting_channels ] graph = ChannelGraph( self.address, manager_address, token_address, edge_list, channels_detail, ) self.manager_to_token[manager_address] = token_address self.token_to_channelgraph[token_address] = graph self.tokens_to_connectionmanagers[token_address] = ConnectionManager( self, token_address, graph)
def connection_manager_for_token(self, registry_address, token_address): if not isaddress(token_address): raise InvalidAddress('token address is not valid.') known_token_networks = views.get_token_network_addresses_for( self.wal.state_manager.current_state, registry_address, ) if token_address not in known_token_networks: raise InvalidAddress('token is not registered.') manager = self.tokens_to_connectionmanagers.get(token_address) if manager is None: manager = ConnectionManager(self, registry_address, token_address) self.tokens_to_connectionmanagers[token_address] = manager return manager
def connection_manager_for_token_network(self, token_network_identifier): if not is_binary_address(token_network_identifier): raise InvalidAddress('token address is not valid.') known_token_networks = views.get_token_network_identifiers( views.state_from_raiden(self), self.default_registry.address, ) if token_network_identifier not in known_token_networks: raise InvalidAddress('token is not registered.') manager = self.tokennetworkids_to_connectionmanagers.get(token_network_identifier) if manager is None: manager = ConnectionManager(self, token_network_identifier) self.tokennetworkids_to_connectionmanagers[token_network_identifier] = manager return manager
def register_registry(self, registry_address): proxies = get_relevant_proxies( self.chain, self.address, registry_address, ) # Install the filters first to avoid missing changes, as a consequence # some events might be applied twice. self.pyethapp_blockchain_events.add_proxies_listeners(proxies) block_number = self.get_block_number() for manager in proxies.channel_managers: token_address = manager.token_address() manager_address = manager.address channels_detail = list() netting_channels = proxies.channelmanager_nettingchannels[manager_address] for channel in netting_channels: detail = self.get_channel_details(token_address, channel) channels_detail.append(detail) edge_list = manager.channels_addresses() graph = ChannelGraph( self.address, manager_address, token_address, edge_list, channels_detail, block_number, ) self.manager_to_token[manager_address] = token_address self.token_to_channelgraph[token_address] = graph self.tokens_to_connectionmanagers[token_address] = ConnectionManager( self, token_address, graph ) self.start_neighbours_healthcheck(graph)