def get_logs( contract: Contract, event_name: str, from_block: Union[int, str] = 0, to_block: Union[int, str] = 'pending', argument_filters: Dict[str, Any] = None ): event_abi = [ abi_element for abi_element in contract.abi if abi_element['type'] == 'event' and abi_element['name'] == event_name ] assert len(event_abi) == 1, 'No event found matching name {}.'.format(event_name) event_abi = event_abi[0] if argument_filters is None: argument_filters = {} filter_params = input_filter_params_formatter(construct_event_filter_params( event_abi, argument_filters=argument_filters, address=contract.address, fromBlock=from_block, toBlock=to_block )[1]) response = _get_logs_raw(contract, filter_params) logs = log_array_formatter(response) logs = [dict(log) for log in logs] for log in logs: log['args'] = get_event_data(event_abi, log)['args'] return logs
def get_logs(self, event_name, from_block=0, to_block='latest', filters=None): filter_kwargs = { 'fromBlock': from_block, 'toBlock': to_block, 'address': self.contract_addr } event_abi = [ i for i in self.auction_contract.abi if i['type'] == 'event' and i['name'] == event_name ][0] assert event_abi filters = filters if filters else {} filter_ = construct_event_filter_params(event_abi, argument_filters=filters, **filter_kwargs)[1] filter_params = input_filter_params_formatter(filter_) response = self.chain.web3._requestManager.request_blocking( 'eth_getLogs', [filter_params]) logs = log_array_formatter(response) logs = [dict(log) for log in logs] for log in logs: log['args'] = get_event_data(event_abi, log)['args'] return logs
def get_logs(self): response = self.web3.eth.getFilterLogs(self.filter.filter_id) logs = log_array_formatter(response) logs = [dict(log) for log in logs] for log in logs: log = self.set_log_data(log) return logs
def get_logs(self): response = self.web3.eth.getFilterLogs(self.filter.filter_id) logs = log_array_formatter(response) formatted_logs = [] for log in [dict(log) for log in logs]: formatted_logs.append(self.set_log_data(log)) return formatted_logs
def set_log_data(self, log): log = dict(log_array_formatter([log])[0]) log['args'] = get_event_data(self.event_abi, log)['args'] log['event'] = self.event_name return log