@snowbridge/registry 0.3.3 → 0.4.1-beta.1

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 (43) hide show
  1. package/.turbo/turbo-build.log +1 -2
  2. package/dist/index.d.ts +6 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +27 -2
  5. package/dist/local_e2e_bridge_info.g.d.ts +141 -0
  6. package/dist/local_e2e_bridge_info.g.d.ts.map +1 -0
  7. package/dist/local_e2e_bridge_info.g.js +142 -0
  8. package/dist/paseo_sepolia_bridge_info.g.d.ts +331 -0
  9. package/dist/paseo_sepolia_bridge_info.g.d.ts.map +1 -0
  10. package/dist/paseo_sepolia_bridge_info.g.js +351 -0
  11. package/dist/polkadot_mainnet_bridge_info.g.d.ts +2137 -0
  12. package/dist/polkadot_mainnet_bridge_info.g.d.ts.map +1 -0
  13. package/dist/polkadot_mainnet_bridge_info.g.js +2454 -0
  14. package/dist/transfers.d.ts +3 -8
  15. package/dist/transfers.d.ts.map +1 -1
  16. package/dist/transfers.js +73 -215
  17. package/dist/westend_sepolia_bridge_info.g.d.ts +432 -0
  18. package/dist/westend_sepolia_bridge_info.g.d.ts.map +1 -0
  19. package/dist/westend_sepolia_bridge_info.g.js +487 -0
  20. package/package.json +7 -7
  21. package/scripts/buildRegistry.ts +609 -37
  22. package/src/index.ts +27 -2
  23. package/src/local_e2e_bridge_info.g.ts +140 -0
  24. package/src/paseo_sepolia_bridge_info.g.ts +350 -0
  25. package/src/polkadot_mainnet_bridge_info.g.ts +2477 -0
  26. package/src/transfers.ts +72 -265
  27. package/src/westend_sepolia_bridge_info.g.ts +495 -0
  28. package/dist/environment.d.ts +0 -3
  29. package/dist/environment.d.ts.map +0 -1
  30. package/dist/environment.js +0 -181
  31. package/dist/local_e2e.registry.json +0 -391
  32. package/dist/paseo_sepolia.registry.json +0 -231
  33. package/dist/polkadot_mainnet.registry.json +0 -1805
  34. package/dist/registry.d.ts +0 -3
  35. package/dist/registry.d.ts.map +0 -1
  36. package/dist/registry.js +0 -61
  37. package/dist/westend_sepolia.registry.json +0 -283
  38. package/src/environment.ts +0 -185
  39. package/src/local_e2e.registry.json +0 -391
  40. package/src/paseo_sepolia.registry.json +0 -231
  41. package/src/polkadot_mainnet.registry.json +0 -1805
  42. package/src/registry.ts +0 -63
  43. package/src/westend_sepolia.registry.json +0 -283
@@ -0,0 +1,487 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const registry = {
4
+ environment: {
5
+ name: "westend_sepolia",
6
+ ethChainId: 11155111,
7
+ beaconApiUrl: "https://lodestar-sepolia.chainsafe.io",
8
+ ethereumChains: {
9
+ "84532": "https://base-sepolia-rpc.publicnode.com",
10
+ "421614": "https://arbitrum-sepolia-rpc.publicnode.com",
11
+ "11155111": "https://ethereum-sepolia-rpc.publicnode.com",
12
+ },
13
+ relaychainUrl: "https://westend-rpc.polkadot.io",
14
+ parachains: {
15
+ "1000": "https://westend-asset-hub-rpc.polkadot.io",
16
+ "1002": "https://westend-bridge-hub-rpc.polkadot.io",
17
+ },
18
+ gatewayContract: "0x9ed8b47bc3417e3bd0507adc06e56e2fa360a4e9",
19
+ beefyContract: "0xebd1cfcf82baa170b86bde532f69a6a49c6c790d",
20
+ assetHubParaId: 1000,
21
+ bridgeHubParaId: 1002,
22
+ v2_parachains: [1000],
23
+ indexerGraphQlUrl: "https://snowbridge.squids.live/snowbridge-subsquid-westend@v1/api/graphql",
24
+ l2Bridge: {
25
+ acrossAPIUrl: "https://testnet.across.to/api",
26
+ l1AdapterAddress: "0xcda9bff39cdf39e95f4b699422e422195091126d",
27
+ l1HandlerAddress: "0x924a9f036260ddd5808007e1aa95f08ed08aa569",
28
+ l1FeeTokenAddress: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
29
+ l1SwapRouterAddress: "0x3bfa4769fb09eefc5a80d6e87c3b9c650f7ae48e",
30
+ l1SwapQuoterAddress: "0xed1f6473345f45b75f8179591dd5ba1888cf2fb3",
31
+ l2Chains: {
32
+ "84532": {
33
+ adapterAddress: "0xf06939613a3838af11104c898758220db9093679",
34
+ feeTokenAddress: "0x4200000000000000000000000000000000000006",
35
+ swapRoutes: [
36
+ {
37
+ inputToken: "0x4200000000000000000000000000000000000006",
38
+ outputToken: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
39
+ swapFee: 0,
40
+ },
41
+ {
42
+ inputToken: "0x036cbd53842c5426634e7929541ec2318f3dcf7e",
43
+ outputToken: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
44
+ swapFee: 500,
45
+ },
46
+ ],
47
+ },
48
+ "421614": {
49
+ adapterAddress: "0xcb3d8043bdbfb0d9b30de279a09132073d1de561",
50
+ feeTokenAddress: "0x980b62da83eff3d4576c647993b0c1d7faf17c73",
51
+ swapRoutes: [
52
+ {
53
+ inputToken: "0x980b62da83eff3d4576c647993b0c1d7faf17c73",
54
+ outputToken: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
55
+ swapFee: 0,
56
+ },
57
+ {
58
+ inputToken: "0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d",
59
+ outputToken: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
60
+ swapFee: 500,
61
+ },
62
+ ],
63
+ },
64
+ },
65
+ },
66
+ },
67
+ routes: [
68
+ {
69
+ from: {
70
+ kind: "ethereum",
71
+ id: 11155111,
72
+ },
73
+ to: {
74
+ kind: "polkadot",
75
+ id: 1000,
76
+ },
77
+ assets: [
78
+ "0x0000000000000000000000000000000000000000",
79
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
80
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
81
+ "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f",
82
+ "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055",
83
+ "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e",
84
+ ],
85
+ },
86
+ {
87
+ from: {
88
+ kind: "polkadot",
89
+ id: 1000,
90
+ },
91
+ to: {
92
+ kind: "ethereum",
93
+ id: 11155111,
94
+ },
95
+ assets: [
96
+ "0x0000000000000000000000000000000000000000",
97
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
98
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
99
+ "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f",
100
+ "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055",
101
+ "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e",
102
+ ],
103
+ },
104
+ {
105
+ from: {
106
+ kind: "polkadot",
107
+ id: 1000,
108
+ },
109
+ to: {
110
+ kind: "ethereum_l2",
111
+ id: 84532,
112
+ },
113
+ assets: [
114
+ "0x0000000000000000000000000000000000000000",
115
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
116
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
117
+ ],
118
+ },
119
+ {
120
+ from: {
121
+ kind: "ethereum_l2",
122
+ id: 84532,
123
+ },
124
+ to: {
125
+ kind: "polkadot",
126
+ id: 1000,
127
+ },
128
+ assets: [
129
+ "0x0000000000000000000000000000000000000000",
130
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
131
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
132
+ ],
133
+ },
134
+ {
135
+ from: {
136
+ kind: "polkadot",
137
+ id: 1000,
138
+ },
139
+ to: {
140
+ kind: "ethereum_l2",
141
+ id: 421614,
142
+ },
143
+ assets: [
144
+ "0x0000000000000000000000000000000000000000",
145
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
146
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
147
+ ],
148
+ },
149
+ {
150
+ from: {
151
+ kind: "ethereum_l2",
152
+ id: 421614,
153
+ },
154
+ to: {
155
+ kind: "polkadot",
156
+ id: 1000,
157
+ },
158
+ assets: [
159
+ "0x0000000000000000000000000000000000000000",
160
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
161
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
162
+ ],
163
+ },
164
+ ],
165
+ registry: {
166
+ timestamp: "2026-02-16T10:24:33.190Z",
167
+ environment: "westend_sepolia",
168
+ ethChainId: 11155111,
169
+ gatewayAddress: "0x9ed8b47bc3417e3bd0507adc06e56e2fa360a4e9",
170
+ assetHubParaId: 1000,
171
+ bridgeHubParaId: 1002,
172
+ relaychain: {
173
+ tokenSymbols: "WND",
174
+ tokenDecimals: 12,
175
+ ss58Format: 42,
176
+ isEthereum: false,
177
+ accountType: "AccountId32",
178
+ name: "Westend",
179
+ specName: "westend",
180
+ specVersion: 1021002,
181
+ },
182
+ bridgeHub: {
183
+ tokenSymbols: "WND",
184
+ tokenDecimals: 12,
185
+ ss58Format: 42,
186
+ isEthereum: false,
187
+ accountType: "AccountId32",
188
+ name: "Westend BridgeHub",
189
+ specName: "bridge-hub-westend",
190
+ specVersion: 1021001,
191
+ },
192
+ ethereumChains: {
193
+ ethereum_l2_84532: {
194
+ kind: "ethereum_l2",
195
+ id: 84532,
196
+ name: "base-sepolia",
197
+ assets: {
198
+ "0x4200000000000000000000000000000000000006": {
199
+ token: "0x4200000000000000000000000000000000000006",
200
+ name: "Wrapped Ether",
201
+ symbol: "WETH",
202
+ decimals: 18,
203
+ swapTokenAddress: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
204
+ swapFee: 0,
205
+ },
206
+ "0x036cbd53842c5426634e7929541ec2318f3dcf7e": {
207
+ token: "0x036cbd53842c5426634e7929541ec2318f3dcf7e",
208
+ name: "USDC",
209
+ symbol: "USDC",
210
+ decimals: 6,
211
+ swapTokenAddress: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
212
+ swapFee: 500,
213
+ },
214
+ "0x0000000000000000000000000000000000000000": {
215
+ token: "0x0000000000000000000000000000000000000000",
216
+ name: "Ether",
217
+ symbol: "Ether",
218
+ decimals: 18,
219
+ swapTokenAddress: "0x0000000000000000000000000000000000000000",
220
+ swapFee: 0,
221
+ },
222
+ },
223
+ key: "ethereum_l2_84532",
224
+ },
225
+ ethereum_l2_421614: {
226
+ kind: "ethereum_l2",
227
+ id: 421614,
228
+ name: "arbitrum-sepolia",
229
+ assets: {
230
+ "0x980b62da83eff3d4576c647993b0c1d7faf17c73": {
231
+ token: "0x980b62da83eff3d4576c647993b0c1d7faf17c73",
232
+ name: "WETH",
233
+ symbol: "WETH",
234
+ decimals: 18,
235
+ swapTokenAddress: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
236
+ swapFee: 0,
237
+ },
238
+ "0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d": {
239
+ token: "0x75faf114eafb1bdbe2f0316df893fd58ce46aa4d",
240
+ name: "USD Coin",
241
+ symbol: "USDC",
242
+ decimals: 6,
243
+ swapTokenAddress: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
244
+ swapFee: 500,
245
+ },
246
+ "0x0000000000000000000000000000000000000000": {
247
+ token: "0x0000000000000000000000000000000000000000",
248
+ name: "Ether",
249
+ symbol: "Ether",
250
+ decimals: 18,
251
+ swapTokenAddress: "0x0000000000000000000000000000000000000000",
252
+ swapFee: 0,
253
+ },
254
+ },
255
+ key: "ethereum_l2_421614",
256
+ },
257
+ ethereum_11155111: {
258
+ kind: "ethereum",
259
+ id: 11155111,
260
+ name: "sepolia",
261
+ assets: {
262
+ "0x0000000000000000000000000000000000000000": {
263
+ token: "0x0000000000000000000000000000000000000000",
264
+ name: "Ether",
265
+ symbol: "Ether",
266
+ decimals: 18,
267
+ },
268
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238": {
269
+ token: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
270
+ name: "USDC",
271
+ symbol: "USDC",
272
+ decimals: 6,
273
+ deliveryGas: 80000n,
274
+ },
275
+ "0x72c610e05eaafcdf1fa7a2da15374ee90edb1620": {
276
+ token: "0x72c610e05eaafcdf1fa7a2da15374ee90edb1620",
277
+ name: "Frequency",
278
+ symbol: "eFRQCY",
279
+ decimals: 12,
280
+ deliveryGas: 80000n,
281
+ },
282
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14": {
283
+ token: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
284
+ name: "Wrapped Ether",
285
+ symbol: "WETH",
286
+ decimals: 18,
287
+ deliveryGas: 80000n,
288
+ },
289
+ "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f": {
290
+ token: "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f",
291
+ name: "Frequency",
292
+ symbol: "XRQCY",
293
+ decimals: 8,
294
+ foreignId: "0xaf13384cf9612ef1ff4b87470ab247d6f8d8110d4f5af2fe290ce6767818712c",
295
+ deliveryGas: 80000n,
296
+ },
297
+ "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055": {
298
+ token: "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055",
299
+ name: "WND",
300
+ symbol: "WND",
301
+ decimals: 12,
302
+ foreignId: "0x2121cfe35065c0c33465fbada265f08e9613428a4b9eb4bb717cd7db2abf622e",
303
+ deliveryGas: 80000n,
304
+ },
305
+ "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e": {
306
+ token: "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e",
307
+ name: "WND",
308
+ symbol: "WND",
309
+ decimals: 12,
310
+ foreignId: "0x9441dceeeffa7e032eedaccf9b7632e60e86711551a82ffbbb0dda8afd9e4ef7",
311
+ deliveryGas: 80000n,
312
+ },
313
+ },
314
+ key: "ethereum_11155111",
315
+ baseDeliveryGas: 120000n,
316
+ },
317
+ },
318
+ parachains: {
319
+ polkadot_1000: {
320
+ id: 1000,
321
+ kind: "polkadot",
322
+ key: "polkadot_1000",
323
+ features: {
324
+ hasPalletXcm: true,
325
+ hasDryRunApi: true,
326
+ hasTxPaymentApi: true,
327
+ hasDryRunRpc: true,
328
+ hasDotBalance: true,
329
+ hasEthBalance: true,
330
+ hasXcmPaymentApi: true,
331
+ supportsAliasOrigin: true,
332
+ xcmVersion: "v5",
333
+ supportsV2: true,
334
+ },
335
+ info: {
336
+ tokenSymbols: "WND",
337
+ tokenDecimals: 12,
338
+ ss58Format: 42,
339
+ isEthereum: false,
340
+ accountType: "AccountId32",
341
+ name: "Westend Asset Hub",
342
+ specName: "westmint",
343
+ specVersion: 1021003,
344
+ },
345
+ assets: {
346
+ "0x0000000000000000000000000000000000000000": {
347
+ token: "0x0000000000000000000000000000000000000000",
348
+ name: "Ether",
349
+ minimumBalance: 15000n,
350
+ symbol: "Ether",
351
+ decimals: 18,
352
+ isSufficient: true,
353
+ },
354
+ "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238": {
355
+ token: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
356
+ name: "",
357
+ minimumBalance: 1n,
358
+ symbol: "",
359
+ decimals: 0,
360
+ isSufficient: false,
361
+ },
362
+ "0x72c610e05eaafcdf1fa7a2da15374ee90edb1620": {
363
+ token: "0x72c610e05eaafcdf1fa7a2da15374ee90edb1620",
364
+ name: "",
365
+ minimumBalance: 1n,
366
+ symbol: "",
367
+ decimals: 0,
368
+ isSufficient: false,
369
+ },
370
+ "0xfff9976782d46cc05630d1f6ebab18b2324d6b14": {
371
+ token: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
372
+ name: "Wrapped Ether",
373
+ minimumBalance: 15000000000000n,
374
+ symbol: "WETH",
375
+ decimals: 18,
376
+ isSufficient: true,
377
+ },
378
+ "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f": {
379
+ token: "0x23838b1bb57cecf4422a57dd8e7f8a087b30d54f",
380
+ name: "",
381
+ symbol: "",
382
+ decimals: 0,
383
+ locationOnEthereum: {
384
+ parents: 1,
385
+ interior: {
386
+ x2: [
387
+ {
388
+ globalConsensus: {
389
+ byGenesis: "0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",
390
+ },
391
+ },
392
+ {
393
+ parachain: 2313,
394
+ },
395
+ ],
396
+ },
397
+ },
398
+ location: {
399
+ parents: 1,
400
+ interior: {
401
+ x1: [
402
+ {
403
+ parachain: 2313,
404
+ },
405
+ ],
406
+ },
407
+ },
408
+ locationOnAH: {
409
+ parents: 1,
410
+ interior: {
411
+ x1: [
412
+ {
413
+ parachain: 2313,
414
+ },
415
+ ],
416
+ },
417
+ },
418
+ foreignId: "0xaf13384cf9612ef1ff4b87470ab247d6f8d8110d4f5af2fe290ce6767818712c",
419
+ minimumBalance: 1n,
420
+ isSufficient: false,
421
+ },
422
+ "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055": {
423
+ token: "0xb8a0f2703ac6bdd352096c90c2945a097e8f4055",
424
+ name: "",
425
+ symbol: "WND",
426
+ decimals: 12,
427
+ locationOnEthereum: {
428
+ parents: 1,
429
+ interior: {
430
+ x1: [
431
+ {
432
+ globalConsensus: {
433
+ byGenesis: "0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",
434
+ },
435
+ },
436
+ ],
437
+ },
438
+ },
439
+ location: {
440
+ parents: 1,
441
+ interior: "Here",
442
+ },
443
+ locationOnAH: {
444
+ parents: 1,
445
+ interior: "Here",
446
+ },
447
+ foreignId: "0x2121cfe35065c0c33465fbada265f08e9613428a4b9eb4bb717cd7db2abf622e",
448
+ minimumBalance: 1000000000n,
449
+ isSufficient: true,
450
+ },
451
+ "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e": {
452
+ token: "0xf50fb50d65c8c1f6c72e4d8397c984933afc8f7e",
453
+ name: "",
454
+ symbol: "WND",
455
+ decimals: 12,
456
+ locationOnEthereum: {
457
+ parents: 1,
458
+ interior: {
459
+ x1: [
460
+ {
461
+ globalConsensus: {
462
+ byGenesis: "0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",
463
+ },
464
+ },
465
+ ],
466
+ },
467
+ },
468
+ location: {
469
+ parents: 1,
470
+ interior: "Here",
471
+ },
472
+ locationOnAH: {
473
+ parents: 1,
474
+ interior: "Here",
475
+ },
476
+ foreignId: "0x9441dceeeffa7e032eedaccf9b7632e60e86711551a82ffbbb0dda8afd9e4ef7",
477
+ minimumBalance: 1000000000n,
478
+ isSufficient: true,
479
+ },
480
+ },
481
+ estimatedExecutionFeeDOT: 0n,
482
+ estimatedDeliveryFeeDOT: 0n,
483
+ },
484
+ },
485
+ },
486
+ };
487
+ exports.default = registry;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snowbridge/registry",
3
- "version": "0.3.3",
3
+ "version": "0.4.1-beta.1",
4
4
  "description": "Snowbridge Asset Registry",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -11,8 +11,8 @@
11
11
  "main": "dist/index.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "devDependencies": {
14
- "@polkadot/api": "16.4.8",
15
- "@polkadot/util": "13.5.6",
14
+ "@polkadot/api": "16.5.4",
15
+ "@polkadot/util": "14.0.1",
16
16
  "@types/node": "24.6.2",
17
17
  "@typescript-eslint/eslint-plugin": "8.45.0",
18
18
  "@typescript-eslint/parser": "8.45.0",
@@ -24,15 +24,15 @@
24
24
  "ts-node": "10.9.2",
25
25
  "tsconfig-paths": "4.2.0",
26
26
  "typescript": "5.9.3",
27
- "@snowbridge/api": "0.3.3",
28
- "@snowbridge/contract-types": "0.3.3"
27
+ "@snowbridge/contract-types": "0.4.1-beta.1",
28
+ "@snowbridge/api": "0.4.1-beta.1"
29
29
  },
30
30
  "dependencies": {
31
- "@snowbridge/base-types": "0.3.3"
31
+ "@snowbridge/base-types": "0.4.1-beta.1"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "tsc --build --force && tsc -p tsconfig.scripts.json",
35
- "build-registry": "npx ts-node scripts/buildRegistry.ts",
35
+ "build-registry": "npx ts-node scripts/buildRegistry.ts && pnpm format",
36
36
  "lint": "eslint .",
37
37
  "format": "prettier src --write && prettier scripts --write"
38
38
  }