@@ -59,13 +59,19 @@ class SedaListener:
5959 """
6060
6161 SOURCE_NAME = "seda"
62+ ORACLE_PX_FIELD = "oracle_px"
63+ MARK_PXS_FIELD = "mark_pxs"
64+ EXT_PERP_PX_FIELD = "ext_perp_px"
6265
6366 def __init__ (
6467 self ,
6568 config : Config ,
6669 seda_state : PriceSourceState ,
6770 seda_last_state : PriceSourceState ,
6871 seda_ema_state : PriceSourceState ,
72+ seda_oracle_state : PriceSourceState ,
73+ seda_mark_state : PriceSourceState ,
74+ seda_external_state : PriceSourceState ,
6975 api_key_override : str | None = None ,
7076 ) -> None :
7177 self .url = config .seda .url
@@ -81,6 +87,9 @@ def __init__(
8187 self .seda_state = seda_state
8288 self .seda_last_state = seda_last_state
8389 self .seda_ema_state = seda_ema_state
90+ self .seda_oracle_state = seda_oracle_state
91+ self .seda_mark_state = seda_mark_state
92+ self .seda_external_state = seda_external_state
8493
8594 self .price_field = config .seda .price_field
8695 self .timestamp_field = config .seda .timestamp_field
@@ -224,6 +233,19 @@ def _parse_seda_message(self, feed_name: str, message: dict[str, Any]) -> None:
224233 feed_name , PriceUpdate (ema_price , timestamp , session_flag )
225234 )
226235
236+ # new format with exact pass-through data
237+ oracle_px = result .get (self .ORACLE_PX_FIELD )
238+ logger .debug ("SEDA feed: {} oracle_px: {}" , feed_name , oracle_px )
239+ self .seda_oracle_state .put (feed_name , PriceUpdate (oracle_px , timestamp ))
240+
241+ mark_pxs = result .get (self .MARK_PXS_FIELD )
242+ logger .debug ("SEDA feed: {} mark_pxs: {}" , feed_name , mark_pxs )
243+ self .seda_mark_state .put (feed_name , PriceUpdate (mark_pxs , timestamp ))
244+
245+ ext_perp_px = result .get (self .EXT_PERP_PX_FIELD )
246+ logger .debug ("SEDA feed: {} ext_perp_px: {}" , feed_name , ext_perp_px )
247+ self .seda_external_state .put (feed_name , PriceUpdate (ext_perp_px , timestamp ))
248+
227249 def get_parsed_result (self , feed_name : str ) -> dict [str , Any ] | None :
228250 """
229251 Get parsed result for a feed from state.
0 commit comments