async def do_main(args: argparse.Namespace) -> None: # Establish database connections engine = _get_engine(args) Session.configure(bind=engine) # type: ignore session = Session() # Ensure database schema is present if args.database_url == MEMORY_DB: Base.metadata.create_all(engine) start_block = args.start_block end_block = args.end_block from web3.auto.ipc import w3 if args.disable_jsonrpc: ipc_path = None elif args.ipc_path: ipc_path = args.ipc_path else: ipc_path = get_xdg_cthaeh_root() / "jsonrpc.ipc" app = Application( w3, session, start_block=start_block, end_block=end_block, concurrency=args.concurrency, ipc_path=ipc_path, ) logger.info("Started main process (pid=%d)", os.getpid()) async with background_trio_service(app) as manager: await manager.wait_finished()
def _Session(engine, _schema): Session.configure(bind=engine) return Session