zklighter-perps 1.0.179 → 1.0.181

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.
@@ -15,6 +15,7 @@ apis/index.ts
15
15
  index.ts
16
16
  models/Account.ts
17
17
  models/AccountApiKeys.ts
18
+ models/AccountAsset.ts
18
19
  models/AccountLimits.ts
19
20
  models/AccountMarginStats.ts
20
21
  models/AccountMarketStats.ts
@@ -27,6 +28,8 @@ models/AccountTradeStats.ts
27
28
  models/Announcement.ts
28
29
  models/Announcements.ts
29
30
  models/ApiKey.ts
31
+ models/Asset.ts
32
+ models/AssetDetails.ts
30
33
  models/Block.ts
31
34
  models/Blocks.ts
32
35
  models/Bridge.ts
@@ -66,17 +69,17 @@ models/Liquidation.ts
66
69
  models/LiquidationInfo.ts
67
70
  models/LiquidationInfos.ts
68
71
  models/MarketConfig.ts
69
- models/MarketInfo.ts
70
72
  models/NextNonce.ts
71
73
  models/Order.ts
72
74
  models/OrderBook.ts
73
75
  models/OrderBookDepth.ts
74
- models/OrderBookDetail.ts
75
76
  models/OrderBookDetails.ts
76
77
  models/OrderBookOrders.ts
77
78
  models/OrderBookStats.ts
78
79
  models/OrderBooks.ts
79
80
  models/Orders.ts
81
+ models/PerpsMarketStats.ts
82
+ models/PerpsOrderBookDetail.ts
80
83
  models/PnLEntry.ts
81
84
  models/PositionFunding.ts
82
85
  models/PositionFundings.ts
@@ -98,6 +101,7 @@ models/ReqGetAccountLimits.ts
98
101
  models/ReqGetAccountMetadata.ts
99
102
  models/ReqGetAccountPnL.ts
100
103
  models/ReqGetAccountTxs.ts
104
+ models/ReqGetAssetDetails.ts
101
105
  models/ReqGetBlock.ts
102
106
  models/ReqGetBlockTxs.ts
103
107
  models/ReqGetBridgesByL1Addr.ts
@@ -146,6 +150,8 @@ models/RiskInfo.ts
146
150
  models/RiskParameters.ts
147
151
  models/SharePrice.ts
148
152
  models/SimpleOrder.ts
153
+ models/SpotMarketStats.ts
154
+ models/SpotOrderBookDetail.ts
149
155
  models/Status.ts
150
156
  models/SubAccounts.ts
151
157
  models/Ticker.ts
@@ -97,6 +97,7 @@ export interface ChangeAccountTierRequest {
97
97
 
98
98
  export interface FaucetRequest {
99
99
  l1_address: string;
100
+ do_l1_transfer: boolean;
100
101
  }
101
102
 
102
103
  export interface IsWhitelistedRequest {
@@ -484,12 +485,23 @@ export class AccountApi extends runtime.BaseAPI {
484
485
  );
485
486
  }
486
487
 
488
+ if (requestParameters['do_l1_transfer'] == null) {
489
+ throw new runtime.RequiredError(
490
+ 'do_l1_transfer',
491
+ 'Required parameter "do_l1_transfer" was null or undefined when calling faucet().'
492
+ );
493
+ }
494
+
487
495
  const queryParameters: any = {};
488
496
 
489
497
  if (requestParameters['l1_address'] != null) {
490
498
  queryParameters['l1_address'] = requestParameters['l1_address'];
491
499
  }
492
500
 
501
+ if (requestParameters['do_l1_transfer'] != null) {
502
+ queryParameters['do_l1_transfer'] = requestParameters['do_l1_transfer'];
503
+ }
504
+
493
505
  const headerParameters: runtime.HTTPHeaders = {};
494
506
 
495
507
  const response = await this.request({
package/apis/GeoApi.ts ADDED
@@ -0,0 +1,58 @@
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
+
16
+ import * as runtime from '../runtime';
17
+ import type {
18
+ ResultCode,
19
+ } from '../models/index';
20
+ import {
21
+ ResultCodeFromJSON,
22
+ ResultCodeToJSON,
23
+ } from '../models/index';
24
+
25
+ /**
26
+ *
27
+ */
28
+ export class GeoApi extends runtime.BaseAPI {
29
+
30
+ /**
31
+ * Get geo location
32
+ * geoLocation
33
+ */
34
+ async geoLocationRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ResultCode>> {
35
+ const queryParameters: any = {};
36
+
37
+ const headerParameters: runtime.HTTPHeaders = {};
38
+
39
+ const response = await this.request({
40
+ path: `/api/v1/geoLocation`,
41
+ method: 'GET',
42
+ headers: headerParameters,
43
+ query: queryParameters,
44
+ }, initOverrides);
45
+
46
+ return new runtime.JSONApiResponse(response, (jsonValue) => ResultCodeFromJSON(jsonValue));
47
+ }
48
+
49
+ /**
50
+ * Get geo location
51
+ * geoLocation
52
+ */
53
+ async geoLocation(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ResultCode> {
54
+ const response = await this.geoLocationRaw(initOverrides);
55
+ return await response.value();
56
+ }
57
+
58
+ }
package/apis/OrderApi.ts CHANGED
@@ -15,6 +15,7 @@
15
15
 
16
16
  import * as runtime from '../runtime';
17
17
  import type {
18
+ AssetDetails,
18
19
  ExchangeStats,
19
20
  ExportData,
20
21
  OrderBookDetails,
@@ -25,6 +26,8 @@ import type {
25
26
  Trades,
26
27
  } from '../models/index';
27
28
  import {
29
+ AssetDetailsFromJSON,
30
+ AssetDetailsToJSON,
28
31
  ExchangeStatsFromJSON,
29
32
  ExchangeStatsToJSON,
30
33
  ExportDataFromJSON,
@@ -69,8 +72,13 @@ export interface AccountInactiveOrdersRequest {
69
72
  cursor?: string;
70
73
  }
71
74
 
75
+ export interface AssetDetailsRequest {
76
+ asset_index?: number;
77
+ }
78
+
72
79
  export interface OrderBookDetailsRequest {
73
80
  market_id?: number;
81
+ filter?: OrderBookDetailsFilterEnum;
74
82
  }
75
83
 
76
84
  export interface OrderBookOrdersRequest {
@@ -80,6 +88,7 @@ export interface OrderBookOrdersRequest {
80
88
 
81
89
  export interface OrderBooksRequest {
82
90
  market_id?: number;
91
+ filter?: OrderBooksFilterEnum;
83
92
  }
84
93
 
85
94
  export interface RecentTradesRequest {
@@ -296,6 +305,38 @@ export class OrderApi extends runtime.BaseAPI {
296
305
  return await response.value();
297
306
  }
298
307
 
308
+ /**
309
+ * Get asset details
310
+ * assetDetails
311
+ */
312
+ async assetDetailsRaw(requestParameters: AssetDetailsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AssetDetails>> {
313
+ const queryParameters: any = {};
314
+
315
+ if (requestParameters['asset_index'] != null) {
316
+ queryParameters['asset_index'] = requestParameters['asset_index'];
317
+ }
318
+
319
+ const headerParameters: runtime.HTTPHeaders = {};
320
+
321
+ const response = await this.request({
322
+ path: `/api/v1/assetDetails`,
323
+ method: 'GET',
324
+ headers: headerParameters,
325
+ query: queryParameters,
326
+ }, initOverrides);
327
+
328
+ return new runtime.JSONApiResponse(response, (jsonValue) => AssetDetailsFromJSON(jsonValue));
329
+ }
330
+
331
+ /**
332
+ * Get asset details
333
+ * assetDetails
334
+ */
335
+ async assetDetails(requestParameters: AssetDetailsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssetDetails> {
336
+ const response = await this.assetDetailsRaw(requestParameters, initOverrides);
337
+ return await response.value();
338
+ }
339
+
299
340
  /**
300
341
  * Get exchange stats
301
342
  * exchangeStats
@@ -335,6 +376,10 @@ export class OrderApi extends runtime.BaseAPI {
335
376
  queryParameters['market_id'] = requestParameters['market_id'];
336
377
  }
337
378
 
379
+ if (requestParameters['filter'] != null) {
380
+ queryParameters['filter'] = requestParameters['filter'];
381
+ }
382
+
338
383
  const headerParameters: runtime.HTTPHeaders = {};
339
384
 
340
385
  const response = await this.request({
@@ -417,6 +462,10 @@ export class OrderApi extends runtime.BaseAPI {
417
462
  queryParameters['market_id'] = requestParameters['market_id'];
418
463
  }
419
464
 
465
+ if (requestParameters['filter'] != null) {
466
+ queryParameters['filter'] = requestParameters['filter'];
467
+ }
468
+
420
469
  const headerParameters: runtime.HTTPHeaders = {};
421
470
 
422
471
  const response = await this.request({
@@ -596,6 +645,24 @@ export const ExportTypeEnum = {
596
645
  Trade: 'trade'
597
646
  } as const;
598
647
  export type ExportTypeEnum = typeof ExportTypeEnum[keyof typeof ExportTypeEnum];
648
+ /**
649
+ * @export
650
+ */
651
+ export const OrderBookDetailsFilterEnum = {
652
+ All: 'all',
653
+ Spot: 'spot',
654
+ Perp: 'perp'
655
+ } as const;
656
+ export type OrderBookDetailsFilterEnum = typeof OrderBookDetailsFilterEnum[keyof typeof OrderBookDetailsFilterEnum];
657
+ /**
658
+ * @export
659
+ */
660
+ export const OrderBooksFilterEnum = {
661
+ All: 'all',
662
+ Spot: 'spot',
663
+ Perp: 'perp'
664
+ } as const;
665
+ export type OrderBooksFilterEnum = typeof OrderBooksFilterEnum[keyof typeof OrderBooksFilterEnum];
599
666
  /**
600
667
  * @export
601
668
  */
package/models/Account.ts CHANGED
@@ -61,12 +61,6 @@ export interface Account {
61
61
  * @memberof Account
62
62
  */
63
63
  total_order_count: number;
64
- /**
65
- *
66
- * @type {number}
67
- * @memberof Account
68
- */
69
- total_isolated_order_count: number;
70
64
  /**
71
65
  *
72
66
  * @type {number}
@@ -103,7 +97,6 @@ export function instanceOfAccount(value: object): value is Account {
103
97
  if (!('l1_address' in value) || value['l1_address'] === undefined) return false;
104
98
  if (!('cancel_all_time' in value) || value['cancel_all_time'] === undefined) return false;
105
99
  if (!('total_order_count' in value) || value['total_order_count'] === undefined) return false;
106
- if (!('total_isolated_order_count' in value) || value['total_isolated_order_count'] === undefined) return false;
107
100
  if (!('pending_order_count' in value) || value['pending_order_count'] === undefined) return false;
108
101
  if (!('available_balance' in value) || value['available_balance'] === undefined) return false;
109
102
  if (!('status' in value) || value['status'] === undefined) return false;
@@ -128,7 +121,6 @@ export function AccountFromJSONTyped(json: any, ignoreDiscriminator: boolean): A
128
121
  'l1_address': json['l1_address'],
129
122
  'cancel_all_time': json['cancel_all_time'],
130
123
  'total_order_count': json['total_order_count'],
131
- 'total_isolated_order_count': json['total_isolated_order_count'],
132
124
  'pending_order_count': json['pending_order_count'],
133
125
  'available_balance': json['available_balance'],
134
126
  'status': json['status'],
@@ -149,7 +141,6 @@ export function AccountToJSON(value?: Account | null): any {
149
141
  'l1_address': value['l1_address'],
150
142
  'cancel_all_time': value['cancel_all_time'],
151
143
  'total_order_count': value['total_order_count'],
152
- 'total_isolated_order_count': value['total_isolated_order_count'],
153
144
  'pending_order_count': value['pending_order_count'],
154
145
  'available_balance': value['available_balance'],
155
146
  'status': value['status'],
@@ -0,0 +1,88 @@
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 AccountAsset
20
+ */
21
+ export interface AccountAsset {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof AccountAsset
26
+ */
27
+ symbol: string;
28
+ /**
29
+ *
30
+ * @type {number}
31
+ * @memberof AccountAsset
32
+ */
33
+ asset_id: number;
34
+ /**
35
+ *
36
+ * @type {string}
37
+ * @memberof AccountAsset
38
+ */
39
+ balance: string;
40
+ /**
41
+ *
42
+ * @type {string}
43
+ * @memberof AccountAsset
44
+ */
45
+ locked_balance: string;
46
+ }
47
+
48
+ /**
49
+ * Check if a given object implements the AccountAsset interface.
50
+ */
51
+ export function instanceOfAccountAsset(value: object): value is AccountAsset {
52
+ if (!('symbol' in value) || value['symbol'] === undefined) return false;
53
+ if (!('asset_id' in value) || value['asset_id'] === undefined) return false;
54
+ if (!('balance' in value) || value['balance'] === undefined) return false;
55
+ if (!('locked_balance' in value) || value['locked_balance'] === undefined) return false;
56
+ return true;
57
+ }
58
+
59
+ export function AccountAssetFromJSON(json: any): AccountAsset {
60
+ return AccountAssetFromJSONTyped(json, false);
61
+ }
62
+
63
+ export function AccountAssetFromJSONTyped(json: any, ignoreDiscriminator: boolean): AccountAsset {
64
+ if (json == null) {
65
+ return json;
66
+ }
67
+ return {
68
+
69
+ 'symbol': json['symbol'],
70
+ 'asset_id': json['asset_id'],
71
+ 'balance': json['balance'],
72
+ 'locked_balance': json['locked_balance'],
73
+ };
74
+ }
75
+
76
+ export function AccountAssetToJSON(value?: AccountAsset | null): any {
77
+ if (value == null) {
78
+ return value;
79
+ }
80
+ return {
81
+
82
+ 'symbol': value['symbol'],
83
+ 'asset_id': value['asset_id'],
84
+ 'balance': value['balance'],
85
+ 'locked_balance': value['locked_balance'],
86
+ };
87
+ }
88
+
@@ -0,0 +1,144 @@
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 Asset
20
+ */
21
+ export interface Asset {
22
+ /**
23
+ *
24
+ * @type {number}
25
+ * @memberof Asset
26
+ */
27
+ asset_index: number;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof Asset
32
+ */
33
+ symbol: string;
34
+ /**
35
+ *
36
+ * @type {number}
37
+ * @memberof Asset
38
+ */
39
+ l1_decimals: number;
40
+ /**
41
+ *
42
+ * @type {number}
43
+ * @memberof Asset
44
+ */
45
+ decimals: number;
46
+ /**
47
+ *
48
+ * @type {string}
49
+ * @memberof Asset
50
+ */
51
+ min_transfer_amount: string;
52
+ /**
53
+ *
54
+ * @type {string}
55
+ * @memberof Asset
56
+ */
57
+ min_withdrawal_amount: string;
58
+ /**
59
+ *
60
+ * @type {string}
61
+ * @memberof Asset
62
+ */
63
+ margin_mode: AssetMarginModeEnum;
64
+ /**
65
+ *
66
+ * @type {string}
67
+ * @memberof Asset
68
+ */
69
+ index_price: string;
70
+ /**
71
+ *
72
+ * @type {string}
73
+ * @memberof Asset
74
+ */
75
+ l1_address: string;
76
+ }
77
+
78
+
79
+ /**
80
+ * @export
81
+ */
82
+ export const AssetMarginModeEnum = {
83
+ Enabled: 'enabled',
84
+ Disabled: 'disabled'
85
+ } as const;
86
+ export type AssetMarginModeEnum = typeof AssetMarginModeEnum[keyof typeof AssetMarginModeEnum];
87
+
88
+
89
+ /**
90
+ * Check if a given object implements the Asset interface.
91
+ */
92
+ export function instanceOfAsset(value: object): value is Asset {
93
+ if (!('asset_index' in value) || value['asset_index'] === undefined) return false;
94
+ if (!('symbol' in value) || value['symbol'] === undefined) return false;
95
+ if (!('l1_decimals' in value) || value['l1_decimals'] === undefined) return false;
96
+ if (!('decimals' in value) || value['decimals'] === undefined) return false;
97
+ if (!('min_transfer_amount' in value) || value['min_transfer_amount'] === undefined) return false;
98
+ if (!('min_withdrawal_amount' in value) || value['min_withdrawal_amount'] === undefined) return false;
99
+ if (!('margin_mode' in value) || value['margin_mode'] === undefined) return false;
100
+ if (!('index_price' in value) || value['index_price'] === undefined) return false;
101
+ if (!('l1_address' in value) || value['l1_address'] === undefined) return false;
102
+ return true;
103
+ }
104
+
105
+ export function AssetFromJSON(json: any): Asset {
106
+ return AssetFromJSONTyped(json, false);
107
+ }
108
+
109
+ export function AssetFromJSONTyped(json: any, ignoreDiscriminator: boolean): Asset {
110
+ if (json == null) {
111
+ return json;
112
+ }
113
+ return {
114
+
115
+ 'asset_index': json['asset_index'],
116
+ 'symbol': json['symbol'],
117
+ 'l1_decimals': json['l1_decimals'],
118
+ 'decimals': json['decimals'],
119
+ 'min_transfer_amount': json['min_transfer_amount'],
120
+ 'min_withdrawal_amount': json['min_withdrawal_amount'],
121
+ 'margin_mode': json['margin_mode'],
122
+ 'index_price': json['index_price'],
123
+ 'l1_address': json['l1_address'],
124
+ };
125
+ }
126
+
127
+ export function AssetToJSON(value?: Asset | null): any {
128
+ if (value == null) {
129
+ return value;
130
+ }
131
+ return {
132
+
133
+ 'asset_index': value['asset_index'],
134
+ 'symbol': value['symbol'],
135
+ 'l1_decimals': value['l1_decimals'],
136
+ 'decimals': value['decimals'],
137
+ 'min_transfer_amount': value['min_transfer_amount'],
138
+ 'min_withdrawal_amount': value['min_withdrawal_amount'],
139
+ 'margin_mode': value['margin_mode'],
140
+ 'index_price': value['index_price'],
141
+ 'l1_address': value['l1_address'],
142
+ };
143
+ }
144
+
@@ -0,0 +1,85 @@
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 { Asset } from './Asset';
17
+ import {
18
+ AssetFromJSON,
19
+ AssetFromJSONTyped,
20
+ AssetToJSON,
21
+ } from './Asset';
22
+
23
+ /**
24
+ *
25
+ * @export
26
+ * @interface AssetDetails
27
+ */
28
+ export interface AssetDetails {
29
+ /**
30
+ *
31
+ * @type {number}
32
+ * @memberof AssetDetails
33
+ */
34
+ code: number;
35
+ /**
36
+ *
37
+ * @type {string}
38
+ * @memberof AssetDetails
39
+ */
40
+ message?: string;
41
+ /**
42
+ *
43
+ * @type {Array<Asset>}
44
+ * @memberof AssetDetails
45
+ */
46
+ asset_details: Array<Asset>;
47
+ }
48
+
49
+ /**
50
+ * Check if a given object implements the AssetDetails interface.
51
+ */
52
+ export function instanceOfAssetDetails(value: object): value is AssetDetails {
53
+ if (!('code' in value) || value['code'] === undefined) return false;
54
+ if (!('asset_details' in value) || value['asset_details'] === undefined) return false;
55
+ return true;
56
+ }
57
+
58
+ export function AssetDetailsFromJSON(json: any): AssetDetails {
59
+ return AssetDetailsFromJSONTyped(json, false);
60
+ }
61
+
62
+ export function AssetDetailsFromJSONTyped(json: any, ignoreDiscriminator: boolean): AssetDetails {
63
+ if (json == null) {
64
+ return json;
65
+ }
66
+ return {
67
+
68
+ 'code': json['code'],
69
+ 'message': json['message'] == null ? undefined : json['message'],
70
+ 'asset_details': ((json['asset_details'] as Array<any>).map(AssetFromJSON)),
71
+ };
72
+ }
73
+
74
+ export function AssetDetailsToJSON(value?: AssetDetails | null): any {
75
+ if (value == null) {
76
+ return value;
77
+ }
78
+ return {
79
+
80
+ 'code': value['code'],
81
+ 'message': value['message'],
82
+ 'asset_details': ((value['asset_details'] as Array<any>).map(AssetToJSON)),
83
+ };
84
+ }
85
+
@@ -25,6 +25,12 @@ export interface DepositHistoryItem {
25
25
  * @memberof DepositHistoryItem
26
26
  */
27
27
  id: string;
28
+ /**
29
+ *
30
+ * @type {number}
31
+ * @memberof DepositHistoryItem
32
+ */
33
+ asset_index: number;
28
34
  /**
29
35
  *
30
36
  * @type {string}
@@ -69,6 +75,7 @@ export type DepositHistoryItemStatusEnum = typeof DepositHistoryItemStatusEnum[k
69
75
  */
70
76
  export function instanceOfDepositHistoryItem(value: object): value is DepositHistoryItem {
71
77
  if (!('id' in value) || value['id'] === undefined) return false;
78
+ if (!('asset_index' in value) || value['asset_index'] === undefined) return false;
72
79
  if (!('amount' in value) || value['amount'] === undefined) return false;
73
80
  if (!('timestamp' in value) || value['timestamp'] === undefined) return false;
74
81
  if (!('status' in value) || value['status'] === undefined) return false;
@@ -87,6 +94,7 @@ export function DepositHistoryItemFromJSONTyped(json: any, ignoreDiscriminator:
87
94
  return {
88
95
 
89
96
  'id': json['id'],
97
+ 'asset_index': json['asset_index'],
90
98
  'amount': json['amount'],
91
99
  'timestamp': json['timestamp'],
92
100
  'status': json['status'],
@@ -101,6 +109,7 @@ export function DepositHistoryItemToJSON(value?: DepositHistoryItem | null): any
101
109
  return {
102
110
 
103
111
  'id': value['id'],
112
+ 'asset_index': value['asset_index'],
104
113
  'amount': value['amount'],
105
114
  'timestamp': value['timestamp'],
106
115
  'status': value['status'],