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, }, )
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 })
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})
def geth_traces_item_exporter(geth_traces_output): return CompositeItemExporter( filename_mapping={'geth_trace': geth_traces_output}, field_mapping={'geth_trace': FIELDS_TO_EXPORT})
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), )