[docs]@router.get("/poll/{sub_id}")asyncdefpoll(scanner:DependsScanner,sub_id:str,limit:int=10)->List[Context]:'''poll any new updates Args: sub_id (str): the subscription_id returned from /api/subscribe limit (int, def=10): the limit of returned events Returns: List[Context]'''updates=scanner.dispatcher.poll(sub_id=sub_id,limit=limit)res=[]ifupdatesisNone:returnJson(content={"ok":False,"message":f"there are no subscription with ID={sub_id}","result":None},status_code=404)# translate contextsforcontextinupdates:ifisinstance(context.result,bytes):tx=context.result.to_0x_hex()else:_type=context.subscription.subscription_params[0]if_type=="logs":tx=LogsTransaction.from_web3(context.result)elif_type=="newPendingTransactions":tx=PendingTransaction.from_web3(context.result)else:tx=f"0x{context.result.hex()}"res.append(Context(label=getattr(context.subscription,"label","pending"),result=tx))returnres