zklighter-perps 1.0.347 → 1.0.349

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.
@@ -61,6 +61,10 @@ models/AssetStats.ts
61
61
  models/AtomicOrder.ts
62
62
  models/AtomicOrderLeg.ts
63
63
  models/Auth.ts
64
+ models/BOSideCost.ts
65
+ models/BOSizeCost.ts
66
+ models/BOSymbolCosts.ts
67
+ models/BOVenueCosts.ts
64
68
  models/BinaryOptionMarketStats.ts
65
69
  models/Block.ts
66
70
  models/Blocks.ts
@@ -287,6 +291,7 @@ models/RespCreateRFQ.ts
287
291
  models/RespCreateStrategyHeartbeat.ts
288
292
  models/RespGaslessDeposit.ts
289
293
  models/RespGetApiTokens.ts
294
+ models/RespGetBOExecuteStats.ts
290
295
  models/RespGetBoPnL.ts
291
296
  models/RespGetBridgesByL1Addr.ts
292
297
  models/RespGetCompetitions.ts
package/apis/InfoApi.ts CHANGED
@@ -94,7 +94,7 @@ export class InfoApi extends runtime.BaseAPI {
94
94
  }
95
95
 
96
96
  /**
97
- * Get price oracle info (source in use, median exchanges, price cap) for all markets or a single symbol
97
+ * Get price oracle info (source, median exchanges, price cap, last accepted time and publishing status) for all markets or a single symbol
98
98
  * priceOracleInfo
99
99
  */
100
100
  async priceOracleInfoRaw(requestParameters: PriceOracleInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RespPriceOracleInfo>> {
@@ -117,7 +117,7 @@ export class InfoApi extends runtime.BaseAPI {
117
117
  }
118
118
 
119
119
  /**
120
- * Get price oracle info (source in use, median exchanges, price cap) for all markets or a single symbol
120
+ * Get price oracle info (source, median exchanges, price cap, last accepted time and publishing status) for all markets or a single symbol
121
121
  * priceOracleInfo
122
122
  */
123
123
  async priceOracleInfo(requestParameters: PriceOracleInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RespPriceOracleInfo> {
package/apis/OrderApi.ts CHANGED
@@ -24,6 +24,7 @@ import type {
24
24
  OrderBookOrders,
25
25
  OrderBooks,
26
26
  Orders,
27
+ RespGetBOExecuteStats,
27
28
  RespGetExchangeMetrics,
28
29
  RespGetExecuteStats,
29
30
  RespGetMarketMetrics,
@@ -49,6 +50,8 @@ import {
49
50
  OrderBooksToJSON,
50
51
  OrdersFromJSON,
51
52
  OrdersToJSON,
53
+ RespGetBOExecuteStatsFromJSON,
54
+ RespGetBOExecuteStatsToJSON,
52
55
  RespGetExchangeMetricsFromJSON,
53
56
  RespGetExchangeMetricsToJSON,
54
57
  RespGetExecuteStatsFromJSON,
@@ -552,6 +555,34 @@ export class OrderApi extends runtime.BaseAPI {
552
555
  return await response.value();
553
556
  }
554
557
 
558
+ /**
559
+ * Get the mean cost of buying Up and Down on the 15-minute BTC and ETH Up/Down rounds over the last day, per venue and size
560
+ * boExecuteStats
561
+ */
562
+ async boExecuteStatsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RespGetBOExecuteStats>> {
563
+ const queryParameters: any = {};
564
+
565
+ const headerParameters: runtime.HTTPHeaders = {};
566
+
567
+ const response = await this.request({
568
+ path: `/api/v1/boExecuteStats`,
569
+ method: 'GET',
570
+ headers: headerParameters,
571
+ query: queryParameters,
572
+ }, initOverrides);
573
+
574
+ return new runtime.JSONApiResponse(response, (jsonValue) => RespGetBOExecuteStatsFromJSON(jsonValue));
575
+ }
576
+
577
+ /**
578
+ * Get the mean cost of buying Up and Down on the 15-minute BTC and ETH Up/Down rounds over the last day, per venue and size
579
+ * boExecuteStats
580
+ */
581
+ async boExecuteStats(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RespGetBOExecuteStats> {
582
+ const response = await this.boExecuteStatsRaw(initOverrides);
583
+ return await response.value();
584
+ }
585
+
555
586
  /**
556
587
  * Get exchange metrics
557
588
  * exchangeMetrics
@@ -0,0 +1,79 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface BOSideCost
20
+ */
21
+ export interface BOSideCost {
22
+ /**
23
+ * average price per share, in dollars
24
+ * @type {number}
25
+ * @memberof BOSideCost
26
+ */
27
+ avg_price: number;
28
+ /**
29
+ * cents per share over the mid (for Down, over 1 - mid)
30
+ * @type {number}
31
+ * @memberof BOSideCost
32
+ */
33
+ slippage_c: number;
34
+ /**
35
+ * taker fee, cents per share
36
+ * @type {number}
37
+ * @memberof BOSideCost
38
+ */
39
+ fee_c: number;
40
+ }
41
+
42
+ /**
43
+ * Check if a given object implements the BOSideCost interface.
44
+ */
45
+ export function instanceOfBOSideCost(value: object): value is BOSideCost {
46
+ if (!('avg_price' in value) || value['avg_price'] === undefined) return false;
47
+ if (!('slippage_c' in value) || value['slippage_c'] === undefined) return false;
48
+ if (!('fee_c' in value) || value['fee_c'] === undefined) return false;
49
+ return true;
50
+ }
51
+
52
+ export function BOSideCostFromJSON(json: any): BOSideCost {
53
+ return BOSideCostFromJSONTyped(json, false);
54
+ }
55
+
56
+ export function BOSideCostFromJSONTyped(json: any, ignoreDiscriminator: boolean): BOSideCost {
57
+ if (json == null) {
58
+ return json;
59
+ }
60
+ return {
61
+
62
+ 'avg_price': json['avg_price'],
63
+ 'slippage_c': json['slippage_c'],
64
+ 'fee_c': json['fee_c'],
65
+ };
66
+ }
67
+
68
+ export function BOSideCostToJSON(value?: BOSideCost | null): any {
69
+ if (value == null) {
70
+ return value;
71
+ }
72
+ return {
73
+
74
+ 'avg_price': value['avg_price'],
75
+ 'slippage_c': value['slippage_c'],
76
+ 'fee_c': value['fee_c'],
77
+ };
78
+ }
79
+
@@ -0,0 +1,140 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { BOSideCost } from './BOSideCost';
17
+ import {
18
+ BOSideCostFromJSON,
19
+ BOSideCostFromJSONTyped,
20
+ BOSideCostToJSON,
21
+ } from './BOSideCost';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface BOSizeCost
27
+ */
28
+ export interface BOSizeCost {
29
+ /**
30
+ *
31
+ * @type {number}
32
+ * @memberof BOSizeCost
33
+ */
34
+ size_usd: number;
35
+ /**
36
+ * ok, or not_enough_data: too few samples, show N/A
37
+ * @type {string}
38
+ * @memberof BOSizeCost
39
+ */
40
+ status: string;
41
+ /**
42
+ * 30s samples averaged: every served venue was valid at that moment
43
+ * @type {number}
44
+ * @memberof BOSizeCost
45
+ */
46
+ samples: number;
47
+ /**
48
+ * share of the venue's in-band samples where the size filled; null without any
49
+ * @type {number}
50
+ * @memberof BOSizeCost
51
+ */
52
+ fill_rate: number;
53
+ /**
54
+ *
55
+ * @type {BOSideCost}
56
+ * @memberof BOSizeCost
57
+ */
58
+ up: BOSideCost;
59
+ /**
60
+ *
61
+ * @type {BOSideCost}
62
+ * @memberof BOSizeCost
63
+ */
64
+ down: BOSideCost;
65
+ /**
66
+ * cents per share, Up and Down averaged
67
+ * @type {number}
68
+ * @memberof BOSizeCost
69
+ */
70
+ total_c: number;
71
+ /**
72
+ * % of the price paid, Up and Down averaged
73
+ * @type {number}
74
+ * @memberof BOSizeCost
75
+ */
76
+ total_pct: number;
77
+ /**
78
+ * size_usd * total_pct / 100
79
+ * @type {number}
80
+ * @memberof BOSizeCost
81
+ */
82
+ cost_usd: number;
83
+ }
84
+
85
+ /**
86
+ * Check if a given object implements the BOSizeCost interface.
87
+ */
88
+ export function instanceOfBOSizeCost(value: object): value is BOSizeCost {
89
+ if (!('size_usd' in value) || value['size_usd'] === undefined) return false;
90
+ if (!('status' in value) || value['status'] === undefined) return false;
91
+ if (!('samples' in value) || value['samples'] === undefined) return false;
92
+ if (!('fill_rate' in value) || value['fill_rate'] === undefined) return false;
93
+ if (!('up' in value) || value['up'] === undefined) return false;
94
+ if (!('down' in value) || value['down'] === undefined) return false;
95
+ if (!('total_c' in value) || value['total_c'] === undefined) return false;
96
+ if (!('total_pct' in value) || value['total_pct'] === undefined) return false;
97
+ if (!('cost_usd' in value) || value['cost_usd'] === undefined) return false;
98
+ return true;
99
+ }
100
+
101
+ export function BOSizeCostFromJSON(json: any): BOSizeCost {
102
+ return BOSizeCostFromJSONTyped(json, false);
103
+ }
104
+
105
+ export function BOSizeCostFromJSONTyped(json: any, ignoreDiscriminator: boolean): BOSizeCost {
106
+ if (json == null) {
107
+ return json;
108
+ }
109
+ return {
110
+
111
+ 'size_usd': json['size_usd'],
112
+ 'status': json['status'],
113
+ 'samples': json['samples'],
114
+ 'fill_rate': json['fill_rate'],
115
+ 'up': BOSideCostFromJSON(json['up']),
116
+ 'down': BOSideCostFromJSON(json['down']),
117
+ 'total_c': json['total_c'],
118
+ 'total_pct': json['total_pct'],
119
+ 'cost_usd': json['cost_usd'],
120
+ };
121
+ }
122
+
123
+ export function BOSizeCostToJSON(value?: BOSizeCost | null): any {
124
+ if (value == null) {
125
+ return value;
126
+ }
127
+ return {
128
+
129
+ 'size_usd': value['size_usd'],
130
+ 'status': value['status'],
131
+ 'samples': value['samples'],
132
+ 'fill_rate': value['fill_rate'],
133
+ 'up': BOSideCostToJSON(value['up']),
134
+ 'down': BOSideCostToJSON(value['down']),
135
+ 'total_c': value['total_c'],
136
+ 'total_pct': value['total_pct'],
137
+ 'cost_usd': value['cost_usd'],
138
+ };
139
+ }
140
+
@@ -0,0 +1,77 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { BOVenueCosts } from './BOVenueCosts';
17
+ import {
18
+ BOVenueCostsFromJSON,
19
+ BOVenueCostsFromJSONTyped,
20
+ BOVenueCostsToJSON,
21
+ } from './BOVenueCosts';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface BOSymbolCosts
27
+ */
28
+ export interface BOSymbolCosts {
29
+ /**
30
+ *
31
+ * @type {string}
32
+ * @memberof BOSymbolCosts
33
+ */
34
+ symbol: string;
35
+ /**
36
+ *
37
+ * @type {Array<BOVenueCosts>}
38
+ * @memberof BOSymbolCosts
39
+ */
40
+ venues: Array<BOVenueCosts>;
41
+ }
42
+
43
+ /**
44
+ * Check if a given object implements the BOSymbolCosts interface.
45
+ */
46
+ export function instanceOfBOSymbolCosts(value: object): value is BOSymbolCosts {
47
+ if (!('symbol' in value) || value['symbol'] === undefined) return false;
48
+ if (!('venues' in value) || value['venues'] === undefined) return false;
49
+ return true;
50
+ }
51
+
52
+ export function BOSymbolCostsFromJSON(json: any): BOSymbolCosts {
53
+ return BOSymbolCostsFromJSONTyped(json, false);
54
+ }
55
+
56
+ export function BOSymbolCostsFromJSONTyped(json: any, ignoreDiscriminator: boolean): BOSymbolCosts {
57
+ if (json == null) {
58
+ return json;
59
+ }
60
+ return {
61
+
62
+ 'symbol': json['symbol'],
63
+ 'venues': ((json['venues'] as Array<any>).map(BOVenueCostsFromJSON)),
64
+ };
65
+ }
66
+
67
+ export function BOSymbolCostsToJSON(value?: BOSymbolCosts | null): any {
68
+ if (value == null) {
69
+ return value;
70
+ }
71
+ return {
72
+
73
+ 'symbol': value['symbol'],
74
+ 'venues': ((value['venues'] as Array<any>).map(BOVenueCostsToJSON)),
75
+ };
76
+ }
77
+
@@ -0,0 +1,86 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { BOSizeCost } from './BOSizeCost';
17
+ import {
18
+ BOSizeCostFromJSON,
19
+ BOSizeCostFromJSONTyped,
20
+ BOSizeCostToJSON,
21
+ } from './BOSizeCost';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface BOVenueCosts
27
+ */
28
+ export interface BOVenueCosts {
29
+ /**
30
+ *
31
+ * @type {string}
32
+ * @memberof BOVenueCosts
33
+ */
34
+ venue: string;
35
+ /**
36
+ * start_price, or fixed_threshold (Hyperliquid: not the same contract)
37
+ * @type {string}
38
+ * @memberof BOVenueCosts
39
+ */
40
+ strike_type: string;
41
+ /**
42
+ *
43
+ * @type {Array<BOSizeCost>}
44
+ * @memberof BOVenueCosts
45
+ */
46
+ sizes: Array<BOSizeCost>;
47
+ }
48
+
49
+ /**
50
+ * Check if a given object implements the BOVenueCosts interface.
51
+ */
52
+ export function instanceOfBOVenueCosts(value: object): value is BOVenueCosts {
53
+ if (!('venue' in value) || value['venue'] === undefined) return false;
54
+ if (!('strike_type' in value) || value['strike_type'] === undefined) return false;
55
+ if (!('sizes' in value) || value['sizes'] === undefined) return false;
56
+ return true;
57
+ }
58
+
59
+ export function BOVenueCostsFromJSON(json: any): BOVenueCosts {
60
+ return BOVenueCostsFromJSONTyped(json, false);
61
+ }
62
+
63
+ export function BOVenueCostsFromJSONTyped(json: any, ignoreDiscriminator: boolean): BOVenueCosts {
64
+ if (json == null) {
65
+ return json;
66
+ }
67
+ return {
68
+
69
+ 'venue': json['venue'],
70
+ 'strike_type': json['strike_type'],
71
+ 'sizes': ((json['sizes'] as Array<any>).map(BOSizeCostFromJSON)),
72
+ };
73
+ }
74
+
75
+ export function BOVenueCostsToJSON(value?: BOVenueCosts | null): any {
76
+ if (value == null) {
77
+ return value;
78
+ }
79
+ return {
80
+
81
+ 'venue': value['venue'],
82
+ 'strike_type': value['strike_type'],
83
+ 'sizes': ((value['sizes'] as Array<any>).map(BOSizeCostToJSON)),
84
+ };
85
+ }
86
+
@@ -61,6 +61,30 @@ export interface PriceOraclePrice {
61
61
  * @memberof PriceOraclePrice
62
62
  */
63
63
  price_cap_reference_price: number;
64
+ /**
65
+ * 0 if none accepted since the price service started
66
+ * @type {number}
67
+ * @memberof PriceOraclePrice
68
+ */
69
+ last_accepted_at_ms: number;
70
+ /**
71
+ * no source is currently publishing a price
72
+ * @type {boolean}
73
+ * @memberof PriceOraclePrice
74
+ */
75
+ awaiting_sources: boolean;
76
+ /**
77
+ * a newer price is pending acceptance
78
+ * @type {boolean}
79
+ * @memberof PriceOraclePrice
80
+ */
81
+ awaiting_verification: boolean;
82
+ /**
83
+ * no price accepted for longer than the market's staleness threshold
84
+ * @type {boolean}
85
+ * @memberof PriceOraclePrice
86
+ */
87
+ stale: boolean;
64
88
  }
65
89
 
66
90
  /**
@@ -74,6 +98,10 @@ export function instanceOfPriceOraclePrice(value: object): value is PriceOracleP
74
98
  if (!('underlying' in value) || value['underlying'] === undefined) return false;
75
99
  if (!('price_cap_bps' in value) || value['price_cap_bps'] === undefined) return false;
76
100
  if (!('price_cap_reference_price' in value) || value['price_cap_reference_price'] === undefined) return false;
101
+ if (!('last_accepted_at_ms' in value) || value['last_accepted_at_ms'] === undefined) return false;
102
+ if (!('awaiting_sources' in value) || value['awaiting_sources'] === undefined) return false;
103
+ if (!('awaiting_verification' in value) || value['awaiting_verification'] === undefined) return false;
104
+ if (!('stale' in value) || value['stale'] === undefined) return false;
77
105
  return true;
78
106
  }
79
107
 
@@ -94,6 +122,10 @@ export function PriceOraclePriceFromJSONTyped(json: any, ignoreDiscriminator: bo
94
122
  'underlying': json['underlying'],
95
123
  'price_cap_bps': json['price_cap_bps'],
96
124
  'price_cap_reference_price': json['price_cap_reference_price'],
125
+ 'last_accepted_at_ms': json['last_accepted_at_ms'],
126
+ 'awaiting_sources': json['awaiting_sources'],
127
+ 'awaiting_verification': json['awaiting_verification'],
128
+ 'stale': json['stale'],
97
129
  };
98
130
  }
99
131
 
@@ -110,6 +142,10 @@ export function PriceOraclePriceToJSON(value?: PriceOraclePrice | null): any {
110
142
  'underlying': value['underlying'],
111
143
  'price_cap_bps': value['price_cap_bps'],
112
144
  'price_cap_reference_price': value['price_cap_reference_price'],
145
+ 'last_accepted_at_ms': value['last_accepted_at_ms'],
146
+ 'awaiting_sources': value['awaiting_sources'],
147
+ 'awaiting_verification': value['awaiting_verification'],
148
+ 'stale': value['stale'],
113
149
  };
114
150
  }
115
151
 
@@ -0,0 +1,95 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ import type { BOSymbolCosts } from './BOSymbolCosts';
17
+ import {
18
+ BOSymbolCostsFromJSON,
19
+ BOSymbolCostsFromJSONTyped,
20
+ BOSymbolCostsToJSON,
21
+ } from './BOSymbolCosts';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface RespGetBOExecuteStats
27
+ */
28
+ export interface RespGetBOExecuteStats {
29
+ /**
30
+ * start of the first round averaged
31
+ * @type {number}
32
+ * @memberof RespGetBOExecuteStats
33
+ */
34
+ window_start: number;
35
+ /**
36
+ * end of the last completed round
37
+ * @type {number}
38
+ * @memberof RespGetBOExecuteStats
39
+ */
40
+ window_end: number;
41
+ /**
42
+ * rounds with data in the window
43
+ * @type {number}
44
+ * @memberof RespGetBOExecuteStats
45
+ */
46
+ rounds: number;
47
+ /**
48
+ *
49
+ * @type {Array<BOSymbolCosts>}
50
+ * @memberof RespGetBOExecuteStats
51
+ */
52
+ symbols: Array<BOSymbolCosts>;
53
+ }
54
+
55
+ /**
56
+ * Check if a given object implements the RespGetBOExecuteStats interface.
57
+ */
58
+ export function instanceOfRespGetBOExecuteStats(value: object): value is RespGetBOExecuteStats {
59
+ if (!('window_start' in value) || value['window_start'] === undefined) return false;
60
+ if (!('window_end' in value) || value['window_end'] === undefined) return false;
61
+ if (!('rounds' in value) || value['rounds'] === undefined) return false;
62
+ if (!('symbols' in value) || value['symbols'] === undefined) return false;
63
+ return true;
64
+ }
65
+
66
+ export function RespGetBOExecuteStatsFromJSON(json: any): RespGetBOExecuteStats {
67
+ return RespGetBOExecuteStatsFromJSONTyped(json, false);
68
+ }
69
+
70
+ export function RespGetBOExecuteStatsFromJSONTyped(json: any, ignoreDiscriminator: boolean): RespGetBOExecuteStats {
71
+ if (json == null) {
72
+ return json;
73
+ }
74
+ return {
75
+
76
+ 'window_start': json['window_start'],
77
+ 'window_end': json['window_end'],
78
+ 'rounds': json['rounds'],
79
+ 'symbols': ((json['symbols'] as Array<any>).map(BOSymbolCostsFromJSON)),
80
+ };
81
+ }
82
+
83
+ export function RespGetBOExecuteStatsToJSON(value?: RespGetBOExecuteStats | null): any {
84
+ if (value == null) {
85
+ return value;
86
+ }
87
+ return {
88
+
89
+ 'window_start': value['window_start'],
90
+ 'window_end': value['window_end'],
91
+ 'rounds': value['rounds'],
92
+ 'symbols': ((value['symbols'] as Array<any>).map(BOSymbolCostsToJSON)),
93
+ };
94
+ }
95
+
package/models/index.ts CHANGED
@@ -32,6 +32,10 @@ export * from './AssetStats';
32
32
  export * from './AtomicOrder';
33
33
  export * from './AtomicOrderLeg';
34
34
  export * from './Auth';
35
+ export * from './BOSideCost';
36
+ export * from './BOSizeCost';
37
+ export * from './BOSymbolCosts';
38
+ export * from './BOVenueCosts';
35
39
  export * from './BinaryOptionMarketStats';
36
40
  export * from './Block';
37
41
  export * from './Blocks';
@@ -258,6 +262,7 @@ export * from './RespCreateRFQ';
258
262
  export * from './RespCreateStrategyHeartbeat';
259
263
  export * from './RespGaslessDeposit';
260
264
  export * from './RespGetApiTokens';
265
+ export * from './RespGetBOExecuteStats';
261
266
  export * from './RespGetBoPnL';
262
267
  export * from './RespGetBridgesByL1Addr';
263
268
  export * from './RespGetCompetitions';
package/openapi.json CHANGED
@@ -1224,6 +1224,30 @@
1224
1224
  "description": "Get blocks"
1225
1225
  }
1226
1226
  },
1227
+ "/api/v1/boExecuteStats": {
1228
+ "get": {
1229
+ "summary": "boExecuteStats",
1230
+ "operationId": "boExecuteStats",
1231
+ "responses": {
1232
+ "200": {
1233
+ "description": "A successful response.",
1234
+ "schema": {
1235
+ "$ref": "#/definitions/RespGetBOExecuteStats"
1236
+ }
1237
+ },
1238
+ "400": {
1239
+ "description": "Bad request",
1240
+ "schema": {
1241
+ "$ref": "#/definitions/ResultCode"
1242
+ }
1243
+ }
1244
+ },
1245
+ "tags": [
1246
+ "order"
1247
+ ],
1248
+ "description": "Get the mean cost of buying Up and Down on the 15-minute BTC and ETH Up/Down rounds over the last day, per venue and size"
1249
+ }
1250
+ },
1227
1251
  "/api/v1/bridges": {
1228
1252
  "get": {
1229
1253
  "summary": "bridges",
@@ -5760,7 +5784,7 @@
5760
5784
  "consumes": [
5761
5785
  "multipart/form-data"
5762
5786
  ],
5763
- "description": "Get price oracle info (source in use, median exchanges, price cap) for all markets or a single symbol"
5787
+ "description": "Get price oracle info (source, median exchanges, price cap, last accepted time and publishing status) for all markets or a single symbol"
5764
5788
  }
5765
5789
  },
5766
5790
  "/api/v1/publicPoolsMetadata": {
@@ -9921,6 +9945,145 @@
9921
9945
  "auth"
9922
9946
  ]
9923
9947
  },
9948
+ "BOSideCost": {
9949
+ "type": "object",
9950
+ "properties": {
9951
+ "avg_price": {
9952
+ "type": "number",
9953
+ "format": "double",
9954
+ "example": "0.512",
9955
+ "description": " average price per share, in dollars"
9956
+ },
9957
+ "slippage_c": {
9958
+ "type": "number",
9959
+ "format": "double",
9960
+ "example": "0.7",
9961
+ "description": " cents per share over the mid (for Down, over 1 - mid)"
9962
+ },
9963
+ "fee_c": {
9964
+ "type": "number",
9965
+ "format": "double",
9966
+ "example": "0.25",
9967
+ "description": " taker fee, cents per share"
9968
+ }
9969
+ },
9970
+ "title": "BOSideCost",
9971
+ "required": [
9972
+ "avg_price",
9973
+ "slippage_c",
9974
+ "fee_c"
9975
+ ]
9976
+ },
9977
+ "BOSizeCost": {
9978
+ "type": "object",
9979
+ "properties": {
9980
+ "size_usd": {
9981
+ "type": "integer",
9982
+ "format": "int64",
9983
+ "example": "100"
9984
+ },
9985
+ "status": {
9986
+ "type": "string",
9987
+ "example": "ok",
9988
+ "description": " ok, or not_enough_data: too few samples, show N/A"
9989
+ },
9990
+ "samples": {
9991
+ "type": "integer",
9992
+ "format": "int64",
9993
+ "example": "2841",
9994
+ "description": " 30s samples averaged: every served venue was valid at that moment"
9995
+ },
9996
+ "fill_rate": {
9997
+ "type": "number",
9998
+ "format": "double",
9999
+ "example": "0.97",
10000
+ "description": " share of the venue's in-band samples where the size filled; null without any"
10001
+ },
10002
+ "up": {
10003
+ "$ref": "#/definitions/BOSideCost",
10004
+ "description": " mean over the samples; null unless status is ok"
10005
+ },
10006
+ "down": {
10007
+ "$ref": "#/definitions/BOSideCost"
10008
+ },
10009
+ "total_c": {
10010
+ "type": "number",
10011
+ "format": "double",
10012
+ "example": "0.75",
10013
+ "description": " cents per share, Up and Down averaged"
10014
+ },
10015
+ "total_pct": {
10016
+ "type": "number",
10017
+ "format": "double",
10018
+ "example": "1.47",
10019
+ "description": " % of the price paid, Up and Down averaged"
10020
+ },
10021
+ "cost_usd": {
10022
+ "type": "number",
10023
+ "format": "double",
10024
+ "example": "1.47",
10025
+ "description": " size_usd * total_pct / 100"
10026
+ }
10027
+ },
10028
+ "title": "BOSizeCost",
10029
+ "required": [
10030
+ "size_usd",
10031
+ "status",
10032
+ "samples",
10033
+ "fill_rate",
10034
+ "up",
10035
+ "down",
10036
+ "total_c",
10037
+ "total_pct",
10038
+ "cost_usd"
10039
+ ]
10040
+ },
10041
+ "BOSymbolCosts": {
10042
+ "type": "object",
10043
+ "properties": {
10044
+ "symbol": {
10045
+ "type": "string",
10046
+ "example": "btc"
10047
+ },
10048
+ "venues": {
10049
+ "type": "array",
10050
+ "items": {
10051
+ "$ref": "#/definitions/BOVenueCosts"
10052
+ }
10053
+ }
10054
+ },
10055
+ "title": "BOSymbolCosts",
10056
+ "required": [
10057
+ "symbol",
10058
+ "venues"
10059
+ ]
10060
+ },
10061
+ "BOVenueCosts": {
10062
+ "type": "object",
10063
+ "properties": {
10064
+ "venue": {
10065
+ "type": "string",
10066
+ "example": "lighter"
10067
+ },
10068
+ "strike_type": {
10069
+ "type": "string",
10070
+ "example": "start_price",
10071
+ "description": " start_price, or fixed_threshold (Hyperliquid: not the same contract)"
10072
+ },
10073
+ "sizes": {
10074
+ "type": "array",
10075
+ "items": {
10076
+ "$ref": "#/definitions/BOSizeCost"
10077
+ }
10078
+ }
10079
+ },
10080
+ "title": "BOVenueCosts",
10081
+ "required": [
10082
+ "venue",
10083
+ "strike_type",
10084
+ "sizes"
10085
+ ]
10086
+ },
9924
10087
  "BinaryOptionMarketStats": {
9925
10088
  "type": "object",
9926
10089
  "properties": {
@@ -15973,6 +16136,26 @@
15973
16136
  "type": "number",
15974
16137
  "format": "double",
15975
16138
  "description": " cap bounds: ref * (1 -/+ bps / 10000)"
16139
+ },
16140
+ "last_accepted_at_ms": {
16141
+ "type": "integer",
16142
+ "format": "int64",
16143
+ "description": " 0 if none accepted since the price service started"
16144
+ },
16145
+ "awaiting_sources": {
16146
+ "type": "boolean",
16147
+ "format": "boolean",
16148
+ "description": " no source is currently publishing a price"
16149
+ },
16150
+ "awaiting_verification": {
16151
+ "type": "boolean",
16152
+ "format": "boolean",
16153
+ "description": " a newer price is pending acceptance"
16154
+ },
16155
+ "stale": {
16156
+ "type": "boolean",
16157
+ "format": "boolean",
16158
+ "description": " no price accepted for longer than the market's staleness threshold"
15976
16159
  }
15977
16160
  },
15978
16161
  "title": "PriceOraclePrice",
@@ -15983,7 +16166,11 @@
15983
16166
  "median_sources",
15984
16167
  "underlying",
15985
16168
  "price_cap_bps",
15986
- "price_cap_reference_price"
16169
+ "price_cap_reference_price",
16170
+ "last_accepted_at_ms",
16171
+ "awaiting_sources",
16172
+ "awaiting_verification",
16173
+ "stale"
15987
16174
  ]
15988
16175
  },
15989
16176
  "PublicPoolInfo": {
@@ -20768,6 +20955,42 @@
20768
20955
  "api_tokens"
20769
20956
  ]
20770
20957
  },
20958
+ "RespGetBOExecuteStats": {
20959
+ "type": "object",
20960
+ "properties": {
20961
+ "window_start": {
20962
+ "type": "integer",
20963
+ "format": "int64",
20964
+ "example": "1792674000000",
20965
+ "description": " start of the first round averaged"
20966
+ },
20967
+ "window_end": {
20968
+ "type": "integer",
20969
+ "format": "int64",
20970
+ "example": "1792760400000",
20971
+ "description": " end of the last completed round"
20972
+ },
20973
+ "rounds": {
20974
+ "type": "integer",
20975
+ "format": "int64",
20976
+ "example": "96",
20977
+ "description": " rounds with data in the window"
20978
+ },
20979
+ "symbols": {
20980
+ "type": "array",
20981
+ "items": {
20982
+ "$ref": "#/definitions/BOSymbolCosts"
20983
+ }
20984
+ }
20985
+ },
20986
+ "title": "RespGetBOExecuteStats",
20987
+ "required": [
20988
+ "window_start",
20989
+ "window_end",
20990
+ "rounds",
20991
+ "symbols"
20992
+ ]
20993
+ },
20771
20994
  "RespGetBoPnL": {
20772
20995
  "type": "object",
20773
20996
  "properties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zklighter-perps",
3
- "version": "1.0.347",
3
+ "version": "1.0.349",
4
4
  "description": "Lighter Perps SDK",
5
5
  "main": "index.ts",
6
6
  "directories": {