@scallop-io/sui-scallop-sdk 1.4.4 → 1.4.5

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.
package/dist/index.mjs CHANGED
@@ -24,6 +24,7 @@ var COIN_GECKGO_IDS = {
24
24
  hasui: "sui",
25
25
  vsui: "sui",
26
26
  sca: "scallop-2",
27
+ fdusd: "first-digital-usd",
27
28
  deep: "deepbook",
28
29
  fud: "fud-the-pug"
29
30
  };
@@ -56,7 +57,8 @@ var SUPPORT_POOLS = [
56
57
  "vsui",
57
58
  "sca",
58
59
  "fud",
59
- "deep"
60
+ "deep",
61
+ "fdusd"
60
62
  ];
61
63
  var SUPPORT_COLLATERALS = [
62
64
  "usdc",
@@ -74,7 +76,8 @@ var SUPPORT_COLLATERALS = [
74
76
  "afsui",
75
77
  "hasui",
76
78
  "vsui",
77
- "sca"
79
+ "sca",
80
+ "fdusd"
78
81
  ];
79
82
  var SUPPORT_SPOOLS = [
80
83
  "susdc",
@@ -102,7 +105,8 @@ var SUPPORT_SCOIN = [
102
105
  "swsol",
103
106
  "swbtc",
104
107
  "sdeep",
105
- "sfud"
108
+ "sfud",
109
+ "sfdusd"
106
110
  ];
107
111
  var SUPPORT_SUI_BRIDGE = ["sbeth"];
108
112
  var SUPPORT_WORMHOLE = [
@@ -151,6 +155,7 @@ var coinDecimals = {
151
155
  hasui: 9,
152
156
  vsui: 9,
153
157
  sca: 9,
158
+ fdusd: 6,
154
159
  deep: 6,
155
160
  fud: 5,
156
161
  susdc: 6,
@@ -167,6 +172,7 @@ var coinDecimals = {
167
172
  shasui: 9,
168
173
  svsui: 9,
169
174
  ssca: 9,
175
+ sfdusd: 6,
170
176
  sdeep: 6,
171
177
  sfud: 5
172
178
  };
@@ -185,6 +191,7 @@ var assetCoins = {
185
191
  hasui: "hasui",
186
192
  vsui: "vsui",
187
193
  sca: "sca",
194
+ fdusd: "fdusd",
188
195
  deep: "deep",
189
196
  fud: "fud"
190
197
  };
@@ -203,6 +210,7 @@ var marketCoins = {
203
210
  shasui: "shasui",
204
211
  svsui: "svsui",
205
212
  ssca: "ssca",
213
+ sfdusd: "sfdusd",
206
214
  sdeep: "sdeep",
207
215
  sfud: "sfud"
208
216
  };
@@ -220,6 +228,7 @@ var sCoins = {
220
228
  ssca: "ssca",
221
229
  swsol: "swsol",
222
230
  swbtc: "swbtc",
231
+ sfdusd: "sfdusd",
223
232
  sfud: "sfud",
224
233
  sdeep: "sdeep"
225
234
  };
@@ -263,6 +272,7 @@ var coinIds = {
263
272
  hasui: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
264
273
  vsui: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
265
274
  sca: IS_VE_SCA_TEST ? "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524" : "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
275
+ fdusd: "0xf16e6b723f242ec745dfd7634ad072c42d5c1d9ac9d62a39c381303eaa57693a",
266
276
  // isolated assets
267
277
  deep: "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270",
268
278
  fud: "0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1"
@@ -292,6 +302,7 @@ var sCoinIds = {
292
302
  svsui: "0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI",
293
303
  swsol: "0x1392650f2eca9e3f6ffae3ff89e42a3590d7102b80e2b430f674730bc30d3259::scallop_wormhole_sol::SCALLOP_WORMHOLE_SOL",
294
304
  swbtc: "0x2cf76a9cf5d3337961d1154283234f94da2dcff18544dfe5cbdef65f319591b5::scallop_wormhole_btc::SCALLOP_WORMHOLE_BTC",
305
+ sfdusd: "0x6711551c1e7652a270d9fbf0eee25d99594c157cde3cb5fbb49035eb59b1b001::scallop_fdusd::SCALLOP_FDUSD",
295
306
  sdeep: "0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP",
296
307
  sfud: "0xe56d5167f427cbe597da9e8150ef5c337839aaf46891d62468dcf80bdd8e10d1::scallop_fud::SCALLOP_FUD"
297
308
  };
@@ -567,6 +578,21 @@ var POOL_ADDRESSES = {
567
578
  spoolReward: void 0,
568
579
  sCoinTreasury: "0xc63838fabe37b25ad897392d89876d920f5e0c6a406bf3abcb84753d2829bc88",
569
580
  coinDecimalId: "0x6e60b051a08fa836f5a7acd7c464c8d9825bc29c44657fe170fe9b8e1e4770c0"
581
+ },
582
+ fdusd: {
583
+ lendingPoolAddress: "0x4f46051a01f05c3ad9aecf29a771aad5c884e1a1888e08d7709085e3a095bc9c",
584
+ collateralPoolAddress: "0x4f6647a9afcfdb62bb9b27e4d1cb7bd7130aca1b4f13fa7164453c869c1681ae",
585
+ borrowDynamic: "0x4ddcf19b6290a8b048ecb314b14ef7f52c1c5b9ddc9259a2a242cd91d681a085",
586
+ interestModel: "0xb57a33706b29d2d253c74c1c0869e6e20da99036338d2b0b7235ab41621ee9dd",
587
+ riskModel: "0xd65fb21758dc1e6184940a1a27efb13228d7cf5e19f6dcca06cc2d996af4a6b9",
588
+ borrowFeeKey: "0xafe673a27747b063fa918d2dfe47794e44af553737ac562c2a63186539a07f45",
589
+ supplyLimitKey: "0x730e0785ba056a7a95f4a6959371a598d7fe782e81c40785c79982ced4cf4e35",
590
+ borrowLimitKey: "0x1630c6954918a06fe56312afb8958366c5ed7af653dae0e32c09d088da38577e",
591
+ isolatedAssetKey: void 0,
592
+ spool: void 0,
593
+ spoolReward: void 0,
594
+ sCoinTreasury: "0xdad9bc6293e694f67a5274ea51b596e0bdabfafc585ae6d7e82888e65f1a03e0",
595
+ coinDecimalId: "0xdebee5265a67c186ed87fe93303d33dfe1de53e3b4fd7d9329c2852860acd3e7"
570
596
  }
571
597
  };
572
598
 
@@ -590,6 +616,7 @@ var PYTH_FEED_IDS = {
590
616
  hasui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
591
617
  vsui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
592
618
  sca: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
619
+ fdusd: "0xccdc1a08923e2e4f4b1e6ea89de6acbc5fe1948e9706f5604b8cb50bc1ed3979",
593
620
  deep: "29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",
594
621
  fud: "6a4090703da959247727f2b490eb21aea95c8684ecfac675f432008830890c75"
595
622
  };
@@ -899,6 +926,19 @@ var TEST_ADDRESSES = {
899
926
  }
900
927
  }
901
928
  },
929
+ fdusd: {
930
+ id: "0xf16e6b723f242ec745dfd7634ad072c42d5c1d9ac9d62a39c381303eaa57693a",
931
+ metaData: "0xdebee5265a67c186ed87fe93303d33dfe1de53e3b4fd7d9329c2852860acd3e7",
932
+ treasury: "",
933
+ oracle: {
934
+ supra: "",
935
+ switchboard: "",
936
+ pyth: {
937
+ feed: "0xccdc1a08923e2e4f4b1e6ea89de6acbc5fe1948e9706f5604b8cb50bc1ed3979",
938
+ feedObject: "0x5f6583b2b0fe1ecf94aaffeaab8a838794693960cea48c0da282d5f4a24be027"
939
+ }
940
+ }
941
+ },
902
942
  deep: {
903
943
  id: "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270",
904
944
  metaData: "0x6e60b051a08fa836f5a7acd7c464c8d9825bc29c44657fe170fe9b8e1e4770c0",
@@ -1144,6 +1184,10 @@ var TEST_ADDRESSES = {
1144
1184
  coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
1145
1185
  treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
1146
1186
  },
1187
+ sfdusd: {
1188
+ coinType: "0x6711551c1e7652a270d9fbf0eee25d99594c157cde3cb5fbb49035eb59b1b001::scallop_fdusd::SCALLOP_FDUSD",
1189
+ treasury: "0xdad9bc6293e694f67a5274ea51b596e0bdabfafc585ae6d7e82888e65f1a03e0"
1190
+ },
1147
1191
  sdeep: {
1148
1192
  coinType: "0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP",
1149
1193
  treasury: "0xc63838fabe37b25ad897392d89876d920f5e0c6a406bf3abcb84753d2829bc88"
@@ -1382,8 +1426,8 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
1382
1426
  supplyApy: utils.parseAprToApy(supplyApr.toNumber()),
1383
1427
  conversionRate: conversionRate.toNumber(),
1384
1428
  isIsolated: parsedMarketPoolData.isIsolated,
1385
- maxSupplyCoin: BigNumber(parsedMarketPoolData.supplyLimit).shiftedBy(coinDecimal).toNumber(),
1386
- maxBorrowCoin: BigNumber(parsedMarketPoolData.borrowLimit).shiftedBy(coinDecimal).toNumber()
1429
+ maxSupplyCoin: BigNumber(parsedMarketPoolData.supplyLimit).shiftedBy(-coinDecimal).toNumber(),
1430
+ maxBorrowCoin: BigNumber(parsedMarketPoolData.borrowLimit).shiftedBy(-coinDecimal).toNumber()
1387
1431
  };
1388
1432
  };
1389
1433
  var parseOriginMarketCollateralData = (originMarketCollateralData) => {
@@ -3368,28 +3412,60 @@ var queryRequiredMarketObjects = async (query, poolCoinNames) => {
3368
3412
  tasks.map((task) => task.isolatedAssetKey).filter((t) => !!t)
3369
3413
  )
3370
3414
  ]);
3371
- const mapObjects = (tasks2, fetchedObjects) => {
3415
+ const mapObjects = (tasks2, fetchedObjects, keyValue) => {
3372
3416
  const resultMap = {};
3373
- let fetchedIndex = 0;
3417
+ const fetchedObjectMap = fetchedObjects.reduce(
3418
+ (acc, obj) => {
3419
+ acc[obj.objectId] = obj;
3420
+ return acc;
3421
+ },
3422
+ {}
3423
+ );
3374
3424
  for (const task of tasks2) {
3375
- const key = task[Object.keys(task)[1]];
3376
- if (key) {
3377
- resultMap[task.poolCoinName] = fetchedObjects[fetchedIndex];
3378
- fetchedIndex++;
3425
+ if (task[keyValue]) {
3426
+ resultMap[task.poolCoinName] = fetchedObjectMap[task[keyValue]];
3379
3427
  }
3380
3428
  }
3381
3429
  return resultMap;
3382
3430
  };
3383
- const balanceSheetMap = mapObjects(tasks, balanceSheetObjects);
3384
- const collateralStatMap = mapObjects(tasks, collateralStatObjects);
3385
- const borrowDynamicMap = mapObjects(tasks, borrowDynamicObjects);
3386
- const interestModelMap = mapObjects(tasks, interestModelObjects);
3387
- const riskModelMap = mapObjects(tasks, riskModelObjects);
3388
- const borrowFeeMap = mapObjects(tasks, borrowFeeObjects);
3389
- const supplyLimitMap = mapObjects(tasks, supplyLimitObjects);
3390
- const borrowLimitMap = mapObjects(tasks, borrowLimitObjects);
3391
- const isolatedAssetMap = mapObjects(tasks, isolatedAssetObjects);
3392
- return poolCoinNames.reduce(
3431
+ const balanceSheetMap = mapObjects(
3432
+ tasks,
3433
+ balanceSheetObjects,
3434
+ "balanceSheet"
3435
+ );
3436
+ const collateralStatMap = mapObjects(
3437
+ tasks,
3438
+ collateralStatObjects,
3439
+ "collateralStat"
3440
+ );
3441
+ const borrowDynamicMap = mapObjects(
3442
+ tasks,
3443
+ borrowDynamicObjects,
3444
+ "borrowDynamic"
3445
+ );
3446
+ const interestModelMap = mapObjects(
3447
+ tasks,
3448
+ interestModelObjects,
3449
+ "interestModel"
3450
+ );
3451
+ const riskModelMap = mapObjects(tasks, riskModelObjects, "riskModel");
3452
+ const borrowFeeMap = mapObjects(tasks, borrowFeeObjects, "borrowFeeKey");
3453
+ const supplyLimitMap = mapObjects(
3454
+ tasks,
3455
+ supplyLimitObjects,
3456
+ "supplyLimitKey"
3457
+ );
3458
+ const borrowLimitMap = mapObjects(
3459
+ tasks,
3460
+ borrowLimitObjects,
3461
+ "borrowLimitKey"
3462
+ );
3463
+ const isolatedAssetMap = mapObjects(
3464
+ tasks,
3465
+ isolatedAssetObjects,
3466
+ "isolatedAssetKey"
3467
+ );
3468
+ const result = poolCoinNames.reduce(
3393
3469
  (acc, name) => {
3394
3470
  acc[name] = {
3395
3471
  balanceSheet: balanceSheetMap[name],
@@ -3406,6 +3482,7 @@ var queryRequiredMarketObjects = async (query, poolCoinNames) => {
3406
3482
  },
3407
3483
  {}
3408
3484
  );
3485
+ return result;
3409
3486
  };
3410
3487
  var getMarketPools = async (query, poolCoinNames, indexer = false, coinPrices) => {
3411
3488
  coinPrices = coinPrices ?? await query.utils.getCoinPrices();
@@ -4722,21 +4799,29 @@ var queryRequiredSpoolObjects = async (query, stakePoolCoinNames) => {
4722
4799
  tasks.map((task) => task.sCoinTreasury).filter((t) => !!t)
4723
4800
  )
4724
4801
  ]);
4725
- const mapObjects = (tasks2, fetchedObjects) => {
4802
+ const mapObjects = (tasks2, fetchedObjects, keyValue) => {
4726
4803
  const resultMap = {};
4727
- let fetchedIndex = 0;
4804
+ const fetchedObjectMap = fetchedObjects.reduce(
4805
+ (acc, obj) => {
4806
+ acc[obj.objectId] = obj;
4807
+ return acc;
4808
+ },
4809
+ {}
4810
+ );
4728
4811
  for (const task of tasks2) {
4729
- const key = task[Object.keys(task)[1]];
4730
- if (key) {
4731
- resultMap[task.poolCoinName] = fetchedObjects[fetchedIndex];
4732
- fetchedIndex++;
4812
+ if (task[keyValue]) {
4813
+ resultMap[task.poolCoinName] = fetchedObjectMap[task[keyValue]];
4733
4814
  }
4734
4815
  }
4735
4816
  return resultMap;
4736
4817
  };
4737
- const spoolMap = mapObjects(tasks, spoolObjects);
4738
- const spoolRewardMap = mapObjects(tasks, spoolRewardObjects);
4739
- const sCoinTreasuryMap = mapObjects(tasks, sCoinTreasuryObjects);
4818
+ const spoolMap = mapObjects(tasks, spoolObjects, "spool");
4819
+ const spoolRewardMap = mapObjects(tasks, spoolRewardObjects, "spoolReward");
4820
+ const sCoinTreasuryMap = mapObjects(
4821
+ tasks,
4822
+ sCoinTreasuryObjects,
4823
+ "sCoinTreasury"
4824
+ );
4740
4825
  return stakePoolCoinNames.reduce(
4741
4826
  (acc, name) => {
4742
4827
  acc[name] = {