@icgio/clients-config 1.0.12 → 1.0.14

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.
@@ -3,6 +3,9 @@
3
3
  "AVAV": {
4
4
  "Bitget": ["AVAVUSDT"]
5
5
  },
6
+ "CARAC": {
7
+ "Xt": ["CARACUSDT"]
8
+ },
6
9
  "CARE": {
7
10
  "Bitmart": ["CAREUSDT"],
8
11
  "Gatev4": ["CAREUSDT"],
@@ -10,6 +13,10 @@
10
13
  "Mexc": ["CAREUSDT"],
11
14
  "Xt": ["CAREUSDT"]
12
15
  },
16
+ "CELO": {
17
+ "Binance": ["ETHUSDC"],
18
+ "Uniswap": ["ETHUSDC"]
19
+ },
13
20
  "CTG": {
14
21
  "Mexc": ["CTGUSDT"]
15
22
  },
@@ -24,12 +31,23 @@
24
31
  "Coinw": ["HMTTUSDT"],
25
32
  "Mexc": ["HMTTUSDT"]
26
33
  },
34
+ "KOAVA": {
35
+ "Mexc": ["KOAVAUSDT"]
36
+ },
27
37
  "MEGODS": {
28
38
  "Bitmart": ["MEGODSUSDT"]
29
39
  },
40
+ "MEMEMINT": {
41
+ "Bitmart": ["MEMEMINTUSDT"],
42
+ "Mexc": ["MEMEMINTUSDT"]
43
+ },
30
44
  "MGROK": {
31
45
  "Mexc": ["MGROKUSDT"]
32
46
  },
47
+ "MUSSEL": {
48
+ "Bitmart": ["MUSSELUSDT"],
49
+ "Mexc": ["MUSSELUSDT"]
50
+ },
33
51
  "PIAS": {
34
52
  "Bitmart": ["PIASUSDT"],
35
53
  "Gatev4": ["PIASUSDT"],
@@ -54,66 +72,59 @@
54
72
  "Phemex": ["REDUSDT"],
55
73
  "Xt": ["REDUSDT"]
56
74
  },
57
- "XERT": {
58
- "Mexc": ["XERTUSDT"],
59
- "Xt": ["XERTUSDT"]
60
- },
61
- "VTC": {
62
- "Mexc": ["VTCUSDT"]
63
- },
64
- "TV": {
65
- "Mexc": ["TVUSDT"]
75
+ "RWX": {
76
+ "Mexc": ["RWXUSDT"]
66
77
  },
67
78
  "TGMT": {
68
79
  "Mexc": ["TGMTUSDT"]
69
80
  },
70
- "CARAC": {
71
- "Xt": ["CARACUSDT"]
72
- },
73
- "CELO": {
74
- "Binance": ["ETHUSDC"],
75
- "Uniswap": ["ETHUSDC"]
76
- },
77
- "RWX": {
78
- "Mexc": ["RWXUSDT"]
81
+ "TV": {
82
+ "Mexc": ["TVUSDT"]
79
83
  },
80
- "MUSSEL": {
81
- "Bitmart": ["MUSSELUSDT"],
82
- "Mexc": ["MUSSELUSDT"]
84
+ "VTC": {
85
+ "Mexc": ["VTCUSDT"]
83
86
  },
84
- "KOAVA": {
85
- "Mexc": ["KOAVAUSDT"]
87
+ "XERT": {
88
+ "Mexc": ["XERTUSDT"],
89
+ "Xt": ["XERTUSDT"]
86
90
  }
87
91
  },
88
92
  "client_not_include_exchanges": {
89
93
  "AVAV": [],
94
+ "CARAC": [],
90
95
  "CARE": [],
96
+ "CELO": [],
91
97
  "CTG": [],
92
98
  "FAI": [],
93
99
  "FREN": [],
94
100
  "HMTT": [],
101
+ "KOAVA": [],
95
102
  "MEGODS": [],
103
+ "MEMEMINT": [],
96
104
  "MGROK": [],
105
+ "MUSSEL": [],
97
106
  "PIAS": [],
98
107
  "PRMX": [],
99
108
  "RED": [],
100
- "XERT": [],
101
- "VTC": [],
102
- "TV": [],
103
- "TGMT": [],
104
- "CARAC": [],
105
- "CELO": [],
106
109
  "RWX": [],
107
- "MUSSEL": [],
108
- "KOAVA": []
110
+ "TGMT": [],
111
+ "TV": [],
112
+ "VTC": [],
113
+ "XERT": []
109
114
  },
110
115
  "client_pair_main_exchanges": {
111
116
  "AVAV": {
112
117
  "AVAVUSDT": ["Bitget"]
113
118
  },
119
+ "CARAC": {
120
+ "CARACUSDT": ["Xt"]
121
+ },
114
122
  "CARE": {
115
123
  "CAREUSDT": ["Lbank"]
116
124
  },
125
+ "CELO": {
126
+ "ETHUSDC": ["Binance"]
127
+ },
117
128
  "CTG": {
118
129
  "CTGUSDT": ["Mexc"]
119
130
  },
@@ -126,12 +137,21 @@
126
137
  "HMTT": {
127
138
  "HMTTUSDT": ["Gatev4"]
128
139
  },
140
+ "KOAVA": {
141
+ "KOAVAUSDT": ["Mexc"]
142
+ },
129
143
  "MEGODS": {
130
144
  "MEGODSUSDT": ["Bitmart"]
131
145
  },
146
+ "MEMEMINT": {
147
+ "MEMEMINTUSDT": ["Mexc"]
148
+ },
132
149
  "MGROK": {
133
150
  "MGROKUSDT": ["Mexc"]
134
151
  },
152
+ "MUSSEL": {
153
+ "MUSSELUSDT": ["Mexc"]
154
+ },
135
155
  "PIAS": {
136
156
  "PIASUSDT": ["Gatev4"]
137
157
  },
@@ -141,32 +161,20 @@
141
161
  "RED": {
142
162
  "REDUSDT": ["Lbank"]
143
163
  },
144
- "XERT": {
145
- "XERTUSDT": ["Mexc"]
146
- },
147
- "VTC": {
148
- "VTCUSDT": ["Mexc"]
149
- },
150
- "TV": {
151
- "TVUSDT": ["Mexc"]
164
+ "RWX": {
165
+ "RWXUSDT": ["Mexc"]
152
166
  },
153
167
  "TGMT": {
154
168
  "TGMTUSDT": ["Mexc"]
155
169
  },
156
- "CARAC": {
157
- "CARACUSDT": ["Xt"]
158
- },
159
- "CELO": {
160
- "ETHUSDC": ["Binance"]
161
- },
162
- "RWX": {
163
- "RWXUSDT": ["Mexc"]
170
+ "TV": {
171
+ "TVUSDT": ["Mexc"]
164
172
  },
165
- "MUSSEL": {
166
- "MUSSELUSDT": ["Mexc"]
173
+ "VTC": {
174
+ "VTCUSDT": ["Mexc"]
167
175
  },
168
- "KOAVA": {
169
- "KOAVAUSDT": ["Mexc"]
176
+ "XERT": {
177
+ "XERTUSDT": ["Mexc"]
170
178
  }
171
179
  },
172
180
  "client_exchange_currencies": {
@@ -219,6 +227,11 @@
219
227
  "trades": 1,
220
228
  "orderbook": 1
221
229
  },
230
+ "MEMEMINT": {
231
+ "balance": 1,
232
+ "trades": 1,
233
+ "orderbook": 1
234
+ },
222
235
  "MGROK": {
223
236
  "balance": 1,
224
237
  "trades": 1,
@@ -253,6 +266,7 @@
253
266
  "FAI": true,
254
267
  "FREN": true,
255
268
  "HMTT": true,
269
+ "MEMEMINT": true,
256
270
  "MGROK": true,
257
271
  "PRMX": true,
258
272
  "RED": true
@@ -274,6 +288,7 @@
274
288
  "FREN": true,
275
289
  "HMTT": true,
276
290
  "MEGODS": true,
291
+ "MEMEMINT": true,
277
292
  "MGROK": true,
278
293
  "PRMX": true,
279
294
  "RED": true,
@@ -287,68 +302,79 @@
287
302
  },
288
303
  "client_levels": {
289
304
  "AVAV": [2, 5, 10],
305
+ "CARAC": [2, 5, 10],
290
306
  "CARE": [2, 5, 10],
307
+ "CELO": [2, 5, 10],
291
308
  "CTG": [2, 5, 10],
292
309
  "FAI": [2, 5, 10],
293
310
  "FREN": [2, 5, 10],
294
311
  "HMTT": [2, 5, 10],
312
+ "KOAVA": [2, 5, 10],
295
313
  "MEGODS": [2, 5, 10],
314
+ "MEMEMINT": [2, 5, 10],
296
315
  "MGROK": [2, 5, 10],
316
+ "MUSSEL": [2, 5, 10],
297
317
  "PIAS": [2, 5, 10],
298
318
  "PRMX": [2, 5, 10],
299
319
  "RED": [2, 5, 10],
300
- "XERT": [2, 5, 10],
301
- "VTC": [2, 5, 10],
302
- "TV": [2, 5, 10],
303
- "TGMT": [2, 5, 10],
304
- "CARAC": [2, 5, 10],
305
- "CELO": [2, 5, 10],
306
320
  "RWX": [2, 5, 10],
307
- "MUSSEL": [2, 5, 10],
308
- "KOAVA": [2, 5, 10]
321
+ "TGMT": [2, 5, 10],
322
+ "TV": [2, 5, 10],
323
+ "VTC": [2, 5, 10],
324
+ "XERT": [2, 5, 10]
309
325
  },
310
326
  "client_benchmarks": {
311
327
  "AVAV": ["BTC", "ETH"],
328
+ "CARAC": ["BTC", "ETH"],
312
329
  "CARE": ["BTC", "ETH"],
330
+ "CELO": ["BTC", "ETH"],
313
331
  "CTG": ["BTC", "ETH"],
314
332
  "FAI": ["BTC", "ETH"],
315
333
  "FREN": ["BTC", "ETH"],
316
334
  "HMTT": ["BTC", "ETH"],
335
+ "KOAVA": ["BTC", "ETH"],
317
336
  "MEGODS": ["BTC", "ETH"],
337
+ "MEMEMINT": ["BTC", "ETH"],
318
338
  "MGROK": ["BTC", "ETH"],
339
+ "MUSSEL": ["BTC", "ETH"],
319
340
  "PIAS": ["BTC", "ETH"],
320
341
  "PRMX": ["BTC", "ETH"],
321
342
  "RED": ["BTC", "ETH"],
322
- "XERT": ["BTC", "ETH"],
323
- "VTC": ["BTC", "ETH"],
324
- "TV": ["BTC", "ETH"],
325
- "TGMT": ["BTC", "ETH"],
326
- "CARAC": ["BTC", "ETH"],
327
- "CELO": ["BTC", "ETH"],
328
343
  "RWX": ["BTC", "ETH"],
329
- "MUSSEL": ["BTC", "ETH"],
330
- "KOAVA": ["BTC", "ETH"]
344
+ "TGMT": ["BTC", "ETH"],
345
+ "TV": ["BTC", "ETH"],
346
+ "VTC": ["BTC", "ETH"],
347
+ "XERT": ["BTC", "ETH"]
331
348
  },
332
349
  "client_telegram_ids": {
333
350
  "AVAV": "-4199615909",
351
+ "CARAC": "-4103921001",
334
352
  "CARE": "-1002118117567",
353
+ "CELO": "-1001814469370",
335
354
  "CTG": "-4180828280",
336
355
  "FAI": "-1001659722021",
337
356
  "FREN": "-1001996048202",
338
357
  "HMTT": "-1002035174196",
358
+ "KOAVA": "-1002045767005",
339
359
  "MEGODS": "-1002012186332",
360
+ "MEMEMINT": "-1002066405497",
340
361
  "MGROK": "-1002106426914",
362
+ "MUSSEL": "-1002045767005",
341
363
  "PIAS": "-1002118117567",
342
364
  "PRMX": "-1002118117567",
343
365
  "RED": "-1002118117567",
344
- "XERT": "-1002139475658",
345
- "VTC": "-1002045767005",
346
- "TV": "-4158304999",
347
- "TGMT": "-1002053322082",
348
- "CARAC": "-4103921001",
349
- "CELO": "-1001814469370",
350
366
  "RWX": "-1002045767005",
351
- "MUSSEL": "-1002045767005",
352
- "KOAVA": "-1002045767005"
353
- }
367
+ "TGMT": "-1002053322082",
368
+ "TV": "-4158304999",
369
+ "VTC": "-1002045767005",
370
+ "XERT": "-1002139475658"
371
+ },
372
+ "balance_premium": {
373
+ "XERT": {
374
+ "mexc_1": {
375
+ "XERT": 5000
376
+ }
377
+ }
378
+ },
379
+ "client_additional_telegram_ids": {}
354
380
  }
package/config.js CHANGED
@@ -81,23 +81,7 @@ module.exports.client_currencies_with_stables = _.fromPairs(
81
81
  const clients_reporter_interval = config_data.clients_reporter_interval
82
82
  module.exports.clients_reporter_interval = clients_reporter_interval
83
83
 
84
- const balance_premium = {
85
- IONX: {
86
- mexc_1: {
87
- IONX: 10000000,
88
- },
89
- },
90
- SWFTC: {
91
- coinbase_1: {
92
- USDC: 20000,
93
- },
94
- },
95
- // XERT: {
96
- // mexc_1: {
97
- // XERT: 5000,
98
- // },
99
- // },
100
- }
84
+ const balance_premium = config_data.balance_premium
101
85
  module.exports.balance_premium = balance_premium
102
86
 
103
87
  const client_enabled = config_data.client_enabled
@@ -113,7 +97,5 @@ const client_telegram_ids = config_data.client_telegram_ids
113
97
  module.exports.client_telegram_ids = client_telegram_ids
114
98
  module.exports.telegram_id_clients = _.invertBy(client_telegram_ids)
115
99
 
116
- const client_additional_telegram_ids = {
117
- DMC: '-1002106853406',
118
- }
100
+ const client_additional_telegram_ids = config_data.client_additional_telegram_ids
119
101
  module.exports.client_additional_telegram_ids = client_additional_telegram_ids
package/config.json CHANGED
@@ -38,10 +38,6 @@
38
38
  "JASMY": {
39
39
  "Bitmart": ["JASMYUSDT"]
40
40
  },
41
- "MEMEMINT": {
42
- "Bitmart": ["MEMEMINTUSDT"],
43
- "Mexc": ["MEMEMINTUSDT"]
44
- },
45
41
  "MRPT": {
46
42
  "Lbank": ["MRPTUSDT"],
47
43
  "Mexc": ["MRPTUSDT"]
@@ -83,7 +79,6 @@
83
79
  "GKB": [],
84
80
  "IONX": [],
85
81
  "JASMY": [],
86
- "MEMEMINT": [],
87
82
  "MRPT": [],
88
83
  "NODED": [],
89
84
  "OGB": [],
@@ -124,9 +119,6 @@
124
119
  "JASMY": {
125
120
  "JASMYUSDT": ["Bitmart"]
126
121
  },
127
- "MEMEMINT": {
128
- "MEMEMINTUSDT": ["Mexc"]
129
- },
130
122
  "MRPT": {
131
123
  "MRPTUSDT": ["Mexc"]
132
124
  },
@@ -206,11 +198,6 @@
206
198
  "trades": 1,
207
199
  "orderbook": 1
208
200
  },
209
- "MEMEMINT": {
210
- "balance": 1,
211
- "trades": 1,
212
- "orderbook": 1
213
- },
214
201
  "MRPT": {
215
202
  "balance": 1,
216
203
  "trades": 1,
@@ -256,26 +243,22 @@
256
243
  "balance": {
257
244
  "AVALOX": true,
258
245
  "AXL": true,
259
- "BONG": true,
260
246
  "CAVADA": true,
261
247
  "DIS": true,
262
248
  "DMC": true,
263
249
  "GHD": true,
264
250
  "GKB": true,
265
251
  "JASMY": true,
266
- "KOAVA": true,
267
- "MEMEMINT": true,
268
252
  "MRPT": true,
269
- "MUSSEL": true,
270
253
  "NODED": true,
271
254
  "OGB": true,
272
255
  "PACT": true,
273
- "RWX": true,
274
256
  "SHRAP": true,
275
257
  "SWFTC": true,
276
258
  "TIPS": true
277
259
  },
278
260
  "balance_cur": {
261
+ "BONG": true,
279
262
  "IONX": true
280
263
  },
281
264
  "total_in_usd": {
@@ -301,14 +284,10 @@
301
284
  "GKB": true,
302
285
  "IONX": true,
303
286
  "JASMY": true,
304
- "KOAVA": true,
305
- "MEMEMINT": true,
306
287
  "MRPT": true,
307
- "MUSSEL": true,
308
288
  "NODED": true,
309
289
  "OGB": true,
310
290
  "PACT": true,
311
- "RWX": true,
312
291
  "SHRAP": true,
313
292
  "SWFTC": true,
314
293
  "TIN": true,
@@ -331,7 +310,6 @@
331
310
  "GKB": [2, 5, 10],
332
311
  "IONX": [2, 5, 10],
333
312
  "JASMY": [2, 5, 10],
334
- "MEMEMINT": [2, 5, 10],
335
313
  "MRPT": [2, 5, 10],
336
314
  "NODED": [2, 5, 10],
337
315
  "OGB": [2, 5, 10],
@@ -352,7 +330,6 @@
352
330
  "GKB": ["BTC", "ETH"],
353
331
  "IONX": ["BTC", "ETH"],
354
332
  "JASMY": ["BTC", "ETH"],
355
- "MEMEMINT": ["BTC", "ETH"],
356
333
  "MRPT": ["BTC", "ETH"],
357
334
  "NODED": ["BTC", "ETH"],
358
335
  "OGB": ["BTC", "ETH"],
@@ -373,7 +350,6 @@
373
350
  "GKB": "-4213454386",
374
351
  "IONX": "-1002085059560",
375
352
  "JASMY": "-1002118117567",
376
- "MEMEMINT": "-1002066405497",
377
353
  "MRPT": "-4117016124",
378
354
  "NODED": "-4147346529",
379
355
  "OGB": "-4195618936",
@@ -382,5 +358,20 @@
382
358
  "SWFTC": "-1002067948127",
383
359
  "TIN": "-1002085447080",
384
360
  "TIPS": "-4151715633"
361
+ },
362
+ "balance_premium": {
363
+ "IONX": {
364
+ "mexc_1": {
365
+ "IONX": 10000000
366
+ }
367
+ },
368
+ "SWFTC": {
369
+ "coinbase_1": {
370
+ "USDC": 20000
371
+ }
372
+ }
373
+ },
374
+ "client_additional_telegram_ids": {
375
+ "DMC": "-1002106853406"
385
376
  }
386
377
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icgio/clients-config",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -79,6 +79,12 @@ function delete_client(client_name) {
79
79
  delete config_file_data.client_telegram_ids[client_name]
80
80
  delete config_file_data.clients_reporter_interval[client_name]
81
81
 
82
+ for (let key in config_file_data.client_enabled) {
83
+ if (config_file_data.client_enabled.hasOwnProperty(key)) {
84
+ delete config_file_data.client_enabled[key][client_name];
85
+ }
86
+ }
87
+
82
88
  write_config_file(config_file_data, config_file_path)
83
89
  .then(() => {
84
90
  console.log(`Client '${client_name}' has been deleted successfully.`)
@@ -107,7 +113,7 @@ function add_client(client_name) {
107
113
  },
108
114
  client_not_include_exchanges: {
109
115
  description: 'Enter client not include exchanges (Comma-separated values, e.g., Jubi, Lbank)',
110
- required: true,
116
+ required: false,
111
117
  },
112
118
  client_pair_main_exchanges: {
113
119
  description: 'Enter client pair main exchanges (JSON format i.e {"ETHUSDT": ["Bitget", "Gatev4"]} )',
@@ -127,7 +133,7 @@ function add_client(client_name) {
127
133
  },
128
134
  client_benchmarks: {
129
135
  description: 'Enter client benchmarks (Comma-separated values, e.g., BTC,ETH)',
130
- required: true,
136
+ required: false,
131
137
  },
132
138
  client_telegram_ids: {
133
139
  description: 'Enter client telegram ids i.e 1233457 ',
@@ -153,8 +159,17 @@ function add_client(client_name) {
153
159
  let reporter_interval = result.clients_reporter_interval.trim()
154
160
  reporter_interval = JSON.parse(reporter_interval)
155
161
 
156
- let not_include_exchanges = result.client_not_include_exchanges.split(',').map((value) => value.trim())
157
- let benchmarks = result.client_benchmarks.split(',').map((value) => value.trim())
162
+ let not_include_exchanges = [];
163
+ if (result.client_not_include_exchanges) {
164
+ not_include_exchanges = result.client_not_include_exchanges.split(',').map((value) => value.trim());
165
+ not_include_exchanges.sort();
166
+ }
167
+
168
+ let benchmarks = []
169
+ if (result.client_benchmarks) {
170
+ benchmarks = result.client_benchmarks.split(',').map((value) => value.trim())
171
+ benchmarks.sort()
172
+ }
158
173
  let levels = result.client_levels.split(',').map((value) => Number(value.trim()))
159
174
 
160
175
  config_file_data.client_exchange_pairs[client_name] = exchange_pairs
@@ -168,6 +183,15 @@ function add_client(client_name) {
168
183
 
169
184
  config_file_data.client_telegram_ids[client_name] = result.client_telegram_ids
170
185
 
186
+
187
+ config_file_data.client_exchange_pairs = sort(config_file_data.client_exchange_pairs);
188
+ config_file_data.client_pair_main_exchanges = sort(config_file_data.client_pair_main_exchanges);
189
+ config_file_data.clients_reporter_interval = sort(config_file_data.clients_reporter_interval);
190
+ config_file_data.client_not_include_exchanges = sort(config_file_data.client_not_include_exchanges);
191
+ config_file_data.client_levels = sort(config_file_data.client_levels);
192
+ config_file_data.client_benchmarks = sort(config_file_data.client_benchmarks);
193
+ config_file_data.client_telegram_ids = sort(config_file_data.client_telegram_ids);
194
+
171
195
  write_config_file(config_file_data, config_file_path)
172
196
  .then(() => {
173
197
  console.log(`Client '${client_name}' has been added successfully.`)
@@ -195,13 +219,39 @@ function update_config_archive(config_file_data, client_name) {
195
219
 
196
220
  config_archive_data.client_exchange_pairs[client_name] = config_file_data.client_exchange_pairs[client_name]
197
221
  config_archive_data.client_pair_main_exchanges[client_name] = config_file_data.client_pair_main_exchanges[client_name]
198
-
222
+ config_archive_data.clients_reporter_interval[client_name] = config_file_data.clients_reporter_interval[client_name]
199
223
  config_archive_data.client_not_include_exchanges[client_name] = config_file_data.client_not_include_exchanges[client_name]
200
224
  config_archive_data.client_levels[client_name] = config_file_data.client_levels[client_name]
201
225
  config_archive_data.client_benchmarks[client_name] = config_file_data.client_benchmarks[client_name]
202
-
203
226
  config_archive_data.client_telegram_ids[client_name] = config_file_data.client_telegram_ids[client_name]
204
227
 
228
+ if (!config_archive_data.client_enabled) {
229
+ config_archive_data.client_enabled = {};
230
+ }
231
+ for (let key in config_file_data.client_enabled) {
232
+ if (config_file_data.client_enabled.hasOwnProperty(key)) {
233
+ if (!config_archive_data.client_enabled[key]) {
234
+ config_archive_data.client_enabled[key] = {};
235
+ }
236
+ config_archive_data.client_enabled[key][client_name] = config_file_data.client_enabled[key][client_name];
237
+ }
238
+ }
239
+
240
+
241
+ config_archive_data.client_exchange_pairs = sort(config_archive_data.client_exchange_pairs);
242
+ config_archive_data.client_pair_main_exchanges = sort(config_archive_data.client_pair_main_exchanges);
243
+ config_archive_data.clients_reporter_interval = sort(config_archive_data.clients_reporter_interval)
244
+ config_archive_data.client_not_include_exchanges = sort(config_archive_data.client_not_include_exchanges);
245
+ config_archive_data.client_levels = sort(config_archive_data.client_levels);
246
+ config_archive_data.client_benchmarks = sort(config_archive_data.client_benchmarks);
247
+ config_archive_data.client_telegram_ids = sort(config_archive_data.client_telegram_ids);
248
+
249
+ for (let key in config_archive_data.client_enabled) {
250
+ if (config_archive_data.client_enabled.hasOwnProperty(key)) {
251
+ config_archive_data.client_enabled[key] = sort(config_archive_data.client_enabled[key]);
252
+ }
253
+ }
254
+
205
255
  write_config_file(config_archive_data, config_archive_file_path)
206
256
  .then(() => {
207
257
  resolve()
@@ -218,4 +268,11 @@ function update_config_archive(config_file_data, client_name) {
218
268
  })
219
269
  }
220
270
 
271
+ function sort(obj) {
272
+ return Object.keys(obj).sort().reduce((result, key) => {
273
+ result[key] = obj[key];
274
+ return result;
275
+ }, {});
276
+ }
277
+
221
278
  process_config()