@scallop-io/sui-scallop-sdk 1.4.1-alpha.1 → 1.4.11

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.
@@ -7,14 +7,14 @@ export declare const PROTOCOL_OBJECT_ID: "0xc9f859f98ca352a11b97a038c4b4162bee43
7
7
  export declare const BORROW_FEE_PROTOCOL_ID: "0xc9f859f98ca352a11b97a038c4b4162bee437b8df8caa047990fe9cb03d4f778" | "0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da";
8
8
  export declare const SCA_COIN_TYPE: "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524::sca::SCA" | "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6::sca::SCA";
9
9
  export declare const OLD_BORROW_INCENTIVE_PROTOCOL_ID: "0xc63072e7f5f4983a2efaf5bdba1480d5e7d74d57948e1c7cc436f8e22cbeb410";
10
- export declare const SUPPORT_POOLS: readonly ["usdc", "sbeth", "weth", "wbtc", "wusdc", "wusdt", "sui", "wapt", "wsol", "cetus", "afsui", "hasui", "vsui", "sca"];
10
+ export declare const SUPPORT_POOLS: readonly ["usdc", "sbeth", "weth", "wbtc", "wusdc", "wusdt", "sui", "wapt", "wsol", "cetus", "afsui", "hasui", "vsui", "sca", "fud", "deep"];
11
11
  export declare const SUPPORT_COLLATERALS: readonly ["usdc", "sbeth", "weth", "wbtc", "wusdc", "wusdt", "sui", "wapt", "wsol", "cetus", "afsui", "hasui", "vsui", "sca"];
12
12
  export declare const SUPPORT_SPOOLS: readonly ["susdc", "sweth", "ssui", "swusdc", "swusdt", "scetus", "safsui", "shasui", "svsui"];
13
- export declare const SUPPORT_SCOIN: readonly ["susdc", "ssbeth", "ssui", "swusdc", "swusdt", "safsui", "shasui", "svsui", "sweth", "ssca", "scetus", "swsol", "swbtc"];
13
+ export declare const SUPPORT_SCOIN: readonly ["susdc", "ssbeth", "ssui", "swusdc", "swusdt", "safsui", "shasui", "svsui", "sweth", "ssca", "scetus", "swsol", "swbtc", "sdeep", "sfud"];
14
14
  export declare const SUPPORT_SUI_BRIDGE: readonly ["sbeth"];
15
15
  export declare const SUPPORT_WORMHOLE: readonly ["wusdc", "wusdt", "weth", "wbtc", "wapt", "wsol"];
16
16
  export declare const SUPPORT_SPOOLS_REWARDS: readonly ["sui"];
17
17
  export declare const SUPPORT_BORROW_INCENTIVE_POOLS: readonly ["sui", "wusdc", "wusdt", "afsui", "hasui", "vsui", "weth", "sbeth", "sca", "usdc"];
18
- export declare const SUPPORT_BORROW_INCENTIVE_REWARDS: readonly ["usdc", "sbeth", "weth", "wbtc", "wusdc", "wusdt", "sui", "wapt", "wsol", "cetus", "afsui", "hasui", "vsui", "sca", "susdc", "ssbeth", "ssui", "swusdc", "swusdt", "safsui", "shasui", "svsui", "sweth", "ssca", "scetus", "swsol", "swbtc"];
18
+ export declare const SUPPORT_BORROW_INCENTIVE_REWARDS: readonly ["usdc", "sbeth", "weth", "wbtc", "wusdc", "wusdt", "sui", "wapt", "wsol", "cetus", "afsui", "hasui", "vsui", "sca", "fud", "deep", "susdc", "ssbeth", "ssui", "swusdc", "swusdt", "safsui", "shasui", "svsui", "sweth", "ssca", "scetus", "swsol", "swbtc", "sdeep", "sfud"];
19
19
  export declare const SUPPORT_ORACLES: readonly ["supra", "switchboard", "pyth"];
20
20
  export declare const SUPPORT_PACKAGES: readonly ["coinDecimalsRegistry", "math", "whitelist", "x", "protocol", "protocolWhitelist", "query", "supra", "pyth", "switchboard", "xOracle", "testCoin"];
@@ -10,5 +10,5 @@ export declare const coinIds: types.AssetCoinIds;
10
10
  export declare const wormholeCoinIds: types.WormholeCoinIds;
11
11
  export declare const voloCoinIds: types.VoloCoinIds;
12
12
  export declare const sCoinIds: types.SCoinIds;
13
- export declare const sCoinTypeToName: Record<string, "susdc" | "ssbeth" | "sweth" | "swbtc" | "swusdc" | "swusdt" | "ssui" | "swsol" | "scetus" | "safsui" | "shasui" | "svsui" | "ssca">;
14
- export declare const sCoinRawNameToName: Record<string, "susdc" | "ssbeth" | "sweth" | "swbtc" | "swusdc" | "swusdt" | "ssui" | "swsol" | "scetus" | "safsui" | "shasui" | "svsui" | "ssca">;
13
+ export declare const sCoinTypeToName: Record<string, "susdc" | "ssbeth" | "sweth" | "swbtc" | "swusdc" | "swusdt" | "ssui" | "swsol" | "scetus" | "safsui" | "shasui" | "svsui" | "ssca" | "sfud" | "sdeep">;
14
+ export declare const sCoinRawNameToName: Record<string, "susdc" | "ssbeth" | "sweth" | "swbtc" | "swusdc" | "swusdt" | "ssui" | "swsol" | "scetus" | "safsui" | "shasui" | "svsui" | "ssca" | "sfud" | "sdeep">;
@@ -1,2 +1,2 @@
1
- export declare const DEFAULT_TOKENS_PER_INTERVAL = 50;
2
- export declare const DEFAULT_INTERVAL_IN_MS = 100;
1
+ export declare const DEFAULT_TOKENS_PER_INTERVAL = 10;
2
+ export declare const DEFAULT_INTERVAL_IN_MS = 50;
package/dist/index.js CHANGED
@@ -115,10 +115,9 @@ var COIN_GECKGO_IDS = {
115
115
  afsui: "sui",
116
116
  hasui: "sui",
117
117
  vsui: "sui",
118
- sca: "scallop-2"
119
- // TODO: enable for production
120
- // deep: 'deepbook',
121
- // fud: 'fud-the-pug',
118
+ sca: "scallop-2",
119
+ deep: "deepbook",
120
+ fud: "fud-the-pug"
122
121
  };
123
122
 
124
123
  // src/constants/common.ts
@@ -147,10 +146,9 @@ var SUPPORT_POOLS = [
147
146
  "afsui",
148
147
  "hasui",
149
148
  "vsui",
150
- "sca"
151
- // TODO: enable for production
152
- // 'fud',
153
- // 'deep',
149
+ "sca",
150
+ "fud",
151
+ "deep"
154
152
  ];
155
153
  var SUPPORT_COLLATERALS = [
156
154
  "usdc",
@@ -194,10 +192,9 @@ var SUPPORT_SCOIN = [
194
192
  "ssca",
195
193
  "scetus",
196
194
  "swsol",
197
- "swbtc"
198
- // TODO: enable for production
199
- // 'sdeep',
200
- // 'sfud',
195
+ "swbtc",
196
+ "sdeep",
197
+ "sfud"
201
198
  ];
202
199
  var SUPPORT_SUI_BRIDGE = ["sbeth"];
203
200
  var SUPPORT_WORMHOLE = [
@@ -257,9 +254,8 @@ var coinDecimals = {
257
254
  hasui: 9,
258
255
  vsui: 9,
259
256
  sca: 9,
260
- // TODO: enable for production
261
- // deep: 6,
262
- // fud: 5,
257
+ deep: 6,
258
+ fud: 5,
263
259
  susdc: 6,
264
260
  sweth: 8,
265
261
  ssbeth: 8,
@@ -273,10 +269,9 @@ var coinDecimals = {
273
269
  safsui: 9,
274
270
  shasui: 9,
275
271
  svsui: 9,
276
- ssca: 9
277
- // TODO: enable for production
278
- // sdeep: 6,
279
- // sfud: 5,
272
+ ssca: 9,
273
+ sdeep: 6,
274
+ sfud: 5
280
275
  };
281
276
  var assetCoins = {
282
277
  usdc: "usdc",
@@ -292,10 +287,9 @@ var assetCoins = {
292
287
  afsui: "afsui",
293
288
  hasui: "hasui",
294
289
  vsui: "vsui",
295
- sca: "sca"
296
- // TODO: enable for production
297
- // deep: 'deep',
298
- // fud: 'fud',
290
+ sca: "sca",
291
+ deep: "deep",
292
+ fud: "fud"
299
293
  };
300
294
  var marketCoins = {
301
295
  susdc: "susdc",
@@ -311,10 +305,9 @@ var marketCoins = {
311
305
  safsui: "safsui",
312
306
  shasui: "shasui",
313
307
  svsui: "svsui",
314
- ssca: "ssca"
315
- // TODO: enable for production
316
- // sdeep: 'sdeep',
317
- // sfud: 'sfud',
308
+ ssca: "ssca",
309
+ sdeep: "sdeep",
310
+ sfud: "sfud"
318
311
  };
319
312
  var sCoins = {
320
313
  susdc: "susdc",
@@ -329,10 +322,9 @@ var sCoins = {
329
322
  svsui: "svsui",
330
323
  ssca: "ssca",
331
324
  swsol: "swsol",
332
- swbtc: "swbtc"
333
- // TODO: enable for production
334
- // sfud: 'sfud',
335
- // sdeep: 'sdeep',
325
+ swbtc: "swbtc",
326
+ sfud: "sfud",
327
+ sdeep: "sdeep"
336
328
  };
337
329
  var stakeMarketCoins = {
338
330
  susdc: "susdc",
@@ -373,10 +365,10 @@ var coinIds = {
373
365
  afsui: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
374
366
  hasui: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
375
367
  vsui: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
376
- sca: IS_VE_SCA_TEST ? "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524" : "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6"
368
+ sca: IS_VE_SCA_TEST ? "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524" : "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
377
369
  // isolated assets
378
- // deep: '0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270',
379
- // fud: '0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1',
370
+ deep: "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270",
371
+ fud: "0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1"
380
372
  };
381
373
  var wormholeCoinIds = {
382
374
  weth: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
@@ -392,28 +384,19 @@ var voloCoinIds = {
392
384
  var sCoinIds = {
393
385
  susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
394
386
  ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
395
- // prod values
396
- // ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
397
- // swusdc:
398
- // '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
399
- // swusdt:
400
- // '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
401
- // ssca: '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
402
- // test values
403
- ssui: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
404
- swusdt: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
405
- swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
406
- ssca: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
387
+ ssui: "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
388
+ swusdc: "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
389
+ swusdt: "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
390
+ ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
407
391
  scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
408
392
  sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
409
393
  safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
410
394
  shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
411
395
  svsui: "0xe1a1cc6bcf0001a015eab84bcc6713393ce20535f55b8b6f35c142e057a25fbe::scallop_v_sui::SCALLOP_V_SUI",
412
396
  swsol: "0x1392650f2eca9e3f6ffae3ff89e42a3590d7102b80e2b430f674730bc30d3259::scallop_wormhole_sol::SCALLOP_WORMHOLE_SOL",
413
- swbtc: "0x2cf76a9cf5d3337961d1154283234f94da2dcff18544dfe5cbdef65f319591b5::scallop_wormhole_btc::SCALLOP_WORMHOLE_BTC"
414
- // sdeep:
415
- // '0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP',
416
- // sfud: '0xe56d5167f427cbe597da9e8150ef5c337839aaf46891d62468dcf80bdd8e10d1::scallop_fud::SCALLOP_FUD',
397
+ swbtc: "0x2cf76a9cf5d3337961d1154283234f94da2dcff18544dfe5cbdef65f319591b5::scallop_wormhole_btc::SCALLOP_WORMHOLE_BTC",
398
+ sdeep: "0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP",
399
+ sfud: "0xe56d5167f427cbe597da9e8150ef5c337839aaf46891d62468dcf80bdd8e10d1::scallop_fud::SCALLOP_FUD"
417
400
  };
418
401
  var sCoinTypeToName = Object.entries(sCoinIds).reduce(
419
402
  (acc, [coinName, coinType]) => {
@@ -503,16 +486,13 @@ var POOL_ADDRESSES = {
503
486
  sca: {
504
487
  lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
505
488
  collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
489
+ },
490
+ fud: {
491
+ lendingPoolAddress: "0x14367ddca30e2860cb89ed4eaca20c7ece260c5d59dd9990d2c85a8321326acb"
492
+ },
493
+ deep: {
494
+ lendingPoolAddress: "0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03"
506
495
  }
507
- // TODO: enable for production
508
- // fud: {
509
- // lendingPoolAddress:
510
- // '0x14367ddca30e2860cb89ed4eaca20c7ece260c5d59dd9990d2c85a8321326acb',
511
- // },
512
- // deep: {
513
- // lendingPoolAddress:
514
- // '0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03',
515
- // },
516
496
  };
517
497
 
518
498
  // src/constants/pyth.ts
@@ -534,10 +514,9 @@ var PYTH_FEED_IDS = {
534
514
  afsui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
535
515
  hasui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
536
516
  vsui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
537
- sca: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc"
538
- // TODO: enable for production
539
- // deep: '29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff',
540
- // fud: '6a4090703da959247727f2b490eb21aea95c8684ecfac675f432008830890c75',
517
+ sca: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
518
+ deep: "29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",
519
+ fud: "6a4090703da959247727f2b490eb21aea95c8684ecfac675f432008830890c75"
541
520
  };
542
521
 
543
522
  // src/constants/queryKeys.ts
@@ -837,6 +816,32 @@ var TEST_ADDRESSES = {
837
816
  feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
838
817
  }
839
818
  }
819
+ },
820
+ deep: {
821
+ id: "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270",
822
+ metaData: "0x6e60b051a08fa836f5a7acd7c464c8d9825bc29c44657fe170fe9b8e1e4770c0",
823
+ treasury: "",
824
+ oracle: {
825
+ supra: "",
826
+ switchboard: "",
827
+ pyth: {
828
+ feed: "29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",
829
+ feedObject: "0x8c7f3a322b94cc69db2a2ac575cbd94bf5766113324c3a3eceac91e3e88a51ed"
830
+ }
831
+ }
832
+ },
833
+ fud: {
834
+ id: "0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1",
835
+ metaData: "0x01087411ef48aaac1eb6e24803213e3a60a03b147dac930e5e341f17a85e524e",
836
+ treasury: "",
837
+ oracle: {
838
+ supra: "",
839
+ switchboard: "",
840
+ pyth: {
841
+ feed: "6a4090703da959247727f2b490eb21aea95c8684ecfac675f432008830890c75",
842
+ feedObject: "0x4531c3ed0d22f21f5fce882905372006c9aafa30f01db03b789e95a6c50de7b2"
843
+ }
844
+ }
840
845
  }
841
846
  },
842
847
  oracles: {
@@ -1056,14 +1061,22 @@ var TEST_ADDRESSES = {
1056
1061
  ssbeth: {
1057
1062
  coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
1058
1063
  treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
1064
+ },
1065
+ sdeep: {
1066
+ coinType: "0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP",
1067
+ treasury: "0xc63838fabe37b25ad897392d89876d920f5e0c6a406bf3abcb84753d2829bc88"
1068
+ },
1069
+ sfud: {
1070
+ coinType: "0xe56d5167f427cbe597da9e8150ef5c337839aaf46891d62468dcf80bdd8e10d1::scallop_fud::SCALLOP_FUD",
1071
+ treasury: "0xf25212f11d182decff7a86165699a73e3d5787aced203ca539f43cfbc10db867"
1059
1072
  }
1060
1073
  }
1061
1074
  }
1062
1075
  };
1063
1076
 
1064
1077
  // src/constants/tokenBucket.ts
1065
- var DEFAULT_TOKENS_PER_INTERVAL = 50;
1066
- var DEFAULT_INTERVAL_IN_MS = 100;
1078
+ var DEFAULT_TOKENS_PER_INTERVAL = 10;
1079
+ var DEFAULT_INTERVAL_IN_MS = 50;
1067
1080
 
1068
1081
  // src/constants/vesca.ts
1069
1082
  var UNLOCK_ROUND_DURATION = 60 * 60 * 24;
@@ -1448,9 +1461,12 @@ var parseOriginBorrowIncentivePoolData = (originBorrowIncentivePoolData) => {
1448
1461
  poolPoints: originBorrowIncentivePoolData.points.reduce(
1449
1462
  (acc, point) => {
1450
1463
  const parsed = parseOriginBorrowIncentivesPoolPointData(point);
1451
- const name = (0, import_utils.parseStructTag)(
1464
+ let name = (0, import_utils.parseStructTag)(
1452
1465
  parsed.pointType
1453
1466
  ).name.toLowerCase();
1467
+ if (sCoinRawNameToName[name]) {
1468
+ name = sCoinRawNameToName[name];
1469
+ }
1454
1470
  acc[name] = parsed;
1455
1471
  return acc;
1456
1472
  },
@@ -1649,10 +1665,10 @@ var TokenBucket = class {
1649
1665
  refill() {
1650
1666
  const now = Date.now();
1651
1667
  const elapsed = now - this.lastRefill;
1652
- if (elapsed > this.interval) {
1668
+ if (elapsed >= this.interval) {
1653
1669
  const tokensToAdd = Math.floor(elapsed / this.interval) * this.tokensPerInterval;
1654
1670
  this.tokens = Math.min(this.tokens + tokensToAdd, this.tokensPerInterval);
1655
- this.lastRefill = now;
1671
+ this.lastRefill += Math.floor(elapsed / this.interval) * this.interval;
1656
1672
  }
1657
1673
  }
1658
1674
  removeTokens(count) {
@@ -1668,26 +1684,12 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
1668
1684
  let retries = 0;
1669
1685
  const tryRequest = async () => {
1670
1686
  if (tokenBucket.removeTokens(1)) {
1671
- try {
1672
- const result = await fn();
1673
- if (result && result.status === 429) {
1674
- throw new Error("Unexpected status code: 429");
1675
- }
1676
- return result;
1677
- } catch (error) {
1678
- if (error.message === "Unexpected status code: 429" && retries < maxRetries) {
1679
- retries++;
1680
- const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
1681
- await new Promise((resolve) => setTimeout(resolve, delay));
1682
- return tryRequest();
1683
- } else {
1684
- console.error("An error occurred:", error.message);
1685
- return null;
1686
- }
1687
- }
1687
+ const result = await fn();
1688
+ return result;
1688
1689
  } else if (retries < maxRetries) {
1689
1690
  retries++;
1690
1691
  const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
1692
+ console.error(`Rate limit exceeded, retrying in ${delay} ms`);
1691
1693
  await new Promise((resolve) => setTimeout(resolve, delay));
1692
1694
  return tryRequest();
1693
1695
  } else {
@@ -1771,11 +1773,13 @@ var ScallopCache = class {
1771
1773
  const txBlock = new import_sui_kit.SuiTxBlock();
1772
1774
  txBlock.moveCall(queryTarget, args, typeArgs);
1773
1775
  const query = await this.queryClient.fetchQuery({
1776
+ retry: 5,
1777
+ retryDelay: 1e3,
1774
1778
  queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
1775
1779
  queryFn: async () => {
1776
1780
  return await callWithRateLimit(
1777
1781
  this.tokenBucket,
1778
- () => this.suiKit.inspectTxn(txBlock)
1782
+ async () => await this.suiKit.inspectTxn(txBlock)
1779
1783
  );
1780
1784
  }
1781
1785
  });
@@ -1789,11 +1793,13 @@ var ScallopCache = class {
1789
1793
  */
1790
1794
  async queryGetObject(objectId, options) {
1791
1795
  return this.queryClient.fetchQuery({
1796
+ retry: 5,
1797
+ retryDelay: 1e3,
1792
1798
  queryKey: queryKeys.rpc.getObject(objectId, this.walletAddress, options),
1793
1799
  queryFn: async () => {
1794
1800
  return await callWithRateLimit(
1795
1801
  this.tokenBucket,
1796
- () => this.client.getObject({
1802
+ async () => await this.client.getObject({
1797
1803
  id: objectId,
1798
1804
  options
1799
1805
  })
@@ -1812,6 +1818,8 @@ var ScallopCache = class {
1812
1818
  if (objectIds.length === 0)
1813
1819
  return [];
1814
1820
  return this.queryClient.fetchQuery({
1821
+ retry: 5,
1822
+ retryDelay: 1e3,
1815
1823
  queryKey: queryKeys.rpc.getObjects(
1816
1824
  objectIds,
1817
1825
  this.walletAddress,
@@ -1820,7 +1828,7 @@ var ScallopCache = class {
1820
1828
  queryFn: async () => {
1821
1829
  return await callWithRateLimit(
1822
1830
  this.tokenBucket,
1823
- () => this.suiKit.getObjects(objectIds, options)
1831
+ async () => await this.suiKit.getObjects(objectIds, options)
1824
1832
  );
1825
1833
  }
1826
1834
  });
@@ -1832,28 +1840,34 @@ var ScallopCache = class {
1832
1840
  */
1833
1841
  async queryGetOwnedObjects(input) {
1834
1842
  return this.queryClient.fetchQuery({
1843
+ retry: 5,
1844
+ retryDelay: 1e3,
1835
1845
  queryKey: queryKeys.rpc.getOwnedObjects(input),
1836
1846
  queryFn: async () => {
1837
1847
  return await callWithRateLimit(
1838
1848
  this.tokenBucket,
1839
- () => this.client.getOwnedObjects(input)
1849
+ async () => await this.client.getOwnedObjects(input)
1840
1850
  );
1841
1851
  }
1842
1852
  });
1843
1853
  }
1844
1854
  async queryGetDynamicFields(input) {
1845
1855
  return this.queryClient.fetchQuery({
1856
+ retry: 5,
1857
+ retryDelay: 1e3,
1846
1858
  queryKey: queryKeys.rpc.getDynamicFields(input),
1847
1859
  queryFn: async () => {
1848
1860
  return await callWithRateLimit(
1849
1861
  this.tokenBucket,
1850
- () => this.client.getDynamicFields(input)
1862
+ async () => await this.client.getDynamicFields(input)
1851
1863
  );
1852
1864
  }
1853
1865
  });
1854
1866
  }
1855
1867
  async queryGetDynamicFieldObject(input) {
1856
1868
  return this.queryClient.fetchQuery({
1869
+ retry: 5,
1870
+ retryDelay: (attemptIndex) => Math.min(1e3 * attemptIndex, 8e3),
1857
1871
  queryKey: queryKeys.rpc.getDynamicFieldObject(input),
1858
1872
  queryFn: async () => {
1859
1873
  return await callWithRateLimit(
@@ -1865,11 +1879,13 @@ var ScallopCache = class {
1865
1879
  }
1866
1880
  async queryGetAllCoinBalances(owner) {
1867
1881
  return this.queryClient.fetchQuery({
1882
+ retry: 5,
1883
+ retryDelay: 1e3,
1868
1884
  queryKey: queryKeys.rpc.getAllCoinBalances(owner),
1869
1885
  queryFn: async () => {
1870
1886
  const allBalances = await callWithRateLimit(
1871
1887
  this.tokenBucket,
1872
- () => this.client.getAllBalances({ owner })
1888
+ async () => await this.client.getAllBalances({ owner })
1873
1889
  );
1874
1890
  if (!allBalances)
1875
1891
  return {};
@@ -2582,7 +2598,7 @@ var getBorrowIncentivePools = async (query, borrowIncentiveCoinNames = [
2582
2598
  ...SUPPORT_BORROW_INCENTIVE_POOLS
2583
2599
  ], indexer = false, marketPools, coinPrices) => {
2584
2600
  const borrowIncentivePools = {};
2585
- marketPools = marketPools ?? await query.getMarketPools(void 0, { indexer, coinPrices });
2601
+ marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices, indexer });
2586
2602
  coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools });
2587
2603
  if (indexer) {
2588
2604
  const borrowIncentivePoolsIndexer = await query.indexer.getBorrowIncentivePools();
@@ -2774,7 +2790,7 @@ var supplyLimitZod = import_zod.z.object({
2774
2790
  value: import_zod.z.string()
2775
2791
  })
2776
2792
  });
2777
- var supplyLimitKeyType = `0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d::market_dynamic_keys::SupplyLimitKey`;
2793
+ var supplyLimitKeyType = `0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey`;
2778
2794
  var getSupplyLimit = async (utils, poolName) => {
2779
2795
  try {
2780
2796
  const poolCoinType = utils.parseCoinType(poolName).slice(2);
@@ -2814,7 +2830,7 @@ var isolatedAssetZod = import_zod2.z.object({
2814
2830
  value: import_zod2.z.boolean()
2815
2831
  })
2816
2832
  });
2817
- var isolatedAssetKeyType = `0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d::market_dynamic_keys::IsolatedAssetKey`;
2833
+ var isolatedAssetKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
2818
2834
  var getIsolatedAssets = async (address) => {
2819
2835
  try {
2820
2836
  const marketObject = address.get("core.market");
@@ -2894,7 +2910,7 @@ var borrowLimitZod = import_zod3.z.object({
2894
2910
  value: import_zod3.z.string()
2895
2911
  })
2896
2912
  });
2897
- var borrowLimitKeyType = `0xb784ea287d944e478a3ceaa071f8885072cce6b7224cf245914dc2f9963f460e::market_dynamic_keys::BorrowLimitKey`;
2913
+ var borrowLimitKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::BorrowLimitKey`;
2898
2914
  var getBorrowLimit = async (utils, poolName) => {
2899
2915
  try {
2900
2916
  const poolCoinType = utils.parseCoinType(poolName).slice(2);
@@ -3794,7 +3810,8 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
3794
3810
  query.queryObligation(obligationId),
3795
3811
  query.getBorrowIncentivePools(void 0, {
3796
3812
  coinPrices,
3797
- indexer
3813
+ indexer,
3814
+ marketPools: market.pools
3798
3815
  }),
3799
3816
  query.getBorrowIncentiveAccounts(obligationId)
3800
3817
  ]);
@@ -5188,7 +5205,7 @@ var ScallopUtils = class {
5188
5205
  );
5189
5206
  const priceIds = priceIdPairs.map(([_2, priceId]) => priceId);
5190
5207
  const pythConnection = new import_pyth_sui_js.SuiPriceServiceConnection(endpoint, {
5191
- timeout: 2e3
5208
+ timeout: 4e3
5192
5209
  });
5193
5210
  try {
5194
5211
  const feeds = await this.cache.queryClient.fetchQuery({