def handle_tokennetwork_new(raiden, event): data = event.event_data manager_address = data['channel_manager_address'] registry = raiden.default_registry manager_proxy = registry.manager(manager_address) netting_channel_proxies = get_channel_proxies(raiden.chain, raiden.address, manager_proxy) # Install the filters first to avoid missing changes, as a consequence # some events might be applied twice. raiden.blockchain_events.add_channel_manager_listener(manager_proxy) for channel_proxy in netting_channel_proxies: raiden.blockchain_events.add_netting_channel_listener(channel_proxy) token_network_state = get_token_network_state_from_proxies( raiden, manager_proxy, netting_channel_proxies, ) new_payment_network = ContractReceiveNewTokenNetwork( event.originating_contract, token_network_state, ) raiden.handle_state_change(new_payment_network)
def register_payment_network(self, registry_address, from_block=None): 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.blockchain_events.add_proxies_listeners(proxies, from_block) token_network_list = list() for manager in proxies.channel_managers: manager_address = manager.address netting_channel_proxies = proxies.channelmanager_nettingchannels[ manager_address] network = get_token_network_state_from_proxies( self, manager, netting_channel_proxies) token_network_list.append(network) payment_network = PaymentNetworkState( registry_address, token_network_list, ) state_change = ContractReceiveNewPaymentNetwork(payment_network) self.handle_state_change(state_change)