@scallop-io/sui-scallop-sdk 1.3.2 → 1.3.3-alpha.2

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.
@@ -133,6 +133,7 @@ export type MarketCollateral = {
133
133
  coinWrappedType: CoinWrappedType;
134
134
  coinDecimal: number;
135
135
  coinPrice: number;
136
+ isIsolated: boolean;
136
137
  } & Required<Pick<ParsedMarketCollateralData, 'collateralFactor' | 'liquidationFactor' | 'liquidationDiscount' | 'liquidationPanelty' | 'liquidationReserveFactor'>> & CalculatedMarketCollateralData;
137
138
  export type OriginMarketPoolData = {
138
139
  type: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scallop-io/sui-scallop-sdk",
3
- "version": "1.3.2",
3
+ "version": "1.3.3-alpha.2",
4
4
  "description": "Typescript sdk for interacting with Scallop contract on SUI",
5
5
  "keywords": [
6
6
  "sui",
@@ -82,7 +82,6 @@
82
82
  },
83
83
  "peerDependencies": {
84
84
  "@mysten/sui": "1.3.0",
85
- "@mysten/sui.js": "0.54.1",
86
85
  "@scallop-io/sui-kit": "1.3.1-alpha.1",
87
86
  "bn.js": "^5.2.1"
88
87
  },
@@ -161,14 +161,21 @@ export const sCoinIds: types.SCoinIds = {
161
161
  '0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC',
162
162
  ssbeth:
163
163
  '0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH',
164
- ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
164
+ // TODO: Change this to the correct value on production release
165
+ ssui: '0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI',
166
+ // ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
165
167
  scetus:
166
168
  '0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS',
167
- ssca: '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
169
+ // TODO: Change this to the correct value on production release
170
+ ssca: '0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA',
171
+ // '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
172
+ // TODO: Change this to the correct value on production release
168
173
  swusdc:
169
- '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
174
+ '0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
175
+ // '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
170
176
  swusdt:
171
- '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
177
+ // '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
178
+ '0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
172
179
  sweth:
173
180
  '0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH',
174
181
  safsui:
@@ -3,3 +3,4 @@ export * from './enum';
3
3
  export * from './flashloan';
4
4
  export * from './queryKeys';
5
5
  export * from './vesca';
6
+ export * from './testAddress';
@@ -99,10 +99,10 @@ export const queryKeys = {
99
99
  ],
100
100
  },
101
101
  oracle: {
102
- getPythLatestPriceFeed: (pythPriceId?: string) => [
102
+ getPythLatestPriceFeed: (pythPriceId?: string, endpoint?: string) => [
103
103
  'oracle',
104
104
  'getPythPriceId',
105
- { pythPriceId },
105
+ { pythPriceId, endpoint },
106
106
  ],
107
107
  },
108
108
  };
@@ -5,17 +5,17 @@ export const TEST_ADDRESSES: AddressesInterface = {
5
5
  // version:
6
6
  // '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
7
7
  version:
8
- '0x6156d5cd1538bec8a167a40fe1209a4ec9cf8137921fe0a697f191ac561f0b09',
8
+ '0xd318de9b0f6873879a82cbfcc2daa1d1591a8b54e7cea9f4b567da63c692a52b',
9
9
  versionCap:
10
10
  '0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07',
11
11
  // object:
12
12
  // '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
13
13
  object:
14
- '0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1',
14
+ '0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d',
15
15
  // market:
16
16
  // '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
17
17
  market:
18
- '0x8606ed145cc887985b8ed793f7753ff5dc762a42c379dac035f568e1bac58490',
18
+ '0x9d6434e97f3f98fd9b0c0e1dca22632073985abcd22541feae7ee1e34cbe3af2',
19
19
  adminCap:
20
20
  '0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c',
21
21
  coinDecimalsRegistry:
@@ -23,8 +23,23 @@ export const TEST_ADDRESSES: AddressesInterface = {
23
23
  // obligationAccessStore:
24
24
  // '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
25
25
  obligationAccessStore:
26
- '0x48b472d68ca910c45f7f3b6c26836b6aa6d2569810d94b1b939023da05ae0a23',
26
+ '0x46e9b44a77ee9c9d33cc2689ecdfbb8f681935cbc6bdf6ac3df048e396c36c82',
27
27
  coins: {
28
+ usdc: {
29
+ id: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7',
30
+ metaData:
31
+ '0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6',
32
+ treasury: '',
33
+ oracle: {
34
+ supra: '',
35
+ switchboard: '',
36
+ pyth: {
37
+ feed: 'eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
38
+ feedObject:
39
+ '0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab',
40
+ },
41
+ },
42
+ },
28
43
  cetus: {
29
44
  id: '0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b',
30
45
  metaData:
@@ -206,6 +221,21 @@ export const TEST_ADDRESSES: AddressesInterface = {
206
221
  },
207
222
  },
208
223
  },
224
+ sbeth: {
225
+ id: '0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29',
226
+ metaData:
227
+ '0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0',
228
+ treasury: '',
229
+ oracle: {
230
+ supra: '',
231
+ switchboard: '',
232
+ pyth: {
233
+ feed: 'ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace',
234
+ feedObject:
235
+ '0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab',
236
+ },
237
+ },
238
+ },
209
239
  },
210
240
  oracles: {
211
241
  xOracle:
@@ -249,7 +279,7 @@ export const TEST_ADDRESSES: AddressesInterface = {
249
279
  '0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e',
250
280
  },
251
281
  protocol: {
252
- id: '0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1',
282
+ id: '0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d',
253
283
  upgradeCap:
254
284
  '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
255
285
  },
@@ -269,7 +299,7 @@ export const TEST_ADDRESSES: AddressesInterface = {
269
299
  // '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
270
300
  // },
271
301
  query: {
272
- id: '0xe4f9d62d17746d5b9dbf0d5557747430021a71575780b515161210cdba0a4c1c',
302
+ id: '0x89706958f43fb170de134579e3fbc53972b946ee78bd2442d8e1adc36074fbdc',
273
303
  upgradeCap:
274
304
  '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
275
305
  },
@@ -310,6 +340,11 @@ export const TEST_ADDRESSES: AddressesInterface = {
310
340
  // '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
311
341
  '0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a',
312
342
  },
343
+ susdc: {
344
+ id: '0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918',
345
+ rewardPoolId:
346
+ '0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166',
347
+ },
313
348
  swusdc: {
314
349
  // id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
315
350
  id: '0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2',
@@ -354,35 +389,35 @@ export const TEST_ADDRESSES: AddressesInterface = {
354
389
  config: '',
355
390
  },
356
391
  borrowIncentive: {
357
- id: '0x6152f696fc3a658f33c4b891764731a59153125ffedfa8bff7167c42823f58a9',
392
+ id: '0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe',
358
393
  adminCap:
359
- '0xc486afa253646f4d381e81d7f1df8aa4723b845a6bb356f69bad635ffefffe2c',
394
+ '0x56ac8e6f2b360b2b35c0168d72cc6cd17d9592afb83709865cb87af24bb2025b',
360
395
  object:
361
- '0x002875153e09f8145ab63527bc85c00f2bd102e12f9573c47f8cdf1a1cb62934',
362
- query: '0x529edc54a3dce2207703ceebbccb0ac14133f7825c1f528775ba0d85a4063489',
396
+ '0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe',
397
+ query: '0x8e0d00f8ff1199d7c5fe56cea0e901a525daeefff0445a1635ace8282ae3302c',
363
398
  incentivePools:
364
- '0x6547e143d406b5ccd5f46aae482497de279cc1a68c406f701df70a05f9212ab4',
399
+ '0x9d564c93128c6ab0c0d3e050a47f11df0b91494f3bb779bdc1301c1c637f15eb',
365
400
  incentiveAccounts:
366
- '0xc4701fdbc1c92f9a636d334d66012b3027659e9fb8aff27279a82edfb6b77d02',
401
+ '0x09e6040e798246de04941bc79a3ba62d3eca6d7a218cc30f21fb07f478fa2926',
367
402
  config:
368
- '0xdf5d04b4691cc67e82fd4db8394d89ff44823a9de29716c924f74bb4f11cc1f7',
403
+ '0x43d4ca1dfc90b161c4240facd119e74e4b850cca2957f88c2ec289c9380da064',
369
404
  },
370
405
  referral: {
371
- id: '0xa3654ebb63eb06c0f4ff52f8aa6512df9f164f7772bdf15dac3709bd3798dda9',
406
+ id: '0x1bf5a8ce77050d8052549d743e16b469f15aa6b81b752b78b6ebb65179665f5a',
372
407
  object:
373
408
  '0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec',
374
409
  adminCap:
375
410
  '0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd',
376
411
  referralBindings:
377
- '0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09',
412
+ '0xcf184487782bed962bf678001efe775d31fb94b9992333a57594cf15d79d5ced',
378
413
  bindingTableId:
379
- '0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1',
414
+ '0x41a50e258c0a266ce84e0e1a618dbf70b878cc943909e613089a50afcceb2bc0',
380
415
  referralRevenuePool:
381
- '0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07',
416
+ '0xc24e3e5e37032f29a3dd91a9a1f057af8821b7e6c148e9683900ac8b6d30f0c6',
382
417
  revenueTableId:
383
418
  '0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd',
384
419
  referralTiers:
385
- '0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e',
420
+ '0x144350f3db9b46d11b140084cd54e6de0b9c3b8d265ce8059b51d0ef58ea464b',
386
421
  tiersTableId:
387
422
  '0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d',
388
423
  // authorizedWitnessList:
@@ -390,21 +425,21 @@ export const TEST_ADDRESSES: AddressesInterface = {
390
425
  authorizedWitnessList:
391
426
  '0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f',
392
427
  version:
393
- '0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e',
428
+ '0x3545849eb97723e676a476ec9d4fe5f2eb0eb2c6b78972851114fd4c7ed4639f',
394
429
  },
395
430
  vesca: {
396
- id: '0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4',
431
+ id: '0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2',
397
432
  object:
398
- '0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4',
433
+ '0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2',
399
434
  adminCap:
400
435
  '0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5',
401
436
  tableId:
402
- '0xe3153b2bf124be0b86cb8bd468346a861efd0da52fc42197b54d2f616488a311',
403
- table: '0x611cb8d9d4d90867467b5ebdf4cc447a0047ed5b01334a28a29fcfe733e3d609',
437
+ '0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246',
438
+ table: '0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0',
404
439
  treasury:
405
- '0xe8c112c09b88158dc6c8e23d1fbae5b3c7136cdee54b7dafc08e65db28c4a5bc',
440
+ '0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306',
406
441
  config:
407
- '0xe0a2ff281e73c1d53cfa85807080f87e833e4f1a7f93dcf8800b3865269a76b9',
442
+ '0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922',
408
443
  },
409
444
  loyaltyProgram: {
410
445
  id: '0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907',
@@ -416,13 +451,13 @@ export const TEST_ADDRESSES: AddressesInterface = {
416
451
  '0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e',
417
452
  },
418
453
  scoin: {
419
- id: '0xad2ca2aa5089df94bb2d444d5eb3520378c2f2dfb3a0bd2a2c994145ac4b0a53',
454
+ id: '0x773dab39c90fe05439b06a2d061795e52a974ff92c2aef90b2ee467acf7f33c8',
420
455
  coins: {
421
456
  ssui: {
422
457
  coinType:
423
- '0xfac769100bccc0caebcf4f4e2d00ac2f8883f07f724be28940df90605f5e7e9a::scallop_sui::SCALLOP_SUI',
458
+ '0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI',
424
459
  treasury:
425
- '0x9cb4551b36c17d37e19d700147fa819ea1c487ff8bcf18374de2cceb2e9d4845',
460
+ '0x0e499640a12c38dd9cc44532f5bc5fd1b6da86d2f9a8810357250f4b26e9e5c7',
426
461
  },
427
462
  scetus: {
428
463
  coinType:
@@ -432,21 +467,21 @@ export const TEST_ADDRESSES: AddressesInterface = {
432
467
  },
433
468
  ssca: {
434
469
  coinType:
435
- '0x0a9d3c6c9af9f6e8def82921541bcbd17f73ed31bed3adcb684f2a4c267e42f0::scallop_sca::SCALLOP_SCA',
470
+ '0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA',
436
471
  treasury:
437
- '0xe818636d1d6c46d6ea1a2dce9d94696d7cbc18ce27451b603eeaa47aba8d75e0',
472
+ '0x5f1c5de1df7341075d119570269b7b452af50afe8363080638f1ae29a554c038',
438
473
  },
439
474
  swusdc: {
440
475
  coinType:
441
- '0xaedc3ab75db8680b81a755015fa90124d217be93457b893c05bac033817defaf::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
476
+ '0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
442
477
  treasury:
443
- '0xfc6971648f867f7fd6928d1b873af71577e2eaf2c7543ef8bc82c431d833ae78',
478
+ '0x471fbab72578bab577263006fe32543b6e76153fffa2bef69affe4bc4934258f',
444
479
  },
445
480
  swusdt: {
446
481
  coinType:
447
- '0xbf02fc87ddc104b342ad8414c85ceadf5b0c823c055a06fb0ed776272c01a52a::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
482
+ '0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
448
483
  treasury:
449
- '0xb9593e2c3a0ba796ee815012b75ae46468ea78cda0188b9ac6816efe65503521',
484
+ '0x921a4ed4bb4b4f11f51a462c83f4c0f6b60a90e441d1bc0d26d6fd893146bf4d',
450
485
  },
451
486
  sweth: {
452
487
  coinType:
@@ -470,7 +505,13 @@ export const TEST_ADDRESSES: AddressesInterface = {
470
505
  coinType:
471
506
  '0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI',
472
507
  treasury:
473
- '0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6ƒ',
508
+ '0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6',
509
+ },
510
+ ssbeth: {
511
+ coinType:
512
+ '0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH',
513
+ treasury:
514
+ '0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed',
474
515
  },
475
516
  },
476
517
  },
@@ -98,10 +98,9 @@ export class ScallopBuilder {
98
98
  * @param address - ScallopAddress instance.
99
99
  */
100
100
  public async init(force: boolean = false, address?: ScallopAddress) {
101
- if (force || !this.address.getAddresses() || !address?.getAddresses()) {
101
+ if (address && !this.address) this.address = address;
102
+ if (force || !this.address.getAddresses()) {
102
103
  await this.address.read();
103
- } else {
104
- this.address = address;
105
104
  }
106
105
  await this.query.init(force, this.address);
107
106
  await this.utils.init(force, this.address);
@@ -167,11 +167,12 @@ export class ScallopQuery {
167
167
  * @param address - ScallopAddress instance.
168
168
  */
169
169
  public async init(force: boolean = false, address?: ScallopAddress) {
170
- if (force || !this.address.getAddresses() || !address?.getAddresses()) {
171
- await this.address.read();
172
- } else {
170
+ if (address && !this.address) {
173
171
  this.address = address;
174
172
  }
173
+ if (force || !this.address.getAddresses()) {
174
+ await this.address.read();
175
+ }
175
176
 
176
177
  await this.utils.init(force, this.address);
177
178
  }
@@ -129,10 +129,9 @@ export class ScallopUtils {
129
129
  * @param address - ScallopAddress instance.
130
130
  */
131
131
  public async init(force: boolean = false, address?: ScallopAddress) {
132
- if (force || !this.address.getAddresses() || !address?.getAddresses()) {
132
+ if (address && !this.address) this.address = address;
133
+ if (force || !this.address.getAddresses()) {
133
134
  await this.address.read();
134
- } else {
135
- this.address = address;
136
135
  }
137
136
  }
138
137
 
@@ -553,39 +552,51 @@ export class ScallopUtils {
553
552
  const priceId = this.address.get(
554
553
  `core.coins.${coinName}.oracle.pyth.feed`
555
554
  );
556
- acc[coinName] = priceId;
555
+ if (priceId) {
556
+ acc[coinName] = priceId;
557
+ }
557
558
  return acc;
558
559
  },
559
560
  {} as Record<SupportAssetCoins, string>
560
561
  );
561
562
 
562
563
  await Promise.allSettled(
563
- Object.entries(priceIds).map(async ([coinName, priceId]) => {
564
- const pythConnection = new SuiPriceServiceConnection(endpoint);
565
- try {
566
- const feed = await this.cache.queryClient.fetchQuery({
567
- queryKey: queryKeys.oracle.getPythLatestPriceFeed(priceId),
568
- queryFn: async () => {
569
- return (
570
- (await pythConnection.getLatestPriceFeeds([priceId])) ?? []
571
- );
572
- },
573
- });
574
- if (feed[0]) {
575
- const data = parseDataFromPythPriceFeed(feed[0], this.address);
576
- this._priceMap.set(coinName as SupportAssetCoins, {
577
- price: data.price,
578
- publishTime: data.publishTime,
564
+ Object.entries(priceIds)
565
+ .filter(([_, priceId]) => !!priceId)
566
+ .map(async ([coinName, priceId]) => {
567
+ // console.log({ coinName, priceId, endpoint });
568
+ const pythConnection = new SuiPriceServiceConnection(endpoint);
569
+ try {
570
+ const feed = await this.cache.queryClient.fetchQuery({
571
+ queryKey: queryKeys.oracle.getPythLatestPriceFeed(
572
+ priceId,
573
+ endpoint
574
+ ),
575
+ queryFn: async () => {
576
+ return (
577
+ (await pythConnection.getLatestPriceFeeds([priceId])) ??
578
+ []
579
+ );
580
+ },
579
581
  });
580
- coinPrices[coinName as SupportAssetCoins] = data.price;
582
+ if (feed[0]) {
583
+ const data = parseDataFromPythPriceFeed(
584
+ feed[0],
585
+ this.address
586
+ );
587
+ this._priceMap.set(coinName as SupportAssetCoins, {
588
+ price: data.price,
589
+ publishTime: data.publishTime,
590
+ });
591
+ coinPrices[coinName as SupportAssetCoins] = data.price;
592
+ failedRequests.delete(coinName as SupportAssetCoins); // remove success price feed to prevent duplicate request on the next endpoint
593
+ }
594
+ } catch (e) {
595
+ console.warn(
596
+ `Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
597
+ );
581
598
  }
582
- failedRequests.delete(coinName as SupportAssetCoins); // remove success price feed to prevent duplicate request on the next endpoint
583
- } catch (e) {
584
- console.warn(
585
- `Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
586
- );
587
- }
588
- })
599
+ })
589
600
  );
590
601
  if (failedRequests.size === 0) break;
591
602
  }