def export_events(start_block,
                  end_block,
                  block_list,
                  provider_uri,
                  batch_size,
                  max_workers,
                  event_hash,
                  events_output,
                  timeout=60,
                  chain='ethereum'):

    provider_uri = check_classic_provider_uri(chain, provider_uri)

    if end_block is not None:
        validate_range(start_block, end_block)
        block_iterator = range(start_block, end_block + 1)
    elif block_list is not None:
        block_iterator = set([int(block) for block in block_list.split(':')])
    else:
        raise ValueError(
            'Either --end-block or --block-list options must be provided')

    job = ExportEventsJob(
        block_iterator=block_iterator,
        batch_web3_provider=ThreadLocalProxy(lambda: get_provider_from_uri(
            provider_uri, timeout=timeout, batch=True)),
        batch_size=batch_size,
        max_workers=max_workers,
        item_exporter=events_item_exporter(events_output),
        event_hash=event_hash)
    job.run()
Beispiel #2
0
    def __init__(self,
                 start_block,
                 end_block,
                 batch_size,
                 batch_web3_provider,
                 max_workers,
                 item_exporter,
                 export_blocks=True,
                 export_transactions=True):
        validate_range(start_block, end_block)
        self.start_block = start_block
        self.end_block = end_block

        self.batch_web3_provider = batch_web3_provider

        self.batch_work_executor = BatchWorkExecutor(batch_size, max_workers)
        self.item_exporter = item_exporter

        self.export_blocks = export_blocks
        self.export_transactions = export_transactions
        if not self.export_blocks and not self.export_transactions:
            raise ValueError(
                'At least one of export_blocks or export_transactions must be True'
            )

        self.block_mapper = EthBlockMapper()
        self.transaction_mapper = EthTransactionMapper()
Beispiel #3
0
    def __init__(self, start_block, end_block, batch_size, batch_web3_provider,
                 max_workers, item_exporter):
        validate_range(start_block, end_block)
        self.start_block = start_block
        self.end_block = end_block

        self.batch_web3_provider = batch_web3_provider

        self.batch_work_executor = BatchWorkExecutor(batch_size, max_workers)
        self.item_exporter = item_exporter

        self.geth_trace_mapper = EthGethTraceMapper()
Beispiel #4
0
    def __init__(self,
                 start_block,
                 end_block,
                 batch_size,
                 web3,
                 item_exporter,
                 max_workers,
                 tokens=None):
        validate_range(start_block, end_block)
        self.start_block = start_block
        self.end_block = end_block

        self.web3 = web3
        self.tokens = tokens
        self.item_exporter = item_exporter

        self.batch_work_executor = BatchWorkExecutor(batch_size, max_workers)

        self.receipt_log_mapper = EthReceiptLogMapper()
        self.token_transfer_mapper = EthTokenTransferMapper()
        self.token_transfer_extractor = EthTokenTransferExtractor()
Beispiel #5
0
    def __init__(self,
                 start_block,
                 end_block,
                 batch_size,
                 batch_web3_provider,
                 max_workers,
                 item_exporter,
                 export_blocks=True,
                 export_transactions=True,
                 export_logs=True,
                 export_token_transfers=True):
        validate_range(start_block, end_block)
        self.start_block = start_block
        self.end_block = end_block

        self.batch_web3_provider = batch_web3_provider

        self.batch_work_executor = BatchWorkExecutor(batch_size, max_workers)
        self.item_exporter = item_exporter

        self.export_blocks = export_blocks
        self.export_transactions = export_transactions
        self.export_logs = export_logs
        if not self.export_blocks and not self.export_transactions:
            raise ValueError(
                'At least one of export_blocks or export_transactions must be True'
            )

        self.receipt_log_mapper = KlaytnReceiptLogMapper(enrich=True)
        self.transaction_mapper = KlaytnTransactionMapper(
            receipt_log_mapper=self.receipt_log_mapper, enrich=True)
        self.block_mapper = KlaytnBlockMapper(
            transaction_mapper=self.transaction_mapper, enrich=True)

        self.token_transfer_mapper = KlaytnTokenTransferMapper(enrich=True)
        self.token_transfer_extractor = KlaytnTokenTransferExtractor(
            enrich=True)
    def __init__(self,
                 start_block,
                 end_block,
                 batch_size,
                 web3,
                 item_exporter,
                 max_workers,
                 include_genesis_traces=False,
                 include_daofork_traces=False):
        validate_range(start_block, end_block)
        self.start_block = start_block
        self.end_block = end_block

        self.web3 = web3

        # TODO: use batch_size when this issue is fixed https://github.com/paritytech/parity-ethereum/issues/9822
        self.batch_work_executor = BatchWorkExecutor(1, max_workers)
        self.item_exporter = item_exporter

        self.trace_mapper = EthTraceMapper()

        self.special_trace_service = EthSpecialTraceService()
        self.include_genesis_traces = include_genesis_traces
        self.include_daofork_traces = include_daofork_traces