@polymarket/bindings 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WVVJ3WNL.js → chunk-2WODFBG4.js} +2 -2
- package/dist/chunk-2WODFBG4.js.map +1 -0
- package/dist/{chunk-NFJUONUG.js → chunk-E3SBSYCF.js} +2 -2
- package/dist/{chunk-NFJUONUG.js.map → chunk-E3SBSYCF.js.map} +1 -1
- package/dist/{chunk-BAQM5QBB.js → chunk-ZLKBCIHA.js} +2 -2
- package/dist/{chunk-BAQM5QBB.js.map → chunk-ZLKBCIHA.js.map} +1 -1
- package/dist/clob/index.d.ts +455 -279
- package/dist/clob/index.js +1 -1
- package/dist/clob/index.js.map +1 -1
- package/dist/combos/index.d.ts +4 -0
- package/dist/combos/index.js +1 -1
- package/dist/combos/index.js.map +1 -1
- package/dist/data/index.d.ts +489 -153
- package/dist/data/index.js +1 -1
- package/dist/data/index.js.map +1 -1
- package/dist/gamma/index.js +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +1 -1
- package/dist/perps/index.js +1 -1
- package/dist/relayer/index.js +1 -1
- package/dist/subscriptions/index.d.ts +435 -231
- package/dist/subscriptions/index.js +1 -1
- package/dist/subscriptions/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-WVVJ3WNL.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {N,K,O,P}from'../chunk-NFJUONUG.js';import {Ga,Ea,Ca,va,za as za$1,wa,sb,b as b$1,a,P as P$1,V,pb,Z,ka as ka$1,oa,_a}from'../chunk-BAQM5QBB.js';import {za,Na,z as z$1,Ta,Ka,fa,ka,aa,Aa,Ba,da,xa,Pa,T}from'../chunk-WVVJ3WNL.js';export{d as TradeStatus}from'../chunk-WVVJ3WNL.js';import {z}from'zod';var x=z.preprocess(t=>typeof t=="string"?t.toUpperCase():t,za),re=(p=>(p.Live="LIVE",p.Matched="MATCHED",p.Delayed="DELAYED",p.Unmatched="UNMATCHED",p.Canceled="CANCELED",p))(re||{}),_e=z.enum(re),te=z.object({price:Na,size:Na}),b=z.string().regex(/^\d+$/).transform(t=>z$1(new Date(Number(t)*1e3).toISOString())),xe=z.string().regex(/^\d+$/).transform(t=>t==="0"?void 0:z$1(new Date(Number(t)*1e3).toISOString())),ne=z.object({event_type:z.literal("book"),market:z.string(),asset_id:Ka,bids:z.array(te),asks:z.array(te),hash:z.string().nullish(),timestamp:fa.nullish(),min_order_size:Ta,tick_size:Ta,neg_risk:z.boolean().nullish(),last_trade_price:Ta}).transform(({event_type:t,asset_id:n,min_order_size:a,tick_size:i,neg_risk:s,last_trade_price:p,...S})=>({topic:"market",type:t,payload:{...S,tokenId:n,minOrderSize:a,tickSize:i,negRisk:s,lastTradePrice:p}})),Te=z.object({asset_id:Ka,price:Na,size:Na,side:x,hash:z.string().nullish(),best_bid:Ta,best_ask:Ta}).transform(({asset_id:t,best_bid:n,best_ask:a,...i})=>({...i,tokenId:t,bestBid:n,bestAsk:a})),ae=z.object({event_type:z.literal("price_change"),market:z.string(),price_changes:z.array(Te),timestamp:fa.nullish()}).transform(({event_type:t,price_changes:n,...a})=>({topic:"market",type:t,payload:{...a,priceChanges:n}})),ie=z.object({event_type:z.literal("last_trade_price"),market:z.string(),asset_id:Ka,price:Na,size:Ta,fee_rate_bps:Ta,side:x,timestamp:fa.nullish(),transaction_hash:z.string().nullish()}).transform(({event_type:t,asset_id:n,fee_rate_bps:a,transaction_hash:i,...s})=>({topic:"market",type:t,payload:{...s,tokenId:n,feeRateBps:a,transactionHash:i}})),se=z.object({event_type:z.literal("tick_size_change"),market:z.string(),asset_id:Ka,old_tick_size:Ta,new_tick_size:Na,timestamp:fa.nullish()}).transform(({event_type:t,asset_id:n,old_tick_size:a,new_tick_size:i,...s})=>({topic:"market",type:t,payload:{...s,tokenId:n,oldTickSize:a,newTickSize:i}})),oe=z.object({event_type:z.literal("best_bid_ask"),market:z.string(),asset_id:Ka,best_bid:Ta,best_ask:Ta,spread:Ta,timestamp:fa.nullish()}).transform(({event_type:t,asset_id:n,best_bid:a,best_ask:i,...s})=>({topic:"market",type:t,payload:{...s,tokenId:n,bestBid:a,bestAsk:i}})),pe=z.object({id:z.string(),ticker:z.string().nullish(),slug:z.string().nullish(),title:z.string().nullish(),description:z.string().nullish()}),ce=z.object({event_type:z.literal("new_market"),id:z.string(),question:z.string().nullish(),market:z.string(),slug:z.string().nullish(),description:z.string().nullish(),assets_ids:z.array(Ka).nullish(),outcomes:z.array(z.string()).nullish(),event_message:pe.nullish(),timestamp:fa.nullish(),tags:z.array(z.string()).nullish(),condition_id:aa.nullish(),active:z.boolean().nullish(),clob_token_ids:z.array(z.string()).nullish(),sports_market_type:z.string().nullish(),line:Ta,game_start_time:ka.nullish(),order_price_min_tick_size:Ta,group_item_title:z.string().nullish(),taker_base_fee:Ta,fees_enabled:z.boolean().nullish(),fee_schedule:z.unknown().nullish()}).transform(({event_type:t,assets_ids:n,event_message:a,condition_id:i,clob_token_ids:s,sports_market_type:p,game_start_time:S,order_price_min_tick_size:P,group_item_title:E,taker_base_fee:v,fees_enabled:k,fee_schedule:C,...z})=>({topic:"market",type:t,payload:{...z,tokenIds:n,eventMessage:a,conditionId:i,clobTokenIds:s,sportsMarketType:p,gameStartTime:S,orderPriceMinTickSize:P,groupItemTitle:E,takerBaseFee:v,feesEnabled:k,feeSchedule:C}})),me=z.object({event_type:z.literal("market_resolved"),id:z.string(),market:z.string(),assets_ids:z.array(Ka).nullish(),winning_asset_id:Ka.nullish(),winning_outcome:z.string().nullish(),event_message:pe.nullish(),timestamp:fa.nullish(),tags:z.array(z.string()).nullish()}).transform(({event_type:t,assets_ids:n,winning_asset_id:a,winning_outcome:i,event_message:s,...p})=>({topic:"market",type:t,payload:{...p,tokenIds:n,winningTokenId:a,winningOutcome:i,eventMessage:s}})),le=(i=>(i.Placement="PLACEMENT",i.Update="UPDATE",i.Cancellation="CANCELLATION",i))(le||{}),be=z.enum(le),ze=z.object({event_type:z.literal("order"),id:z.string(),owner:z.string(),market:z.string(),asset_id:Ka,side:x,order_owner:z.string().nullish(),original_size:Na,size_matched:Na,price:Na,associate_trades:z.array(z.string()).nullish(),outcome:z.string().nullish(),type:be,created_at:b.nullish(),expiration:xe.nullish(),order_type:Aa.nullish(),status:_e.nullish(),maker_address:z.string().nullish(),timestamp:fa}).transform(({event_type:t,type:n,asset_id:a,order_owner:i,original_size:s,size_matched:p,associate_trades:S,created_at:P,expiration:E,order_type:v,maker_address:k,...C})=>({topic:"user",type:t,payload:{...C,orderEventType:n,tokenId:a,orderOwner:i,originalSize:s,sizeMatched:p,associateTrades:S,createdAt:P,expiresAt:E,orderType:v,makerAddress:k}})),Ie=z.object({order_id:z.string(),owner:z.string(),maker_address:z.string().nullish(),matched_amount:Na,price:Na,fee_rate_bps:Ta,asset_id:Ka,outcome:z.string().nullish(),outcome_index:z.number().int().nullish(),side:x}).transform(({order_id:t,maker_address:n,matched_amount:a,fee_rate_bps:i,asset_id:s,outcome_index:p,...S})=>({...S,orderId:t,makerAddress:n,matchedAmount:a,feeRateBps:i,tokenId:s,outcomeIndex:p})),we=z.object({event_type:z.literal("trade"),type:z.literal("TRADE"),id:z.string(),taker_order_id:z.string(),market:z.string(),asset_id:Ka,side:x,size:Na,fee_rate_bps:Ta,price:Na,status:Ba,match_time:b.nullish(),matchtime:b.nullish(),last_update:b.nullish(),outcome:z.string().nullish(),owner:z.string(),trade_owner:z.string().nullish(),maker_address:z.string().nullish(),transaction_hash:z.string().nullish(),bucket_index:z.number().int().nullish(),maker_orders:z.array(Ie).nullish(),trader_side:z.union([z.literal("TAKER"),z.literal("MAKER")]).nullish(),timestamp:fa}).transform(({event_type:t,type:n,taker_order_id:a,asset_id:i,fee_rate_bps:s,match_time:p,matchtime:S,last_update:P,trade_owner:E,maker_address:v,transaction_hash:k,bucket_index:C,maker_orders:z,trader_side:ke,...Ce})=>({topic:"user",type:t,payload:{...Ce,takerOrderId:a,tokenId:i,feeRateBps:s,matchedAt:p??S,updatedAt:P,tradeOwner:E,makerAddress:v,transactionHash:k,bucketIndex:C,makerOrders:z,traderSide:ke}})),qt=z.discriminatedUnion("event_type",[ne,ae,ie,se]),Ot=z.discriminatedUnion("event_type",[oe,ce,me]),jt=z.discriminatedUnion("event_type",[ne,ae,ie,se,oe,ce,me]),Nt=z.discriminatedUnion("event_type",[ze,we]);var de=z.number().int().nonnegative(),Ue=z.string().regex(/^trades::\d+$/),Me=z.string().regex(/^bbo::\d+$/),Re=z.string().regex(/^book::\d+$/),Ae=z.string().regex(/^tickers::(all|\d+)$/),Be=z.string().regex(/^statistics::(all|\d+)$/),qe=z.string().regex(/^klines::\d+::(1m|5m|15m|1h|4h|1d|1w)$/),Oe=z.string().regex(/^tpsl::\d+$/),je=z.enum(["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications"]),u=z.object({ts:da,sq:de}),Ne=u.extend({ch:Ue,data:z.array(Ga)}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.trades",type:"trade",channel:t,timestamp:n,sequence:a,payload:i})),De=u.extend({ch:Me,data:Ea}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.bbo",type:"bbo",channel:t,timestamp:n,sequence:a,payload:i})),Le=u.extend({ch:Re,data:Ca}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.book",type:"book",channel:t,timestamp:n,sequence:a,payload:{instrumentId:he(t),...i}})),$e=u.extend({ch:Ae,data:va}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.tickers",type:"ticker",channel:t,timestamp:n,sequence:a,payload:i})),Fe=u.extend({ch:Be,data:za$1}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.statistics",type:"statistic",channel:t,timestamp:n,sequence:a,payload:i})),Ke=u.extend({ch:qe,data:z.array(wa)}).transform(({ch:t,ts:n,sq:a,data:i})=>({topic:"perps.candles",type:"candle",channel:t,timestamp:n,sequence:a,payload:{instrumentId:he(t),interval:rt(t),candles:i}})),Qt=z.union([Ne,De,Le,$e,Fe,Ke]),We=u.extend({ch:je});function f(t,n,a){return We.extend({ch:z.literal(n),data:a}).transform(i=>{let s=i;return {type:t,channel:s.ch,timestamp:s.ts,sequence:s.sq,payload:s.data}})}var He=f("balance","balances",P$1),Ye=f("portfolio","portfolio",V),Ze=f("order","orders",pb),Ve=f("fill","fills",z.array(sb)),Qe=f("funding","funding",Z),Ge=f("deposit","deposits",ka$1),Je=f("withdrawal","withdrawals",oa),Xe=f("notification","notifications",_a),Gt=z.object({ch:z.literal("notifications"),ts:da,sq:de,type:z.literal("resync")}).transform(({ch:t,ts:n,sq:a})=>({type:"resync",channel:t,timestamp:n,sequence:a})),et=z.object({oid:b$1,st:z.enum(["untriggered","armed","cancelled","expired"]),reason:z.string().optional()}),tt=u.extend({ch:Oe,data:et.transform(t=>({orderId:t.oid,status:t.st,reason:t.reason}))}).transform(({ch:t,ts:n,sq:a,data:i})=>({type:"tpsl",channel:t,timestamp:n,sequence:a,payload:i})),Jt=z.union([He,Ye,Ze,Ve,Qe,Ge,Je,Xe,tt]);function he(t){let[,n]=t.split("::");return a.parse(Number(n))}function rt(t){let[,,n]=t.split("::");return n}var nt=z.object({id:z.string(),body:z.string().nullish(),parentEntityType:xa.nullish(),parentEntityID:z.number().int().nullish(),parentCommentID:z.string().nullish(),userAddress:z.string().nullish(),replyAddress:z.string().nullish(),createdAt:z.string().nullish(),updatedAt:z.string().nullish(),media:z.array(O).nullish(),profile:K.nullish(),reactions:z.array(N).nullish(),reportCount:z.number().int().nullish(),reactionCount:z.number().int().nullish(),tradeAsset:z.string().nullish()}),at=z.object({topic:z.literal("comments"),type:z.literal("comment_created"),timestamp:da,payload:P}),it=z.object({topic:z.literal("comments"),type:z.literal("comment_removed"),timestamp:da,payload:nt}),st=z.object({topic:z.literal("comments"),type:z.literal("reaction_created"),timestamp:da,payload:N}),ot=z.object({topic:z.literal("comments"),type:z.literal("reaction_removed"),timestamp:da,payload:N}),Se=z.object({symbol:z.string(),timestamp:da,value:Pa}),pt="prices.crypto.binance",ct="prices.crypto.chainlink",ue="prices.crypto.chainlink.twap",mt=z.literal("crypto_prices"),lt=z.literal("crypto_prices_chainlink"),dt=z.literal("crypto_prices_twap_thirty"),ht=z.literal("crypto_prices_twap_sixty"),yt=mt.transform(()=>pt),St=lt.transform(()=>ct),ut=dt.transform(()=>ue),ft=ht.transform(()=>ue),Pt=z.object({topic:yt,type:z.literal("update"),timestamp:da,payload:Se}),Et=z.object({topic:St,type:z.literal("update"),timestamp:da,payload:Se}),ye=1000000000000000000n;function vt(t){let n=BigInt(t),a=n<0n,i=a?-n:n,s=i/ye,p=(i%ye).toString().padStart(18,"0").replace(/0+$/,"");return T(`${a?"-":""}${s}${p===""?"":`.${p}`}`)}var kt=z.string().regex(/^-?\d+$/).transform(vt),Ct=z.object({symbol:z.string(),value:Pa,full_accuracy_value:kt,timestamp:da});function fe(t){return Ct.extend({window_s:z.literal(t)}).transform(n=>({symbol:n.symbol,timestamp:n.timestamp,value:n.full_accuracy_value,windowSeconds:n.window_s}))}var Pe=z.object({topic:ut,type:z.literal("update"),timestamp:da,payload:fe(30)}),Ee=z.object({topic:ft,type:z.literal("update"),timestamp:da,payload:fe(60)}),nr=z.union([Pe,Ee]),gt=z.discriminatedUnion("topic",[Pt,Et,Pe,Ee]),_t=z.object({symbol:z.string(),value:Pa,full_accuracy_value:Na.nullish(),timestamp:da,received_at:da.nullish(),is_carried_forward:z.boolean().nullish()}).transform(({full_accuracy_value:t,received_at:n,is_carried_forward:a,value:i,...s})=>({...s,value:t??i,receivedAt:n,isCarriedForward:a})),xt=z.object({timestamp:z.number(),value:Pa}),Tt=z.object({symbol:z.string(),data:z.array(xt)}),bt=z.literal("equity_prices"),zt="prices.equity.pyth",ve=bt.transform(()=>zt),It=z.object({topic:ve,type:z.literal("update"),timestamp:da,payload:_t}),wt=z.object({topic:ve,type:z.literal("subscribe"),timestamp:da,payload:Tt}),Ut=z.discriminatedUnion("type",[It,wt]),Mt=z.discriminatedUnion("type",[at,it,st,ot]),ar=z.discriminatedUnion("topic",[Mt,gt,Ut]);var Rt=z.object({gameId:z.number().int(),sportradarGameId:z.string().nullish(),slug:z.string().nullish(),leagueAbbreviation:z.string(),homeTeam:z.string().nullish(),awayTeam:z.string().nullish(),status:z.string(),live:z.boolean(),ended:z.boolean(),score:z.string(),period:z.string().nullish(),elapsed:z.string().nullish(),finishedTimestamp:ka.nullish(),finished_timestamp:ka.nullish(),turn:z.string().nullish()}).transform(({finishedTimestamp:t,finished_timestamp:n,...a})=>({...a,finishedAt:t??n})),pr=Rt.transform(t=>({topic:"sports",type:"sport_result",payload:t}));export{at as CommentCreatedEventSchema,it as CommentRemovedEventSchema,Mt as CommentsEventSchema,Pt as CryptoPricesBinanceEventSchema,Et as CryptoPricesChainlinkEventSchema,nr as CryptoPricesChainlinkTwapEventSchema,Ee as CryptoPricesChainlinkTwapSixtyEventSchema,Pe as CryptoPricesChainlinkTwapThirtyEventSchema,gt as CryptoPricesEventSchema,Ot as CustomMarketEventSchema,Ut as EquityPricesEventSchema,wt as EquityPricesSubscribeEventSchema,It as EquityPricesUpdateEventSchema,oe as MarketBestBidAskEventSchema,ne as MarketBookEventSchema,jt as MarketEventSchema,ie as MarketLastTradePriceEventSchema,ae as MarketPriceChangeEventSchema,me as MarketResolvedEventSchema,se as MarketTickSizeChangeEventSchema,ce as NewMarketEventSchema,He as PerpsBalanceUpdateEventSchema,De as PerpsBboEventSchema,Le as PerpsBookEventSchema,Ke as PerpsCandleEventSchema,Ge as PerpsDepositUpdateEventSchema,Ve as PerpsFillUpdateEventSchema,Qe as PerpsFundingUpdateEventSchema,Qt as PerpsMarketDataEventSchema,Xe as PerpsNotificationUpdateEventSchema,Gt as PerpsNotificationsResyncFrameSchema,Ze as PerpsOrderUpdateEventSchema,Ye as PerpsPortfolioUpdateEventSchema,Jt as PerpsSessionUpdateEventSchema,Fe as PerpsStatisticEventSchema,$e as PerpsTickerEventSchema,tt as PerpsTpSlUpdateEventSchema,Ne as PerpsTradeEventSchema,Je as PerpsWithdrawalUpdateEventSchema,st as ReactionCreatedEventSchema,ot as ReactionRemovedEventSchema,ar as RealtimeEventSchema,pr as SportsResultEventSchema,qt as StandardMarketEventSchema,Nt as UserEventSchema,ze as UserOrderEventSchema,le as UserOrderEventType,re as UserOrderStatus,we as UserTradeEventSchema};//# sourceMappingURL=index.js.map
|
|
1
|
+
import {N,K,O,P}from'../chunk-E3SBSYCF.js';import {Ga,Ea as Ea$1,Ca,va,za as za$1,wa,sb,b as b$1,a,P as P$1,V,pb,Z,ka as ka$1,oa,_a}from'../chunk-ZLKBCIHA.js';import {za,Oa,z as z$1,Ua,Ea,aa,fa,ka,Aa,Ba,da,xa,Qa,T}from'../chunk-2WODFBG4.js';export{d as TradeStatus}from'../chunk-2WODFBG4.js';import {z}from'zod';var x=z.preprocess(t=>typeof t=="string"?t.toUpperCase():t,za),ie=(s=>(s.Live="LIVE",s.Matched="MATCHED",s.Delayed="DELAYED",s.Unmatched="UNMATCHED",s.Canceled="CANCELED",s))(ie||{}),Ie=z.enum(ie),ne=z.object({price:Oa,size:Oa}),b=z.string().regex(/^\d+$/).transform(t=>z$1(new Date(Number(t)*1e3).toISOString())),Ce=z.string().regex(/^\d+$/).transform(t=>t==="0"?void 0:z$1(new Date(Number(t)*1e3).toISOString())),re=z.object({event_type:z.literal("book"),market:aa,asset_id:Ea,bids:z.array(ne),asks:z.array(ne),hash:z.string().nullish(),timestamp:fa.nullish(),min_order_size:Ua,tick_size:Ua,neg_risk:z.boolean().nullish(),last_trade_price:Ua}).transform(({event_type:t,asset_id:i,min_order_size:r,tick_size:a,neg_risk:o,last_trade_price:s,...u})=>({topic:"market",type:t,payload:{...u,conditionId:u.market,market:u.market,assetId:i,tokenId:i,minOrderSize:r,tickSize:a,negRisk:o,lastTradePrice:s}})),xe=z.object({asset_id:Ea,price:Oa,size:Oa,side:x,hash:z.string().nullish(),best_bid:Ua,best_ask:Ua}).transform(({asset_id:t,best_bid:i,best_ask:r,...a})=>({...a,assetId:t,tokenId:t,bestBid:i,bestAsk:r})),ae=z.object({event_type:z.literal("price_change"),market:aa,price_changes:z.array(xe),timestamp:fa.nullish()}).transform(({event_type:t,price_changes:i,...r})=>({topic:"market",type:t,payload:{...r,conditionId:r.market,market:r.market,priceChanges:i}})),oe=z.object({event_type:z.literal("last_trade_price"),market:aa,asset_id:Ea,price:Oa,size:Ua,fee_rate_bps:Ua,side:x,timestamp:fa.nullish(),transaction_hash:z.string().nullish()}).transform(({event_type:t,asset_id:i,fee_rate_bps:r,transaction_hash:a,...o})=>({topic:"market",type:t,payload:{...o,conditionId:o.market,market:o.market,assetId:i,tokenId:i,feeRateBps:r,transactionHash:a}})),se=z.object({event_type:z.literal("tick_size_change"),market:aa,asset_id:Ea,old_tick_size:Ua,new_tick_size:Oa,timestamp:fa.nullish()}).transform(({event_type:t,asset_id:i,old_tick_size:r,new_tick_size:a,...o})=>({topic:"market",type:t,payload:{...o,conditionId:o.market,market:o.market,assetId:i,tokenId:i,oldTickSize:r,newTickSize:a}})),ce=z.object({event_type:z.literal("best_bid_ask"),market:aa,asset_id:Ea,best_bid:Ua,best_ask:Ua,spread:Ua,timestamp:fa.nullish()}).transform(({event_type:t,asset_id:i,best_bid:r,best_ask:a,...o})=>({topic:"market",type:t,payload:{...o,conditionId:o.market,market:o.market,assetId:i,tokenId:i,bestBid:r,bestAsk:a}})),pe=z.object({id:z.string(),ticker:z.string().nullish(),slug:z.string().nullish(),title:z.string().nullish(),description:z.string().nullish()}),de=z.object({event_type:z.literal("new_market"),id:z.string(),question:z.string().nullish(),market:z.string(),slug:z.string().nullish(),description:z.string().nullish(),assets_ids:z.array(Ea).nullish(),outcomes:z.array(z.string()).nullish(),event_message:pe.nullish(),timestamp:fa.nullish(),tags:z.array(z.string()).nullish(),condition_id:aa.nullish(),active:z.boolean().nullish(),clob_token_ids:z.array(z.string()).nullish(),sports_market_type:z.string().nullish(),line:Ua,game_start_time:ka.nullish(),order_price_min_tick_size:Ua,group_item_title:z.string().nullish(),taker_base_fee:Ua,fees_enabled:z.boolean().nullish(),fee_schedule:z.unknown().nullish()}).transform(({event_type:t,assets_ids:i,event_message:r,condition_id:a,clob_token_ids:o,sports_market_type:s,game_start_time:u,order_price_min_tick_size:P,group_item_title:E,taker_base_fee:v,fees_enabled:T,fee_schedule:g,...z})=>({topic:"market",type:t,payload:{...z,assetIds:i,tokenIds:i,eventMessage:r,conditionId:a,clobTokenIds:o,sportsMarketType:s,gameStartTime:u,orderPriceMinTickSize:P,groupItemTitle:E,takerBaseFee:v,feesEnabled:T,feeSchedule:g}})),le=z.object({event_type:z.literal("market_resolved"),id:z.string(),market:aa,assets_ids:z.array(Ea).nullish(),winning_asset_id:Ea.nullish(),winning_outcome:z.string().nullish(),event_message:pe.nullish(),timestamp:fa.nullish(),tags:z.array(z.string()).nullish()}).transform(({event_type:t,assets_ids:i,winning_asset_id:r,winning_outcome:a,event_message:o,...s})=>({topic:"market",type:t,payload:{...s,conditionId:s.market,market:s.market,assetIds:i,tokenIds:i,winningAssetId:r,winningTokenId:r,winningOutcome:a,eventMessage:o}})),me=(a=>(a.Placement="PLACEMENT",a.Update="UPDATE",a.Cancellation="CANCELLATION",a))(me||{}),_e=z.enum(me),be=z.object({event_type:z.literal("order"),id:z.string(),owner:z.string(),market:aa,asset_id:Ea,side:x,order_owner:z.string().nullish(),original_size:Oa,size_matched:Oa,price:Oa,associate_trades:z.array(z.string()).nullish(),outcome:z.string().nullish(),type:_e,created_at:b.nullish(),expiration:Ce.nullish(),order_type:Aa.nullish(),status:Ie.nullish(),maker_address:z.string().nullish(),timestamp:fa}).transform(({event_type:t,type:i,asset_id:r,order_owner:a,original_size:o,size_matched:s,associate_trades:u,created_at:P,expiration:E,order_type:v,maker_address:T,...g})=>({topic:"user",type:t,payload:{...g,conditionId:g.market,market:g.market,orderEventType:i,assetId:r,tokenId:r,orderOwner:a,originalSize:o,sizeMatched:s,associateTrades:u,createdAt:P,expiresAt:E,orderType:v,makerAddress:T}})),ze=z.object({order_id:z.string(),owner:z.string(),maker_address:z.string().nullish(),matched_amount:Oa,price:Oa,fee_rate_bps:Ua,asset_id:Ea,outcome:z.string().nullish(),outcome_index:z.number().int().nullish(),side:x}).transform(({order_id:t,maker_address:i,matched_amount:r,fee_rate_bps:a,asset_id:o,outcome_index:s,...u})=>({...u,orderId:t,makerAddress:i,matchedAmount:r,feeRateBps:a,assetId:o,tokenId:o,outcomeIndex:s})),Me=z.object({event_type:z.literal("trade"),type:z.literal("TRADE"),id:z.string(),taker_order_id:z.string(),market:aa,asset_id:Ea,side:x,size:Oa,fee_rate_bps:Ua,price:Oa,status:Ba,match_time:b.nullish(),matchtime:b.nullish(),last_update:b.nullish(),outcome:z.string().nullish(),owner:z.string(),trade_owner:z.string().nullish(),maker_address:z.string().nullish(),transaction_hash:z.string().nullish(),bucket_index:z.number().int().nullish(),maker_orders:z.array(ze).nullish(),trader_side:z.union([z.literal("TAKER"),z.literal("MAKER")]).nullish(),timestamp:fa}).transform(({event_type:t,type:i,taker_order_id:r,asset_id:a,fee_rate_bps:o,match_time:s,matchtime:u,last_update:P,trade_owner:E,maker_address:v,transaction_hash:T,bucket_index:g,maker_orders:z,trader_side:ve,...M})=>({topic:"user",type:t,payload:{...M,conditionId:M.market,market:M.market,takerOrderId:r,assetId:a,tokenId:a,feeRateBps:o,matchedAt:s??u,updatedAt:P,tradeOwner:E,makerAddress:v,transactionHash:T,bucketIndex:g,makerOrders:z,traderSide:ve}})),Ot=z.discriminatedUnion("event_type",[re,ae,oe,se]),Bt=z.discriminatedUnion("event_type",[ce,de,le]),qt=z.discriminatedUnion("event_type",[re,ae,oe,se,ce,de,le]),jt=z.discriminatedUnion("event_type",[be,Me]);var he=z.number().int().nonnegative(),we=z.string().regex(/^trades::\d+$/),Ue=z.string().regex(/^bbo::\d+$/),Ae=z.string().regex(/^book::\d+$/),De=z.string().regex(/^tickers::(all|\d+)$/),Re=z.string().regex(/^statistics::(all|\d+)$/),Oe=z.string().regex(/^klines::\d+::(1m|5m|15m|1h|4h|1d|1w)$/),Be=z.string().regex(/^tpsl::\d+$/),qe=z.enum(["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications"]),k=z.object({ts:da,sq:he}),je=k.extend({ch:we,data:z.array(Ga)}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.trades",type:"trade",channel:t,timestamp:i,sequence:r,payload:a})),Ne=k.extend({ch:Ue,data:Ea$1}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.bbo",type:"bbo",channel:t,timestamp:i,sequence:r,payload:a})),Le=k.extend({ch:Ae,data:Ca}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.book",type:"book",channel:t,timestamp:i,sequence:r,payload:{instrumentId:ue(t),...a}})),Ze=k.extend({ch:De,data:va}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.tickers",type:"ticker",channel:t,timestamp:i,sequence:r,payload:a})),Fe=k.extend({ch:Re,data:za$1}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.statistics",type:"statistic",channel:t,timestamp:i,sequence:r,payload:a})),$e=k.extend({ch:Oe,data:z.array(wa)}).transform(({ch:t,ts:i,sq:r,data:a})=>({topic:"perps.candles",type:"candle",channel:t,timestamp:i,sequence:r,payload:{instrumentId:ue(t),interval:nt(t),candles:a}})),Qt=z.union([je,Ne,Le,Ze,Fe,$e]),Ke=k.extend({ch:qe});function f(t,i,r){return Ke.extend({ch:z.literal(i),data:r}).transform(a=>{let o=a;return {type:t,channel:o.ch,timestamp:o.ts,sequence:o.sq,payload:o.data}})}var He=f("balance","balances",P$1),We=f("portfolio","portfolio",V),Ye=f("order","orders",pb),Ve=f("fill","fills",z.array(sb)),Qe=f("funding","funding",Z),Ge=f("deposit","deposits",ka$1),Je=f("withdrawal","withdrawals",oa),Xe=f("notification","notifications",_a),Gt=z.object({ch:z.literal("notifications"),ts:da,sq:he,type:z.literal("resync")}).transform(({ch:t,ts:i,sq:r})=>({type:"resync",channel:t,timestamp:i,sequence:r})),et=z.object({oid:b$1,st:z.enum(["untriggered","armed","cancelled","expired"]),reason:z.string().optional()}),tt=k.extend({ch:Be,data:et.transform(t=>({orderId:t.oid,status:t.st,reason:t.reason}))}).transform(({ch:t,ts:i,sq:r,data:a})=>({type:"tpsl",channel:t,timestamp:i,sequence:r,payload:a})),Jt=z.union([He,We,Ye,Ve,Qe,Ge,Je,Xe,tt]);function ue(t){let[,i]=t.split("::");return a.parse(Number(i))}function nt(t){let[,,i]=t.split("::");return i}var it=z.object({id:z.string(),body:z.string().nullish(),parentEntityType:xa.nullish(),parentEntityID:z.number().int().nullish(),parentCommentID:z.string().nullish(),userAddress:z.string().nullish(),replyAddress:z.string().nullish(),createdAt:z.string().nullish(),updatedAt:z.string().nullish(),media:z.array(O).nullish(),profile:K.nullish(),reactions:z.array(N).nullish(),reportCount:z.number().int().nullish(),reactionCount:z.number().int().nullish(),tradeAsset:z.string().nullish()}),rt=z.object({topic:z.literal("comments"),type:z.literal("comment_created"),timestamp:da,payload:P}),at=z.object({topic:z.literal("comments"),type:z.literal("comment_removed"),timestamp:da,payload:it}),ot=z.object({topic:z.literal("comments"),type:z.literal("reaction_created"),timestamp:da,payload:N}),st=z.object({topic:z.literal("comments"),type:z.literal("reaction_removed"),timestamp:da,payload:N}),Se=z.object({symbol:z.string(),timestamp:da,value:Qa}),ct="prices.crypto.binance",pt="prices.crypto.chainlink",ke="prices.crypto.chainlink.twap",dt=z.literal("crypto_prices"),lt=z.literal("crypto_prices_chainlink"),mt=z.literal("crypto_prices_twap_thirty"),ht=z.literal("crypto_prices_twap_sixty"),ut=dt.transform(()=>ct),yt=lt.transform(()=>pt),St=mt.transform(()=>ke),kt=ht.transform(()=>ke),ft=z.object({topic:ut,type:z.literal("update"),timestamp:da,payload:Se}),gt=z.object({topic:yt,type:z.literal("update"),timestamp:da,payload:Se}),ye=1000000000000000000n;function Pt(t){let i=BigInt(t),r=i<0n,a=r?-i:i,o=a/ye,s=(a%ye).toString().padStart(18,"0").replace(/0+$/,"");return T(`${r?"-":""}${o}${s===""?"":`.${s}`}`)}var Et=z.string().regex(/^-?\d+$/).transform(Pt),vt=z.object({symbol:z.string(),value:Qa,full_accuracy_value:Et,timestamp:da});function fe(t){return vt.extend({window_s:z.literal(t)}).transform(i=>({symbol:i.symbol,timestamp:i.timestamp,value:i.full_accuracy_value,windowSeconds:i.window_s}))}var ge=z.object({topic:St,type:z.literal("update"),timestamp:da,payload:fe(30)}),Pe=z.object({topic:kt,type:z.literal("update"),timestamp:da,payload:fe(60)}),rn=z.union([ge,Pe]),Tt=z.discriminatedUnion("topic",[ft,gt,ge,Pe]),It=z.object({symbol:z.string(),value:Qa,full_accuracy_value:Oa.nullish(),timestamp:da,received_at:da.nullish(),is_carried_forward:z.boolean().nullish()}).transform(({full_accuracy_value:t,received_at:i,is_carried_forward:r,value:a,...o})=>({...o,value:t??a,receivedAt:i,isCarriedForward:r})),Ct=z.object({timestamp:z.number(),value:Qa}),xt=z.object({symbol:z.string(),data:z.array(Ct)}),_t=z.literal("equity_prices"),bt="prices.equity.pyth",Ee=_t.transform(()=>bt),zt=z.object({topic:Ee,type:z.literal("update"),timestamp:da,payload:It}),Mt=z.object({topic:Ee,type:z.literal("subscribe"),timestamp:da,payload:xt}),wt=z.discriminatedUnion("type",[zt,Mt]),Ut=z.discriminatedUnion("type",[rt,at,ot,st]),an=z.discriminatedUnion("topic",[Ut,Tt,wt]);var At=z.object({gameId:z.number().int(),sportradarGameId:z.string().nullish(),slug:z.string().nullish(),leagueAbbreviation:z.string(),homeTeam:z.string().nullish(),awayTeam:z.string().nullish(),status:z.string(),live:z.boolean(),ended:z.boolean(),score:z.string(),period:z.string().nullish(),elapsed:z.string().nullish(),finishedTimestamp:ka.nullish(),finished_timestamp:ka.nullish(),turn:z.string().nullish()}).transform(({finishedTimestamp:t,finished_timestamp:i,...r})=>({...r,finishedAt:t??i})),pn=At.transform(t=>({topic:"sports",type:"sport_result",payload:t}));export{rt as CommentCreatedEventSchema,at as CommentRemovedEventSchema,Ut as CommentsEventSchema,ft as CryptoPricesBinanceEventSchema,gt as CryptoPricesChainlinkEventSchema,rn as CryptoPricesChainlinkTwapEventSchema,Pe as CryptoPricesChainlinkTwapSixtyEventSchema,ge as CryptoPricesChainlinkTwapThirtyEventSchema,Tt as CryptoPricesEventSchema,Bt as CustomMarketEventSchema,wt as EquityPricesEventSchema,Mt as EquityPricesSubscribeEventSchema,zt as EquityPricesUpdateEventSchema,ce as MarketBestBidAskEventSchema,re as MarketBookEventSchema,qt as MarketEventSchema,oe as MarketLastTradePriceEventSchema,ae as MarketPriceChangeEventSchema,le as MarketResolvedEventSchema,se as MarketTickSizeChangeEventSchema,de as NewMarketEventSchema,He as PerpsBalanceUpdateEventSchema,Ne as PerpsBboEventSchema,Le as PerpsBookEventSchema,$e as PerpsCandleEventSchema,Ge as PerpsDepositUpdateEventSchema,Ve as PerpsFillUpdateEventSchema,Qe as PerpsFundingUpdateEventSchema,Qt as PerpsMarketDataEventSchema,Xe as PerpsNotificationUpdateEventSchema,Gt as PerpsNotificationsResyncFrameSchema,Ye as PerpsOrderUpdateEventSchema,We as PerpsPortfolioUpdateEventSchema,Jt as PerpsSessionUpdateEventSchema,Fe as PerpsStatisticEventSchema,Ze as PerpsTickerEventSchema,tt as PerpsTpSlUpdateEventSchema,je as PerpsTradeEventSchema,Je as PerpsWithdrawalUpdateEventSchema,ot as ReactionCreatedEventSchema,st as ReactionRemovedEventSchema,an as RealtimeEventSchema,pn as SportsResultEventSchema,Ot as StandardMarketEventSchema,jt as UserEventSchema,be as UserOrderEventSchema,me as UserOrderEventType,ie as UserOrderStatus,Me as UserTradeEventSchema};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/subscriptions/clob.ts","../../src/subscriptions/perps.ts","../../src/subscriptions/rtds.ts","../../src/subscriptions/sports.ts"],"names":["NormalizedOrderSideSchema","z","value","OrderSideSchema","UserOrderStatus","UserOrderStatusSchema","OrderBookLevelSchema","DecimalStringSchema","EpochSecondsStringToIsoDateTimeStringSchema","toIsoDateTimeString","ExpirationToIsoDateTimeStringSchema","MarketBookEventSchema","TokenIdSchema","EpochMillisecondsStringSchema","OptionalDecimalStringSchema","event_type","asset_id","min_order_size","tick_size","neg_risk","last_trade_price","rest","PriceChangeSchema","best_bid","best_ask","MarketPriceChangeEventSchema","price_changes","MarketLastTradePriceEventSchema","fee_rate_bps","transaction_hash","MarketTickSizeChangeEventSchema","old_tick_size","new_tick_size","MarketBestBidAskEventSchema","MarketEventMessageSchema","NewMarketEventSchema","ConditionIdSchema","EpochMillisecondsToIsoDateTimeStringSchema","assets_ids","event_message","condition_id","clob_token_ids","sports_market_type","game_start_time","order_price_min_tick_size","group_item_title","taker_base_fee","fees_enabled","fee_schedule","MarketResolvedEventSchema","winning_asset_id","winning_outcome","UserOrderEventType","UserOrderEventTypeSchema","UserOrderEventSchema","OrderTypeSchema","orderEventType","order_owner","original_size","size_matched","associate_trades","created_at","expiration","order_type","maker_address","TradeMakerOrderSchema","order_id","matched_amount","outcome_index","UserTradeEventSchema","TradeStatusSchema","_","taker_order_id","match_time","matchtime","last_update","trade_owner","bucket_index","maker_orders","trader_side","StandardMarketEventSchema","CustomMarketEventSchema","MarketEventSchema","UserEventSchema","SequenceSchema","TradesChannelSchema","BboChannelSchema","BookChannelSchema","TickersChannelSchema","StatisticsChannelSchema","CandlesChannelSchema","TpslChannelSchema","PerpsSessionChannelSchema","PerpsUpdateEnvelopeSchema","EpochMillisecondsSchema","PerpsTradeEventSchema","PerpsPublicTradeUpdateSchema","ch","ts","sq","data","PerpsBboEventSchema","PerpsBboUpdateSchema","PerpsBookEventSchema","PerpsBookUpdateSchema","instrumentIdFromChannel","PerpsTickerEventSchema","PerpsTickerEntrySchema","PerpsStatisticEventSchema","PerpsStatisticUpdateSchema","PerpsCandleEventSchema","PerpsCandleSchema","candleIntervalFromChannel","PerpsMarketDataEventSchema","PerpsSessionUpdateEnvelopeSchema","perpsSessionEventSchema","type","channel","payload","message","event","PerpsBalanceUpdateEventSchema","PerpsBalanceSchema","PerpsPortfolioUpdateEventSchema","PerpsPortfolioSchema","PerpsOrderUpdateEventSchema","PerpsOrderUpdateSchema","PerpsFillUpdateEventSchema","PerpsAccountFillUpdateSchema","PerpsFundingUpdateEventSchema","PerpsAccountFundingPaymentEntrySchema","PerpsDepositUpdateEventSchema","PerpsDepositUpdateSchema","PerpsWithdrawalUpdateEventSchema","PerpsWithdrawalUpdateSchema","PerpsNotificationUpdateEventSchema","PerpsNotificationSchema","PerpsNotificationsResyncFrameSchema","PerpsTpSlLifecycleUpdateSchema","PerpsOrderIdSchema","PerpsTpSlUpdateEventSchema","update","PerpsSessionUpdateEventSchema","rawInstrumentId","PerpsInstrumentIdSchema","interval","CommentRemovedPayloadSchema","CommentParentEntityTypeSchema","CommentMediaSchema","CommentProfileSchema","ReactionSchema","CommentCreatedEventSchema","CommentSchema","CommentRemovedEventSchema","ReactionCreatedEventSchema","ReactionRemovedEventSchema","PriceUpdatePayloadSchema","DecimalishSchema","CRYPTO_PRICES_BINANCE_TOPIC","CRYPTO_PRICES_CHAINLINK_TOPIC","CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC","RawCryptoPricesBinanceTopicSchema","RawCryptoPricesChainlinkTopicSchema","RawCryptoPricesChainlinkTwapThirtyTopicSchema","RawCryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceTopicSchema","CryptoPricesChainlinkTopicSchema","CryptoPricesChainlinkTwapThirtyTopicSchema","CryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceEventSchema","CryptoPricesChainlinkEventSchema","CHAINLINK_PRICE_SCALE","chainlinkE18PriceToDecimalString","scaledValue","isNegative","absoluteValue","whole","fraction","toDecimalString","ChainlinkFullAccuracyPriceSchema","CryptoPricesChainlinkTwapPayloadBaseSchema","cryptoPricesChainlinkTwapPayloadSchema","windowSeconds","CryptoPricesChainlinkTwapThirtyEventSchema","CryptoPricesChainlinkTwapSixtyEventSchema","CryptoPricesChainlinkTwapEventSchema","CryptoPricesEventSchema","EquityPriceUpdatePayloadSchema","full_accuracy_value","received_at","is_carried_forward","EquityPriceSnapshotPointSchema","EquityPriceSubscribePayloadSchema","RawEquityPricesTopicSchema","EQUITY_PRICES_TOPIC","EquityPricesTopicSchema","EquityPricesUpdateEventSchema","EquityPricesSubscribeEventSchema","EquityPricesEventSchema","CommentsEventSchema","RealtimeEventSchema","SportsResultPayloadSchema","finishedTimestamp","finished_timestamp","SportsResultEventSchema"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport {\n ConditionIdSchema,\n DecimalStringSchema,\n EpochMillisecondsStringSchema,\n EpochMillisecondsToIsoDateTimeStringSchema,\n OptionalDecimalStringSchema,\n type OrderSide,\n OrderSideSchema,\n OrderTypeSchema,\n TokenIdSchema,\n TradeStatusSchema,\n toIsoDateTimeString,\n} from '../shared';\n\n// The websocket serializes absent optional decimals as an empty string (for\n// example `fee_rate_bps` on a trade with no fee, or `best_bid`/`best_ask` when\n// there is none), so optional decimal fields in these schemas use the\n// ''-normalizing OptionalDecimalStringSchema.\n\nconst NormalizedOrderSideSchema: z.ZodType<OrderSide> = z.preprocess(\n (value) => (typeof value === 'string' ? value.toUpperCase() : value),\n OrderSideSchema,\n);\n\nexport { TradeStatus } from '../shared';\n\nexport enum UserOrderStatus {\n Live = 'LIVE',\n Matched = 'MATCHED',\n Delayed = 'DELAYED',\n Unmatched = 'UNMATCHED',\n Canceled = 'CANCELED',\n}\n\nconst UserOrderStatusSchema = z.enum(UserOrderStatus);\n\nconst OrderBookLevelSchema = z.object({\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n});\n\nconst EpochSecondsStringToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nconst ExpirationToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n value === '0'\n ? undefined\n : toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nexport type OrderBookLevel = z.infer<typeof OrderBookLevelSchema>;\n\nexport const MarketBookEventSchema = z\n .object({\n event_type: z.literal('book'),\n market: z.string(),\n asset_id: TokenIdSchema,\n bids: z.array(OrderBookLevelSchema),\n asks: z.array(OrderBookLevelSchema),\n hash: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n min_order_size: OptionalDecimalStringSchema,\n tick_size: OptionalDecimalStringSchema,\n neg_risk: z.boolean().nullish(),\n last_trade_price: OptionalDecimalStringSchema,\n })\n .transform(\n ({\n event_type,\n asset_id,\n min_order_size,\n tick_size,\n neg_risk,\n last_trade_price,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenId: asset_id,\n minOrderSize: min_order_size,\n tickSize: tick_size,\n negRisk: neg_risk,\n lastTradePrice: last_trade_price,\n },\n };\n },\n );\n\nexport type MarketBookEvent = z.infer<typeof MarketBookEventSchema>;\n\nconst PriceChangeSchema = z\n .object({\n asset_id: TokenIdSchema,\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n side: NormalizedOrderSideSchema,\n hash: z.string().nullish(),\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n })\n .transform(({ asset_id, best_bid, best_ask, ...rest }) => ({\n ...rest,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n }));\n\nexport type PriceChange = z.infer<typeof PriceChangeSchema>;\n\nexport const MarketPriceChangeEventSchema = z\n .object({\n event_type: z.literal('price_change'),\n market: z.string(),\n price_changes: z.array(PriceChangeSchema),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, price_changes, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n priceChanges: price_changes,\n },\n };\n });\n\nexport type MarketPriceChangeEvent = z.infer<\n typeof MarketPriceChangeEventSchema\n>;\n\nexport const MarketLastTradePriceEventSchema = z\n .object({\n event_type: z.literal('last_trade_price'),\n market: z.string(),\n asset_id: TokenIdSchema,\n price: DecimalStringSchema,\n size: OptionalDecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n side: NormalizedOrderSideSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n transaction_hash: z.string().nullish(),\n })\n .transform(\n ({ event_type, asset_id, fee_rate_bps, transaction_hash, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n transactionHash: transaction_hash,\n },\n };\n },\n );\n\nexport type MarketLastTradePriceEvent = z.infer<\n typeof MarketLastTradePriceEventSchema\n>;\n\nexport const MarketTickSizeChangeEventSchema = z\n .object({\n event_type: z.literal('tick_size_change'),\n market: z.string(),\n asset_id: TokenIdSchema,\n old_tick_size: OptionalDecimalStringSchema,\n new_tick_size: DecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(\n ({ event_type, asset_id, old_tick_size, new_tick_size, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenId: asset_id,\n oldTickSize: old_tick_size,\n newTickSize: new_tick_size,\n },\n };\n },\n );\n\nexport type MarketTickSizeChangeEvent = z.infer<\n typeof MarketTickSizeChangeEventSchema\n>;\n\nexport const MarketBestBidAskEventSchema = z\n .object({\n event_type: z.literal('best_bid_ask'),\n market: z.string(),\n asset_id: TokenIdSchema,\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n spread: OptionalDecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, asset_id, best_bid, best_ask, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n },\n };\n });\n\nexport type MarketBestBidAskEvent = z.infer<typeof MarketBestBidAskEventSchema>;\n\nconst MarketEventMessageSchema = z.object({\n id: z.string(),\n ticker: z.string().nullish(),\n slug: z.string().nullish(),\n title: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type MarketEventMessage = z.infer<typeof MarketEventMessageSchema>;\n\nexport const NewMarketEventSchema = z\n .object({\n event_type: z.literal('new_market'),\n id: z.string(),\n question: z.string().nullish(),\n market: z.string(),\n slug: z.string().nullish(),\n description: z.string().nullish(),\n assets_ids: z.array(TokenIdSchema).nullish(),\n outcomes: z.array(z.string()).nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n condition_id: ConditionIdSchema.nullish(),\n active: z.boolean().nullish(),\n clob_token_ids: z.array(z.string()).nullish(),\n sports_market_type: z.string().nullish(),\n line: OptionalDecimalStringSchema,\n game_start_time: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n order_price_min_tick_size: OptionalDecimalStringSchema,\n group_item_title: z.string().nullish(),\n taker_base_fee: OptionalDecimalStringSchema,\n fees_enabled: z.boolean().nullish(),\n fee_schedule: z.unknown().nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n event_message,\n condition_id,\n clob_token_ids,\n sports_market_type,\n game_start_time,\n order_price_min_tick_size,\n group_item_title,\n taker_base_fee,\n fees_enabled,\n fee_schedule,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenIds: assets_ids,\n eventMessage: event_message,\n conditionId: condition_id,\n clobTokenIds: clob_token_ids,\n sportsMarketType: sports_market_type,\n gameStartTime: game_start_time,\n orderPriceMinTickSize: order_price_min_tick_size,\n groupItemTitle: group_item_title,\n takerBaseFee: taker_base_fee,\n feesEnabled: fees_enabled,\n feeSchedule: fee_schedule,\n },\n };\n },\n );\n\nexport type NewMarketEvent = z.infer<typeof NewMarketEventSchema>;\n\nexport const MarketResolvedEventSchema = z\n .object({\n event_type: z.literal('market_resolved'),\n id: z.string(),\n market: z.string(),\n assets_ids: z.array(TokenIdSchema).nullish(),\n winning_asset_id: TokenIdSchema.nullish(),\n winning_outcome: z.string().nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n winning_asset_id,\n winning_outcome,\n event_message,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n tokenIds: assets_ids,\n winningTokenId: winning_asset_id,\n winningOutcome: winning_outcome,\n eventMessage: event_message,\n },\n };\n },\n );\n\nexport type MarketResolvedEvent = z.infer<typeof MarketResolvedEventSchema>;\n\nexport enum UserOrderEventType {\n Placement = 'PLACEMENT',\n Update = 'UPDATE',\n Cancellation = 'CANCELLATION',\n}\n\nconst UserOrderEventTypeSchema = z.enum(UserOrderEventType);\n\nexport const UserOrderEventSchema = z\n .object({\n event_type: z.literal('order'),\n id: z.string(),\n owner: z.string(),\n market: z.string(),\n asset_id: TokenIdSchema,\n side: NormalizedOrderSideSchema,\n order_owner: z.string().nullish(),\n original_size: DecimalStringSchema,\n size_matched: DecimalStringSchema,\n price: DecimalStringSchema,\n associate_trades: z.array(z.string()).nullish(),\n outcome: z.string().nullish(),\n type: UserOrderEventTypeSchema,\n created_at: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n expiration: ExpirationToIsoDateTimeStringSchema.nullish(),\n order_type: OrderTypeSchema.nullish(),\n status: UserOrderStatusSchema.nullish(),\n maker_address: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: orderEventType,\n asset_id,\n order_owner,\n original_size,\n size_matched,\n associate_trades,\n created_at,\n expiration,\n order_type,\n maker_address,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n orderEventType,\n tokenId: asset_id,\n orderOwner: order_owner,\n originalSize: original_size,\n sizeMatched: size_matched,\n associateTrades: associate_trades,\n createdAt: created_at,\n expiresAt: expiration,\n orderType: order_type,\n makerAddress: maker_address,\n },\n };\n },\n );\n\nexport type UserOrderEvent = z.infer<typeof UserOrderEventSchema>;\n\nconst TradeMakerOrderSchema = z\n .object({\n order_id: z.string(),\n owner: z.string(),\n maker_address: z.string().nullish(),\n matched_amount: DecimalStringSchema,\n price: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n asset_id: TokenIdSchema,\n outcome: z.string().nullish(),\n outcome_index: z.number().int().nullish(),\n side: NormalizedOrderSideSchema,\n })\n .transform(\n ({\n order_id,\n maker_address,\n matched_amount,\n fee_rate_bps,\n asset_id,\n outcome_index,\n ...rest\n }) => ({\n ...rest,\n orderId: order_id,\n makerAddress: maker_address,\n matchedAmount: matched_amount,\n feeRateBps: fee_rate_bps,\n tokenId: asset_id,\n outcomeIndex: outcome_index,\n }),\n );\n\nexport type TradeMakerOrder = z.infer<typeof TradeMakerOrderSchema>;\n\nexport const UserTradeEventSchema = z\n .object({\n event_type: z.literal('trade'),\n type: z.literal('TRADE'),\n id: z.string(),\n taker_order_id: z.string(),\n market: z.string(),\n asset_id: TokenIdSchema,\n side: NormalizedOrderSideSchema,\n size: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n price: DecimalStringSchema,\n status: TradeStatusSchema,\n match_time: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n matchtime: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n last_update: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n outcome: z.string().nullish(),\n owner: z.string(),\n trade_owner: z.string().nullish(),\n maker_address: z.string().nullish(),\n transaction_hash: z.string().nullish(),\n bucket_index: z.number().int().nullish(),\n maker_orders: z.array(TradeMakerOrderSchema).nullish(),\n trader_side: z.union([z.literal('TAKER'), z.literal('MAKER')]).nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: _,\n taker_order_id,\n asset_id,\n fee_rate_bps,\n match_time,\n matchtime,\n last_update,\n trade_owner,\n maker_address,\n transaction_hash,\n bucket_index,\n maker_orders,\n trader_side,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n takerOrderId: taker_order_id,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n matchedAt: match_time ?? matchtime,\n updatedAt: last_update,\n tradeOwner: trade_owner,\n makerAddress: maker_address,\n transactionHash: transaction_hash,\n bucketIndex: bucket_index,\n makerOrders: maker_orders,\n traderSide: trader_side,\n },\n };\n },\n );\n\nexport type UserTradeEvent = z.infer<typeof UserTradeEventSchema>;\n\nexport const StandardMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n]);\n\nexport type StandardMarketEvent = z.infer<typeof StandardMarketEventSchema>;\n\nexport const CustomMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]);\n\nexport type CustomMarketEvent = z.infer<typeof CustomMarketEventSchema>;\n\nexport const MarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]);\n\nexport type MarketEvent = StandardMarketEvent | CustomMarketEvent;\n\nexport const UserEventSchema = z.discriminatedUnion('event_type', [\n UserOrderEventSchema,\n UserTradeEventSchema,\n]);\n\nexport type UserEvent = z.infer<typeof UserEventSchema>;\n","import { z } from 'zod';\nimport {\n PerpsAccountFundingPaymentEntrySchema,\n PerpsBalanceSchema,\n PerpsPortfolioSchema,\n} from '../perps/account';\nimport {\n PerpsInstrumentIdSchema,\n type PerpsKlineInterval,\n PerpsOrderIdSchema,\n} from '../perps/common';\nimport {\n PerpsDepositUpdateSchema,\n PerpsWithdrawalUpdateSchema,\n} from '../perps/funds';\nimport {\n PerpsBboUpdateSchema,\n PerpsBookUpdateSchema,\n PerpsCandleSchema,\n PerpsPublicTradeUpdateSchema,\n PerpsStatisticUpdateSchema,\n PerpsTickerEntrySchema,\n} from '../perps/market';\nimport { PerpsNotificationSchema } from '../perps/notifications';\nimport {\n PerpsAccountFillUpdateSchema,\n PerpsOrderUpdateSchema,\n} from '../perps/orders';\nimport { EpochMillisecondsSchema } from '../shared';\n\nconst SequenceSchema = z.number().int().nonnegative();\n\nconst TradesChannelSchema = z.string().regex(/^trades::\\d+$/);\nconst BboChannelSchema = z.string().regex(/^bbo::\\d+$/);\nconst BookChannelSchema = z.string().regex(/^book::\\d+$/);\nconst TickersChannelSchema = z.string().regex(/^tickers::(all|\\d+)$/);\nconst StatisticsChannelSchema = z.string().regex(/^statistics::(all|\\d+)$/);\nconst CandlesChannelSchema = z\n .string()\n .regex(/^klines::\\d+::(1m|5m|15m|1h|4h|1d|1w)$/);\nconst TpslChannelSchema = z.string().regex(/^tpsl::\\d+$/);\nconst PerpsSessionChannelSchema = z.enum([\n 'balances',\n 'portfolio',\n 'orders',\n 'fills',\n 'funding',\n 'deposits',\n 'withdrawals',\n 'notifications',\n]);\n\nconst PerpsUpdateEnvelopeSchema = z.object({\n ts: EpochMillisecondsSchema,\n sq: SequenceSchema,\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTradeEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TradesChannelSchema,\n data: z.array(PerpsPublicTradeUpdateSchema),\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.trades' as const,\n type: 'trade' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTradeEvent = z.infer<typeof PerpsTradeEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBboEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BboChannelSchema,\n data: PerpsBboUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.bbo' as const,\n type: 'bbo' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBboEvent = z.infer<typeof PerpsBboEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BookChannelSchema,\n data: PerpsBookUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.book' as const,\n type: 'book' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n ...data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBookEvent = z.infer<typeof PerpsBookEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTickerEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TickersChannelSchema,\n data: PerpsTickerEntrySchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.tickers' as const,\n type: 'ticker' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTickerEvent = z.infer<typeof PerpsTickerEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsStatisticEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: StatisticsChannelSchema,\n data: PerpsStatisticUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.statistics' as const,\n type: 'statistic' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsStatisticEvent = z.infer<typeof PerpsStatisticEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCandleEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: CandlesChannelSchema,\n data: z.array(PerpsCandleSchema),\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.candles' as const,\n type: 'candle' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n interval: candleIntervalFromChannel(ch),\n candles: data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCandleEvent = z.infer<typeof PerpsCandleEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsMarketDataEventSchema = z.union([\n PerpsTradeEventSchema,\n PerpsBboEventSchema,\n PerpsBookEventSchema,\n PerpsTickerEventSchema,\n PerpsStatisticEventSchema,\n PerpsCandleEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsMarketDataEvent = z.infer<typeof PerpsMarketDataEventSchema>;\n\nconst PerpsSessionUpdateEnvelopeSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: PerpsSessionChannelSchema,\n});\n\nfunction perpsSessionEventSchema<\n TType extends string,\n TChannel extends z.infer<typeof PerpsSessionChannelSchema>,\n TPayload extends z.ZodType,\n>(type: TType, channel: TChannel, payload: TPayload) {\n return PerpsSessionUpdateEnvelopeSchema.extend({\n ch: z.literal(channel),\n data: payload,\n }).transform((message) => {\n const event = message as {\n ch: TChannel;\n data: z.output<TPayload>;\n sq: number;\n ts: number;\n };\n\n return {\n type,\n channel: event.ch,\n timestamp: event.ts,\n sequence: event.sq,\n payload: event.data,\n };\n });\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBalanceUpdateEventSchema = perpsSessionEventSchema(\n 'balance',\n 'balances',\n PerpsBalanceSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBalanceUpdateEvent = z.infer<\n typeof PerpsBalanceUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPortfolioUpdateEventSchema = perpsSessionEventSchema(\n 'portfolio',\n 'portfolio',\n PerpsPortfolioSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPortfolioUpdateEvent = z.infer<\n typeof PerpsPortfolioUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderUpdateEventSchema = perpsSessionEventSchema(\n 'order',\n 'orders',\n PerpsOrderUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsOrderUpdateEvent = z.infer<typeof PerpsOrderUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFillUpdateEventSchema = perpsSessionEventSchema(\n 'fill',\n 'fills',\n z.array(PerpsAccountFillUpdateSchema),\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFillUpdateEvent = z.infer<typeof PerpsFillUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingUpdateEventSchema = perpsSessionEventSchema(\n 'funding',\n 'funding',\n PerpsAccountFundingPaymentEntrySchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingUpdateEvent = z.infer<\n typeof PerpsFundingUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositUpdateEventSchema = perpsSessionEventSchema(\n 'deposit',\n 'deposits',\n PerpsDepositUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDepositUpdateEvent = z.infer<\n typeof PerpsDepositUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalUpdateEventSchema = perpsSessionEventSchema(\n 'withdrawal',\n 'withdrawals',\n PerpsWithdrawalUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalUpdateEvent = z.infer<\n typeof PerpsWithdrawalUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationUpdateEventSchema = perpsSessionEventSchema(\n 'notification',\n 'notifications',\n PerpsNotificationSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotificationUpdateEvent = z.infer<\n typeof PerpsNotificationUpdateEventSchema\n>;\n\n/**\n * Backpressure control frame on the `notifications` channel. The server sends\n * it when one or more notification data frames were dropped; `sq` is the\n * highest engine sequence among the dropped notifications.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationsResyncFrameSchema = z\n .object({\n ch: z.literal('notifications'),\n ts: EpochMillisecondsSchema,\n sq: SequenceSchema,\n type: z.literal('resync'),\n })\n .transform(({ ch, ts, sq }) => ({\n type: 'resync' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n }));\n\nconst PerpsTpSlLifecycleUpdateSchema = z.object({\n oid: PerpsOrderIdSchema,\n st: z.enum(['untriggered', 'armed', 'cancelled', 'expired']),\n reason: z.string().optional(),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlUpdateEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TpslChannelSchema,\n data: PerpsTpSlLifecycleUpdateSchema.transform((update) => ({\n orderId: update.oid,\n status: update.st,\n reason: update.reason,\n })),\n}).transform(({ ch, ts, sq, data }) => ({\n type: 'tpsl' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTpSlUpdateEvent = z.infer<typeof PerpsTpSlUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsSessionUpdateEventSchema = z.union([\n PerpsBalanceUpdateEventSchema,\n PerpsPortfolioUpdateEventSchema,\n PerpsOrderUpdateEventSchema,\n PerpsFillUpdateEventSchema,\n PerpsFundingUpdateEventSchema,\n PerpsDepositUpdateEventSchema,\n PerpsWithdrawalUpdateEventSchema,\n PerpsNotificationUpdateEventSchema,\n PerpsTpSlUpdateEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionUpdateEvent = z.infer<\n typeof PerpsSessionUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsResyncEvent = {\n type: 'resync';\n reason: 'reconnect' | 'sequence_gap';\n channel?: string;\n previousSequence?: number;\n sequence?: number;\n};\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionEvent = PerpsSessionUpdateEvent | PerpsResyncEvent;\n\nfunction instrumentIdFromChannel(channel: string) {\n const [, rawInstrumentId] = channel.split('::');\n return PerpsInstrumentIdSchema.parse(Number(rawInstrumentId));\n}\n\nfunction candleIntervalFromChannel(channel: string) {\n const [, , interval] = channel.split('::');\n return interval as Exclude<PerpsKlineInterval, PerpsKlineInterval.OneSecond>;\n}\n","import { z } from 'zod';\nimport {\n CommentMediaSchema,\n CommentProfileSchema,\n CommentSchema,\n ReactionSchema,\n} from '../gamma/comment';\nimport {\n CommentParentEntityTypeSchema,\n DecimalishSchema,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n toDecimalString,\n} from '../shared';\n\nconst CommentRemovedPayloadSchema = z.object({\n id: z.string(),\n body: z.string().nullish(),\n parentEntityType: CommentParentEntityTypeSchema.nullish(),\n parentEntityID: z.number().int().nullish(),\n parentCommentID: z.string().nullish(),\n userAddress: z.string().nullish(),\n replyAddress: z.string().nullish(),\n createdAt: z.string().nullish(),\n updatedAt: z.string().nullish(),\n media: z.array(CommentMediaSchema).nullish(),\n profile: CommentProfileSchema.nullish(),\n reactions: z.array(ReactionSchema).nullish(),\n reportCount: z.number().int().nullish(),\n reactionCount: z.number().int().nullish(),\n tradeAsset: z.string().nullish(),\n});\n\nexport type CommentRemovedPayload = z.infer<typeof CommentRemovedPayloadSchema>;\n\nexport const CommentCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_created'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentSchema,\n});\n\nexport type CommentCreatedEvent = z.infer<typeof CommentCreatedEventSchema>;\n\nexport const CommentRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentRemovedPayloadSchema,\n});\n\nexport type CommentRemovedEvent = z.infer<typeof CommentRemovedEventSchema>;\n\nexport const ReactionCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_created'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionCreatedEvent = z.infer<typeof ReactionCreatedEventSchema>;\n\nexport const ReactionRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionRemovedEvent = z.infer<typeof ReactionRemovedEventSchema>;\n\nconst PriceUpdatePayloadSchema = z.object({\n symbol: z.string(),\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n});\n\nexport type PriceUpdatePayload = z.infer<typeof PriceUpdatePayloadSchema>;\n\nconst CRYPTO_PRICES_BINANCE_TOPIC = 'prices.crypto.binance' as const;\nconst CRYPTO_PRICES_CHAINLINK_TOPIC = 'prices.crypto.chainlink' as const;\nconst CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC =\n 'prices.crypto.chainlink.twap' as const;\n\nexport type CryptoPricesBinanceTopic = typeof CRYPTO_PRICES_BINANCE_TOPIC;\nexport type CryptoPricesChainlinkTopic = typeof CRYPTO_PRICES_CHAINLINK_TOPIC;\nexport type CryptoPricesChainlinkTwapTopic =\n typeof CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\nexport type CryptoPricesChainlinkTwapWindowSeconds = 30 | 60;\nexport type CryptoPricesTopic =\n | CryptoPricesBinanceTopic\n | CryptoPricesChainlinkTopic;\n\nconst RawCryptoPricesBinanceTopicSchema = z.literal('crypto_prices');\nconst RawCryptoPricesChainlinkTopicSchema = z.literal(\n 'crypto_prices_chainlink',\n);\nconst RawCryptoPricesChainlinkTwapThirtyTopicSchema = z.literal(\n 'crypto_prices_twap_thirty',\n);\nconst RawCryptoPricesChainlinkTwapSixtyTopicSchema = z.literal(\n 'crypto_prices_twap_sixty',\n);\n\nconst CryptoPricesBinanceTopicSchema: z.ZodType<CryptoPricesBinanceTopic> =\n RawCryptoPricesBinanceTopicSchema.transform(() => {\n return CRYPTO_PRICES_BINANCE_TOPIC;\n });\n\nconst CryptoPricesChainlinkTopicSchema: z.ZodType<CryptoPricesChainlinkTopic> =\n RawCryptoPricesChainlinkTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapThirtyTopicSchema =\n RawCryptoPricesChainlinkTwapThirtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapSixtyTopicSchema =\n RawCryptoPricesChainlinkTwapSixtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nexport const CryptoPricesBinanceEventSchema = z.object({\n topic: CryptoPricesBinanceTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesBinanceEvent = z.infer<\n typeof CryptoPricesBinanceEventSchema\n>;\n\nexport const CryptoPricesChainlinkEventSchema = z.object({\n topic: CryptoPricesChainlinkTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesChainlinkEvent = z.infer<\n typeof CryptoPricesChainlinkEventSchema\n>;\n\nconst CHAINLINK_PRICE_SCALE = 1_000_000_000_000_000_000n;\n\nfunction chainlinkE18PriceToDecimalString(value: string) {\n const scaledValue = BigInt(value);\n const isNegative = scaledValue < 0n;\n const absoluteValue = isNegative ? -scaledValue : scaledValue;\n const whole = absoluteValue / CHAINLINK_PRICE_SCALE;\n const fraction = (absoluteValue % CHAINLINK_PRICE_SCALE)\n .toString()\n .padStart(18, '0')\n .replace(/0+$/, '');\n\n return toDecimalString(\n `${isNegative ? '-' : ''}${whole}${fraction === '' ? '' : `.${fraction}`}`,\n );\n}\n\n// Chainlink publishes a float for display convenience and the exact\n// BenchmarkPrice as a signed E18 integer. Normalize from the exact field.\nconst ChainlinkFullAccuracyPriceSchema = z\n .string()\n .regex(/^-?\\d+$/)\n .transform(chainlinkE18PriceToDecimalString);\n\nconst CryptoPricesChainlinkTwapPayloadBaseSchema = z.object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: ChainlinkFullAccuracyPriceSchema,\n timestamp: EpochMillisecondsSchema,\n});\n\nfunction cryptoPricesChainlinkTwapPayloadSchema<\n const TWindowSeconds extends CryptoPricesChainlinkTwapWindowSeconds,\n>(windowSeconds: TWindowSeconds) {\n return CryptoPricesChainlinkTwapPayloadBaseSchema.extend({\n window_s: z.literal(windowSeconds),\n }).transform((payload) => {\n return {\n symbol: payload.symbol,\n timestamp: payload.timestamp,\n value: payload.full_accuracy_value,\n windowSeconds: payload.window_s,\n };\n });\n}\n\nexport const CryptoPricesChainlinkTwapThirtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapThirtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(30),\n});\n\nexport type CryptoPricesChainlinkTwapThirtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapThirtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapSixtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapSixtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(60),\n});\n\nexport type CryptoPricesChainlinkTwapSixtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapSixtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapEventSchema = z.union([\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesChainlinkTwapEvent = z.infer<\n typeof CryptoPricesChainlinkTwapEventSchema\n>;\n\nexport const CryptoPricesEventSchema = z.discriminatedUnion('topic', [\n CryptoPricesBinanceEventSchema,\n CryptoPricesChainlinkEventSchema,\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesEvent = z.infer<typeof CryptoPricesEventSchema>;\n\nconst EquityPriceUpdatePayloadSchema = z\n .object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema.nullish(),\n timestamp: EpochMillisecondsSchema,\n received_at: EpochMillisecondsSchema.nullish(),\n is_carried_forward: z.boolean().nullish(),\n })\n .transform(\n ({\n full_accuracy_value,\n received_at,\n is_carried_forward,\n value,\n ...rest\n }) => ({\n ...rest,\n value: full_accuracy_value ?? value,\n receivedAt: received_at,\n isCarriedForward: is_carried_forward,\n }),\n );\n\nexport type EquityPriceUpdatePayload = z.infer<\n typeof EquityPriceUpdatePayloadSchema\n>;\n\nconst EquityPriceSnapshotPointSchema = z.object({\n timestamp: z.number(),\n value: DecimalishSchema,\n});\n\nexport type EquityPriceSnapshotPoint = z.infer<\n typeof EquityPriceSnapshotPointSchema\n>;\n\nconst EquityPriceSubscribePayloadSchema = z.object({\n symbol: z.string(),\n data: z.array(EquityPriceSnapshotPointSchema),\n});\n\nexport type EquityPriceSubscribePayload = z.infer<\n typeof EquityPriceSubscribePayloadSchema\n>;\n\nconst RawEquityPricesTopicSchema = z.literal('equity_prices');\n\nconst EQUITY_PRICES_TOPIC = 'prices.equity.pyth' as const;\n\nexport type EquityPricesTopic = typeof EQUITY_PRICES_TOPIC;\n\nconst EquityPricesTopicSchema: z.ZodType<EquityPricesTopic> =\n RawEquityPricesTopicSchema.transform(() => {\n return EQUITY_PRICES_TOPIC;\n });\n\nexport const EquityPricesUpdateEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceUpdatePayloadSchema,\n});\n\nexport type EquityPricesUpdateEvent = z.infer<\n typeof EquityPricesUpdateEventSchema\n>;\n\nexport const EquityPricesSubscribeEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('subscribe'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceSubscribePayloadSchema,\n});\n\nexport type EquityPricesSubscribeEvent = z.infer<\n typeof EquityPricesSubscribeEventSchema\n>;\n\nexport const EquityPricesEventSchema = z.discriminatedUnion('type', [\n EquityPricesUpdateEventSchema,\n EquityPricesSubscribeEventSchema,\n]);\n\nexport type EquityPricesEvent = z.infer<typeof EquityPricesEventSchema>;\n\nexport const CommentsEventSchema = z.discriminatedUnion('type', [\n CommentCreatedEventSchema,\n CommentRemovedEventSchema,\n ReactionCreatedEventSchema,\n ReactionRemovedEventSchema,\n]);\n\nexport type CommentsEvent = z.infer<typeof CommentsEventSchema>;\n\nexport const RealtimeEventSchema = z.discriminatedUnion('topic', [\n CommentsEventSchema,\n CryptoPricesEventSchema,\n EquityPricesEventSchema,\n]);\n\nexport type RealtimeEvent = z.infer<typeof RealtimeEventSchema>;\n","import { z } from 'zod';\nimport { EpochMillisecondsToIsoDateTimeStringSchema } from '../shared';\n\nconst SportsResultPayloadSchema = z\n .object({\n gameId: z.number().int(),\n sportradarGameId: z.string().nullish(),\n slug: z.string().nullish(),\n leagueAbbreviation: z.string(),\n homeTeam: z.string().nullish(),\n awayTeam: z.string().nullish(),\n status: z.string(),\n live: z.boolean(),\n ended: z.boolean(),\n score: z.string(),\n period: z.string().nullish(),\n elapsed: z.string().nullish(),\n finishedTimestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n finished_timestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n turn: z.string().nullish(),\n })\n .transform(({ finishedTimestamp, finished_timestamp, ...rest }) => ({\n ...rest,\n finishedAt: finishedTimestamp ?? finished_timestamp,\n }));\n\nexport const SportsResultEventSchema = SportsResultPayloadSchema.transform(\n (payload) => {\n return {\n // Normalize to the shared subscription event envelope so mixed-stream\n // consumers can discriminate by `event.topic` and `event.type`.\n topic: 'sports' as const,\n type: 'sport_result' as const,\n payload,\n };\n },\n);\n\nexport type SportsEvent = z.infer<typeof SportsResultEventSchema>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/subscriptions/clob.ts","../../src/subscriptions/perps.ts","../../src/subscriptions/rtds.ts","../../src/subscriptions/sports.ts"],"names":["NormalizedOrderSideSchema","z","value","OrderSideSchema","UserOrderStatus","UserOrderStatusSchema","OrderBookLevelSchema","DecimalStringSchema","EpochSecondsStringToIsoDateTimeStringSchema","toIsoDateTimeString","ExpirationToIsoDateTimeStringSchema","MarketBookEventSchema","ConditionIdSchema","ClobAssetIdSchema","EpochMillisecondsStringSchema","OptionalDecimalStringSchema","event_type","asset_id","min_order_size","tick_size","neg_risk","last_trade_price","rest","PriceChangeSchema","best_bid","best_ask","MarketPriceChangeEventSchema","price_changes","MarketLastTradePriceEventSchema","fee_rate_bps","transaction_hash","MarketTickSizeChangeEventSchema","old_tick_size","new_tick_size","MarketBestBidAskEventSchema","MarketEventMessageSchema","NewMarketEventSchema","EpochMillisecondsToIsoDateTimeStringSchema","assets_ids","event_message","condition_id","clob_token_ids","sports_market_type","game_start_time","order_price_min_tick_size","group_item_title","taker_base_fee","fees_enabled","fee_schedule","MarketResolvedEventSchema","winning_asset_id","winning_outcome","UserOrderEventType","UserOrderEventTypeSchema","UserOrderEventSchema","OrderTypeSchema","orderEventType","order_owner","original_size","size_matched","associate_trades","created_at","expiration","order_type","maker_address","TradeMakerOrderSchema","order_id","matched_amount","outcome_index","UserTradeEventSchema","TradeStatusSchema","_","taker_order_id","match_time","matchtime","last_update","trade_owner","bucket_index","maker_orders","trader_side","StandardMarketEventSchema","CustomMarketEventSchema","MarketEventSchema","UserEventSchema","SequenceSchema","TradesChannelSchema","BboChannelSchema","BookChannelSchema","TickersChannelSchema","StatisticsChannelSchema","CandlesChannelSchema","TpslChannelSchema","PerpsSessionChannelSchema","PerpsUpdateEnvelopeSchema","EpochMillisecondsSchema","PerpsTradeEventSchema","PerpsPublicTradeUpdateSchema","ch","ts","sq","data","PerpsBboEventSchema","PerpsBboUpdateSchema","PerpsBookEventSchema","PerpsBookUpdateSchema","instrumentIdFromChannel","PerpsTickerEventSchema","PerpsTickerEntrySchema","PerpsStatisticEventSchema","PerpsStatisticUpdateSchema","PerpsCandleEventSchema","PerpsCandleSchema","candleIntervalFromChannel","PerpsMarketDataEventSchema","PerpsSessionUpdateEnvelopeSchema","perpsSessionEventSchema","type","channel","payload","message","event","PerpsBalanceUpdateEventSchema","PerpsBalanceSchema","PerpsPortfolioUpdateEventSchema","PerpsPortfolioSchema","PerpsOrderUpdateEventSchema","PerpsOrderUpdateSchema","PerpsFillUpdateEventSchema","PerpsAccountFillUpdateSchema","PerpsFundingUpdateEventSchema","PerpsAccountFundingPaymentEntrySchema","PerpsDepositUpdateEventSchema","PerpsDepositUpdateSchema","PerpsWithdrawalUpdateEventSchema","PerpsWithdrawalUpdateSchema","PerpsNotificationUpdateEventSchema","PerpsNotificationSchema","PerpsNotificationsResyncFrameSchema","PerpsTpSlLifecycleUpdateSchema","PerpsOrderIdSchema","PerpsTpSlUpdateEventSchema","update","PerpsSessionUpdateEventSchema","rawInstrumentId","PerpsInstrumentIdSchema","interval","CommentRemovedPayloadSchema","CommentParentEntityTypeSchema","CommentMediaSchema","CommentProfileSchema","ReactionSchema","CommentCreatedEventSchema","CommentSchema","CommentRemovedEventSchema","ReactionCreatedEventSchema","ReactionRemovedEventSchema","PriceUpdatePayloadSchema","DecimalishSchema","CRYPTO_PRICES_BINANCE_TOPIC","CRYPTO_PRICES_CHAINLINK_TOPIC","CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC","RawCryptoPricesBinanceTopicSchema","RawCryptoPricesChainlinkTopicSchema","RawCryptoPricesChainlinkTwapThirtyTopicSchema","RawCryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceTopicSchema","CryptoPricesChainlinkTopicSchema","CryptoPricesChainlinkTwapThirtyTopicSchema","CryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceEventSchema","CryptoPricesChainlinkEventSchema","CHAINLINK_PRICE_SCALE","chainlinkE18PriceToDecimalString","scaledValue","isNegative","absoluteValue","whole","fraction","toDecimalString","ChainlinkFullAccuracyPriceSchema","CryptoPricesChainlinkTwapPayloadBaseSchema","cryptoPricesChainlinkTwapPayloadSchema","windowSeconds","CryptoPricesChainlinkTwapThirtyEventSchema","CryptoPricesChainlinkTwapSixtyEventSchema","CryptoPricesChainlinkTwapEventSchema","CryptoPricesEventSchema","EquityPriceUpdatePayloadSchema","full_accuracy_value","received_at","is_carried_forward","EquityPriceSnapshotPointSchema","EquityPriceSubscribePayloadSchema","RawEquityPricesTopicSchema","EQUITY_PRICES_TOPIC","EquityPricesTopicSchema","EquityPricesUpdateEventSchema","EquityPricesSubscribeEventSchema","EquityPricesEventSchema","CommentsEventSchema","RealtimeEventSchema","SportsResultPayloadSchema","finishedTimestamp","finished_timestamp","SportsResultEventSchema"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport {\n ClobAssetIdSchema,\n type ConditionId,\n ConditionIdSchema,\n type DecimalString,\n DecimalStringSchema,\n type EpochMilliseconds,\n EpochMillisecondsStringSchema,\n EpochMillisecondsToIsoDateTimeStringSchema,\n type IsoDateTimeString,\n OptionalDecimalStringSchema,\n type OrderSide,\n OrderSideSchema,\n type OrderType,\n OrderTypeSchema,\n type PositionId,\n type TokenId,\n type TradeStatus,\n TradeStatusSchema,\n toIsoDateTimeString,\n} from '../shared';\n\n// The websocket serializes absent optional decimals as an empty string (for\n// example `fee_rate_bps` on a trade with no fee, or `best_bid`/`best_ask` when\n// there is none), so optional decimal fields in these schemas use the\n// ''-normalizing OptionalDecimalStringSchema.\n\nconst NormalizedOrderSideSchema: z.ZodType<OrderSide> = z.preprocess(\n (value) => (typeof value === 'string' ? value.toUpperCase() : value),\n OrderSideSchema,\n);\n\nexport { TradeStatus } from '../shared';\n\nexport enum UserOrderStatus {\n Live = 'LIVE',\n Matched = 'MATCHED',\n Delayed = 'DELAYED',\n Unmatched = 'UNMATCHED',\n Canceled = 'CANCELED',\n}\n\nconst UserOrderStatusSchema = z.enum(UserOrderStatus);\n\nconst OrderBookLevelSchema = z.object({\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n});\n\nconst EpochSecondsStringToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nconst ExpirationToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n value === '0'\n ? undefined\n : toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nexport type OrderBookLevel = z.infer<typeof OrderBookLevelSchema>;\n\nexport const MarketBookEventSchema = z\n .object({\n event_type: z.literal('book'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n bids: z.array(OrderBookLevelSchema),\n asks: z.array(OrderBookLevelSchema),\n hash: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n min_order_size: OptionalDecimalStringSchema,\n tick_size: OptionalDecimalStringSchema,\n neg_risk: z.boolean().nullish(),\n last_trade_price: OptionalDecimalStringSchema,\n })\n .transform(\n ({\n event_type,\n asset_id,\n min_order_size,\n tick_size,\n neg_risk,\n last_trade_price,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n minOrderSize: min_order_size,\n tickSize: tick_size,\n negRisk: neg_risk,\n lastTradePrice: last_trade_price,\n },\n };\n },\n ) satisfies z.ZodType<MarketBookEvent>;\n\nexport type MarketBookEvent = {\n topic: 'market';\n type: 'book';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n bids: OrderBookLevel[];\n asks: OrderBookLevel[];\n hash?: string | null;\n timestamp?: EpochMilliseconds | null;\n minOrderSize: DecimalString | null | undefined;\n tickSize: DecimalString | null | undefined;\n negRisk: boolean | null | undefined;\n lastTradePrice: DecimalString | null | undefined;\n };\n};\n\nconst PriceChangeSchema = z\n .object({\n asset_id: ClobAssetIdSchema,\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n side: NormalizedOrderSideSchema,\n hash: z.string().nullish(),\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n })\n .transform(({ asset_id, best_bid, best_ask, ...rest }) => ({\n ...rest,\n assetId: asset_id,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n })) satisfies z.ZodType<PriceChange>;\n\nexport type PriceChange = {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n price: DecimalString;\n size: DecimalString;\n side: OrderSide;\n hash?: string | null;\n bestBid: DecimalString | null | undefined;\n bestAsk: DecimalString | null | undefined;\n};\n\nexport const MarketPriceChangeEventSchema = z\n .object({\n event_type: z.literal('price_change'),\n market: ConditionIdSchema,\n price_changes: z.array(PriceChangeSchema),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, price_changes, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n priceChanges: price_changes,\n },\n };\n }) satisfies z.ZodType<MarketPriceChangeEvent>;\n\nexport type MarketPriceChangeEvent = {\n topic: 'market';\n type: 'price_change';\n payload: {\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n priceChanges: PriceChange[];\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nexport const MarketLastTradePriceEventSchema = z\n .object({\n event_type: z.literal('last_trade_price'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n price: DecimalStringSchema,\n size: OptionalDecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n side: NormalizedOrderSideSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n transaction_hash: z.string().nullish(),\n })\n .transform(\n ({ event_type, asset_id, fee_rate_bps, transaction_hash, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n transactionHash: transaction_hash,\n },\n };\n },\n ) satisfies z.ZodType<MarketLastTradePriceEvent>;\n\nexport type MarketLastTradePriceEvent = {\n topic: 'market';\n type: 'last_trade_price';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n price: DecimalString;\n side: OrderSide;\n size?: DecimalString | null;\n feeRateBps: DecimalString | null | undefined;\n timestamp?: EpochMilliseconds | null;\n transactionHash: string | null | undefined;\n };\n};\n\nexport const MarketTickSizeChangeEventSchema = z\n .object({\n event_type: z.literal('tick_size_change'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n old_tick_size: OptionalDecimalStringSchema,\n new_tick_size: DecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(\n ({ event_type, asset_id, old_tick_size, new_tick_size, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n oldTickSize: old_tick_size,\n newTickSize: new_tick_size,\n },\n };\n },\n ) satisfies z.ZodType<MarketTickSizeChangeEvent>;\n\nexport type MarketTickSizeChangeEvent = {\n topic: 'market';\n type: 'tick_size_change';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n oldTickSize: DecimalString | null | undefined;\n newTickSize: DecimalString;\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nexport const MarketBestBidAskEventSchema = z\n .object({\n event_type: z.literal('best_bid_ask'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n spread: OptionalDecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, asset_id, best_bid, best_ask, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n },\n };\n }) satisfies z.ZodType<MarketBestBidAskEvent>;\n\nexport type MarketBestBidAskEvent = {\n topic: 'market';\n type: 'best_bid_ask';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n bestBid: DecimalString | null | undefined;\n bestAsk: DecimalString | null | undefined;\n spread?: DecimalString | null;\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nconst MarketEventMessageSchema = z.object({\n id: z.string(),\n ticker: z.string().nullish(),\n slug: z.string().nullish(),\n title: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type MarketEventMessage = z.infer<typeof MarketEventMessageSchema>;\n\nexport const NewMarketEventSchema = z\n .object({\n event_type: z.literal('new_market'),\n id: z.string(),\n question: z.string().nullish(),\n market: z.string(),\n slug: z.string().nullish(),\n description: z.string().nullish(),\n assets_ids: z.array(ClobAssetIdSchema).nullish(),\n outcomes: z.array(z.string()).nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n condition_id: ConditionIdSchema.nullish(),\n active: z.boolean().nullish(),\n clob_token_ids: z.array(z.string()).nullish(),\n sports_market_type: z.string().nullish(),\n line: OptionalDecimalStringSchema,\n game_start_time: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n order_price_min_tick_size: OptionalDecimalStringSchema,\n group_item_title: z.string().nullish(),\n taker_base_fee: OptionalDecimalStringSchema,\n fees_enabled: z.boolean().nullish(),\n fee_schedule: z.unknown().nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n event_message,\n condition_id,\n clob_token_ids,\n sports_market_type,\n game_start_time,\n order_price_min_tick_size,\n group_item_title,\n taker_base_fee,\n fees_enabled,\n fee_schedule,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n assetIds: assets_ids,\n tokenIds: assets_ids,\n eventMessage: event_message,\n conditionId: condition_id,\n clobTokenIds: clob_token_ids,\n sportsMarketType: sports_market_type,\n gameStartTime: game_start_time,\n orderPriceMinTickSize: order_price_min_tick_size,\n groupItemTitle: group_item_title,\n takerBaseFee: taker_base_fee,\n feesEnabled: fees_enabled,\n feeSchedule: fee_schedule,\n },\n };\n },\n ) satisfies z.ZodType<NewMarketEvent>;\n\nexport type NewMarketEvent = {\n topic: 'market';\n type: 'new_market';\n payload: {\n id: string;\n market: string;\n assetIds: Array<PositionId | TokenId> | null | undefined;\n /** @deprecated Use `assetIds`. */\n tokenIds: Array<PositionId | TokenId> | null | undefined;\n eventMessage: MarketEventMessage | null | undefined;\n conditionId: ConditionId | null | undefined;\n clobTokenIds: string[] | null | undefined;\n sportsMarketType: string | null | undefined;\n gameStartTime: IsoDateTimeString | null | undefined;\n orderPriceMinTickSize: DecimalString | null | undefined;\n groupItemTitle: string | null | undefined;\n takerBaseFee: DecimalString | null | undefined;\n feesEnabled: boolean | null | undefined;\n feeSchedule: unknown;\n question?: string | null;\n slug?: string | null;\n description?: string | null;\n outcomes?: string[] | null;\n timestamp?: EpochMilliseconds | null;\n tags?: string[] | null;\n active?: boolean | null;\n line?: DecimalString | null;\n };\n};\n\nexport const MarketResolvedEventSchema = z\n .object({\n event_type: z.literal('market_resolved'),\n id: z.string(),\n market: ConditionIdSchema,\n assets_ids: z.array(ClobAssetIdSchema).nullish(),\n winning_asset_id: ClobAssetIdSchema.nullish(),\n winning_outcome: z.string().nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n winning_asset_id,\n winning_outcome,\n event_message,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetIds: assets_ids,\n tokenIds: assets_ids,\n winningAssetId: winning_asset_id,\n winningTokenId: winning_asset_id,\n winningOutcome: winning_outcome,\n eventMessage: event_message,\n },\n };\n },\n ) satisfies z.ZodType<MarketResolvedEvent>;\n\nexport type MarketResolvedEvent = {\n topic: 'market';\n type: 'market_resolved';\n payload: {\n id: string;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n assetIds: Array<PositionId | TokenId> | null | undefined;\n /** @deprecated Use `assetIds`. */\n tokenIds: Array<PositionId | TokenId> | null | undefined;\n winningAssetId: PositionId | TokenId | null | undefined;\n /** @deprecated Use `winningAssetId`. */\n winningTokenId: PositionId | TokenId | null | undefined;\n winningOutcome: string | null | undefined;\n eventMessage: MarketEventMessage | null | undefined;\n timestamp?: EpochMilliseconds | null;\n tags?: string[] | null;\n };\n};\n\nexport enum UserOrderEventType {\n Placement = 'PLACEMENT',\n Update = 'UPDATE',\n Cancellation = 'CANCELLATION',\n}\n\nconst UserOrderEventTypeSchema = z.enum(UserOrderEventType);\n\nexport const UserOrderEventSchema = z\n .object({\n event_type: z.literal('order'),\n id: z.string(),\n owner: z.string(),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n side: NormalizedOrderSideSchema,\n order_owner: z.string().nullish(),\n original_size: DecimalStringSchema,\n size_matched: DecimalStringSchema,\n price: DecimalStringSchema,\n associate_trades: z.array(z.string()).nullish(),\n outcome: z.string().nullish(),\n type: UserOrderEventTypeSchema,\n created_at: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n expiration: ExpirationToIsoDateTimeStringSchema.nullish(),\n order_type: OrderTypeSchema.nullish(),\n status: UserOrderStatusSchema.nullish(),\n maker_address: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: orderEventType,\n asset_id,\n order_owner,\n original_size,\n size_matched,\n associate_trades,\n created_at,\n expiration,\n order_type,\n maker_address,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n orderEventType,\n assetId: asset_id,\n tokenId: asset_id,\n orderOwner: order_owner,\n originalSize: original_size,\n sizeMatched: size_matched,\n associateTrades: associate_trades,\n createdAt: created_at,\n expiresAt: expiration,\n orderType: order_type,\n makerAddress: maker_address,\n },\n };\n },\n ) satisfies z.ZodType<UserOrderEvent>;\n\nexport type UserOrderEvent = {\n topic: 'user';\n type: 'order';\n payload: {\n id: string;\n owner: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n side: OrderSide;\n orderOwner: string | null | undefined;\n originalSize: DecimalString;\n sizeMatched: DecimalString;\n price: DecimalString;\n associateTrades: string[] | null | undefined;\n outcome?: string | null;\n orderEventType: UserOrderEventType;\n createdAt: IsoDateTimeString | null | undefined;\n expiresAt: IsoDateTimeString | null | undefined;\n orderType: OrderType | null | undefined;\n status?: UserOrderStatus | null;\n makerAddress: string | null | undefined;\n timestamp: EpochMilliseconds;\n };\n};\n\nconst TradeMakerOrderSchema = z\n .object({\n order_id: z.string(),\n owner: z.string(),\n maker_address: z.string().nullish(),\n matched_amount: DecimalStringSchema,\n price: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n asset_id: ClobAssetIdSchema,\n outcome: z.string().nullish(),\n outcome_index: z.number().int().nullish(),\n side: NormalizedOrderSideSchema,\n })\n .transform(\n ({\n order_id,\n maker_address,\n matched_amount,\n fee_rate_bps,\n asset_id,\n outcome_index,\n ...rest\n }) => ({\n ...rest,\n orderId: order_id,\n makerAddress: maker_address,\n matchedAmount: matched_amount,\n feeRateBps: fee_rate_bps,\n assetId: asset_id,\n tokenId: asset_id,\n outcomeIndex: outcome_index,\n }),\n ) satisfies z.ZodType<TradeMakerOrder>;\n\nexport type TradeMakerOrder = {\n orderId: string;\n owner: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n makerAddress: string | null | undefined;\n matchedAmount: DecimalString;\n price: DecimalString;\n feeRateBps: DecimalString | null | undefined;\n outcome?: string | null;\n outcomeIndex: number | null | undefined;\n side: OrderSide;\n};\n\nexport const UserTradeEventSchema = z\n .object({\n event_type: z.literal('trade'),\n type: z.literal('TRADE'),\n id: z.string(),\n taker_order_id: z.string(),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n side: NormalizedOrderSideSchema,\n size: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n price: DecimalStringSchema,\n status: TradeStatusSchema,\n match_time: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n matchtime: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n last_update: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n outcome: z.string().nullish(),\n owner: z.string(),\n trade_owner: z.string().nullish(),\n maker_address: z.string().nullish(),\n transaction_hash: z.string().nullish(),\n bucket_index: z.number().int().nullish(),\n maker_orders: z.array(TradeMakerOrderSchema).nullish(),\n trader_side: z.union([z.literal('TAKER'), z.literal('MAKER')]).nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: _,\n taker_order_id,\n asset_id,\n fee_rate_bps,\n match_time,\n matchtime,\n last_update,\n trade_owner,\n maker_address,\n transaction_hash,\n bucket_index,\n maker_orders,\n trader_side,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n takerOrderId: taker_order_id,\n assetId: asset_id,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n matchedAt: match_time ?? matchtime,\n updatedAt: last_update,\n tradeOwner: trade_owner,\n makerAddress: maker_address,\n transactionHash: transaction_hash,\n bucketIndex: bucket_index,\n makerOrders: maker_orders,\n traderSide: trader_side,\n },\n };\n },\n ) satisfies z.ZodType<UserTradeEvent>;\n\nexport type UserTradeEvent = {\n topic: 'user';\n type: 'trade';\n payload: {\n id: string;\n takerOrderId: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n side: OrderSide;\n size: DecimalString;\n feeRateBps: DecimalString | null | undefined;\n price: DecimalString;\n status: TradeStatus;\n matchedAt: IsoDateTimeString | null | undefined;\n updatedAt: IsoDateTimeString | null | undefined;\n outcome?: string | null;\n owner: string;\n tradeOwner: string | null | undefined;\n makerAddress: string | null | undefined;\n transactionHash: string | null | undefined;\n bucketIndex: number | null | undefined;\n makerOrders: TradeMakerOrder[] | null | undefined;\n traderSide: 'TAKER' | 'MAKER' | null | undefined;\n timestamp: EpochMilliseconds;\n };\n};\n\nexport const StandardMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n]) satisfies z.ZodType<StandardMarketEvent>;\n\nexport type StandardMarketEvent =\n | MarketBookEvent\n | MarketPriceChangeEvent\n | MarketLastTradePriceEvent\n | MarketTickSizeChangeEvent;\n\nexport const CustomMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]) satisfies z.ZodType<CustomMarketEvent>;\n\nexport type CustomMarketEvent =\n | MarketBestBidAskEvent\n | NewMarketEvent\n | MarketResolvedEvent;\n\nexport const MarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]) satisfies z.ZodType<MarketEvent>;\n\nexport type MarketEvent = StandardMarketEvent | CustomMarketEvent;\n\nexport const UserEventSchema = z.discriminatedUnion('event_type', [\n UserOrderEventSchema,\n UserTradeEventSchema,\n]) satisfies z.ZodType<UserEvent>;\n\nexport type UserEvent = UserOrderEvent | UserTradeEvent;\n","import { z } from 'zod';\nimport {\n PerpsAccountFundingPaymentEntrySchema,\n PerpsBalanceSchema,\n PerpsPortfolioSchema,\n} from '../perps/account';\nimport {\n PerpsInstrumentIdSchema,\n type PerpsKlineInterval,\n PerpsOrderIdSchema,\n} from '../perps/common';\nimport {\n PerpsDepositUpdateSchema,\n PerpsWithdrawalUpdateSchema,\n} from '../perps/funds';\nimport {\n PerpsBboUpdateSchema,\n PerpsBookUpdateSchema,\n PerpsCandleSchema,\n PerpsPublicTradeUpdateSchema,\n PerpsStatisticUpdateSchema,\n PerpsTickerEntrySchema,\n} from '../perps/market';\nimport { PerpsNotificationSchema } from '../perps/notifications';\nimport {\n PerpsAccountFillUpdateSchema,\n PerpsOrderUpdateSchema,\n} from '../perps/orders';\nimport { EpochMillisecondsSchema } from '../shared';\n\nconst SequenceSchema = z.number().int().nonnegative();\n\nconst TradesChannelSchema = z.string().regex(/^trades::\\d+$/);\nconst BboChannelSchema = z.string().regex(/^bbo::\\d+$/);\nconst BookChannelSchema = z.string().regex(/^book::\\d+$/);\nconst TickersChannelSchema = z.string().regex(/^tickers::(all|\\d+)$/);\nconst StatisticsChannelSchema = z.string().regex(/^statistics::(all|\\d+)$/);\nconst CandlesChannelSchema = z\n .string()\n .regex(/^klines::\\d+::(1m|5m|15m|1h|4h|1d|1w)$/);\nconst TpslChannelSchema = z.string().regex(/^tpsl::\\d+$/);\nconst PerpsSessionChannelSchema = z.enum([\n 'balances',\n 'portfolio',\n 'orders',\n 'fills',\n 'funding',\n 'deposits',\n 'withdrawals',\n 'notifications',\n]);\n\nconst PerpsUpdateEnvelopeSchema = z.object({\n ts: EpochMillisecondsSchema,\n sq: SequenceSchema,\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTradeEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TradesChannelSchema,\n data: z.array(PerpsPublicTradeUpdateSchema),\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.trades' as const,\n type: 'trade' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTradeEvent = z.infer<typeof PerpsTradeEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBboEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BboChannelSchema,\n data: PerpsBboUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.bbo' as const,\n type: 'bbo' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBboEvent = z.infer<typeof PerpsBboEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BookChannelSchema,\n data: PerpsBookUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.book' as const,\n type: 'book' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n ...data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBookEvent = z.infer<typeof PerpsBookEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTickerEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TickersChannelSchema,\n data: PerpsTickerEntrySchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.tickers' as const,\n type: 'ticker' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTickerEvent = z.infer<typeof PerpsTickerEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsStatisticEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: StatisticsChannelSchema,\n data: PerpsStatisticUpdateSchema,\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.statistics' as const,\n type: 'statistic' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsStatisticEvent = z.infer<typeof PerpsStatisticEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCandleEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: CandlesChannelSchema,\n data: z.array(PerpsCandleSchema),\n}).transform(({ ch, ts, sq, data }) => ({\n topic: 'perps.candles' as const,\n type: 'candle' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n interval: candleIntervalFromChannel(ch),\n candles: data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCandleEvent = z.infer<typeof PerpsCandleEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsMarketDataEventSchema = z.union([\n PerpsTradeEventSchema,\n PerpsBboEventSchema,\n PerpsBookEventSchema,\n PerpsTickerEventSchema,\n PerpsStatisticEventSchema,\n PerpsCandleEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsMarketDataEvent = z.infer<typeof PerpsMarketDataEventSchema>;\n\nconst PerpsSessionUpdateEnvelopeSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: PerpsSessionChannelSchema,\n});\n\nfunction perpsSessionEventSchema<\n TType extends string,\n TChannel extends z.infer<typeof PerpsSessionChannelSchema>,\n TPayload extends z.ZodType,\n>(type: TType, channel: TChannel, payload: TPayload) {\n return PerpsSessionUpdateEnvelopeSchema.extend({\n ch: z.literal(channel),\n data: payload,\n }).transform((message) => {\n const event = message as {\n ch: TChannel;\n data: z.output<TPayload>;\n sq: number;\n ts: number;\n };\n\n return {\n type,\n channel: event.ch,\n timestamp: event.ts,\n sequence: event.sq,\n payload: event.data,\n };\n });\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBalanceUpdateEventSchema = perpsSessionEventSchema(\n 'balance',\n 'balances',\n PerpsBalanceSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBalanceUpdateEvent = z.infer<\n typeof PerpsBalanceUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPortfolioUpdateEventSchema = perpsSessionEventSchema(\n 'portfolio',\n 'portfolio',\n PerpsPortfolioSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPortfolioUpdateEvent = z.infer<\n typeof PerpsPortfolioUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderUpdateEventSchema = perpsSessionEventSchema(\n 'order',\n 'orders',\n PerpsOrderUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsOrderUpdateEvent = z.infer<typeof PerpsOrderUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFillUpdateEventSchema = perpsSessionEventSchema(\n 'fill',\n 'fills',\n z.array(PerpsAccountFillUpdateSchema),\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFillUpdateEvent = z.infer<typeof PerpsFillUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingUpdateEventSchema = perpsSessionEventSchema(\n 'funding',\n 'funding',\n PerpsAccountFundingPaymentEntrySchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingUpdateEvent = z.infer<\n typeof PerpsFundingUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositUpdateEventSchema = perpsSessionEventSchema(\n 'deposit',\n 'deposits',\n PerpsDepositUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDepositUpdateEvent = z.infer<\n typeof PerpsDepositUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalUpdateEventSchema = perpsSessionEventSchema(\n 'withdrawal',\n 'withdrawals',\n PerpsWithdrawalUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalUpdateEvent = z.infer<\n typeof PerpsWithdrawalUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationUpdateEventSchema = perpsSessionEventSchema(\n 'notification',\n 'notifications',\n PerpsNotificationSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotificationUpdateEvent = z.infer<\n typeof PerpsNotificationUpdateEventSchema\n>;\n\n/**\n * Backpressure control frame on the `notifications` channel. The server sends\n * it when one or more notification data frames were dropped; `sq` is the\n * highest engine sequence among the dropped notifications.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationsResyncFrameSchema = z\n .object({\n ch: z.literal('notifications'),\n ts: EpochMillisecondsSchema,\n sq: SequenceSchema,\n type: z.literal('resync'),\n })\n .transform(({ ch, ts, sq }) => ({\n type: 'resync' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n }));\n\nconst PerpsTpSlLifecycleUpdateSchema = z.object({\n oid: PerpsOrderIdSchema,\n st: z.enum(['untriggered', 'armed', 'cancelled', 'expired']),\n reason: z.string().optional(),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlUpdateEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TpslChannelSchema,\n data: PerpsTpSlLifecycleUpdateSchema.transform((update) => ({\n orderId: update.oid,\n status: update.st,\n reason: update.reason,\n })),\n}).transform(({ ch, ts, sq, data }) => ({\n type: 'tpsl' as const,\n channel: ch,\n timestamp: ts,\n sequence: sq,\n payload: data,\n}));\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTpSlUpdateEvent = z.infer<typeof PerpsTpSlUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsSessionUpdateEventSchema = z.union([\n PerpsBalanceUpdateEventSchema,\n PerpsPortfolioUpdateEventSchema,\n PerpsOrderUpdateEventSchema,\n PerpsFillUpdateEventSchema,\n PerpsFundingUpdateEventSchema,\n PerpsDepositUpdateEventSchema,\n PerpsWithdrawalUpdateEventSchema,\n PerpsNotificationUpdateEventSchema,\n PerpsTpSlUpdateEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionUpdateEvent = z.infer<\n typeof PerpsSessionUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsResyncEvent = {\n type: 'resync';\n reason: 'reconnect' | 'sequence_gap';\n channel?: string;\n previousSequence?: number;\n sequence?: number;\n};\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionEvent = PerpsSessionUpdateEvent | PerpsResyncEvent;\n\nfunction instrumentIdFromChannel(channel: string) {\n const [, rawInstrumentId] = channel.split('::');\n return PerpsInstrumentIdSchema.parse(Number(rawInstrumentId));\n}\n\nfunction candleIntervalFromChannel(channel: string) {\n const [, , interval] = channel.split('::');\n return interval as Exclude<PerpsKlineInterval, PerpsKlineInterval.OneSecond>;\n}\n","import { z } from 'zod';\nimport {\n CommentMediaSchema,\n CommentProfileSchema,\n CommentSchema,\n ReactionSchema,\n} from '../gamma/comment';\nimport {\n CommentParentEntityTypeSchema,\n DecimalishSchema,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n toDecimalString,\n} from '../shared';\n\nconst CommentRemovedPayloadSchema = z.object({\n id: z.string(),\n body: z.string().nullish(),\n parentEntityType: CommentParentEntityTypeSchema.nullish(),\n parentEntityID: z.number().int().nullish(),\n parentCommentID: z.string().nullish(),\n userAddress: z.string().nullish(),\n replyAddress: z.string().nullish(),\n createdAt: z.string().nullish(),\n updatedAt: z.string().nullish(),\n media: z.array(CommentMediaSchema).nullish(),\n profile: CommentProfileSchema.nullish(),\n reactions: z.array(ReactionSchema).nullish(),\n reportCount: z.number().int().nullish(),\n reactionCount: z.number().int().nullish(),\n tradeAsset: z.string().nullish(),\n});\n\nexport type CommentRemovedPayload = z.infer<typeof CommentRemovedPayloadSchema>;\n\nexport const CommentCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_created'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentSchema,\n});\n\nexport type CommentCreatedEvent = z.infer<typeof CommentCreatedEventSchema>;\n\nexport const CommentRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentRemovedPayloadSchema,\n});\n\nexport type CommentRemovedEvent = z.infer<typeof CommentRemovedEventSchema>;\n\nexport const ReactionCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_created'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionCreatedEvent = z.infer<typeof ReactionCreatedEventSchema>;\n\nexport const ReactionRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionRemovedEvent = z.infer<typeof ReactionRemovedEventSchema>;\n\nconst PriceUpdatePayloadSchema = z.object({\n symbol: z.string(),\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n});\n\nexport type PriceUpdatePayload = z.infer<typeof PriceUpdatePayloadSchema>;\n\nconst CRYPTO_PRICES_BINANCE_TOPIC = 'prices.crypto.binance' as const;\nconst CRYPTO_PRICES_CHAINLINK_TOPIC = 'prices.crypto.chainlink' as const;\nconst CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC =\n 'prices.crypto.chainlink.twap' as const;\n\nexport type CryptoPricesBinanceTopic = typeof CRYPTO_PRICES_BINANCE_TOPIC;\nexport type CryptoPricesChainlinkTopic = typeof CRYPTO_PRICES_CHAINLINK_TOPIC;\nexport type CryptoPricesChainlinkTwapTopic =\n typeof CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\nexport type CryptoPricesChainlinkTwapWindowSeconds = 30 | 60;\nexport type CryptoPricesTopic =\n | CryptoPricesBinanceTopic\n | CryptoPricesChainlinkTopic;\n\nconst RawCryptoPricesBinanceTopicSchema = z.literal('crypto_prices');\nconst RawCryptoPricesChainlinkTopicSchema = z.literal(\n 'crypto_prices_chainlink',\n);\nconst RawCryptoPricesChainlinkTwapThirtyTopicSchema = z.literal(\n 'crypto_prices_twap_thirty',\n);\nconst RawCryptoPricesChainlinkTwapSixtyTopicSchema = z.literal(\n 'crypto_prices_twap_sixty',\n);\n\nconst CryptoPricesBinanceTopicSchema: z.ZodType<CryptoPricesBinanceTopic> =\n RawCryptoPricesBinanceTopicSchema.transform(() => {\n return CRYPTO_PRICES_BINANCE_TOPIC;\n });\n\nconst CryptoPricesChainlinkTopicSchema: z.ZodType<CryptoPricesChainlinkTopic> =\n RawCryptoPricesChainlinkTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapThirtyTopicSchema =\n RawCryptoPricesChainlinkTwapThirtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapSixtyTopicSchema =\n RawCryptoPricesChainlinkTwapSixtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nexport const CryptoPricesBinanceEventSchema = z.object({\n topic: CryptoPricesBinanceTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesBinanceEvent = z.infer<\n typeof CryptoPricesBinanceEventSchema\n>;\n\nexport const CryptoPricesChainlinkEventSchema = z.object({\n topic: CryptoPricesChainlinkTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesChainlinkEvent = z.infer<\n typeof CryptoPricesChainlinkEventSchema\n>;\n\nconst CHAINLINK_PRICE_SCALE = 1_000_000_000_000_000_000n;\n\nfunction chainlinkE18PriceToDecimalString(value: string) {\n const scaledValue = BigInt(value);\n const isNegative = scaledValue < 0n;\n const absoluteValue = isNegative ? -scaledValue : scaledValue;\n const whole = absoluteValue / CHAINLINK_PRICE_SCALE;\n const fraction = (absoluteValue % CHAINLINK_PRICE_SCALE)\n .toString()\n .padStart(18, '0')\n .replace(/0+$/, '');\n\n return toDecimalString(\n `${isNegative ? '-' : ''}${whole}${fraction === '' ? '' : `.${fraction}`}`,\n );\n}\n\n// Chainlink publishes a float for display convenience and the exact\n// BenchmarkPrice as a signed E18 integer. Normalize from the exact field.\nconst ChainlinkFullAccuracyPriceSchema = z\n .string()\n .regex(/^-?\\d+$/)\n .transform(chainlinkE18PriceToDecimalString);\n\nconst CryptoPricesChainlinkTwapPayloadBaseSchema = z.object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: ChainlinkFullAccuracyPriceSchema,\n timestamp: EpochMillisecondsSchema,\n});\n\nfunction cryptoPricesChainlinkTwapPayloadSchema<\n const TWindowSeconds extends CryptoPricesChainlinkTwapWindowSeconds,\n>(windowSeconds: TWindowSeconds) {\n return CryptoPricesChainlinkTwapPayloadBaseSchema.extend({\n window_s: z.literal(windowSeconds),\n }).transform((payload) => {\n return {\n symbol: payload.symbol,\n timestamp: payload.timestamp,\n value: payload.full_accuracy_value,\n windowSeconds: payload.window_s,\n };\n });\n}\n\nexport const CryptoPricesChainlinkTwapThirtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapThirtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(30),\n});\n\nexport type CryptoPricesChainlinkTwapThirtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapThirtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapSixtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapSixtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(60),\n});\n\nexport type CryptoPricesChainlinkTwapSixtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapSixtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapEventSchema = z.union([\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesChainlinkTwapEvent = z.infer<\n typeof CryptoPricesChainlinkTwapEventSchema\n>;\n\nexport const CryptoPricesEventSchema = z.discriminatedUnion('topic', [\n CryptoPricesBinanceEventSchema,\n CryptoPricesChainlinkEventSchema,\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesEvent = z.infer<typeof CryptoPricesEventSchema>;\n\nconst EquityPriceUpdatePayloadSchema = z\n .object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema.nullish(),\n timestamp: EpochMillisecondsSchema,\n received_at: EpochMillisecondsSchema.nullish(),\n is_carried_forward: z.boolean().nullish(),\n })\n .transform(\n ({\n full_accuracy_value,\n received_at,\n is_carried_forward,\n value,\n ...rest\n }) => ({\n ...rest,\n value: full_accuracy_value ?? value,\n receivedAt: received_at,\n isCarriedForward: is_carried_forward,\n }),\n );\n\nexport type EquityPriceUpdatePayload = z.infer<\n typeof EquityPriceUpdatePayloadSchema\n>;\n\nconst EquityPriceSnapshotPointSchema = z.object({\n timestamp: z.number(),\n value: DecimalishSchema,\n});\n\nexport type EquityPriceSnapshotPoint = z.infer<\n typeof EquityPriceSnapshotPointSchema\n>;\n\nconst EquityPriceSubscribePayloadSchema = z.object({\n symbol: z.string(),\n data: z.array(EquityPriceSnapshotPointSchema),\n});\n\nexport type EquityPriceSubscribePayload = z.infer<\n typeof EquityPriceSubscribePayloadSchema\n>;\n\nconst RawEquityPricesTopicSchema = z.literal('equity_prices');\n\nconst EQUITY_PRICES_TOPIC = 'prices.equity.pyth' as const;\n\nexport type EquityPricesTopic = typeof EQUITY_PRICES_TOPIC;\n\nconst EquityPricesTopicSchema: z.ZodType<EquityPricesTopic> =\n RawEquityPricesTopicSchema.transform(() => {\n return EQUITY_PRICES_TOPIC;\n });\n\nexport const EquityPricesUpdateEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceUpdatePayloadSchema,\n});\n\nexport type EquityPricesUpdateEvent = z.infer<\n typeof EquityPricesUpdateEventSchema\n>;\n\nexport const EquityPricesSubscribeEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('subscribe'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceSubscribePayloadSchema,\n});\n\nexport type EquityPricesSubscribeEvent = z.infer<\n typeof EquityPricesSubscribeEventSchema\n>;\n\nexport const EquityPricesEventSchema = z.discriminatedUnion('type', [\n EquityPricesUpdateEventSchema,\n EquityPricesSubscribeEventSchema,\n]);\n\nexport type EquityPricesEvent = z.infer<typeof EquityPricesEventSchema>;\n\nexport const CommentsEventSchema = z.discriminatedUnion('type', [\n CommentCreatedEventSchema,\n CommentRemovedEventSchema,\n ReactionCreatedEventSchema,\n ReactionRemovedEventSchema,\n]);\n\nexport type CommentsEvent = z.infer<typeof CommentsEventSchema>;\n\nexport const RealtimeEventSchema = z.discriminatedUnion('topic', [\n CommentsEventSchema,\n CryptoPricesEventSchema,\n EquityPricesEventSchema,\n]);\n\nexport type RealtimeEvent = z.infer<typeof RealtimeEventSchema>;\n","import { z } from 'zod';\nimport { EpochMillisecondsToIsoDateTimeStringSchema } from '../shared';\n\nconst SportsResultPayloadSchema = z\n .object({\n gameId: z.number().int(),\n sportradarGameId: z.string().nullish(),\n slug: z.string().nullish(),\n leagueAbbreviation: z.string(),\n homeTeam: z.string().nullish(),\n awayTeam: z.string().nullish(),\n status: z.string(),\n live: z.boolean(),\n ended: z.boolean(),\n score: z.string(),\n period: z.string().nullish(),\n elapsed: z.string().nullish(),\n finishedTimestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n finished_timestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n turn: z.string().nullish(),\n })\n .transform(({ finishedTimestamp, finished_timestamp, ...rest }) => ({\n ...rest,\n finishedAt: finishedTimestamp ?? finished_timestamp,\n }));\n\nexport const SportsResultEventSchema = SportsResultPayloadSchema.transform(\n (payload) => {\n return {\n // Normalize to the shared subscription event envelope so mixed-stream\n // consumers can discriminate by `event.topic` and `event.type`.\n topic: 'sports' as const,\n type: 'sport_result' as const,\n payload,\n };\n },\n);\n\nexport type SportsEvent = z.infer<typeof SportsResultEventSchema>;\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared.ts"],"names":["CommentParentEntityType","OrderSide","OrderType","TradeStatus","SessionSignerKnownScope","SessionSignerScopeSchema","z","value","toTaggedInteger","toBestLineId","toBuilderCode","isHexString","toUuid","toApiKey","toCategoryId","toChatId","toClobRewardId","toCommentId","toComboActivityId","toConditionId","normalizeComboConditionId","normalized","toComboConditionId","toCollectionId","toEventCreatorId","toEventExternalPartnerMappingId","toEpochMilliseconds","toEventId","toImageOptimizationId","toInternalUserId","toIsoCalendarDateString","toIsoDateTimeString","toMixedDateTimeString","toMarketId","toNotificationId","toOrderId","toPartnerId","toPaginationCursor","toPositionId","toQuestionId","to32ByteHexString","toResolutionRequestId","toRfqId","toRfqQuoteId","toRfqRequestorPublicId","toSeriesId","toSportId","toTagId","toTeamId","toTemplateId","toTransactionId","toTokenId","toDecimalString","toBaseUnits","CategoryIdSchema","ApiKeySchema","BuilderCodeSchema","ClobRewardIdSchema","CommentIdSchema","ComboActivityIdSchema","ComboConditionIdSchema","ConditionIdSchema","ConditionIdResponseSchema","EvmAddressSchema","toEvmAddress","EpochMillisecondsSchema","EpochSecondsToMillisecondsSchema","EpochMillisecondsLikeSchema","DateLikeStringToIsoDateTimeStringSchema","EpochMillisecondsStringSchema","DateLikeToIsoDateTimeStringSchema","EpochLikeToIsoDateTimeStringSchema","OptionalDateLikeToIsoDateTimeStringSchema","OptionalEpochLikeToIsoDateTimeStringSchema","EpochMillisecondsToIsoDateTimeStringSchema","OptionalEpochMillisecondsToIsoDateTimeStringSchema","EventIdSchema","TickSizeValueSchema","IsoDateTimeStringSchema","IsoCalendarDateStringSchema","MixedDateTimeStringSchema","ISODateStringSchema","ISOCalendarDateSchema","ImageOptimizationIdSchema","InternalUserIdSchema","MarketIdSchema","NotificationIdSchema","CommentParentEntityTypeSchema","OrderIdSchema","OrderSideSchema","OrderTypeSchema","TradeStatusSchema","status","PaginationCursorSchema","PositionIdSchema","QuestionIdSchema","ResolutionRequestIdSchema","RfqIdSchema","RfqQuoteIdSchema","RfqRequestorPublicIdSchema","TagIdSchema","TokenIdSchema","TransactionIdSchema","TxHashSchema","DecimalStringSchema","E6BigIntStringToDecimalStringSchema","scaledValue","whole","fraction","DecimalishSchema","PositiveDecimalNumberSchema","BaseUnitsSchema","emptyStringToNull","OptionalDecimalStringSchema"],"mappings":"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","file":"chunk-WVVJ3WNL.js","sourcesContent":["import {\n type EvmAddress,\n type HexString,\n isHexString,\n type TxHash,\n} from '@polymarket/types';\nimport { z } from 'zod';\n\ntype Tagged<T, Tag extends string> = T & { readonly __tag: Tag };\n\nexport enum CommentParentEntityType {\n Event = 'Event',\n Series = 'Series',\n}\n\nexport enum OrderSide {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum OrderType {\n GTC = 'GTC',\n FOK = 'FOK',\n GTD = 'GTD',\n FAK = 'FAK',\n}\n\n/**\n * Lifecycle status of a trade, from creation through on-chain settlement.\n * `Confirmed` and `Failed` are the terminal states.\n * `MatchedNotBroadcasted` currently appears only on trades read via REST,\n * not on user stream trade events.\n */\nexport enum TradeStatus {\n Matched = 'TRADE_STATUS_MATCHED',\n MatchedNotBroadcasted = 'TRADE_STATUS_MATCHED_NOT_BROADCASTED',\n Mined = 'TRADE_STATUS_MINED',\n Confirmed = 'TRADE_STATUS_CONFIRMED',\n Retrying = 'TRADE_STATUS_RETRYING',\n Failed = 'TRADE_STATUS_FAILED',\n}\n\n/** Known venue scopes accepted by session-signer APIs. */\nexport enum SessionSignerKnownScope {\n /** All current and future venues. Cannot be combined with other scopes. */\n ALL = 'ALL',\n /** Central limit order book trading. */\n CLOB = 'CLOB',\n /** Combos request-for-quote trading. */\n COMBOSRFQ = 'COMBOSRFQ',\n}\n\n/**\n * A session-signer scope. Known scopes are enumerated in\n * {@link SessionSignerKnownScope}; newly introduced scopes flow through as\n * plain strings before a bindings release enumerates them.\n */\nexport type SessionSignerScope = SessionSignerKnownScope | (string & {});\n\n// Intentionally open: scope names are validated server-side, and the SDK must\n// accept scopes it does not enumerate.\nexport const SessionSignerScopeSchema = z\n .string()\n .min(1)\n .transform((value): SessionSignerScope => value);\n\nfunction toTaggedString<T extends string>(value: string): T {\n return value as T;\n}\n\nfunction toTaggedInteger<T extends number>(value: number): T {\n if (!Number.isInteger(value)) {\n throw new TypeError(`Expected an integer, received: ${value}`);\n }\n\n return value as T;\n}\n\nexport type BestLineId = Tagged<string, 'BestLineId'>;\nexport type BuilderCode = Tagged<HexString, 'BuilderCode'>;\nexport type Uuid = Tagged<string, 'Uuid'>;\nexport type ApiKey = Tagged<string, 'ApiKey'>;\nexport type CategoryId = Tagged<string, 'CategoryId'>;\nexport type ChatId = Tagged<string, 'ChatId'>;\nexport type ClobRewardId = Tagged<string, 'ClobRewardId'>;\nexport type CommentId = Tagged<string, 'CommentId'>;\nexport type ComboActivityId = Tagged<string, 'ComboActivityId'>;\nexport type ComboConditionId = Tagged<HexString, 'ComboConditionId'>;\nexport type ConditionId = Tagged<HexString, 'ConditionId'>;\n/** @deprecated Use {@link ConditionId}. */\nexport type CtfConditionId = ConditionId;\nexport type CollectionId = Tagged<string, 'CollectionId'>;\nexport type EventCreatorId = Tagged<string, 'EventCreatorId'>;\nexport type EventExternalPartnerMappingId = Tagged<\n number,\n 'EventExternalPartnerMappingId'\n>;\nexport type EpochMilliseconds = Tagged<number, 'EpochMilliseconds'>;\nexport type EventId = Tagged<string, 'EventId'>;\nexport type ImageOptimizationId = Tagged<string, 'ImageOptimizationId'>;\nexport type InternalUserId = Tagged<string, 'InternalUserId'>;\nexport type IsoCalendarDateString = Tagged<string, 'IsoCalendarDateString'>;\nexport type IsoDateTimeString = Tagged<string, 'IsoDateTimeString'>;\nexport type MarketId = Tagged<string, 'MarketId'>;\nexport type MixedDateTimeString = Tagged<string, 'MixedDateTimeString'>;\nexport type NotificationId = Tagged<number, 'NotificationId'>;\nexport type OrderId = Tagged<string, 'OrderId'>;\nexport type PartnerId = Tagged<number, 'PartnerId'>;\nexport type PaginationCursor = Tagged<string, 'PaginationCursor'>;\nexport type PositionId = Tagged<string, 'PositionId'>;\nexport type QuestionId = Tagged<HexString, 'QuestionId'>;\nexport type ResolutionRequestId = Tagged<HexString, 'ResolutionRequestId'>;\nexport type RfqId = Tagged<string, 'RfqId'>;\nexport type RfqQuoteId = Tagged<string, 'RfqQuoteId'>;\nexport type RfqRequestorPublicId = Tagged<string, 'RfqRequestorPublicId'>;\nexport type SeriesId = Tagged<string, 'SeriesId'>;\nexport type SportId = Tagged<number, 'SportId'>;\nexport type TagId = Tagged<string, 'TagId'>;\nexport type TeamId = Tagged<number, 'TeamId'>;\nexport type TemplateId = Tagged<string, 'TemplateId'>;\nexport type TransactionId = Tagged<string, 'TransactionId'>;\nexport type TokenId = Tagged<string, 'TokenId'>;\nexport type DecimalString = Tagged<string, 'DecimalString'>;\nexport type BaseUnits = Tagged<string, 'BaseUnits'>;\n\nexport function toBestLineId(value: string): BestLineId {\n return toTaggedString<BestLineId>(value);\n}\n\nexport function toBuilderCode(value: string): BuilderCode {\n if (!isHexString(value) || value.length !== 66) {\n throw new TypeError(`Expected a 32-byte hex string, received: ${value}`);\n }\n\n return value as BuilderCode;\n}\n\nexport function toUuid(value: string): Uuid {\n return toTaggedString<Uuid>(value);\n}\n\nexport function toApiKey(value: string): ApiKey {\n return toTaggedString<ApiKey>(value);\n}\n\nexport function toCategoryId(value: string): CategoryId {\n return toTaggedString<CategoryId>(value);\n}\n\nexport function toChatId(value: string): ChatId {\n return toTaggedString<ChatId>(value);\n}\n\nexport function toClobRewardId(value: string): ClobRewardId {\n return toTaggedString<ClobRewardId>(value);\n}\n\nexport function toCommentId(value: string): CommentId {\n return toTaggedString<CommentId>(value);\n}\n\nexport function toComboActivityId(value: string): ComboActivityId {\n return toTaggedString<ComboActivityId>(value);\n}\n\nexport function toConditionId(value: string): ConditionId {\n if (!isHexString(value) || (value.length !== 64 && value.length !== 66)) {\n throw new TypeError(\n `Expected a 31-byte or 32-byte hex string, received: ${value}`,\n );\n }\n\n return value as ConditionId;\n}\n\nfunction normalizeComboConditionId(value: string): string | undefined {\n if (!isHexString(value)) {\n return undefined;\n }\n\n const normalized = value.toLowerCase();\n\n if (normalized.length === 64 && normalized.startsWith('0x03')) {\n return normalized;\n }\n\n if (\n normalized.length === 66 &&\n normalized.startsWith('0x03') &&\n (normalized.endsWith('00') || normalized.endsWith('01'))\n ) {\n return normalized.slice(0, -2);\n }\n\n return undefined;\n}\n\nexport function toComboConditionId(value: string): ComboConditionId {\n const normalized = normalizeComboConditionId(value);\n\n if (normalized !== undefined) {\n return normalized as ComboConditionId;\n }\n\n throw new TypeError(\n `Expected a protocol v2 combo condition ID, received: ${value}`,\n );\n}\n\nexport function toCollectionId(value: string): CollectionId {\n return toTaggedString<CollectionId>(value);\n}\n\nexport function toEventCreatorId(value: string): EventCreatorId {\n return toTaggedString<EventCreatorId>(value);\n}\n\nexport function toEventExternalPartnerMappingId(\n value: number,\n): EventExternalPartnerMappingId {\n return toTaggedInteger<EventExternalPartnerMappingId>(value);\n}\n\nexport function toEpochMilliseconds(value: number): EpochMilliseconds {\n return toTaggedInteger<EpochMilliseconds>(value);\n}\n\nexport function toEventId(value: string): EventId {\n return toTaggedString<EventId>(value);\n}\n\nexport function toImageOptimizationId(value: string): ImageOptimizationId {\n return toTaggedString<ImageOptimizationId>(value);\n}\n\nexport function toInternalUserId(value: string): InternalUserId {\n return toTaggedString<InternalUserId>(value);\n}\n\nexport function toIsoCalendarDateString(value: string): IsoCalendarDateString {\n return toTaggedString<IsoCalendarDateString>(value);\n}\n\nexport function toIsoDateTimeString(value: string): IsoDateTimeString {\n return toTaggedString<IsoDateTimeString>(value);\n}\n\nexport function toMixedDateTimeString(value: string): MixedDateTimeString {\n return toTaggedString<MixedDateTimeString>(value);\n}\n\nexport function toMarketId(value: string): MarketId {\n return toTaggedString<MarketId>(value);\n}\n\nexport function toNotificationId(value: number): NotificationId {\n return toTaggedInteger<NotificationId>(value);\n}\n\nexport function toOrderId(value: string): OrderId {\n return toTaggedString<OrderId>(value);\n}\n\nexport function toPartnerId(value: number): PartnerId {\n return toTaggedInteger<PartnerId>(value);\n}\n\nexport function toPaginationCursor(value: string): PaginationCursor {\n return toTaggedString<PaginationCursor>(value);\n}\n\nexport function toPositionId(value: string): PositionId {\n return toTaggedString<PositionId>(value);\n}\n\nexport function toQuestionId(value: string): QuestionId {\n return to32ByteHexString(value) as QuestionId;\n}\n\nexport function toResolutionRequestId(value: string): ResolutionRequestId {\n return to32ByteHexString(value) as ResolutionRequestId;\n}\n\nexport function toRfqId(value: string): RfqId {\n return toTaggedString<RfqId>(value);\n}\n\nexport function toRfqQuoteId(value: string): RfqQuoteId {\n return toTaggedString<RfqQuoteId>(value);\n}\n\nexport function toRfqRequestorPublicId(value: string): RfqRequestorPublicId {\n return toTaggedString<RfqRequestorPublicId>(value);\n}\n\nexport function toSeriesId(value: string): SeriesId {\n return toTaggedString<SeriesId>(value);\n}\n\nexport function toSportId(value: number): SportId {\n return toTaggedInteger<SportId>(value);\n}\n\nexport function toTagId(value: string): TagId {\n return toTaggedString<TagId>(value);\n}\n\nexport function toTeamId(value: number): TeamId {\n return toTaggedInteger<TeamId>(value);\n}\n\nexport function toTemplateId(value: string): TemplateId {\n return toTaggedString<TemplateId>(value);\n}\n\nexport function toTransactionId(value: string): TransactionId {\n return toTaggedString<TransactionId>(value);\n}\n\nexport function toTokenId(value: string): TokenId {\n return toTaggedString<TokenId>(value);\n}\n\nexport function toDecimalString(value: string): DecimalString {\n return toTaggedString<DecimalString>(value);\n}\n\nexport function toBaseUnits(value: string): BaseUnits {\n return toTaggedString<BaseUnits>(value);\n}\n\nexport const CategoryIdSchema = z.string().transform(toCategoryId);\nexport const ApiKeySchema = z.string().transform(toApiKey);\nexport const BuilderCodeSchema = z.string().transform(toBuilderCode);\nexport const ClobRewardIdSchema = z.string().transform(toClobRewardId);\nexport const CommentIdSchema = z.string().transform(toCommentId);\nexport const ComboActivityIdSchema = z.string().transform(toComboActivityId);\nexport const ComboConditionIdSchema = z\n .string()\n .refine(\n (value) => normalizeComboConditionId(value) !== undefined,\n 'Expected a protocol v2 combo condition ID',\n )\n .transform((value) => normalizeComboConditionId(value) as ComboConditionId);\nexport const ConditionIdSchema = z\n .string()\n .refine(\n (value) =>\n isHexString(value) && (value.length === 64 || value.length === 66),\n 'Expected a 31-byte or 32-byte hex string',\n )\n .transform((value) => value as ConditionId);\n// Unlike ConditionIdSchema, this validates hex syntax without constraining the\n// condition ID byte length.\nexport const ConditionIdResponseSchema = z.custom<ConditionId>(\n isHexString,\n 'Expected a hex-encoded market condition ID',\n);\nexport const EvmAddressSchema = z\n .string()\n .refine(\n (value) => isHexString(value) && value.length === 42,\n 'Expected an EVM address',\n )\n .transform(toEvmAddress);\nexport const EpochMillisecondsSchema = z\n .number()\n .int()\n .transform(toEpochMilliseconds);\nexport const EpochSecondsToMillisecondsSchema = z\n .number()\n .int()\n .transform((value) => toEpochMilliseconds(value * 1000));\nconst EpochMillisecondsLikeSchema = z.union([\n z.number().int(),\n z.string().regex(/^\\d+$/).transform(Number),\n]);\nconst DateLikeStringToIsoDateTimeStringSchema = z\n .string()\n .transform((value) => {\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n return toIsoDateTimeString(\n new Date(`${value}T00:00:00.000Z`).toISOString(),\n );\n }\n\n return toIsoDateTimeString(value);\n });\nexport const EpochMillisecondsStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) => toEpochMilliseconds(Number(value)));\nexport const DateLikeToIsoDateTimeStringSchema = z.union([\n EpochMillisecondsLikeSchema.transform((value) =>\n toIsoDateTimeString(new Date(value).toISOString()),\n ),\n DateLikeStringToIsoDateTimeStringSchema,\n]);\nexport const EpochLikeToIsoDateTimeStringSchema = z.union([\n EpochMillisecondsLikeSchema.transform((value) =>\n toIsoDateTimeString(\n new Date(value < 1_000_000_000_000 ? value * 1000 : value).toISOString(),\n ),\n ),\n DateLikeStringToIsoDateTimeStringSchema,\n]);\nexport const OptionalDateLikeToIsoDateTimeStringSchema = z.union([\n EpochMillisecondsLikeSchema.transform((value) =>\n value === 0\n ? undefined\n : toIsoDateTimeString(new Date(value).toISOString()),\n ),\n DateLikeStringToIsoDateTimeStringSchema,\n]);\nexport const OptionalEpochLikeToIsoDateTimeStringSchema = z.union([\n EpochMillisecondsLikeSchema.transform((value) =>\n value === 0\n ? undefined\n : toIsoDateTimeString(\n new Date(\n value < 1_000_000_000_000 ? value * 1000 : value,\n ).toISOString(),\n ),\n ),\n DateLikeStringToIsoDateTimeStringSchema,\n]);\nexport const EpochMillisecondsToIsoDateTimeStringSchema =\n DateLikeToIsoDateTimeStringSchema;\nexport const OptionalEpochMillisecondsToIsoDateTimeStringSchema =\n OptionalDateLikeToIsoDateTimeStringSchema;\nexport const EventIdSchema = z\n .union([z.string(), z.number().int().transform(String)])\n .transform(toEventId);\nexport const TickSizeValueSchema = z.union([\n z.literal(0.1),\n z.literal(0.01),\n z.literal(0.005),\n z.literal(0.0025),\n z.literal(0.001),\n z.literal(0.0001),\n]);\nexport const IsoDateTimeStringSchema = z\n .string()\n .transform(toIsoDateTimeString)\n .or(z.date().transform((value) => toIsoDateTimeString(value.toISOString())));\nexport const IsoCalendarDateStringSchema = z\n .string()\n .transform(toIsoCalendarDateString)\n .or(\n z\n .date()\n .transform((value) =>\n toIsoCalendarDateString(value.toISOString().slice(0, 10)),\n ),\n );\nexport const MixedDateTimeStringSchema = z\n .string()\n .transform(toMixedDateTimeString);\nexport const ISODateStringSchema = IsoDateTimeStringSchema;\nexport const ISOCalendarDateSchema = IsoCalendarDateStringSchema;\nexport const ImageOptimizationIdSchema = z\n .string()\n .transform(toImageOptimizationId);\nexport const InternalUserIdSchema = z.string().transform(toInternalUserId);\nexport const MarketIdSchema = z.string().transform(toMarketId);\nexport const NotificationIdSchema = z\n .number()\n .int()\n .transform(toNotificationId);\nexport const CommentParentEntityTypeSchema = z.enum(CommentParentEntityType);\nexport const OrderIdSchema = z.string().transform(toOrderId);\nexport const OrderSideSchema = z.enum(OrderSide);\nexport const OrderTypeSchema = z.enum(OrderType);\n// Trade statuses arrive in two wire forms: REST endpoints serialize the raw\n// prefixed constants (\"TRADE_STATUS_CONFIRMED\") while the user websocket\n// channel serializes plain values (\"CONFIRMED\"). Normalize both to the enum.\nexport const TradeStatusSchema = z.preprocess((value) => {\n if (typeof value !== 'string' || value.startsWith('TRADE_STATUS_')) {\n return value;\n }\n\n const normalized = Object.values(TradeStatus).find(\n (status) => status.slice('TRADE_STATUS_'.length) === value,\n );\n\n return normalized ?? value;\n}, z.enum(TradeStatus));\nexport const PaginationCursorSchema = z.custom<PaginationCursor>(\n (value) => typeof value === 'string' && value.length > 0,\n 'Expected a non-empty pagination cursor',\n);\nexport const PositionIdSchema = z.string().transform(toPositionId);\nexport const QuestionIdSchema = z\n .string()\n .refine(\n (value) => isHexString(value) && value.length === 66,\n 'Expected a 32-byte hex string',\n )\n .transform((value) => value as QuestionId);\nexport const ResolutionRequestIdSchema = z\n .string()\n .transform(toResolutionRequestId);\nexport const RfqIdSchema = z.string().transform(toRfqId);\nexport const RfqQuoteIdSchema = z.string().transform(toRfqQuoteId);\nexport const RfqRequestorPublicIdSchema = z\n .string()\n .transform(toRfqRequestorPublicId);\nexport const TagIdSchema = z.string().transform(toTagId);\nexport const TokenIdSchema = z.string().transform(toTokenId);\nexport const TransactionIdSchema = z.string().min(1).transform(toTransactionId);\nexport const TxHashSchema = z\n .string()\n .refine(\n (value) => isHexString(value) && value.length === 66,\n 'Expected a transaction hash',\n )\n .transform((value) => value as TxHash);\nexport const DecimalStringSchema = z.string().transform(toDecimalString);\nexport const E6BigIntStringToDecimalStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) => {\n const scaledValue = BigInt(value);\n const whole = scaledValue / 1_000_000n;\n const fraction = (scaledValue % 1_000_000n)\n .toString()\n .padStart(6, '0')\n .replace(/0+$/, '');\n\n return toDecimalString(`${whole}${fraction === '' ? '' : `.${fraction}`}`);\n });\nexport const DecimalishSchema = z.union([\n DecimalStringSchema,\n z.number().transform((value) => toDecimalString(String(value))),\n]);\nexport const PositiveDecimalNumberSchema = z\n .union([z.number(), z.string().transform(Number)])\n .pipe(z.number().positive());\nexport const BaseUnitsSchema = z.string().transform(toBaseUnits);\n\nexport type ISODateString = IsoDateTimeString;\nexport type ISOCalendarDateString = IsoCalendarDateString;\nexport type TickSizeValue = z.output<typeof TickSizeValueSchema>;\n\nexport type { EvmAddress, TxHash };\n\n/**\n * Preprocess helper for upstream fields that serialize missing values as empty\n * strings. Use as `z.preprocess(emptyStringToNull, Schema.nullable())`, or\n * with `.nullish()` when the field can also be absent.\n */\nexport function emptyStringToNull(value: unknown): unknown {\n return value === '' ? null : value;\n}\n\n/**\n * Optional decimal field whose upstream serialization uses an empty string\n * for missing values. Normalizes `''` to `null` so consumers never receive\n * an empty `DecimalString`; populated values parse as `DecimalStringSchema`.\n */\nexport const OptionalDecimalStringSchema = z.preprocess(\n emptyStringToNull,\n DecimalStringSchema.nullish(),\n);\n\nfunction toEvmAddress(value: string): EvmAddress {\n return toTaggedString<EvmAddress>(value);\n}\n\nfunction to32ByteHexString(value: string): HexString {\n if (!isHexString(value) || value.length !== 66) {\n throw new TypeError(`Expected a 32-byte hex string, received: ${value}`);\n }\n\n return value;\n}\n"]}
|