@polymarket/bindings 0.5.0 → 0.7.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-BAQM5QBB.js +2 -0
- package/dist/{chunk-I4SRN2Q5.js.map → chunk-BAQM5QBB.js.map} +1 -1
- package/dist/chunk-NFJUONUG.js +2 -0
- package/dist/chunk-NFJUONUG.js.map +1 -0
- package/dist/chunk-WVVJ3WNL.js +2 -0
- package/dist/chunk-WVVJ3WNL.js.map +1 -0
- package/dist/clob/index.d.ts +2633 -306
- package/dist/clob/index.js +1 -1
- package/dist/clob/index.js.map +1 -1
- package/dist/combos/index.d.ts +426 -170
- package/dist/combos/index.js +1 -1
- package/dist/combos/index.js.map +1 -1
- package/dist/data/index.d.ts +49 -49
- package/dist/data/index.js +1 -1
- package/dist/data/index.js.map +1 -1
- package/dist/gamma/index.d.ts +77 -67
- package/dist/gamma/index.js +1 -1
- package/dist/gamma/index.js.map +1 -1
- package/dist/index.d.ts +23 -5
- package/dist/index.js +1 -1
- package/dist/{orders-BDfNkzav.d.ts → orders-CAELACaR.d.ts} +1 -1
- package/dist/perps/index.d.ts +11 -11
- package/dist/perps/index.js +1 -1
- package/dist/relayer/index.d.ts +43 -2
- package/dist/relayer/index.js +1 -1
- package/dist/relayer/index.js.map +1 -1
- package/dist/subscriptions/index.d.ts +21 -21
- package/dist/subscriptions/index.js +1 -1
- package/dist/subscriptions/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-6TO35A2S.js +0 -2
- package/dist/chunk-6TO35A2S.js.map +0 -1
- package/dist/chunk-GJX3FYFG.js +0 -2
- package/dist/chunk-GJX3FYFG.js.map +0 -1
- package/dist/chunk-I4SRN2Q5.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TokenId, DecimalString, EpochMilliseconds,
|
|
1
|
+
import { TokenId, DecimalString, EpochMilliseconds, ConditionId, IsoDateTimeString, OrderSide, OrderType, TradeStatus, BaseUnits, CommentId, CommentParentEntityType, EventId, SeriesId, ImageOptimizationId } from '../index.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { P as PerpsInstrumentId, V as PerpsKlineInterval, c as PerpsDepositStatus, j as PerpsTradeId, ac as PerpsOrderId, k as PerpsSide, b as PerpsFundingPaymentId, a4 as PerpsNotificationId, a9 as PerpsNotificationType, a6 as PerpsNotificationOrderType, $ as PerpsMarginType, av as PerpsTimeInForce, af as PerpsOrderStatus, ax as PerpsTpSlKind, aB as PerpsTpSlScope, d as PerpsWithdrawalId, e as PerpsKnownWithdrawalStatus } from '../orders-
|
|
3
|
+
import { P as PerpsInstrumentId, V as PerpsKlineInterval, c as PerpsDepositStatus, j as PerpsTradeId, ac as PerpsOrderId, k as PerpsSide, b as PerpsFundingPaymentId, a4 as PerpsNotificationId, a9 as PerpsNotificationType, a6 as PerpsNotificationOrderType, $ as PerpsMarginType, av as PerpsTimeInForce, af as PerpsOrderStatus, ax as PerpsTpSlKind, aB as PerpsTpSlScope, d as PerpsWithdrawalId, e as PerpsKnownWithdrawalStatus } from '../orders-CAELACaR.js';
|
|
4
4
|
import * as _polymarket_types from '@polymarket/types';
|
|
5
5
|
import { R as ReactionType } from '../comment-C-jBbhp7.js';
|
|
6
6
|
|
|
@@ -277,7 +277,7 @@ declare const NewMarketEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
277
277
|
}, z.core.$strip>>>;
|
|
278
278
|
timestamp: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<EpochMilliseconds, string>>>>;
|
|
279
279
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
280
|
-
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<
|
|
280
|
+
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<ConditionId, string>>>>;
|
|
281
281
|
active: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
282
282
|
clob_token_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
283
283
|
sports_market_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -300,7 +300,7 @@ declare const NewMarketEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
300
300
|
title?: string | null | undefined;
|
|
301
301
|
description?: string | null | undefined;
|
|
302
302
|
} | null | undefined;
|
|
303
|
-
conditionId:
|
|
303
|
+
conditionId: ConditionId | null | undefined;
|
|
304
304
|
clobTokenIds: string[] | null | undefined;
|
|
305
305
|
sportsMarketType: string | null | undefined;
|
|
306
306
|
gameStartTime: IsoDateTimeString | null | undefined;
|
|
@@ -338,7 +338,7 @@ declare const NewMarketEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
338
338
|
} | null | undefined;
|
|
339
339
|
timestamp?: EpochMilliseconds | null | undefined;
|
|
340
340
|
tags?: string[] | null | undefined;
|
|
341
|
-
condition_id?:
|
|
341
|
+
condition_id?: ConditionId | null | undefined;
|
|
342
342
|
active?: boolean | null | undefined;
|
|
343
343
|
clob_token_ids?: string[] | null | undefined;
|
|
344
344
|
sports_market_type?: string | null | undefined;
|
|
@@ -858,7 +858,7 @@ declare const CustomMarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodO
|
|
|
858
858
|
}, z.core.$strip>>>;
|
|
859
859
|
timestamp: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<EpochMilliseconds, string>>>>;
|
|
860
860
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
861
|
-
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<
|
|
861
|
+
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<ConditionId, string>>>>;
|
|
862
862
|
active: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
863
863
|
clob_token_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
864
864
|
sports_market_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -881,7 +881,7 @@ declare const CustomMarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodO
|
|
|
881
881
|
title?: string | null | undefined;
|
|
882
882
|
description?: string | null | undefined;
|
|
883
883
|
} | null | undefined;
|
|
884
|
-
conditionId:
|
|
884
|
+
conditionId: ConditionId | null | undefined;
|
|
885
885
|
clobTokenIds: string[] | null | undefined;
|
|
886
886
|
sportsMarketType: string | null | undefined;
|
|
887
887
|
gameStartTime: IsoDateTimeString | null | undefined;
|
|
@@ -919,7 +919,7 @@ declare const CustomMarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodO
|
|
|
919
919
|
} | null | undefined;
|
|
920
920
|
timestamp?: EpochMilliseconds | null | undefined;
|
|
921
921
|
tags?: string[] | null | undefined;
|
|
922
|
-
condition_id?:
|
|
922
|
+
condition_id?: ConditionId | null | undefined;
|
|
923
923
|
active?: boolean | null | undefined;
|
|
924
924
|
clob_token_ids?: string[] | null | undefined;
|
|
925
925
|
sports_market_type?: string | null | undefined;
|
|
@@ -1200,7 +1200,7 @@ declare const MarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodObject<
|
|
|
1200
1200
|
}, z.core.$strip>>>;
|
|
1201
1201
|
timestamp: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<EpochMilliseconds, string>>>>;
|
|
1202
1202
|
tags: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
1203
|
-
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<
|
|
1203
|
+
condition_id: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<ConditionId, string>>>>;
|
|
1204
1204
|
active: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
1205
1205
|
clob_token_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
1206
1206
|
sports_market_type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1223,7 +1223,7 @@ declare const MarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodObject<
|
|
|
1223
1223
|
title?: string | null | undefined;
|
|
1224
1224
|
description?: string | null | undefined;
|
|
1225
1225
|
} | null | undefined;
|
|
1226
|
-
conditionId:
|
|
1226
|
+
conditionId: ConditionId | null | undefined;
|
|
1227
1227
|
clobTokenIds: string[] | null | undefined;
|
|
1228
1228
|
sportsMarketType: string | null | undefined;
|
|
1229
1229
|
gameStartTime: IsoDateTimeString | null | undefined;
|
|
@@ -1261,7 +1261,7 @@ declare const MarketEventSchema: z.ZodDiscriminatedUnion<[z.ZodPipe<z.ZodObject<
|
|
|
1261
1261
|
} | null | undefined;
|
|
1262
1262
|
timestamp?: EpochMilliseconds | null | undefined;
|
|
1263
1263
|
tags?: string[] | null | undefined;
|
|
1264
|
-
condition_id?:
|
|
1264
|
+
condition_id?: ConditionId | null | undefined;
|
|
1265
1265
|
active?: boolean | null | undefined;
|
|
1266
1266
|
clob_token_ids?: string[] | null | undefined;
|
|
1267
1267
|
sports_market_type?: string | null | undefined;
|
|
@@ -2892,7 +2892,7 @@ declare const PerpsWithdrawalUpdateEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
2892
2892
|
asset: z.ZodString;
|
|
2893
2893
|
amount: z.ZodPipe<z.ZodString, z.ZodTransform<BaseUnits, string>>;
|
|
2894
2894
|
fee: z.ZodPipe<z.ZodString, z.ZodTransform<DecimalString, string>>;
|
|
2895
|
-
status: z.ZodPipe<z.ZodString, z.ZodTransform<
|
|
2895
|
+
status: z.ZodPipe<z.ZodString, z.ZodTransform<(string & {}) | PerpsKnownWithdrawalStatus, string>>;
|
|
2896
2896
|
to: z.ZodPipe<z.ZodString, z.ZodTransform<_polymarket_types.EvmAddress, string>>;
|
|
2897
2897
|
hash: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<_polymarket_types.TxHash, string>>>>;
|
|
2898
2898
|
}, z.core.$strip>, z.ZodTransform<{
|
|
@@ -2900,7 +2900,7 @@ declare const PerpsWithdrawalUpdateEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
2900
2900
|
asset: string;
|
|
2901
2901
|
amount: BaseUnits;
|
|
2902
2902
|
fee: DecimalString;
|
|
2903
|
-
status:
|
|
2903
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
2904
2904
|
to: _polymarket_types.EvmAddress;
|
|
2905
2905
|
hash: _polymarket_types.TxHash | undefined;
|
|
2906
2906
|
}, {
|
|
@@ -2908,7 +2908,7 @@ declare const PerpsWithdrawalUpdateEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
2908
2908
|
asset: string;
|
|
2909
2909
|
amount: BaseUnits;
|
|
2910
2910
|
fee: DecimalString;
|
|
2911
|
-
status:
|
|
2911
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
2912
2912
|
to: _polymarket_types.EvmAddress;
|
|
2913
2913
|
hash?: _polymarket_types.TxHash | undefined;
|
|
2914
2914
|
}>>;
|
|
@@ -2922,7 +2922,7 @@ declare const PerpsWithdrawalUpdateEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
2922
2922
|
asset: string;
|
|
2923
2923
|
amount: BaseUnits;
|
|
2924
2924
|
fee: DecimalString;
|
|
2925
|
-
status:
|
|
2925
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
2926
2926
|
to: _polymarket_types.EvmAddress;
|
|
2927
2927
|
hash: _polymarket_types.TxHash | undefined;
|
|
2928
2928
|
};
|
|
@@ -2935,7 +2935,7 @@ declare const PerpsWithdrawalUpdateEventSchema: z.ZodPipe<z.ZodObject<{
|
|
|
2935
2935
|
asset: string;
|
|
2936
2936
|
amount: BaseUnits;
|
|
2937
2937
|
fee: DecimalString;
|
|
2938
|
-
status:
|
|
2938
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
2939
2939
|
to: _polymarket_types.EvmAddress;
|
|
2940
2940
|
hash: _polymarket_types.TxHash | undefined;
|
|
2941
2941
|
};
|
|
@@ -3838,7 +3838,7 @@ declare const PerpsSessionUpdateEventSchema: z.ZodUnion<readonly [z.ZodPipe<z.Zo
|
|
|
3838
3838
|
asset: z.ZodString;
|
|
3839
3839
|
amount: z.ZodPipe<z.ZodString, z.ZodTransform<BaseUnits, string>>;
|
|
3840
3840
|
fee: z.ZodPipe<z.ZodString, z.ZodTransform<DecimalString, string>>;
|
|
3841
|
-
status: z.ZodPipe<z.ZodString, z.ZodTransform<
|
|
3841
|
+
status: z.ZodPipe<z.ZodString, z.ZodTransform<(string & {}) | PerpsKnownWithdrawalStatus, string>>;
|
|
3842
3842
|
to: z.ZodPipe<z.ZodString, z.ZodTransform<_polymarket_types.EvmAddress, string>>;
|
|
3843
3843
|
hash: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<_polymarket_types.TxHash, string>>>>;
|
|
3844
3844
|
}, z.core.$strip>, z.ZodTransform<{
|
|
@@ -3846,7 +3846,7 @@ declare const PerpsSessionUpdateEventSchema: z.ZodUnion<readonly [z.ZodPipe<z.Zo
|
|
|
3846
3846
|
asset: string;
|
|
3847
3847
|
amount: BaseUnits;
|
|
3848
3848
|
fee: DecimalString;
|
|
3849
|
-
status:
|
|
3849
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
3850
3850
|
to: _polymarket_types.EvmAddress;
|
|
3851
3851
|
hash: _polymarket_types.TxHash | undefined;
|
|
3852
3852
|
}, {
|
|
@@ -3854,7 +3854,7 @@ declare const PerpsSessionUpdateEventSchema: z.ZodUnion<readonly [z.ZodPipe<z.Zo
|
|
|
3854
3854
|
asset: string;
|
|
3855
3855
|
amount: BaseUnits;
|
|
3856
3856
|
fee: DecimalString;
|
|
3857
|
-
status:
|
|
3857
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
3858
3858
|
to: _polymarket_types.EvmAddress;
|
|
3859
3859
|
hash?: _polymarket_types.TxHash | undefined;
|
|
3860
3860
|
}>>;
|
|
@@ -3868,7 +3868,7 @@ declare const PerpsSessionUpdateEventSchema: z.ZodUnion<readonly [z.ZodPipe<z.Zo
|
|
|
3868
3868
|
asset: string;
|
|
3869
3869
|
amount: BaseUnits;
|
|
3870
3870
|
fee: DecimalString;
|
|
3871
|
-
status:
|
|
3871
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
3872
3872
|
to: _polymarket_types.EvmAddress;
|
|
3873
3873
|
hash: _polymarket_types.TxHash | undefined;
|
|
3874
3874
|
};
|
|
@@ -3881,7 +3881,7 @@ declare const PerpsSessionUpdateEventSchema: z.ZodUnion<readonly [z.ZodPipe<z.Zo
|
|
|
3881
3881
|
asset: string;
|
|
3882
3882
|
amount: BaseUnits;
|
|
3883
3883
|
fee: DecimalString;
|
|
3884
|
-
status:
|
|
3884
|
+
status: (string & {}) | PerpsKnownWithdrawalStatus;
|
|
3885
3885
|
to: _polymarket_types.EvmAddress;
|
|
3886
3886
|
hash: _polymarket_types.TxHash | undefined;
|
|
3887
3887
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {N,K,O,P}from'../chunk-GJX3FYFG.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,oa,_a}from'../chunk-I4SRN2Q5.js';import {xa,La,x as x$1,Ra,Ia,da,ia,_,ya,za,ba,va as va$1,Na,R}from'../chunk-6TO35A2S.js';export{d as TradeStatus}from'../chunk-6TO35A2S.js';import {z}from'zod';var x=z.preprocess(t=>typeof t=="string"?t.toUpperCase():t,xa),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:La,size:La}),b=z.string().regex(/^\d+$/).transform(t=>x$1(new Date(Number(t)*1e3).toISOString())),xe=z.string().regex(/^\d+$/).transform(t=>t==="0"?void 0:x$1(new Date(Number(t)*1e3).toISOString())),ne=z.object({event_type:z.literal("book"),market:z.string(),asset_id:Ia,bids:z.array(te),asks:z.array(te),hash:z.string().nullish(),timestamp:da.nullish(),min_order_size:Ra,tick_size:Ra,neg_risk:z.boolean().nullish(),last_trade_price:Ra}).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:Ia,price:La,size:La,side:x,hash:z.string().nullish(),best_bid:Ra,best_ask:Ra}).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:da.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:Ia,price:La,size:Ra,fee_rate_bps:Ra,side:x,timestamp:da.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:Ia,old_tick_size:Ra,new_tick_size:La,timestamp:da.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:Ia,best_bid:Ra,best_ask:Ra,spread:Ra,timestamp:da.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(Ia).nullish(),outcomes:z.array(z.string()).nullish(),event_message:pe.nullish(),timestamp:da.nullish(),tags:z.array(z.string()).nullish(),condition_id:_.nullish(),active:z.boolean().nullish(),clob_token_ids:z.array(z.string()).nullish(),sports_market_type:z.string().nullish(),line:Ra,game_start_time:ia.nullish(),order_price_min_tick_size:Ra,group_item_title:z.string().nullish(),taker_base_fee:Ra,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(Ia).nullish(),winning_asset_id:Ia.nullish(),winning_outcome:z.string().nullish(),event_message:pe.nullish(),timestamp:da.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:Ia,side:x,order_owner:z.string().nullish(),original_size:La,size_matched:La,price:La,associate_trades:z.array(z.string()).nullish(),outcome:z.string().nullish(),type:be,created_at:b.nullish(),expiration:xe.nullish(),order_type:ya.nullish(),status:_e.nullish(),maker_address:z.string().nullish(),timestamp:da}).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:La,price:La,fee_rate_bps:Ra,asset_id:Ia,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:Ia,side:x,size:La,fee_rate_bps:Ra,price:La,status:za,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:da}).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:ba,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),Je=f("withdrawal","withdrawals",oa),Xe=f("notification","notifications",_a),Gt=z.object({ch:z.literal("notifications"),ts:ba,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:va$1.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:ba,payload:P}),it=z.object({topic:z.literal("comments"),type:z.literal("comment_removed"),timestamp:ba,payload:nt}),st=z.object({topic:z.literal("comments"),type:z.literal("reaction_created"),timestamp:ba,payload:N}),ot=z.object({topic:z.literal("comments"),type:z.literal("reaction_removed"),timestamp:ba,payload:N}),Se=z.object({symbol:z.string(),timestamp:ba,value:Na}),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:ba,payload:Se}),Et=z.object({topic:St,type:z.literal("update"),timestamp:ba,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 R(`${a?"-":""}${s}${p===""?"":`.${p}`}`)}var kt=z.string().regex(/^-?\d+$/).transform(vt),Ct=z.object({symbol:z.string(),value:Na,full_accuracy_value:kt,timestamp:ba});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:ba,payload:fe(30)}),Ee=z.object({topic:ft,type:z.literal("update"),timestamp:ba,payload:fe(60)}),nr=z.union([Pe,Ee]),gt=z.discriminatedUnion("topic",[Pt,Et,Pe,Ee]),_t=z.object({symbol:z.string(),value:Na,full_accuracy_value:La.nullish(),timestamp:ba,received_at:ba.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:Na}),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:ba,payload:_t}),wt=z.object({topic:ve,type:z.literal("subscribe"),timestamp:ba,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:ia.nullish(),finished_timestamp:ia.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-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
|
|
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","CtfConditionIdSchema","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 CtfConditionIdSchema,\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: CtfConditionIdSchema.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","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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polymarket/bindings",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Internal package. Contains generated bindings for the Polymarket API. Not intended for direct use.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"sideEffects": false,
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"zod": "^4.3.6",
|
|
81
|
-
"@polymarket/types": "0.
|
|
81
|
+
"@polymarket/types": "0.2.0"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"tsup": "^8.5.1",
|