@@ -137,6 +137,28 @@ def _build_parser() -> argparse.ArgumentParser:
137137 stream_sse .add_argument ("--max-events" , type = int , default = 20 )
138138 _add_common_network_args (stream_sse )
139139
140+ stream_pulse = stream_sub .add_parser ("consensus-pulse" , help = "Get unified consensus pulse metrics." )
141+ stream_pulse .add_argument ("--stream-url" , default = DEFAULT_CFG .unified_stream_url )
142+ _add_common_network_args (stream_pulse )
143+
144+ stream_all_mids = stream_sub .add_parser ("all-mids" , help = "Get browser-safe allMids snapshot from unified stream." )
145+ stream_all_mids .add_argument ("--stream-url" , default = DEFAULT_CFG .unified_stream_url )
146+ stream_all_mids .add_argument ("--dex" , default = "" )
147+ _add_common_network_args (stream_all_mids )
148+
149+ stream_l2_book = stream_sub .add_parser ("l2-book" , help = "Get browser-safe canonical L2 book snapshot from unified stream." )
150+ stream_l2_book .add_argument ("--stream-url" , default = DEFAULT_CFG .unified_stream_url )
151+ stream_l2_book .add_argument ("--coin" , required = True )
152+ stream_l2_book .add_argument ("--dex" , default = "" )
153+ stream_l2_book .add_argument ("--depth" , type = int , default = None )
154+ _add_common_network_args (stream_l2_book )
155+
156+ stream_asset_contexts = stream_sub .add_parser ("asset-contexts" , help = "Get funding/OI/24h volume asset contexts from unified stream." )
157+ stream_asset_contexts .add_argument ("--stream-url" , default = DEFAULT_CFG .unified_stream_url )
158+ stream_asset_contexts .add_argument ("--coin" , default = None )
159+ stream_asset_contexts .add_argument ("--dex" , default = "" )
160+ _add_common_network_args (stream_asset_contexts )
161+
140162 grpc = sub .add_parser ("grpc" , help = "gRPC setup and diagnostics." )
141163 grpc_sub = grpc .add_subparsers (dest = "grpc_cmd" , required = True )
142164
@@ -358,6 +380,30 @@ def main(argv: list[str] | None = None) -> int:
358380 _print_json ({"events" : list (stream_client .sse_events (max_events = args .max_events ))})
359381 return 0
360382
383+ if args .command == "stream" and args .stream_cmd == "consensus-pulse" :
384+ cfg = _sdk_cfg_from_args (args , unified_stream_url = args .stream_url )
385+ with UnifiedStreamClient (cfg ) as stream_client :
386+ _print_json (stream_client .consensus_pulse ())
387+ return 0
388+
389+ if args .command == "stream" and args .stream_cmd == "all-mids" :
390+ cfg = _sdk_cfg_from_args (args , unified_stream_url = args .stream_url )
391+ with UnifiedStreamClient (cfg ) as stream_client :
392+ _print_json (stream_client .all_mids (dex = args .dex ))
393+ return 0
394+
395+ if args .command == "stream" and args .stream_cmd == "l2-book" :
396+ cfg = _sdk_cfg_from_args (args , unified_stream_url = args .stream_url )
397+ with UnifiedStreamClient (cfg ) as stream_client :
398+ _print_json (stream_client .l2_book (args .coin , dex = args .dex , depth = args .depth ))
399+ return 0
400+
401+ if args .command == "stream" and args .stream_cmd == "asset-contexts" :
402+ cfg = _sdk_cfg_from_args (args , unified_stream_url = args .stream_url )
403+ with UnifiedStreamClient (cfg ) as stream_client :
404+ _print_json (stream_client .asset_contexts (coin = args .coin , dex = args .dex ))
405+ return 0
406+
361407 if args .command == "grpc" and args .grpc_cmd == "health" :
362408 grpc_client = GrpcClient (_grpc_cfg_from_args (args ))
363409 _print_json (grpc_client .health_check (service = args .service ))
0 commit comments