@kuest/bindings 0.0.0-stage → 0.13.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/perps/common.ts","../src/perps/account.ts","../src/perps/builders.ts","../src/perps/chases.ts","../src/perps/funds.ts","../src/perps/market.ts","../src/perps/notifications.ts","../src/perps/orders.ts"],"names":["taggedInteger","value","PerpsInstrumentIdSchema","z","PerpsOrderIdSchema","PerpsClientOrderIdSchema","PerpsNotificationIdSchema","PerpsBuilderEarningIdSchema","PerpsTradeIdSchema","PerpsFundingPaymentIdSchema","PerpsWithdrawalIdSchema","PerpsInternalTransferIdSchema","PerpsEntityIdSchema","PerpsFundingIntervalSchema","PerpsDecimalInputSchema","DecimalishSchema","PerpsInstrumentType","PerpsInstrumentCategory","PerpsSide","PerpsTimeInForce","PerpsTpSlKind","PerpsTpSlScope","PerpsDepositStatus","PerpsKnownWithdrawalStatus","PerpsKnownInternalTransferType","PerpsInternalTransferDirection","PerpsKlineInterval","PerpsPnlInterval","PerpsSortDirection","PerpsInstrumentTypeSchema","PerpsInstrumentCategorySchema","PerpsSideSchema","PerpsTimeInForceSchema","PerpsTpSlKindSchema","PerpsTpSlScopeSchema","PerpsDepositStatusSchema","PerpsWithdrawalStatusSchema","PerpsInternalTransferTypeSchema","PerpsInternalTransferDirectionSchema","PerpsKlineIntervalSchema","PerpsPnlIntervalSchema","PerpsSortDirectionSchema","PerpsAssetSchema","PerpsTxHashSchema","hash","TxHashSchema","PerpsDataResponseSchema","itemSchema","perpsDecimal","perpsBaseUnits","BaseUnitsSchema","decimalString","toDecimalString","PerpsBalanceSchema","DecimalStringSchema","FetchPerpsBalancesResponseSchema","PerpsAccountStatsSchema","stats","FetchPerpsAccountStatsResponseSchema","PerpsPortfolioPositionSchema","position","PerpsMarginSummarySchema","RawPerpsMarginSummarySchema","margin","PerpsPortfolioSchema","EpochMillisecondsSchema","portfolio","FetchPerpsPortfolioResponseSchema","PerpsAccountFundingPaymentSchema","funding","ListPerpsFundingPaymentsResponseSchema","PerpsAccountFundingPaymentEntrySchema","PerpsAccountConfigSchema","config","FetchPerpsAccountConfigResponseSchema","PerpsEquityPointSchema","timestamp","equity","ListPerpsEquityHistoryResponseSchema","PerpsPnlPointSchema","pnl","ListPerpsPnlHistoryResponseSchema","RawPerpsProxyExpirySchema","PerpsProxyKeySchema","EvmAddressSchema","key","PerpsCredentialsResponseSchema","credentials","PerpsCreateProxyResponseSchema","PerpsDeleteProxyResponseSchema","BuilderDecimalSchema","NonnegativeIntegerSchema","PerpsBuilderTermsSchema","terms","PerpsBuilderStatusSchema","status","PerpsBuilderApprovalSchema","approval","FetchPerpsBuilderApprovalsResponseSchema","PerpsLiquidityRole","PerpsBuilderEarningSchema","earning","BuilderEarningsWindowSchema","PerpsBuilderEarningsSnapshotSchema","window","ListPerpsBuilderEarningsResponseSchema","page","PerpsBuilderEarningsAssetSchema","asset","PerpsBuilderEarningsSummarySchema","summary","PerpsChaseIdSchema","DecimalSchema","PerpsChaseSchema","chase","PerpsChaseAcceptedSchema","accepted","FetchPerpsChasesResponseSchema","CreatePerpsChaseResponseSchema","PerpsDepositSchema","deposit","ListPerpsDepositsResponseSchema","PerpsDepositUpdateSchema","PerpsWithdrawalSchema","withdrawal","ListPerpsWithdrawalsResponseSchema","PerpsWithdrawResponseSchema","response","PerpsWithdrawalUpdateSchema","PerpsInternalTransferSchema","transfer","ListPerpsInternalTransfersResponseSchema","PerpsInternalTransferResponseSchema","PerpsRiskTierSchema","RawPerpsRiskTierSchema","tier","PerpsInstrumentSettlementSchema","settlement","PerpsInstrumentSchema","instrument","FetchPerpsInstrumentsResponseSchema","PerpsTickerSchema","ticker","FetchPerpsTickersResponseSchema","PerpsTickerEntrySchema","PerpsCandleSchema","open","high","low","close","volume","trades","PerpsStatisticSchema","statistic","FetchPerpsStatisticsResponseSchema","PerpsStatisticUpdateSchema","PerpsBookLevelSchema","price","quantity","PerpsBookSchema","book","PerpsBookUpdateSchema","PerpsBboSchema","PerpsBboUpdateSchema","bbo","PerpsPublicTradeSchema","trade","PerpsPublicTradeUpdateSchema","FetchPerpsTradesResponseSchema","PerpsFundingRateSchema","FetchPerpsFundingHistoryResponseSchema","PerpsFeeTierSchema","PerpsFeeScheduleEntrySchema","fee","PerpsFeesInfoSchema","fees","FetchPerpsFeesResponseSchema","FetchPerpsCandlesResponseSchema","PerpsNotificationType","PerpsNotificationTypeSchema","PerpsNotificationOrderType","PerpsNotificationOrderTypeSchema","PerpsMarginType","PerpsMarginTypeSchema","PerpsPositionChangeNotificationSchema","notification","PerpsPositionClosedNotificationSchema","PerpsLimitOrderCanceledNotificationSchema","PerpsIsolatedLiquidationWarningNotificationSchema","PerpsCrossLiquidationWarningNotificationSchema","PerpsLiquidationWarningNotificationSchema","PerpsPositionLiquidatedNotificationSchema","PerpsPositionDeleveragedNotificationSchema","PerpsNotificationSchema","PerpsNotificationEntrySchema","entry","PerpsNotificationEntryTypeProbeSchema","PerpsNotificationEntriesSchema","items","ctx","entries","item","index","issue","ListPerpsNotificationsResponseSchema","FetchPerpsUnreadNotificationsCountResponseSchema","MarkPerpsNotificationsReadResponseSchema","FeeDecimalSchema","totalFee","exchangeFee","builderFee","exchangeWhole","exchangeFraction","builderWhole","builderFraction","scale","exchangeUnits","builderUnits","sum","digits","fraction","whole","PerpsOrderStatus","PerpsTpSlOrderFieldsSchema","fields","PerpsOrderStatusSchema","PerpsCommandStatusSchema","PerpsKnownCancelOrderErrorCode","PerpsCancelOrderErrorCodeSchema","PerpsAckErrorSchema","perpsAckError","PerpsCommandAckSchema","PerpsPostOrderAckSchema","ack","PerpsCancelOrderResultSchema","PerpsCancelAllOrdersResponseSchema","PerpsUpdateLeverageResultSchema","result","PerpsUpdateLeverageRejectionSchema","PerpsUpdateLeverageBatchResultSchema","error","PerpsOrderSchema","order","FetchPerpsOrdersResponseSchema","FetchPerpsOpenOrdersResponseSchema","PerpsOrderUpdateSchema","PerpsLiquidationMethod","PerpsLiquidationDetailsSchema","details","PerpsAccountFillSchema","fill","ListPerpsFillsResponseSchema","PerpsAccountFillUpdateSchema"],"mappings":"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","file":"chunk-XSRN2HAT.js","sourcesContent":["import type { PrivateKey } from '@kuest/types';\nimport { z } from 'zod';\nimport {\n type BaseUnits,\n BaseUnitsSchema,\n DecimalishSchema,\n type DecimalString,\n type EvmAddress,\n type TxHash,\n TxHashSchema,\n toDecimalString,\n} from '../shared';\n\ntype Tagged<T, Tag extends string> = T & { readonly __tag: Tag };\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInstrumentId = Tagged<number, 'PerpsInstrumentId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsOrderId = Tagged<number, 'PerpsOrderId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsClientOrderId = Tagged<string, 'PerpsClientOrderId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotificationId = Tagged<string, 'PerpsNotificationId'>;\n/**\n * Opaque receipt identity, unique within the authenticated builder account.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBuilderEarningId = Tagged<string, 'PerpsBuilderEarningId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTradeId = Tagged<number, 'PerpsTradeId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingPaymentId = Tagged<number, 'PerpsFundingPaymentId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalId = Tagged<number, 'PerpsWithdrawalId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInternalTransferId = Tagged<number, 'PerpsInternalTransferId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsEntityId = Tagged<number, 'PerpsEntityId'>;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingInterval = `${number}h`;\n\nfunction taggedInteger<T extends number>(value: number): T {\n return value as T;\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInstrumentIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsInstrumentId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsOrderId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsClientOrderIdSchema = z\n .string()\n .regex(/^[0-9a-f]{32}$/)\n .transform((value) => value as PerpsClientOrderId);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationIdSchema = z\n .uuid()\n .transform((value) => value as PerpsNotificationId);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBuilderEarningIdSchema = z\n .string()\n .min(1)\n .transform((value) => value as PerpsBuilderEarningId);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTradeIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsTradeId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingPaymentIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsFundingPaymentId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsWithdrawalId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInternalTransferIdSchema = z\n .number()\n .int()\n .nonnegative()\n .transform(taggedInteger<PerpsInternalTransferId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsEntityIdSchema = z\n .number()\n .int()\n .positive()\n .transform(taggedInteger<PerpsEntityId>);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingIntervalSchema = z\n .string()\n .regex(/^[1-9]\\d*h$/)\n .transform((value) => value as PerpsFundingInterval);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDecimalInputSchema = DecimalishSchema;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDecimalInput = z.input<typeof PerpsDecimalInputSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsInstrumentType {\n Perpetual = 'perpetual',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsInstrumentCategory {\n Equity = 'equity',\n Commodity = 'commodity',\n Index = 'index',\n Crypto = 'crypto',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsSide {\n Long = 'long',\n Short = 'short',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsTimeInForce {\n GTC = 'gtc',\n GTD = 'gtd',\n IOC = 'ioc',\n FOK = 'fok',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsTpSlKind {\n TakeProfit = 'tp',\n StopLoss = 'sl',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsTpSlScope {\n Order = 'order',\n Position = 'position',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsDepositStatus {\n Pending = 'pending',\n Confirmed = 'confirmed',\n Removed = 'removed',\n}\n\n/**\n * Known withdrawal statuses.\n *\n * The service evolves this set independently of released clients, so\n * withdrawal parsing accepts unknown statuses as plain strings; see\n * {@link PerpsWithdrawalStatus}.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsKnownWithdrawalStatus {\n Pending = 'pending',\n Confirmed = 'confirmed',\n Removed = 'removed',\n Failed = 'failed',\n}\n\n/**\n * A withdrawal status. Known statuses are enumerated in\n * {@link PerpsKnownWithdrawalStatus}; newly introduced statuses flow through\n * as plain strings so they can be handled before a client release that\n * enumerates them.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalStatus = PerpsKnownWithdrawalStatus | (string & {});\n\n/**\n * Known internal-transfer classifications.\n *\n * The service evolves this set independently of released clients, so\n * transfer parsing accepts unknown classifications as plain strings; see\n * {@link PerpsInternalTransferType}.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsKnownInternalTransferType {\n Transfer = 'transfer',\n ReferralPayout = 'referral_payout',\n}\n\n/**\n * An internal-transfer classification. Known values are enumerated in\n * {@link PerpsKnownInternalTransferType}; newly introduced values flow through\n * as plain strings so they can be handled before a client release that\n * enumerates them.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInternalTransferType =\n | PerpsKnownInternalTransferType\n | (string & {});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsInternalTransferDirection {\n In = 'in',\n Out = 'out',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsKlineInterval {\n OneSecond = '1s',\n OneMinute = '1m',\n FiveMinutes = '5m',\n FifteenMinutes = '15m',\n OneHour = '1h',\n FourHours = '4h',\n OneDay = '1d',\n OneWeek = '1w',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsPnlInterval {\n OneHour = '1h',\n FourHours = '4h',\n OneDay = '1d',\n OneWeek = '1w',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsSortDirection {\n Descending = 'desc',\n Ascending = 'asc',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInstrumentTypeSchema = z.enum(PerpsInstrumentType);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInstrumentCategorySchema = z.enum(PerpsInstrumentCategory);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsSideSchema = z.enum(PerpsSide);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTimeInForceSchema = z.enum(PerpsTimeInForce);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlKindSchema = z.enum(PerpsTpSlKind);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlScopeSchema = z.enum(PerpsTpSlScope);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositStatusSchema = z.enum(PerpsDepositStatus);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalStatusSchema = z\n .string()\n .transform((value): PerpsWithdrawalStatus => value);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInternalTransferTypeSchema = z\n .string()\n .min(1)\n .transform((value): PerpsInternalTransferType => value);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInternalTransferDirectionSchema = z.enum(\n PerpsInternalTransferDirection,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsKlineIntervalSchema = z.enum(PerpsKlineInterval);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPnlIntervalSchema = z.enum(PerpsPnlInterval);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsSortDirectionSchema = z.enum(PerpsSortDirection);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAssetSchema = z.string().min(1);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTxHashSchema = z.preprocess(\n (hash) => (hash === '0x' || hash === '' ? undefined : hash),\n TxHashSchema.optional(),\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDataResponseSchema = <T extends z.ZodType>(itemSchema: T) =>\n z.object({\n data: z.array(itemSchema),\n more: z.boolean(),\n });\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCredentials = {\n proxy: EvmAddress;\n privateKey: PrivateKey;\n secret: string;\n expiresAt: number;\n};\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDepositAmount = BaseUnits;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalAmount = BaseUnits;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTxHash = TxHash;\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDecimal = DecimalString;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport function perpsDecimal(value: string | number): DecimalString {\n return PerpsDecimalInputSchema.parse(value);\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport function perpsBaseUnits(value: string): BaseUnits {\n return BaseUnitsSchema.parse(value);\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport function decimalString(value: string): DecimalString {\n return toDecimalString(value);\n}\n","import { z } from 'zod';\nimport {\n DecimalStringSchema,\n EpochMillisecondsSchema,\n EvmAddressSchema,\n} from '../shared';\nimport {\n PerpsAssetSchema,\n PerpsDataResponseSchema,\n PerpsEntityIdSchema,\n PerpsFundingPaymentIdSchema,\n PerpsInstrumentIdSchema,\n} from './common';\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBalanceSchema = z.object({\n asset: PerpsAssetSchema,\n balance: DecimalStringSchema,\n value: DecimalStringSchema,\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBalance = z.infer<typeof PerpsBalanceSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsBalancesResponseSchema = z.array(PerpsBalanceSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountStatsSchema = z\n .object({\n volume_7d: DecimalStringSchema,\n taker_volume_7d: DecimalStringSchema,\n maker_volume_7d: DecimalStringSchema,\n account_maker_share_7d: DecimalStringSchema,\n entity_maker_share_7d: DecimalStringSchema.optional(),\n entity_id: PerpsEntityIdSchema.optional(),\n entity_name: z.string().min(1).optional(),\n })\n .transform((stats) => ({\n volume7d: stats.volume_7d,\n takerVolume7d: stats.taker_volume_7d,\n makerVolume7d: stats.maker_volume_7d,\n accountMakerShare7d: stats.account_maker_share_7d,\n entityMakerShare7d: stats.entity_maker_share_7d,\n entityId: stats.entity_id,\n entityName: stats.entity_name,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsAccountStats = z.infer<typeof PerpsAccountStatsSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsAccountStatsResponseSchema = PerpsAccountStatsSchema;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPortfolioPositionSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n symbol: z.string().min(1),\n size: DecimalStringSchema,\n entry_price: DecimalStringSchema,\n leverage: z.number().int().positive(),\n cross: z.boolean(),\n initial_margin: DecimalStringSchema,\n maintenance_margin: DecimalStringSchema,\n position_value: DecimalStringSchema,\n liquidation_price: DecimalStringSchema,\n unrealized_pnl: DecimalStringSchema,\n return_on_equity: DecimalStringSchema,\n cumulative_funding: DecimalStringSchema,\n adl_index: z.union([\n z.literal(0),\n z.literal(1),\n z.literal(2),\n z.literal(3),\n ]),\n })\n .transform((position) => ({\n instrumentId: position.instrument_id,\n symbol: position.symbol,\n size: position.size,\n entryPrice: position.entry_price,\n leverage: position.leverage,\n cross: position.cross,\n initialMargin: position.initial_margin,\n maintenanceMargin: position.maintenance_margin,\n positionValue: position.position_value,\n liquidationPrice: position.liquidation_price,\n unrealizedPnl: position.unrealized_pnl,\n returnOnEquity: position.return_on_equity,\n cumulativeFunding: position.cumulative_funding,\n /** Auto-deleveraging risk tier; higher values indicate higher risk. */\n adlIndex: position.adl_index,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPortfolioPosition = z.infer<\n typeof PerpsPortfolioPositionSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsMarginSummarySchema = z.object({\n totalAccountValue: DecimalStringSchema,\n availableOrderMargin: DecimalStringSchema,\n totalInitialMargin: DecimalStringSchema,\n totalMaintenanceMargin: DecimalStringSchema,\n totalPositionValue: DecimalStringSchema,\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsMarginSummary = z.infer<typeof PerpsMarginSummarySchema>;\n\nconst RawPerpsMarginSummarySchema = z\n .object({\n total_account_value: DecimalStringSchema,\n available_order_margin: DecimalStringSchema,\n total_initial_margin: DecimalStringSchema,\n total_maintenance_margin: DecimalStringSchema,\n total_position_value: DecimalStringSchema,\n })\n .transform((margin) => ({\n totalAccountValue: margin.total_account_value,\n availableOrderMargin: margin.available_order_margin,\n totalInitialMargin: margin.total_initial_margin,\n totalMaintenanceMargin: margin.total_maintenance_margin,\n totalPositionValue: margin.total_position_value,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPortfolioSchema = z\n .object({\n positions: z.array(PerpsPortfolioPositionSchema),\n margin: RawPerpsMarginSummarySchema,\n withdrawable: DecimalStringSchema,\n in_liquidation: z.boolean(),\n fee_tier: z.number().int(),\n timestamp: EpochMillisecondsSchema,\n })\n .transform((portfolio) => ({\n positions: portfolio.positions,\n margin: portfolio.margin,\n withdrawable: portfolio.withdrawable,\n inLiquidation: portfolio.in_liquidation,\n /** Zero-based index into the perpetual fee schedule's tiers. */\n feeTier: portfolio.fee_tier,\n timestamp: portfolio.timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPortfolio = z.infer<typeof PerpsPortfolioSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsPortfolioResponseSchema = PerpsPortfolioSchema;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountFundingPaymentSchema = z\n .object({\n id: PerpsFundingPaymentIdSchema,\n instrument_id: PerpsInstrumentIdSchema,\n size: DecimalStringSchema,\n funding_rate: DecimalStringSchema,\n funding_asset: PerpsAssetSchema,\n funding: DecimalStringSchema,\n timestamp: EpochMillisecondsSchema,\n })\n .transform((funding) => ({\n id: funding.id,\n instrumentId: funding.instrument_id,\n size: funding.size,\n fundingRate: funding.funding_rate,\n fundingAsset: funding.funding_asset,\n funding: funding.funding,\n timestamp: funding.timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsAccountFundingPayment = z.infer<\n typeof PerpsAccountFundingPaymentSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsFundingPaymentsResponseSchema = PerpsDataResponseSchema(\n PerpsAccountFundingPaymentSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountFundingPaymentEntrySchema = z\n .object({\n id: PerpsFundingPaymentIdSchema,\n iid: PerpsInstrumentIdSchema,\n sz: DecimalStringSchema,\n fr: DecimalStringSchema,\n fund: DecimalStringSchema,\n fua: PerpsAssetSchema,\n ts: EpochMillisecondsSchema,\n })\n .transform((funding) => ({\n id: funding.id,\n instrumentId: funding.iid,\n size: funding.sz,\n fundingRate: funding.fr,\n fundingAsset: funding.fua,\n funding: funding.fund,\n timestamp: funding.ts,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountConfigSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n leverage: z.number().int().positive(),\n cross: z.boolean(),\n })\n .transform((config) => ({\n instrumentId: config.instrument_id,\n leverage: config.leverage,\n cross: config.cross,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsAccountConfig = z.infer<typeof PerpsAccountConfigSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsAccountConfigResponseSchema = z.array(\n PerpsAccountConfigSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsEquityPointSchema = z\n .tuple([EpochMillisecondsSchema, DecimalStringSchema])\n .transform(([timestamp, equity]) => ({ timestamp, equity }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsEquityPoint = z.infer<typeof PerpsEquityPointSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsEquityHistoryResponseSchema = PerpsDataResponseSchema(\n PerpsEquityPointSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPnlPointSchema = z\n .tuple([EpochMillisecondsSchema, DecimalStringSchema])\n .transform(([timestamp, pnl]) => ({ timestamp, pnl }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPnlPoint = z.infer<typeof PerpsPnlPointSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsPnlHistoryResponseSchema =\n PerpsDataResponseSchema(PerpsPnlPointSchema);\n\nconst RawPerpsProxyExpirySchema = z\n .number()\n .finite()\n .positive()\n .refine((value) => Number.isInteger(value), 'Expected integer')\n // The credentials endpoint currently returns proxy expiries in nanoseconds.\n .transform((value) =>\n value > Number.MAX_SAFE_INTEGER ? Math.floor(value / 1_000_000) : value,\n )\n .pipe(EpochMillisecondsSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsProxyKeySchema = z\n .object({\n proxy: EvmAddressSchema,\n label: z.string().optional(),\n expiry: RawPerpsProxyExpirySchema,\n })\n .transform((key) => ({\n proxy: key.proxy,\n label: key.label,\n expiresAt: key.expiry,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsProxyKey = z.infer<typeof PerpsProxyKeySchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCredentialsResponseSchema = z\n .object({\n address: EvmAddressSchema,\n keys: z.array(PerpsProxyKeySchema),\n })\n .transform((credentials) => ({\n address: credentials.address,\n keys: credentials.keys,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCreateProxyResponseSchema = z.object({\n secret: z.string().min(1),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDeleteProxyResponseSchema = z.object({\n status: z.enum(['ok', 'err']),\n error: z.string().optional(),\n});\n","import { z } from 'zod';\nimport {\n DecimalStringSchema,\n EpochMillisecondsSchema,\n EvmAddressSchema,\n OrderSide,\n} from '../shared';\nimport {\n PerpsAssetSchema,\n PerpsBuilderEarningIdSchema,\n PerpsClientOrderIdSchema,\n PerpsInstrumentIdSchema,\n PerpsOrderIdSchema,\n PerpsTradeIdSchema,\n} from './common';\n\nconst BuilderDecimalSchema = z\n .string()\n .regex(/^-?\\d+(?:\\.\\d+)?$/)\n .pipe(DecimalStringSchema);\nconst NonnegativeIntegerSchema = z.number().int().nonnegative();\n\n/**\n * Saved attribution and the decimal fraction charged on executed notional.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBuilderTermsSchema = z\n .object({\n address: EvmAddressSchema,\n fee_rate: BuilderDecimalSchema,\n })\n .transform((terms) => ({ address: terms.address, feeRate: terms.fee_rate }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderTerms = z.infer<typeof PerpsBuilderTermsSchema>;\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderStatusSchema = z\n .object({\n address: EvmAddressSchema,\n registered: z.boolean(),\n enabled: z.boolean(),\n admission_enabled: z.boolean(),\n max_fee_rate: BuilderDecimalSchema,\n })\n .transform((status) => ({\n address: status.address,\n registered: status.registered,\n enabled: status.enabled,\n admissionEnabled: status.admission_enabled,\n maxFeeRate: status.max_fee_rate,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderStatus = z.infer<typeof PerpsBuilderStatusSchema>;\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderApprovalSchema = z\n .object({\n trader: EvmAddressSchema,\n builder: EvmAddressSchema,\n max_fee_rate: BuilderDecimalSchema,\n approval_version: z.number().int().positive(),\n timestamp: EpochMillisecondsSchema,\n sequence: NonnegativeIntegerSchema,\n })\n .transform((approval) => ({\n trader: approval.trader,\n builder: approval.builder,\n maxFeeRate: approval.max_fee_rate,\n approvalVersion: approval.approval_version,\n timestamp: approval.timestamp,\n sequence: approval.sequence,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderApproval = z.infer<typeof PerpsBuilderApprovalSchema>;\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const FetchPerpsBuilderApprovalsResponseSchema = z.object({\n data: z.array(PerpsBuilderApprovalSchema),\n});\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport enum PerpsLiquidityRole {\n Maker = 'maker',\n Taker = 'taker',\n}\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderEarningSchema = z\n .object({\n earning_id: PerpsBuilderEarningIdSchema,\n trade_id: PerpsTradeIdSchema,\n order_id: PerpsOrderIdSchema,\n instrument_id: PerpsInstrumentIdSchema,\n trader: EvmAddressSchema,\n buy: z.boolean(),\n price: BuilderDecimalSchema,\n quantity: BuilderDecimalSchema,\n client_order_id: PerpsClientOrderIdSchema.optional(),\n side: z.enum(PerpsLiquidityRole),\n timestamp: EpochMillisecondsSchema,\n sequence: NonnegativeIntegerSchema,\n notional: BuilderDecimalSchema,\n fee_asset: PerpsAssetSchema,\n fee: BuilderDecimalSchema,\n builder_fee: BuilderDecimalSchema,\n total_fee: BuilderDecimalSchema,\n fee_rate: BuilderDecimalSchema,\n })\n .transform((earning) => ({\n earningId: earning.earning_id,\n tradeId: earning.trade_id,\n orderId: earning.order_id,\n instrumentId: earning.instrument_id,\n trader: earning.trader,\n side: earning.buy ? OrderSide.BUY : OrderSide.SELL,\n price: earning.price,\n quantity: earning.quantity,\n ...(earning.client_order_id === undefined\n ? {}\n : { clientOrderId: earning.client_order_id }),\n liquidityRole: earning.side,\n timestamp: earning.timestamp,\n sequence: earning.sequence,\n notional: earning.notional,\n feeAsset: earning.fee_asset,\n /** Exchange fee for the fill, excluding the builder fee. */\n fee: earning.fee,\n /** Builder fee charged in addition to `fee` and credited to this builder. */\n builderFee: earning.builder_fee,\n /** Sum of `fee` and `builderFee`. */\n totalFee: earning.total_fee,\n /** Builder fee rate for the fill, as a decimal fraction of `notional`. */\n feeRate: earning.fee_rate,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderEarning = z.infer<typeof PerpsBuilderEarningSchema>;\n\nconst BuilderEarningsWindowSchema = z.object({\n start_timestamp: EpochMillisecondsSchema,\n end_timestamp: EpochMillisecondsSchema,\n as_of_sequence: NonnegativeIntegerSchema,\n});\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderEarningsSnapshotSchema =\n BuilderEarningsWindowSchema.transform((window) => ({\n start: window.start_timestamp,\n end: window.end_timestamp,\n asOfSequence: window.as_of_sequence,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderEarningsSnapshot = z.infer<\n typeof PerpsBuilderEarningsSnapshotSchema\n>;\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const ListPerpsBuilderEarningsResponseSchema =\n BuilderEarningsWindowSchema.extend({\n data: z.array(PerpsBuilderEarningSchema),\n more: z.boolean(),\n cursor: z.string().min(1).optional(),\n }).transform((page) => ({\n data: page.data,\n more: page.more,\n ...(page.cursor === undefined ? {} : { cursor: page.cursor }),\n snapshot: {\n start: page.start_timestamp,\n end: page.end_timestamp,\n asOfSequence: page.as_of_sequence,\n },\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderEarningsAssetSchema = z\n .object({\n fee_asset: PerpsAssetSchema,\n fill_count: NonnegativeIntegerSchema,\n notional: BuilderDecimalSchema,\n builder_fee: BuilderDecimalSchema,\n })\n .transform((asset) => ({\n feeAsset: asset.fee_asset,\n fillCount: asset.fill_count,\n notional: asset.notional,\n builderFee: asset.builder_fee,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderEarningsAsset = z.infer<\n typeof PerpsBuilderEarningsAssetSchema\n>;\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsBuilderEarningsSummarySchema =\n BuilderEarningsWindowSchema.extend({\n data: z.array(PerpsBuilderEarningsAssetSchema),\n trader_count: NonnegativeIntegerSchema,\n active_approval_count: NonnegativeIntegerSchema,\n }).transform((summary) => ({\n assets: summary.data,\n traderCount: summary.trader_count,\n activeApprovalCount: summary.active_approval_count,\n snapshot: {\n start: summary.start_timestamp,\n end: summary.end_timestamp,\n asOfSequence: summary.as_of_sequence,\n },\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderEarningsSummary = z.infer<\n typeof PerpsBuilderEarningsSummarySchema\n>;\n","import { z } from 'zod';\nimport {\n DecimalStringSchema,\n EpochMillisecondsSchema,\n OrderSide,\n} from '../shared';\nimport {\n PerpsClientOrderIdSchema,\n PerpsInstrumentIdSchema,\n PerpsOrderIdSchema,\n} from './common';\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsChaseId = number & { readonly __tag: 'PerpsChaseId' };\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsChaseIdSchema = z\n .number()\n .int()\n .positive()\n .max(Number.MAX_SAFE_INTEGER)\n .transform((value) => value as PerpsChaseId);\nconst DecimalSchema = z\n .string()\n .regex(/^\\d+(?:\\.\\d+)?$/)\n .pipe(DecimalStringSchema);\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsChaseSchema = z\n .object({\n chid: PerpsChaseIdSchema,\n iid: PerpsInstrumentIdSchema,\n buy: z.boolean(),\n qty: DecimalSchema,\n fill: DecimalSchema,\n lim: DecimalSchema,\n max_dist: DecimalSchema,\n max_dist_bps: z.number().int().min(0).max(1000),\n po: z.boolean(),\n ro: z.boolean(),\n reference_price: DecimalSchema,\n reprices: z.number().int().nonnegative(),\n post_only_rejections: z.number().int().nonnegative(),\n cts: EpochMillisecondsSchema,\n coid: PerpsClientOrderIdSchema.optional(),\n oid: PerpsOrderIdSchema.optional(),\n })\n .transform((chase) => ({\n chaseId: chase.chid,\n instrumentId: chase.iid,\n side: chase.buy ? OrderSide.BUY : OrderSide.SELL,\n quantity: chase.qty,\n filledQuantity: chase.fill,\n limitPrice: chase.lim,\n maxDistance: chase.max_dist,\n maxDistanceBps: chase.max_dist_bps,\n postOnly: chase.po,\n reduceOnly: chase.ro,\n referencePrice: chase.reference_price,\n reprices: chase.reprices,\n postOnlyRejections: chase.post_only_rejections,\n createdAt: chase.cts,\n ...(chase.coid === undefined ? {} : { clientOrderId: chase.coid }),\n ...(chase.oid === undefined ? {} : { orderId: chase.oid }),\n }));\n/** A running chase. Zero bounds are unset; reference price is zero until a child first rests or fills.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsChase = z.infer<typeof PerpsChaseSchema>;\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const PerpsChaseAcceptedSchema = z\n .object({\n status: z.literal('ok'),\n chid: PerpsChaseIdSchema,\n ts: EpochMillisecondsSchema,\n })\n .transform((accepted) => ({\n chaseId: accepted.chid,\n timestamp: accepted.ts,\n }));\n/** Acceptance does not guarantee a child has rested or any quantity will fill.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsChaseAccepted = z.infer<typeof PerpsChaseAcceptedSchema>;\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const FetchPerpsChasesResponseSchema = z.array(PerpsChaseSchema);\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport const CreatePerpsChaseResponseSchema = z.union([\n PerpsChaseAcceptedSchema,\n z.object({ status: z.literal('err'), error: z.string().min(1) }),\n]);\n","import { z } from 'zod';\nimport {\n BaseUnitsSchema,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n EvmAddressSchema,\n TxHashSchema,\n} from '../shared';\nimport {\n PerpsAssetSchema,\n PerpsDataResponseSchema,\n PerpsDepositStatusSchema,\n PerpsInternalTransferDirectionSchema,\n PerpsInternalTransferIdSchema,\n PerpsInternalTransferTypeSchema,\n PerpsTxHashSchema,\n PerpsWithdrawalIdSchema,\n PerpsWithdrawalStatusSchema,\n} from './common';\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositSchema = z\n .object({\n hash: TxHashSchema,\n asset: PerpsAssetSchema,\n amount: BaseUnitsSchema,\n status: PerpsDepositStatusSchema,\n from: EvmAddressSchema,\n to: EvmAddressSchema,\n confirmations: z.number().int().nonnegative(),\n required_confirmations: z.number().int().nonnegative(),\n created_timestamp: EpochMillisecondsSchema,\n confirmed_timestamp: EpochMillisecondsSchema.optional(),\n })\n .transform((deposit) => ({\n hash: deposit.hash,\n asset: deposit.asset,\n amount: deposit.amount,\n status: deposit.status,\n from: deposit.from,\n to: deposit.to,\n confirmations: deposit.confirmations,\n requiredConfirmations: deposit.required_confirmations,\n createdTimestamp: deposit.created_timestamp,\n confirmedTimestamp: deposit.confirmed_timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDeposit = z.infer<typeof PerpsDepositSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsDepositsResponseSchema =\n PerpsDataResponseSchema(PerpsDepositSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositUpdateSchema = z\n .object({\n hash: PerpsTxHashSchema,\n asset: PerpsAssetSchema,\n amount: BaseUnitsSchema,\n status: PerpsDepositStatusSchema,\n })\n .transform((deposit) => ({\n hash: deposit.hash,\n asset: deposit.asset,\n amount: deposit.amount,\n status: deposit.status,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalSchema = z\n .object({\n withdraw_id: PerpsWithdrawalIdSchema,\n asset: PerpsAssetSchema,\n amount: BaseUnitsSchema,\n fee: DecimalStringSchema,\n status: PerpsWithdrawalStatusSchema,\n to: EvmAddressSchema,\n hash: PerpsTxHashSchema,\n confirmations: z.number().int().nonnegative(),\n required_confirmations: z.number().int().nonnegative(),\n created_timestamp: EpochMillisecondsSchema,\n confirmed_timestamp: EpochMillisecondsSchema.optional(),\n })\n .transform((withdrawal) => ({\n withdrawalId: withdrawal.withdraw_id,\n asset: withdrawal.asset,\n amount: withdrawal.amount,\n fee: withdrawal.fee,\n status: withdrawal.status,\n to: withdrawal.to,\n hash: withdrawal.hash,\n confirmations: withdrawal.confirmations,\n requiredConfirmations: withdrawal.required_confirmations,\n createdTimestamp: withdrawal.created_timestamp,\n confirmedTimestamp: withdrawal.confirmed_timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawal = z.infer<typeof PerpsWithdrawalSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsWithdrawalsResponseSchema = PerpsDataResponseSchema(\n PerpsWithdrawalSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawResponseSchema = z\n .object({\n status: z.enum(['ok', 'err']),\n withdraw_id: PerpsWithdrawalIdSchema.optional(),\n error: z.string().optional(),\n })\n .transform((response) => ({\n status: response.status,\n withdrawalId: response.withdraw_id,\n error: response.error,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalUpdateSchema = z\n .object({\n withdraw_id: PerpsWithdrawalIdSchema,\n asset: PerpsAssetSchema,\n amount: BaseUnitsSchema,\n fee: DecimalStringSchema,\n status: PerpsWithdrawalStatusSchema,\n to: EvmAddressSchema,\n hash: PerpsTxHashSchema,\n })\n .transform((withdrawal) => ({\n withdrawalId: withdrawal.withdraw_id,\n asset: withdrawal.asset,\n amount: withdrawal.amount,\n fee: withdrawal.fee,\n status: withdrawal.status,\n to: withdrawal.to,\n hash: withdrawal.hash,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInternalTransferSchema = z\n .object({\n transfer_id: PerpsInternalTransferIdSchema,\n type: PerpsInternalTransferTypeSchema,\n asset: PerpsAssetSchema,\n amount: DecimalStringSchema,\n direction: PerpsInternalTransferDirectionSchema,\n counterparty: EvmAddressSchema,\n label: z.string().optional(),\n created_timestamp: EpochMillisecondsSchema,\n })\n .transform((transfer) => ({\n transferId: transfer.transfer_id,\n type: transfer.type,\n asset: transfer.asset,\n amount: transfer.amount,\n direction: transfer.direction,\n counterparty: transfer.counterparty,\n label: transfer.label,\n createdTimestamp: transfer.created_timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInternalTransfer = z.infer<typeof PerpsInternalTransferSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsInternalTransfersResponseSchema = PerpsDataResponseSchema(\n PerpsInternalTransferSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInternalTransferResponseSchema = z\n .strictObject({\n status: z.literal('ok'),\n transfer_id: PerpsInternalTransferIdSchema,\n })\n .transform((response) => ({\n status: response.status,\n transferId: response.transfer_id,\n }));\n","import { z } from 'zod';\nimport {\n type DecimalString,\n DecimalStringSchema,\n type EpochMilliseconds,\n EpochMillisecondsSchema,\n} from '../shared';\nimport {\n PerpsAssetSchema,\n PerpsDataResponseSchema,\n PerpsFundingIntervalSchema,\n PerpsInstrumentCategorySchema,\n PerpsInstrumentIdSchema,\n PerpsInstrumentTypeSchema,\n PerpsSideSchema,\n PerpsTradeIdSchema,\n PerpsTxHashSchema,\n} from './common';\n\nexport {\n type PerpsFundingInterval,\n PerpsFundingIntervalSchema,\n} from './common';\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsRiskTierSchema = z.object({\n lowerBound: DecimalStringSchema,\n maxLeverage: z.number().int().positive(),\n});\n\nconst RawPerpsRiskTierSchema = z\n .object({\n lower_bound: DecimalStringSchema,\n max_leverage: z.number().int().positive(),\n })\n .transform((tier) => ({\n lowerBound: tier.lower_bound,\n maxLeverage: tier.max_leverage,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsRiskTier = z.infer<typeof PerpsRiskTierSchema>;\n\n/**\n * Permanent retirement record. Sequence is an exact nonnegative safe integer;\n * larger values are rejected. Timestamp is the cutoff for unapplied funding.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInstrumentSettlement = {\n sequence: number;\n timestamp: EpochMilliseconds;\n price: DecimalString;\n insuranceDebit: DecimalString;\n};\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInstrumentSettlementSchema = z\n .object({\n sequence: z.number().int().nonnegative(),\n timestamp: EpochMillisecondsSchema,\n price: DecimalStringSchema,\n insurance_debit: DecimalStringSchema,\n })\n .transform(\n (settlement): PerpsInstrumentSettlement => ({\n sequence: settlement.sequence,\n timestamp: settlement.timestamp,\n price: settlement.price,\n insuranceDebit: settlement.insurance_debit,\n }),\n );\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsInstrumentSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n instrument_type: PerpsInstrumentTypeSchema,\n category: PerpsInstrumentCategorySchema,\n symbol: z.string().min(1),\n display_symbol: z.string().optional(),\n close_only: z.boolean().default(false),\n settlement: PerpsInstrumentSettlementSchema.optional(),\n base_asset: PerpsAssetSchema,\n quote_asset: PerpsAssetSchema,\n funding_interval: PerpsFundingIntervalSchema,\n quantity_decimals: z.number().int().nonnegative(),\n price_decimals: z.number().int().nonnegative(),\n price_bounds: DecimalStringSchema,\n liquidation_fee: DecimalStringSchema,\n max_order_count: z.number().int().positive(),\n min_notional: DecimalStringSchema,\n max_market_notional: DecimalStringSchema,\n max_limit_notional: DecimalStringSchema,\n max_leverage: z.number().int().positive(),\n isolated_only: z.boolean(),\n risk_tiers: z.array(RawPerpsRiskTierSchema),\n ui_live_time: z\n .number()\n .int()\n .min(0)\n .max(253_402_300_799_000)\n .pipe(EpochMillisecondsSchema)\n .nullable(),\n logo: z.object({ light: z.string(), dark: z.string() }).optional(),\n })\n .transform((instrument) => ({\n id: instrument.instrument_id,\n category: instrument.category,\n symbol: instrument.symbol,\n /** Presentation label; canonical symbol and instrument ID remain unchanged. */\n displaySymbol: instrument.display_symbol,\n /** Whether new orders must reduce exposure; false for older responses. */\n closeOnly: instrument.close_only,\n /** Present after permanent retirement; trading cannot resume. */\n settlement: instrument.settlement,\n baseAsset: instrument.base_asset,\n quoteAsset: instrument.quote_asset,\n fundingInterval: instrument.funding_interval,\n quantityDecimals: instrument.quantity_decimals,\n priceDecimals: instrument.price_decimals,\n priceBounds: instrument.price_bounds,\n liquidationFee: instrument.liquidation_fee,\n maxOrderCount: instrument.max_order_count,\n minNotional: instrument.min_notional,\n maxMarketNotional: instrument.max_market_notional,\n maxLimitNotional: instrument.max_limit_notional,\n maxLeverage: instrument.max_leverage,\n isolatedOnly: instrument.isolated_only,\n riskTiers: instrument.risk_tiers,\n /** Advisory visibility time; null means hidden. Does not restrict trading. */\n uiLiveTime: instrument.ui_live_time,\n /** Immutable logo URLs for light and dark themes; absent until uploaded. */\n logo: instrument.logo,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsInstrument = z.infer<typeof PerpsInstrumentSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsInstrumentsResponseSchema = z.array(\n PerpsInstrumentSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTickerSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n symbol: z.string().min(1),\n index_price: DecimalStringSchema,\n mark_price: DecimalStringSchema,\n last_price: DecimalStringSchema,\n mid_price: DecimalStringSchema,\n open_interest: DecimalStringSchema,\n funding_rate: DecimalStringSchema,\n next_funding: EpochMillisecondsSchema,\n timestamp: EpochMillisecondsSchema.optional(),\n })\n .transform((ticker) => ({\n instrumentId: ticker.instrument_id,\n symbol: ticker.symbol,\n indexPrice: ticker.index_price,\n markPrice: ticker.mark_price,\n lastPrice: ticker.last_price,\n midPrice: ticker.mid_price,\n openInterest: ticker.open_interest,\n fundingRate: ticker.funding_rate,\n nextFunding: ticker.next_funding,\n timestamp: ticker.timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTicker = z.infer<typeof PerpsTickerSchema> & {\n openPrice?: DecimalString;\n volume24h?: DecimalString;\n};\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsTickersResponseSchema = z.array(PerpsTickerSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTickerEntrySchema = z\n .object({\n iid: PerpsInstrumentIdSchema,\n idx: DecimalStringSchema,\n mark: DecimalStringSchema,\n last: DecimalStringSchema,\n mid: DecimalStringSchema,\n oi: DecimalStringSchema,\n fr: DecimalStringSchema,\n nxf: EpochMillisecondsSchema,\n })\n .transform((ticker) => ({\n instrumentId: ticker.iid,\n indexPrice: ticker.idx,\n markPrice: ticker.mark,\n lastPrice: ticker.last,\n midPrice: ticker.mid,\n openInterest: ticker.oi,\n fundingRate: ticker.fr,\n nextFunding: ticker.nxf,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCandleSchema = z\n .tuple([\n EpochMillisecondsSchema,\n DecimalStringSchema,\n DecimalStringSchema,\n DecimalStringSchema,\n DecimalStringSchema,\n DecimalStringSchema,\n z.number().int().nonnegative(),\n ])\n .transform(([timestamp, open, high, low, close, volume, trades]) => ({\n timestamp,\n open,\n high,\n low,\n close,\n volume,\n trades,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCandle = z.infer<typeof PerpsCandleSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsStatisticSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n symbol: z.string().min(1).optional(),\n volume: DecimalStringSchema,\n open_price: DecimalStringSchema,\n klines: z.array(PerpsCandleSchema),\n })\n .transform((statistic) => ({\n instrumentId: statistic.instrument_id,\n symbol: statistic.symbol,\n volume: statistic.volume,\n openPrice: statistic.open_price,\n klines: statistic.klines,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsStatistic = z.infer<typeof PerpsStatisticSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsStatisticsResponseSchema = z.array(PerpsStatisticSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsStatisticUpdateSchema = z\n .object({\n iid: PerpsInstrumentIdSchema,\n vol: DecimalStringSchema,\n open: DecimalStringSchema,\n klines: z.array(PerpsCandleSchema),\n })\n .transform((statistic) => ({\n instrumentId: statistic.iid,\n volume: statistic.vol,\n openPrice: statistic.open,\n klines: statistic.klines,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookLevelSchema = z\n .tuple([DecimalStringSchema, DecimalStringSchema])\n .transform(([price, quantity]) => ({ price, quantity }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBookLevel = z.infer<typeof PerpsBookLevelSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookSchema = z\n .object({\n instrument_id: PerpsInstrumentIdSchema,\n bids: z.array(PerpsBookLevelSchema),\n asks: z.array(PerpsBookLevelSchema),\n timestamp: EpochMillisecondsSchema,\n sequence: z.number().int().nonnegative(),\n })\n .transform((book) => ({\n instrumentId: book.instrument_id,\n bids: book.bids,\n asks: book.asks,\n timestamp: book.timestamp,\n sequence: book.sequence,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBook = z.infer<typeof PerpsBookSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookUpdateSchema = z\n .object({\n b: z.array(PerpsBookLevelSchema),\n a: z.array(PerpsBookLevelSchema),\n })\n .transform((book) => ({\n bids: book.b,\n asks: book.a,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBboSchema = z.object({\n instrumentId: PerpsInstrumentIdSchema,\n bidPrice: DecimalStringSchema,\n bidQuantity: DecimalStringSchema,\n askPrice: DecimalStringSchema,\n askQuantity: DecimalStringSchema,\n timestamp: EpochMillisecondsSchema.optional(),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBbo = z.infer<typeof PerpsBboSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBboUpdateSchema = z\n .object({\n iid: PerpsInstrumentIdSchema,\n bp: DecimalStringSchema,\n bq: DecimalStringSchema,\n ap: DecimalStringSchema,\n aq: DecimalStringSchema,\n })\n .transform((bbo) => ({\n instrumentId: bbo.iid,\n bidPrice: bbo.bp,\n bidQuantity: bbo.bq,\n askPrice: bbo.ap,\n askQuantity: bbo.aq,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPublicTradeSchema = z\n .object({\n trade_id: PerpsTradeIdSchema,\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n settlement: z.boolean().default(false),\n price: DecimalStringSchema,\n quantity: DecimalStringSchema,\n timestamp: EpochMillisecondsSchema,\n hash: PerpsTxHashSchema,\n })\n .transform((trade) => ({\n tradeId: trade.trade_id,\n instrumentId: trade.instrument_id,\n side: trade.side,\n /** True for a position close at instrument settlement; false on older responses. */\n settlement: trade.settlement,\n price: trade.price,\n quantity: trade.quantity,\n timestamp: trade.timestamp,\n hash: trade.hash,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPublicTrade = z.infer<typeof PerpsPublicTradeSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPublicTradeUpdateSchema = z\n .object({\n tid: PerpsTradeIdSchema,\n iid: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n settlement: z.boolean().default(false),\n p: DecimalStringSchema,\n qty: DecimalStringSchema,\n ts: EpochMillisecondsSchema,\n hash: PerpsTxHashSchema,\n })\n .transform((trade) => ({\n tradeId: trade.tid,\n instrumentId: trade.iid,\n side: trade.side,\n /** True for a position close at instrument settlement; false on older responses. */\n settlement: trade.settlement,\n price: trade.p,\n quantity: trade.qty,\n timestamp: trade.ts,\n hash: trade.hash,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsTradesResponseSchema = PerpsDataResponseSchema(\n PerpsPublicTradeSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingRateSchema = z\n .object({\n funding_rate: DecimalStringSchema,\n timestamp: EpochMillisecondsSchema,\n })\n .transform((funding) => ({\n fundingRate: funding.funding_rate,\n timestamp: funding.timestamp,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingRate = z.infer<typeof PerpsFundingRateSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsFundingHistoryResponseSchema = PerpsDataResponseSchema(\n PerpsFundingRateSchema,\n);\n\nexport const PerpsFeeTierSchema = z\n .object({\n min_volume_30d: DecimalStringSchema,\n taker_fee_rate: DecimalStringSchema,\n maker_fee_rate: DecimalStringSchema,\n })\n .transform((tier) => ({\n minVolume30d: tier.min_volume_30d,\n takerFeeRate: tier.taker_fee_rate,\n makerFeeRate: tier.maker_fee_rate,\n }));\n\nexport type PerpsFeeTier = z.infer<typeof PerpsFeeTierSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFeeScheduleEntrySchema = z\n .object({\n instrument_type: PerpsInstrumentTypeSchema,\n category: PerpsInstrumentCategorySchema,\n taker_fee_rate: DecimalStringSchema,\n maker_fee_rate: DecimalStringSchema,\n tiers: z.array(PerpsFeeTierSchema),\n })\n .transform((fee) => ({\n category: fee.category,\n takerFeeRate: fee.taker_fee_rate,\n makerFeeRate: fee.maker_fee_rate,\n tiers: fee.tiers,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFeeScheduleEntry = z.infer<typeof PerpsFeeScheduleEntrySchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFeesInfoSchema = z\n .object({\n fee_schedule: z.array(PerpsFeeScheduleEntrySchema),\n })\n .transform((fees) => ({\n feeSchedule: fees.fee_schedule,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFeesInfo = z.infer<typeof PerpsFeesInfoSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsFeesResponseSchema = PerpsFeesInfoSchema;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsCandlesResponseSchema =\n PerpsDataResponseSchema(PerpsCandleSchema);\n","import { z } from 'zod';\nimport { DecimalStringSchema, EpochMillisecondsSchema } from '../shared';\nimport {\n PerpsInstrumentIdSchema,\n PerpsNotificationIdSchema,\n PerpsSideSchema,\n} from './common';\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsNotificationType {\n PositionOpened = 'position_opened',\n PositionIncreased = 'position_increased',\n PositionReduced = 'position_reduced',\n PositionClosed = 'position_closed',\n LimitOrderCanceled = 'limit_order_canceled',\n LiquidationWarning = 'liquidation_warning',\n PositionLiquidated = 'position_liquidated',\n /** @experimental This API may change in a breaking way in any release, including patch releases. */\n PositionDeleveraged = 'position_deleveraged',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationTypeSchema = z.enum(PerpsNotificationType);\n\n/**\n * Kind of order whose execution produced a fill-driven position notification.\n * A TP/SL-triggered order reports the trigger that fired it whether it\n * aggressed or rested; otherwise an aggressor submitted without a limit price\n * is `market` and everything else, including a maker's resting order, is\n * `limit`.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsNotificationOrderType {\n Market = 'market',\n Limit = 'limit',\n TakeProfit = 'take_profit',\n StopLoss = 'stop_loss',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationOrderTypeSchema = z.enum(\n PerpsNotificationOrderType,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsMarginType {\n Cross = 'cross',\n Isolated = 'isolated',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsMarginTypeSchema = z.enum(PerpsMarginType);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPositionChangeNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.enum([\n PerpsNotificationType.PositionOpened,\n PerpsNotificationType.PositionIncreased,\n PerpsNotificationType.PositionReduced,\n ]),\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n size: DecimalStringSchema,\n avg_price: DecimalStringSchema,\n leverage: z.number().int().positive(),\n order_type: PerpsNotificationOrderTypeSchema.optional(),\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n instrumentId: notification.instrument_id,\n side: notification.side,\n size: notification.size,\n avgPrice: notification.avg_price,\n leverage: notification.leverage,\n orderType: notification.order_type,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPositionChangeNotification = z.infer<\n typeof PerpsPositionChangeNotificationSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPositionClosedNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.PositionClosed),\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n size: DecimalStringSchema,\n avg_price: DecimalStringSchema,\n pnl: DecimalStringSchema,\n order_type: PerpsNotificationOrderTypeSchema.optional(),\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n instrumentId: notification.instrument_id,\n side: notification.side,\n size: notification.size,\n avgPrice: notification.avg_price,\n pnl: notification.pnl,\n orderType: notification.order_type,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPositionClosedNotification = z.infer<\n typeof PerpsPositionClosedNotificationSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsLimitOrderCanceledNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.LimitOrderCanceled),\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n size: DecimalStringSchema,\n price: DecimalStringSchema,\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n instrumentId: notification.instrument_id,\n side: notification.side,\n size: notification.size,\n price: notification.price,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsLimitOrderCanceledNotification = z.infer<\n typeof PerpsLimitOrderCanceledNotificationSchema\n>;\n\nconst PerpsIsolatedLiquidationWarningNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.LiquidationWarning),\n margin_type: z.literal(PerpsMarginType.Isolated),\n instrument_id: PerpsInstrumentIdSchema,\n mark_price: DecimalStringSchema,\n liq_price: DecimalStringSchema,\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n marginType: notification.margin_type,\n instrumentId: notification.instrument_id,\n markPrice: notification.mark_price,\n liquidationPrice: notification.liq_price,\n }));\n\nconst PerpsCrossLiquidationWarningNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.LiquidationWarning),\n margin_type: z.literal(PerpsMarginType.Cross),\n instrument_id: z.null(),\n mark_price: DecimalStringSchema,\n affected_instruments: z.array(PerpsInstrumentIdSchema),\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n marginType: notification.margin_type,\n markPrice: notification.mark_price,\n affectedInstruments: notification.affected_instruments,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsLiquidationWarningNotificationSchema = z.discriminatedUnion(\n 'margin_type',\n [\n PerpsIsolatedLiquidationWarningNotificationSchema,\n PerpsCrossLiquidationWarningNotificationSchema,\n ],\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsLiquidationWarningNotification = z.infer<\n typeof PerpsLiquidationWarningNotificationSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPositionLiquidatedNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.PositionLiquidated),\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n size_closed: DecimalStringSchema,\n pnl: DecimalStringSchema.nullable(),\n margin_type: PerpsMarginTypeSchema,\n via_backstop: z.boolean(),\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n instrumentId: notification.instrument_id,\n side: notification.side,\n sizeClosed: notification.size_closed,\n pnl: notification.pnl,\n marginType: notification.margin_type,\n viaBackstop: notification.via_backstop,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPositionLiquidatedNotification = z.infer<\n typeof PerpsPositionLiquidatedNotificationSchema\n>;\n\n/**\n * A profitable position was reduced or closed by auto-deleveraging.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPositionDeleveragedNotificationSchema = z\n .object({\n id: PerpsNotificationIdSchema,\n type: z.literal(PerpsNotificationType.PositionDeleveraged),\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n size_closed: DecimalStringSchema,\n price: DecimalStringSchema,\n pnl: DecimalStringSchema,\n margin_type: PerpsMarginTypeSchema,\n })\n .transform((notification) => ({\n id: notification.id,\n type: notification.type,\n instrumentId: notification.instrument_id,\n side: notification.side,\n sizeClosed: notification.size_closed,\n price: notification.price,\n pnl: notification.pnl,\n marginType: notification.margin_type,\n }));\n\n/**\n * A profitable position was reduced or closed by auto-deleveraging.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPositionDeleveragedNotification = z.infer<\n typeof PerpsPositionDeleveragedNotificationSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationSchema = z.discriminatedUnion('type', [\n PerpsPositionChangeNotificationSchema,\n PerpsPositionClosedNotificationSchema,\n PerpsLimitOrderCanceledNotificationSchema,\n PerpsLiquidationWarningNotificationSchema,\n PerpsPositionLiquidatedNotificationSchema,\n PerpsPositionDeleveragedNotificationSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotification = z.infer<typeof PerpsNotificationSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationEntrySchema = z\n .object({\n notification: PerpsNotificationSchema,\n read_at: EpochMillisecondsSchema.nullable(),\n ts: EpochMillisecondsSchema,\n })\n .transform((entry) => ({\n notification: entry.notification,\n readAt: entry.read_at,\n timestamp: entry.ts,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotificationEntry = z.infer<\n typeof PerpsNotificationEntrySchema\n>;\n\n// Probes only the discriminator so list entries carrying notification types\n// unknown to this SDK version can be skipped without failing the page read.\nconst PerpsNotificationEntryTypeProbeSchema = z.object({\n notification: z.object({ type: PerpsNotificationTypeSchema }),\n});\n\nconst PerpsNotificationEntriesSchema = z\n .array(z.unknown())\n .transform((items, ctx) => {\n const entries: PerpsNotificationEntry[] = [];\n items.forEach((item, index) => {\n if (!PerpsNotificationEntryTypeProbeSchema.safeParse(item).success) {\n return;\n }\n const entry = PerpsNotificationEntrySchema.safeParse(item);\n if (entry.success) {\n entries.push(entry.data);\n return;\n }\n for (const issue of entry.error.issues) {\n ctx.addIssue({ ...issue, path: [index, ...issue.path] });\n }\n });\n return entries;\n });\n\n/**\n * Entries with notification types unknown to this SDK version are omitted\n * from `items` so newly introduced notification kinds cannot fail the read;\n * recognized types still validate strictly.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsNotificationsResponseSchema = z.object({\n items: PerpsNotificationEntriesSchema,\n unread: z.number().int().nonnegative(),\n durable_source_seq: z.number().int().nonnegative(),\n has_more: z.boolean(),\n next_cursor: z.string().nullable(),\n});\n\n/**\n * Projection of the notifications list response for unread-count reads.\n * Deliberately leaves `items` unvalidated so notification shapes unknown to\n * this SDK version cannot fail a read that only needs the counter.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsUnreadNotificationsCountResponseSchema = z.object({\n unread: z.number().int().nonnegative(),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const MarkPerpsNotificationsReadResponseSchema = z.object({\n status: z.enum(['ok', 'err']),\n error: z.string().optional(),\n});\n","import { z } from 'zod';\nimport {\n type DecimalString,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n OrderSide,\n toDecimalString,\n} from '../shared';\nimport { PerpsBuilderTermsSchema } from './builders';\nimport { PerpsChaseIdSchema } from './chases';\nimport {\n PerpsAssetSchema,\n PerpsClientOrderIdSchema,\n PerpsDataResponseSchema,\n PerpsInstrumentIdSchema,\n PerpsOrderIdSchema,\n PerpsSideSchema,\n PerpsTimeInForceSchema,\n PerpsTpSlKindSchema,\n PerpsTpSlScopeSchema,\n PerpsTradeIdSchema,\n PerpsTxHashSchema,\n} from './common';\n\nconst FeeDecimalSchema = z\n .string()\n .regex(/^-?\\d+(?:\\.\\d+)?$/)\n .pipe(DecimalStringSchema);\n\n// Fees can include rebates. Align decimal scales before adding so large values\n// and fractions never pass through floating-point arithmetic.\nfunction totalFee(\n exchangeFee: DecimalString,\n builderFee: DecimalString,\n): DecimalString {\n const [exchangeWhole = '0', exchangeFraction = ''] = exchangeFee.split('.');\n const [builderWhole = '0', builderFraction = ''] = builderFee.split('.');\n const scale = Math.max(exchangeFraction.length, builderFraction.length);\n const exchangeUnits = BigInt(\n `${exchangeWhole}${exchangeFraction.padEnd(scale, '0')}`,\n );\n const builderUnits = BigInt(\n `${builderWhole}${builderFraction.padEnd(scale, '0')}`,\n );\n const sum = exchangeUnits + builderUnits;\n const digits = (sum < 0n ? -sum : sum).toString().padStart(scale + 1, '0');\n const fraction = scale === 0 ? '' : digits.slice(-scale).replace(/0+$/, '');\n const whole = scale === 0 ? digits : digits.slice(0, -scale);\n return toDecimalString(\n `${sum < 0n ? '-' : ''}${whole}${fraction ? `.${fraction}` : ''}`,\n );\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsOrderStatus {\n Accepted = 'accepted',\n Open = 'open',\n Partial = 'partial',\n Filled = 'filled',\n Cancelled = 'cancelled',\n AutoCancelled = 'auto_cancelled',\n PostOnlyRejected = 'post_only_rejected',\n FokUnfilled = 'fok_unfilled',\n IocNoFill = 'ioc_no_fill',\n IocExpired = 'ioc_expired',\n StpCancelled = 'stp_cancelled',\n ZeroQuantity = 'zero_quantity',\n DuplicateOrder = 'duplicate_order',\n OrderNotFound = 'order_not_found',\n OrderAlreadyTerminal = 'order_already_terminal',\n ReduceOnlyInvalid = 'reduce_only_invalid',\n ReduceOnlyExpired = 'reduce_only_expired',\n OrderExpired = 'order_expired',\n SweepCapExceeded = 'sweep_cap_exceeded',\n RestingOrderLimitExceeded = 'resting_order_limit_exceeded',\n BelowMinNotional = 'below_min_notional',\n InstrumentDisabled = 'instrument_disabled',\n InstrumentCloseOnly = 'instrument_close_only',\n InstrumentSettled = 'instrument_settled',\n InsufficientMarginAtFill = 'insufficient_margin_at_fill',\n MarkPriceUnavailable = 'mark_price_unavailable',\n Untriggered = 'untriggered',\n Armed = 'armed',\n Triggered = 'triggered',\n ParentCancelled = 'parent_cancelled',\n PositionClosed = 'position_closed',\n PositionFlipped = 'position_flipped',\n ReduceOnlyInvalidAtTrigger = 'reduce_only_invalid_at_trigger',\n Expired = 'expired',\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlOrderFieldsSchema = z\n .object({\n kind: PerpsTpSlKindSchema,\n scope: PerpsTpSlScopeSchema,\n trp: DecimalStringSchema,\n parent_oid: PerpsOrderIdSchema.optional(),\n armed_qty: DecimalStringSchema.optional(),\n slip_bps: z.number().int().nonnegative().optional(),\n trail_bps: z.number().int().nonnegative().optional(),\n act: DecimalStringSchema.optional(),\n trail_anchor: DecimalStringSchema.optional(),\n trail_active: z.boolean().optional(),\n })\n .transform((fields) => ({\n kind: fields.kind,\n scope: fields.scope,\n triggerPrice: fields.trp,\n parentOrderId: fields.parent_oid,\n armedQuantity: fields.armed_qty,\n slippageBps: fields.slip_bps,\n trailingBps: fields.trail_bps,\n activationPrice: fields.act,\n trailingAnchor: fields.trail_anchor,\n trailingActive: fields.trail_active,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTpSlOrderFields = z.infer<typeof PerpsTpSlOrderFieldsSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderStatusSchema = z.enum(PerpsOrderStatus);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCommandStatusSchema = z.enum(['ok', 'err']);\n\n/**\n * Known rejection identifiers returned when a Perps order cancellation fails.\n *\n * The service evolves this set independently of released clients, so\n * cancellation parsing accepts unknown identifiers as plain strings; see\n * {@link PerpsCancelOrderErrorCode}.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsKnownCancelOrderErrorCode {\n OrderUnknown = 'order_unknown',\n OrderNotInOrderbook = 'order_not_in_orderbook',\n OrderInFlight = 'order_in_flight',\n OrderNotPendingEngine = 'order_not_pending_engine',\n OrderNotFound = 'order_not_found',\n}\n\n/**\n * A Perps order cancellation rejection identifier. Known identifiers are\n * enumerated in {@link PerpsKnownCancelOrderErrorCode}; newly introduced\n * identifiers flow through as plain strings so they can be handled before a\n * client release that enumerates them.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCancelOrderErrorCode =\n | PerpsKnownCancelOrderErrorCode\n | (string & {});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCancelOrderErrorCodeSchema = z\n .string()\n .min(1)\n .transform((value): PerpsCancelOrderErrorCode => value);\n\nconst PerpsAckErrorSchema = z\n .string()\n .min(1)\n .optional()\n .transform(perpsAckError);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCommandAckSchema = z.discriminatedUnion('status', [\n z.object({ status: z.literal('ok') }),\n z.object({\n status: z.literal('err'),\n error: PerpsAckErrorSchema,\n }),\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCommandAck = z.infer<typeof PerpsCommandAckSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPostOrderAckSchema = z\n .object({\n status: PerpsCommandStatusSchema,\n oid: PerpsOrderIdSchema.optional(),\n coid: PerpsClientOrderIdSchema.optional(),\n error: z.string().optional(),\n builder: PerpsBuilderTermsSchema.optional(),\n })\n .transform((ack, ctx) => {\n if (ack.status === 'err') {\n return {\n status: 'err' as const,\n error: perpsAckError(ack.error),\n clientOrderId: ack.coid,\n };\n }\n\n if (ack.oid === undefined) {\n ctx.addIssue({\n code: 'custom',\n message: 'Expected Perps place order acknowledgement order id.',\n });\n return z.NEVER;\n }\n\n return {\n status: 'ok' as const,\n orderId: ack.oid,\n clientOrderId: ack.coid,\n ...(ack.builder === undefined ? {} : { builder: ack.builder }),\n };\n });\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPostOrderAck = z.infer<typeof PerpsPostOrderAckSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCancelOrderResultSchema = z\n .discriminatedUnion('status', [\n z.object({\n status: z.literal('ok'),\n oid: PerpsOrderIdSchema.optional(),\n coid: PerpsClientOrderIdSchema.optional(),\n }),\n z.object({\n status: z.literal('err'),\n error: PerpsCancelOrderErrorCodeSchema,\n oid: PerpsOrderIdSchema.optional(),\n coid: PerpsClientOrderIdSchema.optional(),\n }),\n ])\n .transform((ack) => {\n if (ack.status === 'err') {\n return {\n status: 'err' as const,\n error: ack.error,\n orderId: ack.oid,\n clientOrderId: ack.coid,\n };\n }\n\n return {\n status: 'ok' as const,\n orderId: ack.oid,\n clientOrderId: ack.coid,\n };\n });\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCancelOrderResult = z.infer<\n typeof PerpsCancelOrderResultSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCancelAllOrdersResponseSchema = z.object({\n status: z.literal('ok'),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCancelAllOrdersResponse = z.infer<\n typeof PerpsCancelAllOrdersResponseSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsUpdateLeverageResultSchema = z\n .object({\n status: z.literal('ok'),\n instrument_id: PerpsInstrumentIdSchema,\n leverage: z.number().int().positive(),\n cross: z.boolean(),\n })\n .transform((result) => ({\n status: result.status,\n instrumentId: result.instrument_id,\n leverage: result.leverage,\n crossMargin: result.cross,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsUpdateLeverageResult = z.infer<\n typeof PerpsUpdateLeverageResultSchema\n>;\n\n/**\n * A rejected item in a batch Perps leverage update.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsUpdateLeverageRejectionSchema = z\n .object({\n status: z.literal('err'),\n instrument_id: PerpsInstrumentIdSchema,\n error: z.string().optional(),\n })\n .transform((result) => ({\n status: result.status,\n instrumentId: result.instrument_id,\n error: perpsAckError(result.error),\n }));\n\n/**\n * A rejected item in a batch Perps leverage update.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsUpdateLeverageRejection = z.infer<\n typeof PerpsUpdateLeverageRejectionSchema\n>;\n\n/**\n * The result for one item in a batch Perps leverage update.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsUpdateLeverageBatchResultSchema = z.union([\n PerpsUpdateLeverageResultSchema,\n PerpsUpdateLeverageRejectionSchema,\n]);\n\n/**\n * The result for one item in a batch Perps leverage update.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsUpdateLeverageBatchResult = z.infer<\n typeof PerpsUpdateLeverageBatchResultSchema\n>;\n\nfunction perpsAckError(error: string | undefined): string {\n return error ?? 'Perps command was rejected.';\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderSchema = z\n .object({\n order_id: PerpsOrderIdSchema,\n instrument_id: PerpsInstrumentIdSchema,\n buy: z.boolean(),\n price: DecimalStringSchema,\n quantity: DecimalStringSchema,\n tif: PerpsTimeInForceSchema,\n post_only: z.boolean(),\n ro: z.boolean(),\n status: PerpsOrderStatusSchema,\n resting_quantity: DecimalStringSchema,\n filled_quantity: DecimalStringSchema,\n created_timestamp: EpochMillisecondsSchema,\n updated_timestamp: EpochMillisecondsSchema,\n client_order_id: z.string().optional(),\n chid: PerpsChaseIdSchema.optional(),\n tpsl: PerpsTpSlOrderFieldsSchema.nullish(),\n builder: PerpsBuilderTermsSchema.optional(),\n })\n .transform((order) => ({\n id: order.order_id,\n instrumentId: order.instrument_id,\n side: order.buy ? OrderSide.BUY : OrderSide.SELL,\n price: order.price,\n quantity: order.quantity,\n timeInForce: order.tif,\n postOnly: order.post_only,\n reduceOnly: order.ro,\n status: order.status,\n restingQuantity: order.resting_quantity,\n filledQuantity: order.filled_quantity,\n createdTimestamp: order.created_timestamp,\n updatedTimestamp: order.updated_timestamp,\n clientOrderId: order.client_order_id,\n ...(order.chid === undefined ? {} : { chaseId: order.chid }),\n tpSl: order.tpsl ?? undefined,\n ...(order.builder === undefined ? {} : { builder: order.builder }),\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsOrder = z.infer<typeof PerpsOrderSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsOrdersResponseSchema = z.array(PerpsOrderSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const FetchPerpsOpenOrdersResponseSchema = z.array(PerpsOrderSchema);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderUpdateSchema = z\n .object({\n oid: PerpsOrderIdSchema,\n iid: PerpsInstrumentIdSchema,\n buy: z.boolean(),\n p: DecimalStringSchema,\n qty: DecimalStringSchema,\n tif: PerpsTimeInForceSchema,\n po: z.boolean(),\n ro: z.boolean(),\n status: PerpsOrderStatusSchema,\n rest: DecimalStringSchema,\n fill: DecimalStringSchema,\n cts: EpochMillisecondsSchema,\n uts: EpochMillisecondsSchema,\n coid: z.string().optional(),\n chid: PerpsChaseIdSchema.optional(),\n tpsl: PerpsTpSlOrderFieldsSchema.nullish(),\n builder: PerpsBuilderTermsSchema.optional(),\n })\n .transform((order) => ({\n id: order.oid,\n instrumentId: order.iid,\n side: order.buy ? OrderSide.BUY : OrderSide.SELL,\n price: order.p,\n quantity: order.qty,\n timeInForce: order.tif,\n postOnly: order.po,\n reduceOnly: order.ro,\n status: order.status,\n restingQuantity: order.rest,\n filledQuantity: order.fill,\n createdTimestamp: order.cts,\n updatedTimestamp: order.uts,\n clientOrderId: order.coid,\n ...(order.chid === undefined ? {} : { chaseId: order.chid }),\n tpSl: order.tpsl ?? undefined,\n ...(order.builder === undefined ? {} : { builder: order.builder }),\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport enum PerpsLiquidationMethod {\n Market = 'market',\n Backstop = 'backstop',\n}\n\n/**\n * Liquidation command context, distinct from the fill's accounting price.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsLiquidationDetailsSchema = z\n .object({\n liquidated_user: z.string().optional(),\n mark: z\n .string()\n .regex(/^-?\\d+(?:\\.\\d+)?$/)\n .pipe(DecimalStringSchema),\n method: z.enum(PerpsLiquidationMethod),\n })\n .transform((details) => ({\n ...(details.liquidated_user === undefined\n ? {}\n : { liquidatedUser: details.liquidated_user }),\n mark: details.mark,\n method: details.method,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsLiquidationDetails = z.infer<\n typeof PerpsLiquidationDetailsSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountFillSchema = z\n .object({\n trade_id: PerpsTradeIdSchema,\n order_id: PerpsOrderIdSchema,\n instrument_id: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n settlement: z.boolean().default(false),\n price: DecimalStringSchema,\n quantity: DecimalStringSchema,\n taker: z.boolean(),\n fee: FeeDecimalSchema,\n builder_fee: FeeDecimalSchema.optional(),\n total_fee: FeeDecimalSchema.optional(),\n builder: PerpsBuilderTermsSchema.optional(),\n fee_asset: PerpsAssetSchema,\n previous_size: DecimalStringSchema,\n previous_entry_price: DecimalStringSchema,\n pnl: DecimalStringSchema,\n liquidation: z.boolean(),\n adl: z.boolean(),\n liquidation_details: PerpsLiquidationDetailsSchema.optional(),\n timestamp: EpochMillisecondsSchema,\n hash: PerpsTxHashSchema,\n })\n .transform((fill) => ({\n tradeId: fill.trade_id,\n orderId: fill.order_id,\n instrumentId: fill.instrument_id,\n side: fill.side,\n /** True for a position close at instrument settlement; false on older responses. */\n settlement: fill.settlement,\n price: fill.price,\n quantity: fill.quantity,\n taker: fill.taker,\n /** Exchange fee for this fill, excluding any builder fee. */\n fee: fill.fee,\n /** Builder fee charged in addition to `fee`; zero without one. */\n builderFee: fill.builder_fee ?? toDecimalString('0'),\n /** Sum of `fee` and `builderFee`. */\n totalFee:\n fill.total_fee ??\n totalFee(fill.fee, fill.builder_fee ?? toDecimalString('0')),\n ...(fill.builder === undefined ? {} : { builder: fill.builder }),\n feeAsset: fill.fee_asset,\n previousSize: fill.previous_size,\n previousEntryPrice: fill.previous_entry_price,\n pnl: fill.pnl,\n liquidation: fill.liquidation,\n /** Whether this fill came from auto-deleveraging. */\n adl: fill.adl,\n /** Present for backstop liquidations; ordinary order-book liquidations omit it. */\n liquidationDetails: fill.liquidation_details,\n timestamp: fill.timestamp,\n hash: fill.hash,\n }));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsAccountFill = z.infer<typeof PerpsAccountFillSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const ListPerpsFillsResponseSchema = PerpsDataResponseSchema(\n PerpsAccountFillSchema,\n);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsAccountFillUpdateSchema = z\n .object({\n tid: PerpsTradeIdSchema,\n oid: PerpsOrderIdSchema,\n iid: PerpsInstrumentIdSchema,\n side: PerpsSideSchema,\n settlement: z.boolean().default(false),\n p: DecimalStringSchema,\n qty: DecimalStringSchema,\n taker: z.boolean(),\n fee: FeeDecimalSchema,\n builder_fee: FeeDecimalSchema.optional(),\n total_fee: FeeDecimalSchema.optional(),\n builder: PerpsBuilderTermsSchema.optional(),\n fea: PerpsAssetSchema,\n psz: DecimalStringSchema,\n pep: DecimalStringSchema,\n pnl: DecimalStringSchema,\n liq: z.boolean(),\n adl: z.boolean(),\n liquidation_details: PerpsLiquidationDetailsSchema.optional(),\n ts: EpochMillisecondsSchema,\n coid: z.string().optional(),\n })\n .transform((fill) => ({\n tradeId: fill.tid,\n orderId: fill.oid,\n instrumentId: fill.iid,\n side: fill.side,\n /** True for a position close at instrument settlement; false on older responses. */\n settlement: fill.settlement,\n price: fill.p,\n quantity: fill.qty,\n taker: fill.taker,\n /** Exchange fee for this fill, excluding any builder fee. */\n fee: fill.fee,\n /** Builder fee charged in addition to `fee`; zero without one. */\n builderFee: fill.builder_fee ?? toDecimalString('0'),\n /** Sum of `fee` and `builderFee`. */\n totalFee:\n fill.total_fee ??\n totalFee(fill.fee, fill.builder_fee ?? toDecimalString('0')),\n ...(fill.builder === undefined ? {} : { builder: fill.builder }),\n feeAsset: fill.fea,\n previousSize: fill.psz,\n previousEntryPrice: fill.pep,\n pnl: fill.pnl,\n liquidation: fill.liq,\n /** Whether this fill came from auto-deleveraging. */\n adl: fill.adl,\n /** Present for backstop liquidations; ordinary order-book liquidations omit it. */\n liquidationDetails: fill.liquidation_details,\n timestamp: fill.ts,\n clientOrderId: fill.coid,\n }));\n"]}