@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.
- package/dist/constants/common.d.ts +3 -3
- package/dist/constants/enum.d.ts +2 -2
- package/dist/constants/tokenBucket.d.ts +2 -2
- package/dist/index.js +114 -97
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +114 -97
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +11 -3
- package/dist/models/scallopUtils.d.ts +2 -2
- package/dist/queries/coreQuery.d.ts +2 -0
- package/dist/queries/portfolioQuery.d.ts +2 -0
- package/dist/queries/priceQuery.d.ts +4 -0
- package/dist/queries/sCoinQuery.d.ts +1 -1
- package/package.json +1 -1
- package/src/constants/coinGecko.ts +2 -3
- package/src/constants/common.ts +4 -7
- package/src/constants/enum.ts +20 -35
- package/src/constants/poolAddress.ts +8 -9
- package/src/constants/pyth.ts +2 -3
- package/src/constants/testAddress.ts +42 -0
- package/src/constants/tokenBucket.ts +2 -2
- package/src/models/scallopCache.ts +36 -15
- package/src/models/scallopQuery.ts +1 -1
- package/src/models/scallopUtils.ts +1 -1
- package/src/queries/borrowIncentiveQuery.ts +1 -1
- package/src/queries/borrowLimitQuery.ts +3 -3
- package/src/queries/isolatedAssetQuery.ts +2 -3
- package/src/queries/portfolioQuery.ts +1 -0
- package/src/queries/supplyLimitQuery.ts +2 -3
- package/src/utils/query.ts +5 -1
- package/src/utils/tokenBucket.ts +8 -28
- package/dist/test.d.ts +0 -0
- package/src/test.ts +0 -20
|
@@ -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"];
|
package/dist/constants/enum.d.ts
CHANGED
|
@@ -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 =
|
|
2
|
-
export declare const DEFAULT_INTERVAL_IN_MS =
|
|
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
|
-
|
|
120
|
-
|
|
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
|
-
|
|
152
|
-
|
|
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
|
-
|
|
199
|
-
|
|
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
|
-
|
|
261
|
-
|
|
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
|
-
|
|
278
|
-
|
|
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
|
-
|
|
297
|
-
|
|
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
|
-
|
|
316
|
-
|
|
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
|
-
|
|
334
|
-
|
|
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
|
-
|
|
379
|
-
|
|
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
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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
|
-
|
|
415
|
-
|
|
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
|
-
|
|
539
|
-
|
|
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 =
|
|
1066
|
-
var DEFAULT_INTERVAL_IN_MS =
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
1672
|
-
|
|
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, {
|
|
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 = `
|
|
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 = `
|
|
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 = `
|
|
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:
|
|
5208
|
+
timeout: 4e3
|
|
5192
5209
|
});
|
|
5193
5210
|
try {
|
|
5194
5211
|
const feeds = await this.cache.queryClient.fetchQuery({
|