@@ -269,39 +269,45 @@ export function getDownloadableConfig(
269
269
rawConfig : RawConfig ,
270
270
) : DownloadableConfig {
271
271
// Convert the raw config to a user-friendly format for download
272
- const symbolToData : DownloadableConfig = { } ;
273
-
274
272
if ( rawConfig . mappingAccounts . length > 0 ) {
275
- rawConfig . mappingAccounts
276
- . sort (
277
- ( mapping1 , mapping2 ) =>
278
- mapping2 . products . length - mapping1 . products . length ,
279
- ) [ 0 ]
280
- . products . sort ( ( product1 , product2 ) =>
281
- product1 . metadata . symbol . localeCompare ( product2 . metadata . symbol ) ,
282
- )
283
- . map ( ( product ) => {
284
- symbolToData [ product . metadata . symbol ] = {
285
- address : product . address . toBase58 ( ) ,
286
- metadata : {
287
- ...product . metadata ,
288
- } ,
289
- priceAccounts : product . priceAccounts . map ( ( p : PriceRawConfig ) => {
290
- return {
291
- address : p . address . toBase58 ( ) ,
292
- publishers : p . publishers . map ( ( p ) => p . toBase58 ( ) ) ,
293
- expo : p . expo ,
294
- minPub : p . minPub ,
295
- maxLatency : p . maxLatency ,
296
- } ;
297
- } ) ,
298
- } ;
299
- // This field is immutable and should not be updated
300
- delete symbolToData [ product . metadata . symbol ] . metadata . price_account ;
301
- } ) ;
273
+ const symbolToData = Object . fromEntries (
274
+ rawConfig . mappingAccounts
275
+ . sort (
276
+ ( mapping1 , mapping2 ) =>
277
+ mapping2 . products . length - mapping1 . products . length ,
278
+ ) [ 0 ]
279
+ . products . sort ( ( product1 , product2 ) =>
280
+ product1 . metadata . symbol . localeCompare ( product2 . metadata . symbol ) ,
281
+ )
282
+ . map ( ( product ) => {
283
+ const { price_account, ...metadataWithoutPriceAccount } =
284
+ product . metadata ;
285
+
286
+ return [
287
+ product . metadata . symbol ,
288
+ {
289
+ address : product . address . toBase58 ( ) ,
290
+ metadata : {
291
+ ...metadataWithoutPriceAccount ,
292
+ } ,
293
+ priceAccounts : product . priceAccounts . map ( ( p : PriceRawConfig ) => {
294
+ return {
295
+ address : p . address . toBase58 ( ) ,
296
+ publishers : p . publishers . map ( ( p ) => p . toBase58 ( ) ) ,
297
+ expo : p . expo ,
298
+ minPub : p . minPub ,
299
+ maxLatency : p . maxLatency ,
300
+ } ;
301
+ } ) ,
302
+ } ,
303
+ ] ;
304
+ } ) ,
305
+ ) ;
306
+
307
+ return sortData ( symbolToData ) ;
302
308
}
303
309
304
- return sortData ( symbolToData ) ;
310
+ return { } ;
305
311
}
306
312
307
313
/**
0 commit comments