zklighter-perps 1.0.270 → 1.0.272

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.
@@ -109,19 +109,40 @@ data = walk(data, _add_bad_request_response)
109
109
 
110
110
 
111
111
  # ---------------------------------------------------------------------------
112
- # Step 6. Model the `types` parameter as a byte array (array of uint8) instead of
113
- # the non-standard scalar the spec declares.
114
- # (was: jq 'walk(if .name == "types" then .type="array" | .items=... | del(.format) end)')
112
+ # Step 6. Restore array request parameters from their request definitions. The
113
+ # generator preserves arrays in definitions but flattens them in path
114
+ # parameters.
115
115
  # ---------------------------------------------------------------------------
116
- def _types_param_to_byte_array(node):
117
- if isinstance(node, dict) and node.get("name") == "types":
118
- node["type"] = "array"
119
- node["items"] = {"type": "integer", "format": "uint8"}
120
- node.pop("format", None)
121
- return node
116
+ def restore_array_parameters(data):
117
+ definitions = data.get("definitions", {})
118
+
119
+ for path_item in data.get("paths", {}).values():
120
+ for operation in path_item.values():
121
+ if not isinstance(operation, dict):
122
+ continue
123
+
124
+ request = definitions.get(f"Req{operation.get('operationId')}", {})
125
+ properties = request.get("properties", {})
126
+
127
+ for parameter in operation.get("parameters", []):
128
+ property_schema = properties.get(parameter.get("name"), {})
129
+ if (
130
+ property_schema.get("type") != "array"
131
+ or parameter.get("type") == "array"
132
+ ):
133
+ continue
122
134
 
135
+ items = {"type": parameter["type"]}
136
+ if "format" in parameter:
137
+ items["format"] = parameter.pop("format")
138
+ if "enum" in parameter:
139
+ items["enum"] = parameter.pop("enum")
123
140
 
124
- data = walk(data, _types_param_to_byte_array)
141
+ parameter["type"] = "array"
142
+ parameter["items"] = items
143
+
144
+
145
+ restore_array_parameters(data)
125
146
 
126
147
 
127
148
  # ---------------------------------------------------------------------------
@@ -209,19 +230,6 @@ for defn in data["definitions"].values():
209
230
  if prop.get("type") == "array" and "enum" in prop:
210
231
  prop["items"]["enum"] = prop.pop("enum")
211
232
 
212
- # transfer_history type parameter to be array
213
- if "/api/v1/transfer/history" in data["paths"]:
214
- for method in data["paths"]["/api/v1/transfer/history"].values():
215
- for param in method.get("parameters", []):
216
- if (
217
- param.get("name") == "type"
218
- and param.get("type") == "string"
219
- and "enum" in param
220
- ):
221
- param["type"] = "array"
222
- param["items"] = {"type": "string", "enum": param.pop("enum")}
223
- break
224
-
225
233
  for path in data["definitions"]:
226
234
  if not path.startswith("Req"):
227
235
  required_fields = list(data["definitions"][path]["properties"].keys())
@@ -248,7 +248,7 @@ export interface PositionFundingRequest {
248
248
  authorization?: string;
249
249
  auth?: string;
250
250
  market_id?: number;
251
- market_ids?: number;
251
+ market_ids?: Array<number>;
252
252
  cursor?: string;
253
253
  side?: PositionFundingSideEnum;
254
254
  start_timestamp?: number;
@@ -1560,7 +1560,7 @@ export class AccountApi extends runtime.BaseAPI {
1560
1560
  }
1561
1561
 
1562
1562
  if (requestParameters['market_ids'] != null) {
1563
- queryParameters['market_ids'] = requestParameters['market_ids'];
1563
+ queryParameters['market_ids'] = requestParameters['market_ids']!.join(runtime.COLLECTION_FORMATS["csv"]);
1564
1564
  }
1565
1565
 
1566
1566
  if (requestParameters['cursor'] != null) {
@@ -60,7 +60,7 @@ export interface MarkPriceCandlesRequest {
60
60
  }
61
61
 
62
62
  export interface MarketPriceChartsRequest {
63
- market_ids?: number;
63
+ market_ids?: Array<number>;
64
64
  }
65
65
 
66
66
  /**
@@ -329,7 +329,7 @@ export class CandlestickApi extends runtime.BaseAPI {
329
329
  const queryParameters: any = {};
330
330
 
331
331
  if (requestParameters['market_ids'] != null) {
332
- queryParameters['market_ids'] = requestParameters['market_ids'];
332
+ queryParameters['market_ids'] = requestParameters['market_ids']!.join(runtime.COLLECTION_FORMATS["csv"]);
333
333
  }
334
334
 
335
335
  const headerParameters: runtime.HTTPHeaders = {};
@@ -43,6 +43,12 @@ export interface NotificationPreferences {
43
43
  * @memberof NotificationPreferences
44
44
  */
45
45
  price_alerts_enabled: boolean;
46
+ /**
47
+ *
48
+ * @type {boolean}
49
+ * @memberof NotificationPreferences
50
+ */
51
+ order_filled_enabled: boolean;
46
52
  }
47
53
 
48
54
  /**
@@ -53,6 +59,7 @@ export function instanceOfNotificationPreferences(value: object): value is Notif
53
59
  if (!('global_announcements_enabled' in value) || value['global_announcements_enabled'] === undefined) return false;
54
60
  if (!('private_announcements_enabled' in value) || value['private_announcements_enabled'] === undefined) return false;
55
61
  if (!('price_alerts_enabled' in value) || value['price_alerts_enabled'] === undefined) return false;
62
+ if (!('order_filled_enabled' in value) || value['order_filled_enabled'] === undefined) return false;
56
63
  return true;
57
64
  }
58
65
 
@@ -70,6 +77,7 @@ export function NotificationPreferencesFromJSONTyped(json: any, ignoreDiscrimina
70
77
  'global_announcements_enabled': json['global_announcements_enabled'],
71
78
  'private_announcements_enabled': json['private_announcements_enabled'],
72
79
  'price_alerts_enabled': json['price_alerts_enabled'],
80
+ 'order_filled_enabled': json['order_filled_enabled'],
73
81
  };
74
82
  }
75
83
 
@@ -83,6 +91,7 @@ export function NotificationPreferencesToJSON(value?: NotificationPreferences |
83
91
  'global_announcements_enabled': value['global_announcements_enabled'],
84
92
  'private_announcements_enabled': value['private_announcements_enabled'],
85
93
  'price_alerts_enabled': value['price_alerts_enabled'],
94
+ 'order_filled_enabled': value['order_filled_enabled'],
86
95
  };
87
96
  }
88
97
 
@@ -49,6 +49,18 @@ export interface PriceAlert {
49
49
  * @memberof PriceAlert
50
50
  */
51
51
  enabled: boolean;
52
+ /**
53
+ *
54
+ * @type {boolean}
55
+ * @memberof PriceAlert
56
+ */
57
+ triggered: boolean;
58
+ /**
59
+ *
60
+ * @type {number}
61
+ * @memberof PriceAlert
62
+ */
63
+ triggered_at: number;
52
64
  }
53
65
 
54
66
  /**
@@ -60,6 +72,8 @@ export function instanceOfPriceAlert(value: object): value is PriceAlert {
60
72
  if (!('direction' in value) || value['direction'] === undefined) return false;
61
73
  if (!('frequency_minutes' in value) || value['frequency_minutes'] === undefined) return false;
62
74
  if (!('enabled' in value) || value['enabled'] === undefined) return false;
75
+ if (!('triggered' in value) || value['triggered'] === undefined) return false;
76
+ if (!('triggered_at' in value) || value['triggered_at'] === undefined) return false;
63
77
  return true;
64
78
  }
65
79
 
@@ -78,6 +92,8 @@ export function PriceAlertFromJSONTyped(json: any, ignoreDiscriminator: boolean)
78
92
  'direction': json['direction'],
79
93
  'frequency_minutes': json['frequency_minutes'],
80
94
  'enabled': json['enabled'],
95
+ 'triggered': json['triggered'],
96
+ 'triggered_at': json['triggered_at'],
81
97
  };
82
98
  }
83
99
 
@@ -92,6 +108,8 @@ export function PriceAlertToJSON(value?: PriceAlert | null): any {
92
108
  'direction': value['direction'],
93
109
  'frequency_minutes': value['frequency_minutes'],
94
110
  'enabled': value['enabled'],
111
+ 'triggered': value['triggered'],
112
+ 'triggered_at': value['triggered_at'],
95
113
  };
96
114
  }
97
115
 
@@ -49,6 +49,18 @@ export interface PriceChangeAlert {
49
49
  * @memberof PriceChangeAlert
50
50
  */
51
51
  enabled: boolean;
52
+ /**
53
+ *
54
+ * @type {boolean}
55
+ * @memberof PriceChangeAlert
56
+ */
57
+ triggered: boolean;
58
+ /**
59
+ *
60
+ * @type {number}
61
+ * @memberof PriceChangeAlert
62
+ */
63
+ triggered_at: number;
52
64
  }
53
65
 
54
66
  /**
@@ -60,6 +72,8 @@ export function instanceOfPriceChangeAlert(value: object): value is PriceChangeA
60
72
  if (!('reference_price' in value) || value['reference_price'] === undefined) return false;
61
73
  if (!('frequency_minutes' in value) || value['frequency_minutes'] === undefined) return false;
62
74
  if (!('enabled' in value) || value['enabled'] === undefined) return false;
75
+ if (!('triggered' in value) || value['triggered'] === undefined) return false;
76
+ if (!('triggered_at' in value) || value['triggered_at'] === undefined) return false;
63
77
  return true;
64
78
  }
65
79
 
@@ -78,6 +92,8 @@ export function PriceChangeAlertFromJSONTyped(json: any, ignoreDiscriminator: bo
78
92
  'reference_price': json['reference_price'],
79
93
  'frequency_minutes': json['frequency_minutes'],
80
94
  'enabled': json['enabled'],
95
+ 'triggered': json['triggered'],
96
+ 'triggered_at': json['triggered_at'],
81
97
  };
82
98
  }
83
99
 
@@ -92,6 +108,8 @@ export function PriceChangeAlertToJSON(value?: PriceChangeAlert | null): any {
92
108
  'reference_price': value['reference_price'],
93
109
  'frequency_minutes': value['frequency_minutes'],
94
110
  'enabled': value['enabled'],
111
+ 'triggered': value['triggered'],
112
+ 'triggered_at': value['triggered_at'],
95
113
  };
96
114
  }
97
115
 
package/openapi.json CHANGED
@@ -2841,8 +2841,11 @@
2841
2841
  "name": "market_ids",
2842
2842
  "in": "query",
2843
2843
  "required": false,
2844
- "type": "integer",
2845
- "format": "int16"
2844
+ "type": "array",
2845
+ "items": {
2846
+ "type": "integer",
2847
+ "format": "int16"
2848
+ }
2846
2849
  }
2847
2850
  ],
2848
2851
  "tags": [
@@ -3298,8 +3301,11 @@
3298
3301
  "name": "market_ids",
3299
3302
  "in": "query",
3300
3303
  "required": false,
3301
- "type": "integer",
3302
- "format": "int16"
3304
+ "type": "array",
3305
+ "items": {
3306
+ "type": "integer",
3307
+ "format": "int16"
3308
+ }
3303
3309
  },
3304
3310
  {
3305
3311
  "name": "cursor",
@@ -8583,6 +8589,10 @@
8583
8589
  "price_alerts_enabled": {
8584
8590
  "type": "boolean",
8585
8591
  "format": "boolean"
8592
+ },
8593
+ "order_filled_enabled": {
8594
+ "type": "boolean",
8595
+ "format": "boolean"
8586
8596
  }
8587
8597
  },
8588
8598
  "title": "NotificationPreferences",
@@ -8590,7 +8600,8 @@
8590
8600
  "liquidations_enabled",
8591
8601
  "global_announcements_enabled",
8592
8602
  "private_announcements_enabled",
8593
- "price_alerts_enabled"
8603
+ "price_alerts_enabled",
8604
+ "order_filled_enabled"
8594
8605
  ]
8595
8606
  },
8596
8607
  "Order": {
@@ -9918,6 +9929,14 @@
9918
9929
  "enabled": {
9919
9930
  "type": "boolean",
9920
9931
  "format": "boolean"
9932
+ },
9933
+ "triggered": {
9934
+ "type": "boolean",
9935
+ "format": "boolean"
9936
+ },
9937
+ "triggered_at": {
9938
+ "type": "integer",
9939
+ "format": "int64"
9921
9940
  }
9922
9941
  },
9923
9942
  "title": "PriceAlert",
@@ -9926,7 +9945,9 @@
9926
9945
  "trigger_price",
9927
9946
  "direction",
9928
9947
  "frequency_minutes",
9929
- "enabled"
9948
+ "enabled",
9949
+ "triggered",
9950
+ "triggered_at"
9930
9951
  ]
9931
9952
  },
9932
9953
  "PriceChangeAlert": {
@@ -9950,6 +9971,14 @@
9950
9971
  "enabled": {
9951
9972
  "type": "boolean",
9952
9973
  "format": "boolean"
9974
+ },
9975
+ "triggered": {
9976
+ "type": "boolean",
9977
+ "format": "boolean"
9978
+ },
9979
+ "triggered_at": {
9980
+ "type": "integer",
9981
+ "format": "int64"
9953
9982
  }
9954
9983
  },
9955
9984
  "title": "PriceChangeAlert",
@@ -9958,7 +9987,9 @@
9958
9987
  "change_percent",
9959
9988
  "reference_price",
9960
9989
  "frequency_minutes",
9961
- "enabled"
9990
+ "enabled",
9991
+ "triggered",
9992
+ "triggered_at"
9962
9993
  ]
9963
9994
  },
9964
9995
  "PriceLevel": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zklighter-perps",
3
- "version": "1.0.270",
3
+ "version": "1.0.272",
4
4
  "description": "Lighter Perps SDK",
5
5
  "main": "index.ts",
6
6
  "directories": {