def extractErc20BlockData(): while True: blockConfig = eth_config.find_one({'config_id': 1}) export_flag = blockConfig["export_flag"] if export_flag is False: blockid = blockConfig["blockid"] print(blockid) web3 = ThreadLocalProxy(lambda: Web3(IPCProvider(geth_ipc, timeout=300))) # web3 = ThreadLocalProxy(lambda: Web3(HTTPProvider(http_address))) blockidNow = web3.eth.blockNumber print(blockidNow) if blockidNow > blockid: blockConfig["export_flag"] = True blockid += 1 blockConfig["blockid"] = blockid t = time.time() blockConfig['timestamp'] = int(round(t * 1000)) eth_config.save(blockConfig) job = ExportErc20TransfersJob( start_block=blockid, end_block=blockidNow, batch_size=100, web3=ThreadLocalProxy(lambda: Web3(IPCProvider(geth_ipc, timeout=300))), output="", max_workers=1, tokens=None) job.run() sleep(3)
def test_export_erc20_transfers_job(tmpdir, start_block, end_block, batch_size, resource_group): output_file = tmpdir.join('erc20_transfers.csv') job = ExportErc20TransfersJob( start_block=start_block, end_block=end_block, batch_size=batch_size, web3=ThreadLocalProxy(lambda: Web3(MockWeb3Provider(resource_group))), item_exporter=erc20_transfers_item_exporter(output_file), max_workers=5 ) job.run() compare_lines_ignore_order( read_resource(resource_group, 'expected_erc20_transfers.csv'), read_file(output_file) )
'--max-workers', default=5, type=int, help='The maximum number of workers.') parser.add_argument('-p', '--provider-uri', default=None, type=str, help='The URI of the web3 provider e.g. ' 'file://$HOME/Library/Ethereum/geth.ipc') parser.add_argument('-t', '--tokens', default=None, type=str, nargs='+', help='The list of token addresses to filter by.') args = parser.parse_args() job = ExportErc20TransfersJob( start_block=args.start_block, end_block=args.end_block, batch_size=args.batch_size, web3=ThreadLocalProxy( lambda: Web3(get_provider_from_uri(args.provider_uri))), item_exporter=export_erc20_transfers_job_item_exporter(args.output), max_workers=args.max_workers, tokens=args.tokens) job.run()
type=int, help='The maximum number of workers.') parser.add_argument('--ipc-path', required=True, type=str, help='The full path to the ipc socket file.') parser.add_argument('--ipc-timeout', default=300, type=int, help='The timeout in seconds for ipc calls.') parser.add_argument('-t', '--tokens', default=None, type=str, nargs='+', help='The list of token addresses to filter by.') args = parser.parse_args() job = ExportErc20TransfersJob( start_block=args.start_block, end_block=args.end_block, batch_size=args.batch_size, web3=ThreadLocalProxy( lambda: Web3(IPCProvider(args.ipc_path, timeout=args.ipc_timeout))), output=args.output, max_workers=args.max_workers, tokens=args.tokens) job.run()