def watch_events(self): # TODO keep fresh in background # fetch all registries and factories from address provider log_filter = create_filter(str(self.addres_provider)) for event in decode_logs(log_filter.get_new_entries()): if event.name == 'NewAddressIdentifier': self.identifiers[event['id']].append(event['addr']) if event.name == 'AddressModified': self.identifiers[event['id']].append(event['new_address']) # fetch pools from the latest registry log_filter = create_filter(str(self.registry)) for event in decode_logs(log_filter.get_new_entries()): if event.name == 'PoolAdded': self.pools.add(event['pool']) logger.info(f'loaded {len(self.pools)} pools')
def watch_events(self): start = time.time() self.log_filter = create_filter(self.addresses) for block in chain.new_blocks(height_buffer=12): logs = self.log_filter.get_new_entries() self.process_events(decode_logs(logs)) if not self._done.is_set(): self._done.set() logger.info("loaded v2 registry in %.3fs", time.time() - start) time.sleep(300)
def watch_events(self): start = time.time() self.log_filter = create_filter(str(self.vault), topics=self._topics) for block in chain.new_blocks(height_buffer=12): logs = self.log_filter.get_new_entries() events = decode_logs(logs) self.process_events(events) if not self._done.is_set(): self._done.set() logger.info("loaded %d strategies %s in %.3fs", len(self._strategies), self.name, time.time() - start) time.sleep(300)