def contracts_item_exporter(contracts_output):
    return CompositeItemExporter(
        filename_mapping={
            'contract': contracts_output
        },
        field_mapping={
            'contract': FIELDS_TO_EXPORT
        }
    )
def receipts_and_logs_item_exporter(receipts_output=None, logs_output=None):
    return CompositeItemExporter(filename_mapping={
        'receipt': receipts_output,
        'log': logs_output
    },
                                 field_mapping={
                                     'receipt': RECEIPT_FIELDS_TO_EXPORT,
                                     'log': LOG_FIELDS_TO_EXPORT
                                 })
def receipts_and_logs_item_exporter(receipts_output=None, logs_output=None):
    return CompositeItemExporter(
        filename_mapping={
            "receipt": receipts_output,
            "log": logs_output
        },
        field_mapping={
            "receipt": RECEIPT_FIELDS_TO_EXPORT,
            "log": LOG_FIELDS_TO_EXPORT,
        },
    )
Beispiel #4
0
def blocks_and_transactions_item_exporter(blocks_output=None,
                                          transactions_output=None):
    return CompositeItemExporter(filename_mapping={
        'block': blocks_output,
        'transaction': transactions_output
    },
                                 field_mapping={
                                     'block': BLOCK_FIELDS_TO_EXPORT,
                                     'transaction':
                                     TRANSACTION_FIELDS_TO_EXPORT
                                 })
Beispiel #5
0
def blocks_item_exporter(blocks_output=None,
                         transactions_output=None,
                         actions_output=None):
    filename_mapping = {}
    field_mapping = {}

    if blocks_output is not None:
        filename_mapping['block'] = blocks_output

    if transactions_output is not None:
        filename_mapping['transaction'] = transactions_output

    if actions_output is not None:
        filename_mapping['action'] = actions_output

    return CompositeItemExporter(filename_mapping=filename_mapping,
                                 field_mapping=field_mapping)
def token_transfers_item_exporter(token_transfer_output):
    return CompositeItemExporter(
        filename_mapping={'token_transfer': token_transfer_output},
        field_mapping={'token_transfer': FIELDS_TO_EXPORT})
Beispiel #7
0
def geth_traces_item_exporter(geth_traces_output):
    return CompositeItemExporter(
        filename_mapping={'geth_trace': geth_traces_output},
        field_mapping={'geth_trace': FIELDS_TO_EXPORT})
Beispiel #8
0
def test_stream(tmpdir, start_block, end_block, batch_size, resource_group,
                entity_types, provider_type):
    try:
        os.remove('last_synced_block.txt')
    except OSError:
        pass

    blocks_output_file = str(tmpdir.join('actual_blocks.json'))
    actions_output_file = str(tmpdir.join('actual_actions.json'))
    logs_output_file = str(tmpdir.join('actual_logs.json'))
    transaction_logs_output_file = str(
        tmpdir.join('actual_transaction_logs.json'))

    streamer_adapter = IotexStreamerAdapter(
        iotex_rpc=ThreadLocalProxy(
            lambda: get_iotex_rpc(provider_type,
                                  read_resource_lambda=lambda file:
                                  read_resource(resource_group, file))),
        batch_size=batch_size,
        item_exporter=CompositeItemExporter(
            filename_mapping={
                'block': blocks_output_file,
                'action': actions_output_file,
                'log': logs_output_file,
                'transaction_log': transaction_logs_output_file,
            }),
        entity_types=entity_types,
    )
    streamer = Streamer(blockchain_streamer_adapter=streamer_adapter,
                        start_block=start_block,
                        end_block=end_block,
                        retry_errors=False)
    streamer.stream()

    if EntityType.BLOCK in entity_types:
        print('=====================')
        print(read_file(blocks_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, 'expected_blocks.json'),
            read_file(blocks_output_file))

    if EntityType.ACTION in entity_types:
        print('=====================')
        print(read_file(actions_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, 'expected_actions.json'),
            read_file(actions_output_file))

    if EntityType.LOG in entity_types:
        print('=====================')
        print(read_file(logs_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, 'expected_logs.json'),
            read_file(logs_output_file))

    if EntityType.TRANSACTION_LOG in entity_types:
        print('=====================')
        print(read_file(logs_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, 'expected_transaction_logs.json'),
            read_file(transaction_logs_output_file))
def test_stream(
    tmpdir,
    start_block,
    end_block,
    batch_size,
    resource_group,
    entity_types,
    provider_type,
):
    try:
        os.remove("last_synced_block.txt")
    except OSError:
        pass

    blocks_output_file = str(tmpdir.join("actual_blocks.json"))
    transactions_output_file = str(tmpdir.join("actual_transactions.json"))
    logs_output_file = str(tmpdir.join("actual_logs.json"))

    streamer_adapter = IcxStreamerAdapter(
        batch_web3_provider=ThreadLocalProxy(
            lambda: get_web3_provider(
                provider_type,
                read_resource_lambda=lambda file: read_resource(resource_group, file),
                batch=True,
            )
        ),
        batch_size=batch_size,
        item_exporter=CompositeItemExporter(
            filename_mapping={
                "block": blocks_output_file,
                "transaction": transactions_output_file,
                "log": logs_output_file,
            }
        ),
        entity_types=entity_types,
    )
    streamer = Streamer(
        blockchain_streamer_adapter=streamer_adapter,
        start_block=start_block,
        end_block=end_block,
        retry_errors=False,
    )
    streamer.stream()

    if "block" in entity_types:
        print("=====================")
        print(read_file(blocks_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, "expected_blocks.json"),
            read_file(blocks_output_file),
        )

    if "transaction" in entity_types:
        print("=====================")
        print(read_file(transactions_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, "expected_transactions.json"),
            read_file(transactions_output_file),
        )

    if "log" in entity_types:
        print("=====================")
        print(read_file(logs_output_file))
        compare_lines_ignore_order(
            read_resource(resource_group, "expected_logs.json"),
            read_file(logs_output_file),
        )