@compass-labs/api-sdk 2.2.65-rc.0 → 2.2.66-rc.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.
Files changed (57) hide show
  1. package/README.md +4 -2
  2. package/codeSamples_typescript.yaml +6 -0
  3. package/dist/commonjs/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.d.ts +24 -0
  4. package/dist/commonjs/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.d.ts.map +1 -0
  5. package/dist/commonjs/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js +125 -0
  6. package/dist/commonjs/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js.map +1 -0
  7. package/dist/commonjs/lib/config.d.ts +2 -2
  8. package/dist/commonjs/lib/config.js +2 -2
  9. package/dist/commonjs/models/components/globalmarketsperpssetleveragerequest.d.ts +32 -0
  10. package/dist/commonjs/models/components/globalmarketsperpssetleveragerequest.d.ts.map +1 -0
  11. package/dist/commonjs/models/components/globalmarketsperpssetleveragerequest.js +51 -0
  12. package/dist/commonjs/models/components/globalmarketsperpssetleveragerequest.js.map +1 -0
  13. package/dist/commonjs/models/components/globalmarketsperpssetleverageresponse.d.ts +37 -0
  14. package/dist/commonjs/models/components/globalmarketsperpssetleverageresponse.d.ts.map +1 -0
  15. package/dist/commonjs/models/components/globalmarketsperpssetleverageresponse.js +59 -0
  16. package/dist/commonjs/models/components/globalmarketsperpssetleverageresponse.js.map +1 -0
  17. package/dist/commonjs/models/components/index.d.ts +2 -0
  18. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  19. package/dist/commonjs/models/components/index.js +2 -0
  20. package/dist/commonjs/models/components/index.js.map +1 -1
  21. package/dist/commonjs/sdk/globalmarketsperps.d.ts +13 -0
  22. package/dist/commonjs/sdk/globalmarketsperps.d.ts.map +1 -1
  23. package/dist/commonjs/sdk/globalmarketsperps.js +16 -0
  24. package/dist/commonjs/sdk/globalmarketsperps.js.map +1 -1
  25. package/dist/esm/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.d.ts +24 -0
  26. package/dist/esm/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.d.ts.map +1 -0
  27. package/dist/esm/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js +89 -0
  28. package/dist/esm/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js.map +1 -0
  29. package/dist/esm/lib/config.d.ts +2 -2
  30. package/dist/esm/lib/config.js +2 -2
  31. package/dist/esm/models/components/globalmarketsperpssetleveragerequest.d.ts +32 -0
  32. package/dist/esm/models/components/globalmarketsperpssetleveragerequest.d.ts.map +1 -0
  33. package/dist/esm/models/components/globalmarketsperpssetleveragerequest.js +14 -0
  34. package/dist/esm/models/components/globalmarketsperpssetleveragerequest.js.map +1 -0
  35. package/dist/esm/models/components/globalmarketsperpssetleverageresponse.d.ts +37 -0
  36. package/dist/esm/models/components/globalmarketsperpssetleverageresponse.d.ts.map +1 -0
  37. package/dist/esm/models/components/globalmarketsperpssetleverageresponse.js +22 -0
  38. package/dist/esm/models/components/globalmarketsperpssetleverageresponse.js.map +1 -0
  39. package/dist/esm/models/components/index.d.ts +2 -0
  40. package/dist/esm/models/components/index.d.ts.map +1 -1
  41. package/dist/esm/models/components/index.js +2 -0
  42. package/dist/esm/models/components/index.js.map +1 -1
  43. package/dist/esm/sdk/globalmarketsperps.d.ts +13 -0
  44. package/dist/esm/sdk/globalmarketsperps.d.ts.map +1 -1
  45. package/dist/esm/sdk/globalmarketsperps.js +16 -0
  46. package/dist/esm/sdk/globalmarketsperps.js.map +1 -1
  47. package/docs/models/components/globalmarketsperpssetleveragerequest.md +24 -0
  48. package/docs/models/components/globalmarketsperpssetleverageresponse.md +25 -0
  49. package/docs/sdks/globalmarketsperps/README.md +83 -0
  50. package/openapi_prepped_for_speakeasy.json +130 -0
  51. package/package.json +1 -1
  52. package/src/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.ts +180 -0
  53. package/src/lib/config.ts +2 -2
  54. package/src/models/components/globalmarketsperpssetleveragerequest.ts +55 -0
  55. package/src/models/components/globalmarketsperpssetleverageresponse.ts +64 -0
  56. package/src/models/components/index.ts +2 -0
  57. package/src/sdk/globalmarketsperps.ts +24 -0
@@ -18,6 +18,7 @@
18
18
  * [globalMarketsPerpsApproveBuilderFee](#globalmarketsperpsapprovebuilderfee) - Approve builder fee
19
19
  * [globalMarketsPerpsEnableUnifiedAccount](#globalmarketsperpsenableunifiedaccount) - Enable unified account mode
20
20
  * [globalMarketsPerpsEnsureLeverage](#globalmarketsperpsensureleverage) - Ensure 1x cross leverage
21
+ * [globalMarketsPerpsSetLeverage](#globalmarketsperpssetleverage) - Set leverage (defaults to market maximum)
21
22
 
22
23
  ## globalMarketsPerpsOpportunities
23
24
 
@@ -1185,6 +1186,88 @@ run();
1185
1186
 
1186
1187
  ### Errors
1187
1188
 
1189
+ | Error Type | Status Code | Content Type |
1190
+ | -------------------------- | -------------------------- | -------------------------- |
1191
+ | errors.HTTPValidationError | 422 | application/json |
1192
+ | errors.APIError | 4XX, 5XX | \*/\* |
1193
+
1194
+ ## globalMarketsPerpsSetLeverage
1195
+
1196
+ Check leverage and prepare an updateLeverage action to the requested value.
1197
+
1198
+ If `leverage` is omitted, targets the asset's maximum leverage for that
1199
+ market. If the asset is already at the requested leverage, returns
1200
+ leverage_ok=true with null typed_data — no signing needed. Otherwise,
1201
+ returns EIP-712 typed data for the user to sign. After signing, submit the
1202
+ signature via the /execute endpoint.
1203
+
1204
+ ### Example Usage
1205
+
1206
+ <!-- UsageSnippet language="typescript" operationID="v2_global_markets_perps_set_leverage" method="post" path="/v2/global_markets_perps/set_leverage" -->
1207
+ ```typescript
1208
+ import { CompassApiSDK } from "@compass-labs/api-sdk";
1209
+
1210
+ const compassApiSDK = new CompassApiSDK({
1211
+ apiKeyAuth: "<YOUR_API_KEY_HERE>",
1212
+ });
1213
+
1214
+ async function run() {
1215
+ const result = await compassApiSDK.globalMarketsPerps.globalMarketsPerpsSetLeverage({
1216
+ owner: "<value>",
1217
+ asset: "<value>",
1218
+ });
1219
+
1220
+ console.log(result);
1221
+ }
1222
+
1223
+ run();
1224
+ ```
1225
+
1226
+ ### Standalone function
1227
+
1228
+ The standalone function version of this method:
1229
+
1230
+ ```typescript
1231
+ import { CompassApiSDKCore } from "@compass-labs/api-sdk/core.js";
1232
+ import { globalMarketsPerpsGlobalMarketsPerpsSetLeverage } from "@compass-labs/api-sdk/funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js";
1233
+
1234
+ // Use `CompassApiSDKCore` for best tree-shaking performance.
1235
+ // You can create one instance of it to use across an application.
1236
+ const compassApiSDK = new CompassApiSDKCore({
1237
+ apiKeyAuth: "<YOUR_API_KEY_HERE>",
1238
+ });
1239
+
1240
+ async function run() {
1241
+ const res = await globalMarketsPerpsGlobalMarketsPerpsSetLeverage(compassApiSDK, {
1242
+ owner: "<value>",
1243
+ asset: "<value>",
1244
+ });
1245
+ if (res.ok) {
1246
+ const { value: result } = res;
1247
+ console.log(result);
1248
+ } else {
1249
+ console.log("globalMarketsPerpsGlobalMarketsPerpsSetLeverage failed:", res.error);
1250
+ }
1251
+ }
1252
+
1253
+ run();
1254
+ ```
1255
+
1256
+ ### Parameters
1257
+
1258
+ | Parameter | Type | Required | Description |
1259
+ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1260
+ | `request` | [components.GlobalMarketsPerpsSetLeverageRequest](../../models/components/globalmarketsperpssetleveragerequest.md) | :heavy_check_mark: | The request object to use for the request. |
1261
+ | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
1262
+ | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. |
1263
+ | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
1264
+
1265
+ ### Response
1266
+
1267
+ **Promise\<[components.GlobalMarketsPerpsSetLeverageResponse](../../models/components/globalmarketsperpssetleverageresponse.md)\>**
1268
+
1269
+ ### Errors
1270
+
1188
1271
  | Error Type | Status Code | Content Type |
1189
1272
  | -------------------------- | -------------------------- | -------------------------- |
1190
1273
  | errors.HTTPValidationError | 422 | application/json |
@@ -7016,6 +7016,49 @@
7016
7016
  "x-speakeasy-name-override": "global_markets_perps_ensure_leverage"
7017
7017
  }
7018
7018
  },
7019
+ "/v2/global_markets_perps/set_leverage": {
7020
+ "post": {
7021
+ "tags": [
7022
+ "Global Markets Perps"
7023
+ ],
7024
+ "summary": "Set leverage (defaults to market maximum)",
7025
+ "description": "Check leverage and prepare an updateLeverage action to the requested value.\n\nIf `leverage` is omitted, targets the asset's maximum leverage for that\nmarket. If the asset is already at the requested leverage, returns\nleverage_ok=true with null typed_data \u2014 no signing needed. Otherwise,\nreturns EIP-712 typed data for the user to sign. After signing, submit the\nsignature via the /execute endpoint.",
7026
+ "operationId": "v2_global_markets_perps_set_leverage",
7027
+ "requestBody": {
7028
+ "content": {
7029
+ "application/json": {
7030
+ "schema": {
7031
+ "$ref": "#/components/schemas/GlobalMarketsPerpsSetLeverageRequest"
7032
+ }
7033
+ }
7034
+ },
7035
+ "required": true
7036
+ },
7037
+ "responses": {
7038
+ "200": {
7039
+ "description": "Successful Response",
7040
+ "content": {
7041
+ "application/json": {
7042
+ "schema": {
7043
+ "$ref": "#/components/schemas/GlobalMarketsPerpsSetLeverageResponse"
7044
+ }
7045
+ }
7046
+ }
7047
+ },
7048
+ "422": {
7049
+ "description": "Validation Error",
7050
+ "content": {
7051
+ "application/json": {
7052
+ "schema": {
7053
+ "$ref": "#/components/schemas/HTTPValidationError"
7054
+ }
7055
+ }
7056
+ }
7057
+ }
7058
+ },
7059
+ "x-speakeasy-name-override": "global_markets_perps_set_leverage"
7060
+ }
7061
+ },
7019
7062
  "/v2/tokenized_assets/markets": {
7020
7063
  "get": {
7021
7064
  "tags": [
@@ -15373,6 +15416,93 @@
15373
15416
  "title": "GlobalMarketsPerpsPositionsResponse",
15374
15417
  "description": "List of open global markets perps positions with account balance."
15375
15418
  },
15419
+ "GlobalMarketsPerpsSetLeverageRequest": {
15420
+ "properties": {
15421
+ "owner": {
15422
+ "type": "string",
15423
+ "title": "Owner",
15424
+ "description": "User's EOA address"
15425
+ },
15426
+ "asset": {
15427
+ "type": "string",
15428
+ "title": "Asset",
15429
+ "description": "Asset ticker (e.g. 'AAPL', 'CL')"
15430
+ },
15431
+ "leverage": {
15432
+ "anyOf": [
15433
+ {
15434
+ "type": "integer",
15435
+ "minimum": 1.0
15436
+ },
15437
+ {
15438
+ "type": "null"
15439
+ }
15440
+ ],
15441
+ "title": "Leverage",
15442
+ "description": "Target leverage as a whole-number multiplier. Omit (or pass null) to use the asset's maximum leverage. Must be between 1 and the asset's max leverage, which is available from the /opportunities endpoint."
15443
+ }
15444
+ },
15445
+ "type": "object",
15446
+ "required": [
15447
+ "owner",
15448
+ "asset"
15449
+ ],
15450
+ "title": "GlobalMarketsPerpsSetLeverageRequest",
15451
+ "description": "Request to set leverage on a global markets perps asset.\n\nOmit ``leverage`` (or pass null) to target the asset's maximum leverage."
15452
+ },
15453
+ "GlobalMarketsPerpsSetLeverageResponse": {
15454
+ "properties": {
15455
+ "leverage_ok": {
15456
+ "type": "boolean",
15457
+ "title": "Leverage Ok",
15458
+ "description": "True if leverage already matches the requested value, false if an update is needed"
15459
+ },
15460
+ "typed_data": {
15461
+ "anyOf": [
15462
+ {
15463
+ "additionalProperties": true,
15464
+ "type": "object"
15465
+ },
15466
+ {
15467
+ "type": "null"
15468
+ }
15469
+ ],
15470
+ "title": "Typed Data",
15471
+ "description": "EIP-712 typed data for wallet signing, or null if no change is needed"
15472
+ },
15473
+ "action": {
15474
+ "anyOf": [
15475
+ {
15476
+ "additionalProperties": true,
15477
+ "type": "object"
15478
+ },
15479
+ {
15480
+ "type": "null"
15481
+ }
15482
+ ],
15483
+ "title": "Action",
15484
+ "description": "Raw Hyperliquid action (passed back to the execute endpoint), or null"
15485
+ },
15486
+ "nonce": {
15487
+ "anyOf": [
15488
+ {
15489
+ "type": "integer"
15490
+ },
15491
+ {
15492
+ "type": "null"
15493
+ }
15494
+ ],
15495
+ "title": "Nonce",
15496
+ "description": "Timestamp-based nonce, or null if no action needed"
15497
+ }
15498
+ },
15499
+ "type": "object",
15500
+ "required": [
15501
+ "leverage_ok"
15502
+ ],
15503
+ "title": "GlobalMarketsPerpsSetLeverageResponse",
15504
+ "description": "Returned by the set_leverage endpoint.\n\nIf the asset is already at the requested leverage, typed_data/action/nonce\nare null. If not, they contain the EIP-712 payload the user must sign."
15505
+ },
15376
15506
  "GlobalMarketsPerpsSignableActionResponse": {
15377
15507
  "properties": {
15378
15508
  "typed_data": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compass-labs/api-sdk",
3
- "version": "2.2.65-rc.0",
3
+ "version": "2.2.66-rc.0",
4
4
  "author": "royalnine",
5
5
  "type": "module",
6
6
  "tshy": {
@@ -0,0 +1,180 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeJSON } from "../lib/encodings.js";
7
+ import { matchStatusCode } from "../lib/http.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import * as components from "../models/components/index.js";
15
+ import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
16
+ import {
17
+ ConnectionError,
18
+ InvalidRequestError,
19
+ RequestAbortedError,
20
+ RequestTimeoutError,
21
+ UnexpectedClientError,
22
+ } from "../models/errors/httpclienterrors.js";
23
+ import * as errors from "../models/errors/index.js";
24
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
25
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Set leverage (defaults to market maximum)
31
+ *
32
+ * @remarks
33
+ * Check leverage and prepare an updateLeverage action to the requested value.
34
+ *
35
+ * If `leverage` is omitted, targets the asset's maximum leverage for that
36
+ * market. If the asset is already at the requested leverage, returns
37
+ * leverage_ok=true with null typed_data — no signing needed. Otherwise,
38
+ * returns EIP-712 typed data for the user to sign. After signing, submit the
39
+ * signature via the /execute endpoint.
40
+ */
41
+ export function globalMarketsPerpsGlobalMarketsPerpsSetLeverage(
42
+ client: CompassApiSDKCore,
43
+ request: components.GlobalMarketsPerpsSetLeverageRequest,
44
+ options?: RequestOptions,
45
+ ): APIPromise<
46
+ Result<
47
+ components.GlobalMarketsPerpsSetLeverageResponse,
48
+ | errors.HTTPValidationError
49
+ | CompassAPISDKError
50
+ | ResponseValidationError
51
+ | ConnectionError
52
+ | RequestAbortedError
53
+ | RequestTimeoutError
54
+ | InvalidRequestError
55
+ | UnexpectedClientError
56
+ | SDKValidationError
57
+ >
58
+ > {
59
+ return new APIPromise($do(
60
+ client,
61
+ request,
62
+ options,
63
+ ));
64
+ }
65
+
66
+ async function $do(
67
+ client: CompassApiSDKCore,
68
+ request: components.GlobalMarketsPerpsSetLeverageRequest,
69
+ options?: RequestOptions,
70
+ ): Promise<
71
+ [
72
+ Result<
73
+ components.GlobalMarketsPerpsSetLeverageResponse,
74
+ | errors.HTTPValidationError
75
+ | CompassAPISDKError
76
+ | ResponseValidationError
77
+ | ConnectionError
78
+ | RequestAbortedError
79
+ | RequestTimeoutError
80
+ | InvalidRequestError
81
+ | UnexpectedClientError
82
+ | SDKValidationError
83
+ >,
84
+ APICall,
85
+ ]
86
+ > {
87
+ const parsed = safeParse(
88
+ request,
89
+ (value) =>
90
+ components.GlobalMarketsPerpsSetLeverageRequest$outboundSchema.parse(
91
+ value,
92
+ ),
93
+ "Input validation failed",
94
+ );
95
+ if (!parsed.ok) {
96
+ return [parsed, { status: "invalid" }];
97
+ }
98
+ const payload = parsed.value;
99
+ const body = encodeJSON("body", payload, { explode: true });
100
+
101
+ const path = pathToFunc("/v2/global_markets_perps/set_leverage")();
102
+
103
+ const headers = new Headers(compactMap({
104
+ "Content-Type": "application/json",
105
+ Accept: "application/json",
106
+ }));
107
+
108
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
109
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
110
+ const requestSecurity = resolveGlobalSecurity(securityInput);
111
+
112
+ const context = {
113
+ options: client._options,
114
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
115
+ operationID: "v2_global_markets_perps_set_leverage",
116
+ oAuth2Scopes: null,
117
+
118
+ resolvedSecurity: requestSecurity,
119
+
120
+ securitySource: client._options.apiKeyAuth,
121
+ retryConfig: options?.retries
122
+ || client._options.retryConfig
123
+ || { strategy: "none" },
124
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
125
+ };
126
+
127
+ const requestRes = client._createRequest(context, {
128
+ security: requestSecurity,
129
+ method: "POST",
130
+ baseURL: options?.serverURL,
131
+ path: path,
132
+ headers: headers,
133
+ body: body,
134
+ userAgent: client._options.userAgent,
135
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
136
+ }, options);
137
+ if (!requestRes.ok) {
138
+ return [requestRes, { status: "invalid" }];
139
+ }
140
+ const req = requestRes.value;
141
+
142
+ const doResult = await client._do(req, {
143
+ context,
144
+ isErrorStatusCode: (statusCode: number) =>
145
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
146
+ retryConfig: context.retryConfig,
147
+ retryCodes: context.retryCodes,
148
+ });
149
+ if (!doResult.ok) {
150
+ return [doResult, { status: "request-error", request: req }];
151
+ }
152
+ const response = doResult.value;
153
+
154
+ const responseFields = {
155
+ HttpMeta: { Response: response, Request: req },
156
+ };
157
+
158
+ const [result] = await M.match<
159
+ components.GlobalMarketsPerpsSetLeverageResponse,
160
+ | errors.HTTPValidationError
161
+ | CompassAPISDKError
162
+ | ResponseValidationError
163
+ | ConnectionError
164
+ | RequestAbortedError
165
+ | RequestTimeoutError
166
+ | InvalidRequestError
167
+ | UnexpectedClientError
168
+ | SDKValidationError
169
+ >(
170
+ M.json(200, components.GlobalMarketsPerpsSetLeverageResponse$inboundSchema),
171
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
172
+ M.fail("4XX"),
173
+ M.fail("5XX"),
174
+ )(response, req, { extraFields: responseFields });
175
+ if (!result.ok) {
176
+ return [result, { status: "complete", request: req, response }];
177
+ }
178
+
179
+ return [result, { status: "complete", request: req, response }];
180
+ }
package/src/lib/config.ts CHANGED
@@ -62,7 +62,7 @@ export const SDK_METADATA = {
62
62
  language: "typescript",
63
63
  openapiDocVersion: "0.0.1",
64
64
  sdkVersion: "2.0.0",
65
- genVersion: "2.906.0",
65
+ genVersion: "2.910.1",
66
66
  userAgent:
67
- "speakeasy-sdk/typescript 2.0.0 2.906.0 0.0.1 @compass-labs/api-sdk",
67
+ "speakeasy-sdk/typescript 2.0.0 2.910.1 0.0.1 @compass-labs/api-sdk",
68
68
  } as const;
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+
7
+ /**
8
+ * Request to set leverage on a global markets perps asset.
9
+ *
10
+ * @remarks
11
+ *
12
+ * Omit ``leverage`` (or pass null) to target the asset's maximum leverage.
13
+ */
14
+ export type GlobalMarketsPerpsSetLeverageRequest = {
15
+ /**
16
+ * User's EOA address
17
+ */
18
+ owner: string;
19
+ /**
20
+ * Asset ticker (e.g. 'AAPL', 'CL')
21
+ */
22
+ asset: string;
23
+ /**
24
+ * Target leverage as a whole-number multiplier. Omit (or pass null) to use the asset's maximum leverage. Must be between 1 and the asset's max leverage, which is available from the /opportunities endpoint.
25
+ */
26
+ leverage?: number | null | undefined;
27
+ };
28
+
29
+ /** @internal */
30
+ export type GlobalMarketsPerpsSetLeverageRequest$Outbound = {
31
+ owner: string;
32
+ asset: string;
33
+ leverage?: number | null | undefined;
34
+ };
35
+
36
+ /** @internal */
37
+ export const GlobalMarketsPerpsSetLeverageRequest$outboundSchema: z.ZodType<
38
+ GlobalMarketsPerpsSetLeverageRequest$Outbound,
39
+ z.ZodTypeDef,
40
+ GlobalMarketsPerpsSetLeverageRequest
41
+ > = z.object({
42
+ owner: z.string(),
43
+ asset: z.string(),
44
+ leverage: z.nullable(z.number().int()).optional(),
45
+ });
46
+
47
+ export function globalMarketsPerpsSetLeverageRequestToJSON(
48
+ globalMarketsPerpsSetLeverageRequest: GlobalMarketsPerpsSetLeverageRequest,
49
+ ): string {
50
+ return JSON.stringify(
51
+ GlobalMarketsPerpsSetLeverageRequest$outboundSchema.parse(
52
+ globalMarketsPerpsSetLeverageRequest,
53
+ ),
54
+ );
55
+ }
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+
11
+ /**
12
+ * Returned by the set_leverage endpoint.
13
+ *
14
+ * @remarks
15
+ *
16
+ * If the asset is already at the requested leverage, typed_data/action/nonce
17
+ * are null. If not, they contain the EIP-712 payload the user must sign.
18
+ */
19
+ export type GlobalMarketsPerpsSetLeverageResponse = {
20
+ /**
21
+ * True if leverage already matches the requested value, false if an update is needed
22
+ */
23
+ leverageOk: boolean;
24
+ /**
25
+ * EIP-712 typed data for wallet signing, or null if no change is needed
26
+ */
27
+ typedData?: { [k: string]: any } | null | undefined;
28
+ /**
29
+ * Raw Hyperliquid action (passed back to the execute endpoint), or null
30
+ */
31
+ action?: { [k: string]: any } | null | undefined;
32
+ /**
33
+ * Timestamp-based nonce, or null if no action needed
34
+ */
35
+ nonce?: number | null | undefined;
36
+ };
37
+
38
+ /** @internal */
39
+ export const GlobalMarketsPerpsSetLeverageResponse$inboundSchema: z.ZodType<
40
+ GlobalMarketsPerpsSetLeverageResponse,
41
+ z.ZodTypeDef,
42
+ unknown
43
+ > = z.object({
44
+ leverage_ok: z.boolean(),
45
+ typed_data: z.nullable(z.record(z.any())).optional(),
46
+ action: z.nullable(z.record(z.any())).optional(),
47
+ nonce: z.nullable(z.number().int()).optional(),
48
+ }).transform((v) => {
49
+ return remap$(v, {
50
+ "leverage_ok": "leverageOk",
51
+ "typed_data": "typedData",
52
+ });
53
+ });
54
+
55
+ export function globalMarketsPerpsSetLeverageResponseFromJSON(
56
+ jsonString: string,
57
+ ): SafeParseResult<GlobalMarketsPerpsSetLeverageResponse, SDKValidationError> {
58
+ return safeParse(
59
+ jsonString,
60
+ (x) =>
61
+ GlobalMarketsPerpsSetLeverageResponse$inboundSchema.parse(JSON.parse(x)),
62
+ `Failed to parse 'GlobalMarketsPerpsSetLeverageResponse' from JSON`,
63
+ );
64
+ }
@@ -171,6 +171,8 @@ export * from "./globalmarketsperpsopportunitiesresponse.js";
171
171
  export * from "./globalmarketsperpsopportunity.js";
172
172
  export * from "./globalmarketsperpsposition.js";
173
173
  export * from "./globalmarketsperpspositionsresponse.js";
174
+ export * from "./globalmarketsperpssetleveragerequest.js";
175
+ export * from "./globalmarketsperpssetleverageresponse.js";
174
176
  export * from "./globalmarketsperpssignableactionresponse.js";
175
177
  export * from "./globalmarketsperpswithdrawrequest.js";
176
178
  export * from "./interestratemode.js";
@@ -15,6 +15,7 @@ import { globalMarketsPerpsGlobalMarketsPerpsLimitOrder } from "../funcs/globalM
15
15
  import { globalMarketsPerpsGlobalMarketsPerpsMarketOrder } from "../funcs/globalMarketsPerpsGlobalMarketsPerpsMarketOrder.js";
16
16
  import { globalMarketsPerpsGlobalMarketsPerpsOpportunities } from "../funcs/globalMarketsPerpsGlobalMarketsPerpsOpportunities.js";
17
17
  import { globalMarketsPerpsGlobalMarketsPerpsPositions } from "../funcs/globalMarketsPerpsGlobalMarketsPerpsPositions.js";
18
+ import { globalMarketsPerpsGlobalMarketsPerpsSetLeverage } from "../funcs/globalMarketsPerpsGlobalMarketsPerpsSetLeverage.js";
18
19
  import { globalMarketsPerpsGlobalMarketsPerpsWithdraw } from "../funcs/globalMarketsPerpsGlobalMarketsPerpsWithdraw.js";
19
20
  import { ClientSDK, RequestOptions } from "../lib/sdks.js";
20
21
  import * as components from "../models/components/index.js";
@@ -332,4 +333,27 @@ export class GlobalMarketsPerps extends ClientSDK {
332
333
  options,
333
334
  ));
334
335
  }
336
+
337
+ /**
338
+ * Set leverage (defaults to market maximum)
339
+ *
340
+ * @remarks
341
+ * Check leverage and prepare an updateLeverage action to the requested value.
342
+ *
343
+ * If `leverage` is omitted, targets the asset's maximum leverage for that
344
+ * market. If the asset is already at the requested leverage, returns
345
+ * leverage_ok=true with null typed_data — no signing needed. Otherwise,
346
+ * returns EIP-712 typed data for the user to sign. After signing, submit the
347
+ * signature via the /execute endpoint.
348
+ */
349
+ async globalMarketsPerpsSetLeverage(
350
+ request: components.GlobalMarketsPerpsSetLeverageRequest,
351
+ options?: RequestOptions,
352
+ ): Promise<components.GlobalMarketsPerpsSetLeverageResponse> {
353
+ return unwrapAsync(globalMarketsPerpsGlobalMarketsPerpsSetLeverage(
354
+ this,
355
+ request,
356
+ options,
357
+ ));
358
+ }
335
359
  }