@@ -116,6 +116,10 @@ const BaseUnitAmountSchema = z.preprocess((value) => {
116116 return value ;
117117} , z . bigint ( ) ) ;
118118
119+ const Base10IntegerStringSchema = z
120+ . string ( )
121+ . regex ( / ^ \d + $ / u, 'Must be a base-10 integer string' ) ;
122+
119123// Definition for plugin with mapped entities already in place
120124export const CreatePerpetualsPositionRequestSchema = z . object ( {
121125 amount : BaseUnitAmountSchema ,
@@ -170,18 +174,175 @@ export type GetPerpetualsMarketsOrdersResponse = z.infer<
170174 typeof GetPerpetualsMarketsOrdersResponseSchema
171175> ;
172176
173- export const ClosePerpetualsOrdersRequestSchema = z . object ( {
174- walletAddress : z . string ( ) . describe ( "User's wallet address" ) ,
175- key : z . string ( ) ,
177+ export const CreatePerpetualsIncreaseQuoteRequestSchema = z . object ( {
178+ walletAddress : z . string ( ) ,
179+ providerName : z . string ( ) ,
180+ chainId : z . string ( ) ,
181+ marketAddress : z . string ( ) ,
182+ collateralTokenAddress : z . string ( ) ,
183+ side : PositionSideSchema ,
184+ collateralDeltaAmount : Base10IntegerStringSchema ,
185+ sizeDeltaUsd : Base10IntegerStringSchema ,
186+ slippageBps : Base10IntegerStringSchema ,
187+ } ) ;
188+ export type CreatePerpetualsIncreaseQuoteRequest = z . infer <
189+ typeof CreatePerpetualsIncreaseQuoteRequestSchema
190+ > ;
191+
192+ export const CreatePerpetualsIncreasePlanRequestSchema =
193+ CreatePerpetualsIncreaseQuoteRequestSchema ;
194+ export type CreatePerpetualsIncreasePlanRequest = z . infer <
195+ typeof CreatePerpetualsIncreasePlanRequestSchema
196+ > ;
197+
198+ const PerpetualDecreaseRequestBaseSchema = z . object ( {
199+ walletAddress : z . string ( ) ,
200+ providerName : z . string ( ) ,
201+ chainId : z . string ( ) ,
202+ marketAddress : z . string ( ) ,
203+ collateralTokenAddress : z . string ( ) ,
204+ side : PositionSideSchema ,
205+ } ) ;
206+
207+ const PerpetualDecreaseFullRequestSchema = PerpetualDecreaseRequestBaseSchema . extend ( {
208+ mode : z . literal ( 'full' ) ,
209+ full : z . object ( {
210+ slippageBps : Base10IntegerStringSchema ,
211+ } ) ,
212+ } ) ;
213+
214+ const PerpetualDecreasePartialRequestSchema = PerpetualDecreaseRequestBaseSchema . extend ( {
215+ mode : z . literal ( 'partial' ) ,
216+ partial : z . object ( {
217+ sizeDeltaUsd : Base10IntegerStringSchema ,
218+ slippageBps : Base10IntegerStringSchema ,
219+ } ) ,
220+ } ) ;
221+
222+ export const CreatePerpetualsDecreaseQuoteRequestSchema = z . discriminatedUnion ( 'mode' , [
223+ PerpetualDecreaseFullRequestSchema ,
224+ PerpetualDecreasePartialRequestSchema ,
225+ ] ) ;
226+ export type CreatePerpetualsDecreaseQuoteRequest = z . infer <
227+ typeof CreatePerpetualsDecreaseQuoteRequestSchema
228+ > ;
229+
230+ export const CreatePerpetualsDecreasePlanRequestSchema =
231+ CreatePerpetualsDecreaseQuoteRequestSchema ;
232+ export type CreatePerpetualsDecreasePlanRequest = z . infer <
233+ typeof CreatePerpetualsDecreasePlanRequestSchema
234+ > ;
235+
236+ export const CreatePerpetualsOrderCancelPlanRequestSchema = z . object ( {
237+ walletAddress : z . string ( ) ,
238+ providerName : z . string ( ) ,
239+ chainId : z . string ( ) ,
240+ orderKey : z . string ( ) ,
176241} ) ;
242+ export type CreatePerpetualsOrderCancelPlanRequest = z . infer <
243+ typeof CreatePerpetualsOrderCancelPlanRequestSchema
244+ > ;
177245
178- export type ClosePerpetualsOrdersRequest = z . infer < typeof ClosePerpetualsOrdersRequestSchema > ;
246+ export const GetPerpetualLifecycleRequestSchema = z . object ( {
247+ providerName : z . string ( ) ,
248+ chainId : z . string ( ) ,
249+ txHash : z . string ( ) ,
250+ orderKey : z . string ( ) . optional ( ) ,
251+ walletAddress : z . string ( ) . optional ( ) ,
252+ } ) ;
253+ export type GetPerpetualLifecycleRequest = z . infer < typeof GetPerpetualLifecycleRequestSchema > ;
179254
180- export const ClosePerpetualsOrdersResponseSchema = z . object ( {
255+ export const PerpetualNumericPrecisionSchema = z . object ( {
256+ tokenDecimals : z . number ( ) . int ( ) . nonnegative ( ) ,
257+ priceDecimals : z . number ( ) . int ( ) . nonnegative ( ) ,
258+ usdDecimals : z . number ( ) . int ( ) . nonnegative ( ) ,
259+ } ) ;
260+ export type PerpetualNumericPrecision = z . infer < typeof PerpetualNumericPrecisionSchema > ;
261+
262+ export const PerpetualQuoteResponseSchema = z . object ( {
263+ asOf : z . string ( ) ,
264+ ttlMs : z . number ( ) . int ( ) . nonnegative ( ) ,
265+ precision : PerpetualNumericPrecisionSchema ,
266+ pricing : z . object ( {
267+ markPrice : Base10IntegerStringSchema ,
268+ acceptablePrice : Base10IntegerStringSchema ,
269+ slippageBps : Base10IntegerStringSchema ,
270+ priceImpactDeltaUsd : Base10IntegerStringSchema ,
271+ } ) ,
272+ fees : z . object ( {
273+ positionFeeUsd : Base10IntegerStringSchema ,
274+ borrowingFeeUsd : Base10IntegerStringSchema ,
275+ fundingFeeUsd : Base10IntegerStringSchema ,
276+ } ) ,
277+ warnings : z . array ( z . string ( ) ) ,
278+ } ) ;
279+ export type PerpetualQuoteResponse = z . infer < typeof PerpetualQuoteResponseSchema > ;
280+
281+ export const PerpetualPlanResponseSchema = z . object ( {
282+ asOf : z . string ( ) ,
283+ precision : PerpetualNumericPrecisionSchema ,
181284 transactions : z . array ( TransactionPlanSchema ) ,
285+ normalizedValues : z . record ( z . string ( ) , Base10IntegerStringSchema ) ,
286+ } ) ;
287+ export type PerpetualPlanResponse = z . infer < typeof PerpetualPlanResponseSchema > ;
288+
289+ export const CreatePerpetualsIncreaseQuoteResponseSchema = PerpetualQuoteResponseSchema ;
290+ export type CreatePerpetualsIncreaseQuoteResponse = z . infer <
291+ typeof CreatePerpetualsIncreaseQuoteResponseSchema
292+ > ;
293+
294+ export const CreatePerpetualsIncreasePlanResponseSchema = PerpetualPlanResponseSchema ;
295+ export type CreatePerpetualsIncreasePlanResponse = z . infer <
296+ typeof CreatePerpetualsIncreasePlanResponseSchema
297+ > ;
298+
299+ export const CreatePerpetualsDecreaseQuoteResponseSchema = PerpetualQuoteResponseSchema ;
300+ export type CreatePerpetualsDecreaseQuoteResponse = z . infer <
301+ typeof CreatePerpetualsDecreaseQuoteResponseSchema
302+ > ;
303+
304+ export const CreatePerpetualsDecreasePlanResponseSchema = PerpetualPlanResponseSchema ;
305+ export type CreatePerpetualsDecreasePlanResponse = z . infer <
306+ typeof CreatePerpetualsDecreasePlanResponseSchema
307+ > ;
308+
309+ export const CreatePerpetualsOrderCancelPlanResponseSchema = PerpetualPlanResponseSchema ;
310+ export type CreatePerpetualsOrderCancelPlanResponse = z . infer <
311+ typeof CreatePerpetualsOrderCancelPlanResponseSchema
312+ > ;
313+
314+ const PerpetualLifecycleDisambiguationResponseSchema = z . object ( {
315+ providerName : z . string ( ) ,
316+ chainId : z . string ( ) ,
317+ txHash : z . string ( ) ,
318+ needsDisambiguation : z . literal ( true ) ,
319+ candidateOrderKeys : z . array ( z . string ( ) ) . min ( 1 ) ,
320+ asOf : z . string ( ) ,
321+ } ) ;
322+
323+ const PerpetualLifecycleResolvedResponseSchema = z . object ( {
324+ providerName : z . string ( ) ,
325+ chainId : z . string ( ) ,
326+ txHash : z . string ( ) ,
327+ needsDisambiguation : z . literal ( false ) . optional ( ) ,
328+ orderKey : z . string ( ) ,
329+ status : z . enum ( [ 'pending' , 'executed' , 'cancelled' , 'failed' , 'unknown' ] ) ,
330+ reason : z . string ( ) . optional ( ) ,
331+ reasonBytes : z . string ( ) . optional ( ) ,
332+ requestedPrice : Base10IntegerStringSchema . optional ( ) ,
333+ observedPrice : Base10IntegerStringSchema . optional ( ) ,
334+ createTxHash : z . string ( ) . optional ( ) ,
335+ executionTxHash : z . string ( ) . optional ( ) ,
336+ cancellationTxHash : z . string ( ) . optional ( ) ,
337+ precision : PerpetualNumericPrecisionSchema ,
338+ asOf : z . string ( ) ,
182339} ) ;
183340
184- export type ClosePerpetualsOrdersResponse = z . infer < typeof ClosePerpetualsOrdersResponseSchema > ;
341+ export const GetPerpetualLifecycleResponseSchema = z . union ( [
342+ PerpetualLifecycleDisambiguationResponseSchema ,
343+ PerpetualLifecycleResolvedResponseSchema ,
344+ ] ) ;
345+ export type GetPerpetualLifecycleResponse = z . infer < typeof GetPerpetualLifecycleResponseSchema > ;
185346
186347export const GetPerpetualsMarketsRequestSchema = z . object ( {
187348 chainIds : z . array ( z . string ( ) ) ,
0 commit comments