@scallop-io/sui-scallop-sdk 1.3.4-alpha.7 → 1.3.4-isolated-asset.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.
- package/dist/constants/common.d.ts +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/poolAddress.d.ts +1 -1
- package/dist/index.js +438 -331
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +438 -331
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +10 -2
- package/dist/queries/borrowLimitQuery.d.ts +9 -0
- package/dist/queries/coreQuery.d.ts +2 -0
- package/dist/queries/index.d.ts +1 -0
- package/dist/queries/portfolioQuery.d.ts +2 -0
- package/dist/queries/supplyLimitQuery.d.ts +2 -2
- package/dist/types/query/core.d.ts +2 -0
- package/dist/types/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/constants/coinGecko.ts +4 -2
- package/src/constants/common.ts +2 -0
- package/src/constants/enum.ts +25 -4
- package/src/constants/index.ts +1 -0
- package/src/constants/poolAddress.ts +7 -1
- package/src/constants/pyth.ts +2 -0
- package/src/constants/testAddress.ts +76 -35
- package/src/models/scallopBuilder.ts +2 -3
- package/src/models/scallopQuery.ts +26 -18
- package/src/models/scallopUtils.ts +5 -6
- package/src/queries/borrowLimitQuery.ts +53 -0
- package/src/queries/coreQuery.ts +238 -229
- package/src/queries/index.ts +1 -0
- package/src/queries/isolatedAssetQuery.ts +5 -5
- package/src/queries/referralQuery.ts +0 -1
- package/src/queries/spoolQuery.ts +1 -1
- package/src/queries/supplyLimitQuery.ts +23 -18
- package/src/types/query/core.ts +2 -0
- package/src/types/utils.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -102,11 +102,11 @@ var DEFAULT_CACHE_OPTIONS = {
|
|
|
102
102
|
|
|
103
103
|
// src/constants/coinGecko.ts
|
|
104
104
|
var COIN_GECKGO_IDS = {
|
|
105
|
-
usdc: "usdc
|
|
105
|
+
usdc: "usdc",
|
|
106
106
|
sbeth: "ethereum",
|
|
107
107
|
weth: "ethereum",
|
|
108
108
|
wbtc: "bitcoin",
|
|
109
|
-
wusdc: "usdc
|
|
109
|
+
wusdc: "usdc",
|
|
110
110
|
wusdt: "tether",
|
|
111
111
|
sui: "sui",
|
|
112
112
|
wapt: "aptos",
|
|
@@ -115,7 +115,9 @@ var COIN_GECKGO_IDS = {
|
|
|
115
115
|
afsui: "sui",
|
|
116
116
|
hasui: "sui",
|
|
117
117
|
vsui: "sui",
|
|
118
|
-
sca: "scallop-2"
|
|
118
|
+
sca: "scallop-2",
|
|
119
|
+
deep: "deepbook",
|
|
120
|
+
fud: "fud-the-pug"
|
|
119
121
|
};
|
|
120
122
|
|
|
121
123
|
// src/constants/common.ts
|
|
@@ -144,7 +146,9 @@ var SUPPORT_POOLS = [
|
|
|
144
146
|
"afsui",
|
|
145
147
|
"hasui",
|
|
146
148
|
"vsui",
|
|
147
|
-
"sca"
|
|
149
|
+
"sca",
|
|
150
|
+
"fud",
|
|
151
|
+
"deep"
|
|
148
152
|
];
|
|
149
153
|
var SUPPORT_COLLATERALS = [
|
|
150
154
|
"usdc",
|
|
@@ -245,6 +249,8 @@ var coinDecimals = {
|
|
|
245
249
|
hasui: 9,
|
|
246
250
|
vsui: 9,
|
|
247
251
|
sca: 9,
|
|
252
|
+
deep: 6,
|
|
253
|
+
fud: 5,
|
|
248
254
|
susdc: 6,
|
|
249
255
|
sweth: 8,
|
|
250
256
|
ssbeth: 8,
|
|
@@ -258,7 +264,9 @@ var coinDecimals = {
|
|
|
258
264
|
safsui: 9,
|
|
259
265
|
shasui: 9,
|
|
260
266
|
svsui: 9,
|
|
261
|
-
ssca: 9
|
|
267
|
+
ssca: 9,
|
|
268
|
+
sdeep: 6,
|
|
269
|
+
sfud: 5
|
|
262
270
|
};
|
|
263
271
|
var assetCoins = {
|
|
264
272
|
usdc: "usdc",
|
|
@@ -274,7 +282,9 @@ var assetCoins = {
|
|
|
274
282
|
afsui: "afsui",
|
|
275
283
|
hasui: "hasui",
|
|
276
284
|
vsui: "vsui",
|
|
277
|
-
sca: "sca"
|
|
285
|
+
sca: "sca",
|
|
286
|
+
deep: "deep",
|
|
287
|
+
fud: "fud"
|
|
278
288
|
};
|
|
279
289
|
var marketCoins = {
|
|
280
290
|
susdc: "susdc",
|
|
@@ -290,7 +300,9 @@ var marketCoins = {
|
|
|
290
300
|
safsui: "safsui",
|
|
291
301
|
shasui: "shasui",
|
|
292
302
|
svsui: "svsui",
|
|
293
|
-
ssca: "ssca"
|
|
303
|
+
ssca: "ssca",
|
|
304
|
+
sdeep: "sdeep",
|
|
305
|
+
sfud: "sfud"
|
|
294
306
|
};
|
|
295
307
|
var sCoins = {
|
|
296
308
|
susdc: "susdc",
|
|
@@ -358,7 +370,10 @@ var coinIds = {
|
|
|
358
370
|
afsui: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
359
371
|
hasui: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
360
372
|
vsui: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
361
|
-
sca: IS_VE_SCA_TEST ? "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524" : "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6"
|
|
373
|
+
sca: IS_VE_SCA_TEST ? "0x6cd813061a3adf3602b76545f076205f0c8e7ec1d3b1eab9a1da7992c18c0524" : "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
374
|
+
// isolated assets
|
|
375
|
+
deep: "0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",
|
|
376
|
+
fud: "0x76cb819b01abed502bee8a702b4c2d547532c12f25001c9dea795a5e631c26f1::fud::FUD"
|
|
362
377
|
};
|
|
363
378
|
var wormholeCoinIds = {
|
|
364
379
|
weth: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
@@ -374,11 +389,27 @@ var voloCoinIds = {
|
|
|
374
389
|
var sCoinIds = {
|
|
375
390
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
376
391
|
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
377
|
-
ssui:
|
|
392
|
+
ssui: (
|
|
393
|
+
// TODO: use prod value
|
|
394
|
+
// '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
395
|
+
"0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI"
|
|
396
|
+
),
|
|
378
397
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
379
|
-
ssca:
|
|
380
|
-
|
|
381
|
-
|
|
398
|
+
ssca: (
|
|
399
|
+
// TODO: use prod value
|
|
400
|
+
// '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
|
|
401
|
+
"0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA"
|
|
402
|
+
),
|
|
403
|
+
swusdc: (
|
|
404
|
+
// TODO: use prod value
|
|
405
|
+
// '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
|
|
406
|
+
"0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC"
|
|
407
|
+
),
|
|
408
|
+
swusdt: (
|
|
409
|
+
// TODO: use prod value
|
|
410
|
+
// '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
|
|
411
|
+
"0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT"
|
|
412
|
+
),
|
|
382
413
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
383
414
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
384
415
|
shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
@@ -467,6 +498,12 @@ var POOL_ADDRESSES = {
|
|
|
467
498
|
sca: {
|
|
468
499
|
lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
|
|
469
500
|
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
|
|
501
|
+
},
|
|
502
|
+
fud: {
|
|
503
|
+
lendingPoolAddress: ""
|
|
504
|
+
},
|
|
505
|
+
deep: {
|
|
506
|
+
lendingPoolAddress: ""
|
|
470
507
|
}
|
|
471
508
|
};
|
|
472
509
|
|
|
@@ -489,7 +526,9 @@ var PYTH_FEED_IDS = {
|
|
|
489
526
|
afsui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
490
527
|
hasui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
491
528
|
vsui: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
492
|
-
sca: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc"
|
|
529
|
+
sca: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
530
|
+
deep: "29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff",
|
|
531
|
+
fud: "6a4090703da959247727f2b490eb21aea95c8684ecfac675f432008830890c75"
|
|
493
532
|
};
|
|
494
533
|
|
|
495
534
|
// src/constants/queryKeys.ts
|
|
@@ -594,20 +633,33 @@ var TEST_ADDRESSES = {
|
|
|
594
633
|
core: {
|
|
595
634
|
// version:
|
|
596
635
|
// '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
|
|
597
|
-
version: "
|
|
636
|
+
version: "0xd318de9b0f6873879a82cbfcc2daa1d1591a8b54e7cea9f4b567da63c692a52b",
|
|
598
637
|
versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
|
|
599
638
|
// object:
|
|
600
639
|
// '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
|
|
601
|
-
object: "
|
|
640
|
+
object: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
|
|
602
641
|
// market:
|
|
603
642
|
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
604
|
-
market: "
|
|
643
|
+
market: "0x9d6434e97f3f98fd9b0c0e1dca22632073985abcd22541feae7ee1e34cbe3af2",
|
|
605
644
|
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
606
645
|
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
607
646
|
// obligationAccessStore:
|
|
608
647
|
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
609
|
-
obligationAccessStore: "
|
|
648
|
+
obligationAccessStore: "0x46e9b44a77ee9c9d33cc2689ecdfbb8f681935cbc6bdf6ac3df048e396c36c82",
|
|
610
649
|
coins: {
|
|
650
|
+
usdc: {
|
|
651
|
+
id: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
|
|
652
|
+
metaData: "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
|
|
653
|
+
treasury: "",
|
|
654
|
+
oracle: {
|
|
655
|
+
supra: "",
|
|
656
|
+
switchboard: "",
|
|
657
|
+
pyth: {
|
|
658
|
+
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
659
|
+
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
},
|
|
611
663
|
cetus: {
|
|
612
664
|
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
613
665
|
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
@@ -763,6 +815,19 @@ var TEST_ADDRESSES = {
|
|
|
763
815
|
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
764
816
|
}
|
|
765
817
|
}
|
|
818
|
+
},
|
|
819
|
+
sbeth: {
|
|
820
|
+
id: "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
|
|
821
|
+
metaData: "0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0",
|
|
822
|
+
treasury: "",
|
|
823
|
+
oracle: {
|
|
824
|
+
supra: "",
|
|
825
|
+
switchboard: "",
|
|
826
|
+
pyth: {
|
|
827
|
+
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
828
|
+
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
829
|
+
}
|
|
830
|
+
}
|
|
766
831
|
}
|
|
767
832
|
},
|
|
768
833
|
oracles: {
|
|
@@ -796,7 +861,7 @@ var TEST_ADDRESSES = {
|
|
|
796
861
|
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
797
862
|
},
|
|
798
863
|
protocol: {
|
|
799
|
-
id: "
|
|
864
|
+
id: "0xb784ea287d944e478a3ceaa071f8885072cce6b7224cf245914dc2f9963f460e",
|
|
800
865
|
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
801
866
|
},
|
|
802
867
|
// protocol: {
|
|
@@ -814,7 +879,7 @@ var TEST_ADDRESSES = {
|
|
|
814
879
|
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
815
880
|
// },
|
|
816
881
|
query: {
|
|
817
|
-
id: "
|
|
882
|
+
id: "0x89706958f43fb170de134579e3fbc53972b946ee78bd2442d8e1adc36074fbdc",
|
|
818
883
|
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
819
884
|
},
|
|
820
885
|
supra: { id: "", upgradeCap: "" },
|
|
@@ -850,6 +915,10 @@ var TEST_ADDRESSES = {
|
|
|
850
915
|
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
851
916
|
)
|
|
852
917
|
},
|
|
918
|
+
susdc: {
|
|
919
|
+
id: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
|
|
920
|
+
rewardPoolId: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
|
|
921
|
+
},
|
|
853
922
|
swusdc: {
|
|
854
923
|
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
855
924
|
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
@@ -898,37 +967,37 @@ var TEST_ADDRESSES = {
|
|
|
898
967
|
config: ""
|
|
899
968
|
},
|
|
900
969
|
borrowIncentive: {
|
|
901
|
-
id: "
|
|
902
|
-
adminCap: "
|
|
903
|
-
object: "
|
|
904
|
-
query: "
|
|
905
|
-
incentivePools: "
|
|
906
|
-
incentiveAccounts: "
|
|
907
|
-
config: "
|
|
970
|
+
id: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
971
|
+
adminCap: "0x56ac8e6f2b360b2b35c0168d72cc6cd17d9592afb83709865cb87af24bb2025b",
|
|
972
|
+
object: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
973
|
+
query: "0x8e0d00f8ff1199d7c5fe56cea0e901a525daeefff0445a1635ace8282ae3302c",
|
|
974
|
+
incentivePools: "0x9d564c93128c6ab0c0d3e050a47f11df0b91494f3bb779bdc1301c1c637f15eb",
|
|
975
|
+
incentiveAccounts: "0x09e6040e798246de04941bc79a3ba62d3eca6d7a218cc30f21fb07f478fa2926",
|
|
976
|
+
config: "0x43d4ca1dfc90b161c4240facd119e74e4b850cca2957f88c2ec289c9380da064"
|
|
908
977
|
},
|
|
909
978
|
referral: {
|
|
910
|
-
id: "
|
|
979
|
+
id: "0x1bf5a8ce77050d8052549d743e16b469f15aa6b81b752b78b6ebb65179665f5a",
|
|
911
980
|
object: "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
|
|
912
981
|
adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
|
|
913
|
-
referralBindings: "
|
|
914
|
-
bindingTableId: "
|
|
915
|
-
referralRevenuePool: "
|
|
982
|
+
referralBindings: "0xcf184487782bed962bf678001efe775d31fb94b9992333a57594cf15d79d5ced",
|
|
983
|
+
bindingTableId: "0x41a50e258c0a266ce84e0e1a618dbf70b878cc943909e613089a50afcceb2bc0",
|
|
984
|
+
referralRevenuePool: "0xc24e3e5e37032f29a3dd91a9a1f057af8821b7e6c148e9683900ac8b6d30f0c6",
|
|
916
985
|
revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
|
|
917
|
-
referralTiers: "
|
|
986
|
+
referralTiers: "0x144350f3db9b46d11b140084cd54e6de0b9c3b8d265ce8059b51d0ef58ea464b",
|
|
918
987
|
tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
|
|
919
988
|
// authorizedWitnessList:
|
|
920
989
|
// '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
|
|
921
990
|
authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
|
|
922
|
-
version: "
|
|
991
|
+
version: "0x3545849eb97723e676a476ec9d4fe5f2eb0eb2c6b78972851114fd4c7ed4639f"
|
|
923
992
|
},
|
|
924
993
|
vesca: {
|
|
925
|
-
id: "
|
|
926
|
-
object: "
|
|
994
|
+
id: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
995
|
+
object: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
927
996
|
adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
|
|
928
|
-
tableId: "
|
|
929
|
-
table: "
|
|
930
|
-
treasury: "
|
|
931
|
-
config: "
|
|
997
|
+
tableId: "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
|
|
998
|
+
table: "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
|
|
999
|
+
treasury: "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
|
|
1000
|
+
config: "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
|
|
932
1001
|
},
|
|
933
1002
|
loyaltyProgram: {
|
|
934
1003
|
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
@@ -937,27 +1006,27 @@ var TEST_ADDRESSES = {
|
|
|
937
1006
|
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
938
1007
|
},
|
|
939
1008
|
scoin: {
|
|
940
|
-
id: "
|
|
1009
|
+
id: "0x773dab39c90fe05439b06a2d061795e52a974ff92c2aef90b2ee467acf7f33c8",
|
|
941
1010
|
coins: {
|
|
942
1011
|
ssui: {
|
|
943
|
-
coinType: "
|
|
944
|
-
treasury: "
|
|
1012
|
+
coinType: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
1013
|
+
treasury: "0x0e499640a12c38dd9cc44532f5bc5fd1b6da86d2f9a8810357250f4b26e9e5c7"
|
|
945
1014
|
},
|
|
946
1015
|
scetus: {
|
|
947
1016
|
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
948
1017
|
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
949
1018
|
},
|
|
950
1019
|
ssca: {
|
|
951
|
-
coinType: "
|
|
952
|
-
treasury: "
|
|
1020
|
+
coinType: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
1021
|
+
treasury: "0x5f1c5de1df7341075d119570269b7b452af50afe8363080638f1ae29a554c038"
|
|
953
1022
|
},
|
|
954
1023
|
swusdc: {
|
|
955
|
-
coinType: "
|
|
956
|
-
treasury: "
|
|
1024
|
+
coinType: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
1025
|
+
treasury: "0x471fbab72578bab577263006fe32543b6e76153fffa2bef69affe4bc4934258f"
|
|
957
1026
|
},
|
|
958
1027
|
swusdt: {
|
|
959
|
-
coinType: "
|
|
960
|
-
treasury: "
|
|
1028
|
+
coinType: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
1029
|
+
treasury: "0x921a4ed4bb4b4f11f51a462c83f4c0f6b60a90e441d1bc0d26d6fd893146bf4d"
|
|
961
1030
|
},
|
|
962
1031
|
sweth: {
|
|
963
1032
|
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
@@ -973,7 +1042,11 @@ var TEST_ADDRESSES = {
|
|
|
973
1042
|
},
|
|
974
1043
|
svsui: {
|
|
975
1044
|
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
976
|
-
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6
|
|
1045
|
+
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6"
|
|
1046
|
+
},
|
|
1047
|
+
ssbeth: {
|
|
1048
|
+
coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
1049
|
+
treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
|
|
977
1050
|
}
|
|
978
1051
|
}
|
|
979
1052
|
}
|
|
@@ -2677,23 +2750,148 @@ var supplyLimitZod = import_zod.z.object({
|
|
|
2677
2750
|
value: import_zod.z.string()
|
|
2678
2751
|
})
|
|
2679
2752
|
});
|
|
2680
|
-
var
|
|
2753
|
+
var supplyLimitKeyType = `0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d::market_dynamic_keys::SupplyLimitKey`;
|
|
2681
2754
|
var getSupplyLimit = async (utils, poolName) => {
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2755
|
+
try {
|
|
2756
|
+
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
2757
|
+
const marketObject = utils.address.get("core.market");
|
|
2758
|
+
if (!marketObject)
|
|
2759
|
+
return null;
|
|
2760
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2761
|
+
parentId: marketObject,
|
|
2762
|
+
name: {
|
|
2763
|
+
type: supplyLimitKeyType,
|
|
2764
|
+
value: poolCoinType
|
|
2765
|
+
}
|
|
2766
|
+
});
|
|
2767
|
+
const parsedData = supplyLimitZod.safeParse(object?.data?.content);
|
|
2768
|
+
if (!parsedData.success)
|
|
2769
|
+
return null;
|
|
2770
|
+
return parsedData.data.fields.value;
|
|
2771
|
+
} catch (e) {
|
|
2772
|
+
console.error(`Error in getSupplyLimit for ${poolName}: ${e.message}`);
|
|
2773
|
+
return "0";
|
|
2774
|
+
}
|
|
2775
|
+
};
|
|
2776
|
+
|
|
2777
|
+
// src/queries/isolatedAssetQuery.ts
|
|
2778
|
+
var import_zod2 = require("zod");
|
|
2779
|
+
var isolatedAssetZod = import_zod2.z.object({
|
|
2780
|
+
dataType: import_zod2.z.string(),
|
|
2781
|
+
type: import_zod2.z.string(),
|
|
2782
|
+
hasPublicTransfer: import_zod2.z.boolean(),
|
|
2783
|
+
fields: import_zod2.z.object({
|
|
2784
|
+
id: import_zod2.z.object({
|
|
2785
|
+
id: import_zod2.z.string()
|
|
2786
|
+
}),
|
|
2787
|
+
name: import_zod2.z.object({
|
|
2788
|
+
type: import_zod2.z.string()
|
|
2789
|
+
}),
|
|
2790
|
+
value: import_zod2.z.boolean()
|
|
2791
|
+
})
|
|
2792
|
+
});
|
|
2793
|
+
var isolatedAssetKeyType = `0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d::market_dynamic_keys::IsolatedAssetKey`;
|
|
2794
|
+
var getIsolatedAssets = async (address) => {
|
|
2795
|
+
try {
|
|
2796
|
+
const marketObject = address.get("core.market");
|
|
2797
|
+
const isolatedAssets = [];
|
|
2798
|
+
if (!marketObject)
|
|
2799
|
+
return isolatedAssets;
|
|
2800
|
+
let hasNextPage = false;
|
|
2801
|
+
let nextCursor = null;
|
|
2802
|
+
const isIsolatedDynamicField = (dynamicField) => {
|
|
2803
|
+
return dynamicField.name.type === isolatedAssetKeyType;
|
|
2804
|
+
};
|
|
2805
|
+
do {
|
|
2806
|
+
const response = await address.cache.queryGetDynamicFields({
|
|
2807
|
+
parentId: marketObject,
|
|
2808
|
+
cursor: nextCursor,
|
|
2809
|
+
limit: 10
|
|
2810
|
+
});
|
|
2811
|
+
if (!response)
|
|
2812
|
+
break;
|
|
2813
|
+
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
2814
|
+
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
2815
|
+
if (response && response.hasNextPage && response.nextCursor) {
|
|
2816
|
+
hasNextPage = true;
|
|
2817
|
+
nextCursor = response.nextCursor;
|
|
2818
|
+
} else {
|
|
2819
|
+
hasNextPage = false;
|
|
2820
|
+
}
|
|
2821
|
+
} while (hasNextPage);
|
|
2822
|
+
return isolatedAssets;
|
|
2823
|
+
} catch (e) {
|
|
2824
|
+
console.error(e);
|
|
2825
|
+
return [];
|
|
2826
|
+
}
|
|
2827
|
+
};
|
|
2828
|
+
var isIsolatedAsset = async (utils, coinName) => {
|
|
2829
|
+
try {
|
|
2830
|
+
const marketObject = utils.address.get("core.market");
|
|
2831
|
+
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
2832
|
+
"getDynamicFields",
|
|
2833
|
+
marketObject
|
|
2834
|
+
]);
|
|
2835
|
+
if (cachedData) {
|
|
2836
|
+
const coinType2 = utils.parseCoinType(coinName);
|
|
2837
|
+
return cachedData.includes(coinType2);
|
|
2691
2838
|
}
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2839
|
+
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
2840
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2841
|
+
parentId: marketObject,
|
|
2842
|
+
name: {
|
|
2843
|
+
type: isolatedAssetKeyType,
|
|
2844
|
+
value: coinType
|
|
2845
|
+
}
|
|
2846
|
+
});
|
|
2847
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2848
|
+
if (!parsedData.success)
|
|
2849
|
+
return false;
|
|
2850
|
+
return parsedData.data.fields.value;
|
|
2851
|
+
} catch (e) {
|
|
2852
|
+
console.error(e);
|
|
2853
|
+
return false;
|
|
2854
|
+
}
|
|
2855
|
+
};
|
|
2856
|
+
|
|
2857
|
+
// src/queries/borrowLimitQuery.ts
|
|
2858
|
+
var import_zod3 = require("zod");
|
|
2859
|
+
var borrowLimitZod = import_zod3.z.object({
|
|
2860
|
+
dataType: import_zod3.z.string(),
|
|
2861
|
+
type: import_zod3.z.string(),
|
|
2862
|
+
hasPublicTransfer: import_zod3.z.boolean(),
|
|
2863
|
+
fields: import_zod3.z.object({
|
|
2864
|
+
id: import_zod3.z.object({
|
|
2865
|
+
id: import_zod3.z.string()
|
|
2866
|
+
}),
|
|
2867
|
+
name: import_zod3.z.object({
|
|
2868
|
+
type: import_zod3.z.string()
|
|
2869
|
+
}),
|
|
2870
|
+
value: import_zod3.z.string()
|
|
2871
|
+
})
|
|
2872
|
+
});
|
|
2873
|
+
var borrowLimitKeyType = `0xb784ea287d944e478a3ceaa071f8885072cce6b7224cf245914dc2f9963f460e::market_dynamic_keys::BorrowLimitKey`;
|
|
2874
|
+
var getBorrowLimit = async (utils, poolName) => {
|
|
2875
|
+
try {
|
|
2876
|
+
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
2877
|
+
const marketObject = utils.address.get("core.market");
|
|
2878
|
+
if (!marketObject)
|
|
2879
|
+
return null;
|
|
2880
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2881
|
+
parentId: marketObject,
|
|
2882
|
+
name: {
|
|
2883
|
+
type: borrowLimitKeyType,
|
|
2884
|
+
value: poolCoinType
|
|
2885
|
+
}
|
|
2886
|
+
});
|
|
2887
|
+
const parsedData = borrowLimitZod.safeParse(object?.data?.content);
|
|
2888
|
+
if (!parsedData.success)
|
|
2889
|
+
return null;
|
|
2890
|
+
return parsedData.data.fields.value;
|
|
2891
|
+
} catch (e) {
|
|
2892
|
+
console.error(`Error in getBorrowLimit for ${poolName}: ${e.message}`);
|
|
2893
|
+
return "0";
|
|
2894
|
+
}
|
|
2697
2895
|
};
|
|
2698
2896
|
|
|
2699
2897
|
// src/queries/coreQuery.ts
|
|
@@ -2762,6 +2960,9 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2762
2960
|
const maxSupplyCoin = (0, import_bignumber3.default)(
|
|
2763
2961
|
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2764
2962
|
).shiftedBy(-coinDecimal).toNumber();
|
|
2963
|
+
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
2964
|
+
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2965
|
+
).shiftedBy(-coinDecimal).toNumber();
|
|
2765
2966
|
pools[poolCoinName] = {
|
|
2766
2967
|
coinName: poolCoinName,
|
|
2767
2968
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -2780,9 +2981,10 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2780
2981
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
2781
2982
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2782
2983
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2783
|
-
|
|
2784
|
-
isIsolated: false,
|
|
2984
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2985
|
+
// isIsolated: false,
|
|
2785
2986
|
maxSupplyCoin,
|
|
2987
|
+
maxBorrowCoin,
|
|
2786
2988
|
...calculatedMarketPoolData
|
|
2787
2989
|
};
|
|
2788
2990
|
}
|
|
@@ -2820,6 +3022,7 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2820
3022
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2821
3023
|
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2822
3024
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3025
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2823
3026
|
...calculatedMarketCollateralData
|
|
2824
3027
|
};
|
|
2825
3028
|
}
|
|
@@ -2867,85 +3070,76 @@ var getMarketPools = async (query, poolCoinNames = [...SUPPORT_POOLS], indexer =
|
|
|
2867
3070
|
return marketPools;
|
|
2868
3071
|
};
|
|
2869
3072
|
var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, coinPrice) => {
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
name: coinType.substring(2)
|
|
2899
|
-
}
|
|
3073
|
+
try {
|
|
3074
|
+
coinPrice = coinPrice || (await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
|
|
3075
|
+
if (indexer) {
|
|
3076
|
+
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
3077
|
+
if (!marketPoolIndexer) {
|
|
3078
|
+
return void 0;
|
|
3079
|
+
}
|
|
3080
|
+
marketPoolIndexer.coinPrice = coinPrice ?? marketPoolIndexer.coinPrice;
|
|
3081
|
+
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3082
|
+
marketPoolIndexer.coinName
|
|
3083
|
+
);
|
|
3084
|
+
return marketPoolIndexer;
|
|
3085
|
+
}
|
|
3086
|
+
const marketId = query.address.get("core.market");
|
|
3087
|
+
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
3088
|
+
showContent: true
|
|
3089
|
+
}))?.data;
|
|
3090
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
3091
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
3092
|
+
const fields = marketObject.content.fields;
|
|
3093
|
+
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
3094
|
+
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
3095
|
+
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3096
|
+
parentId: balanceSheetParentId,
|
|
3097
|
+
name: {
|
|
3098
|
+
type: "0x1::type_name::TypeName",
|
|
3099
|
+
value: {
|
|
3100
|
+
name: coinType.substring(2)
|
|
2900
3101
|
}
|
|
2901
|
-
});
|
|
2902
|
-
if (!balanceSheetDynamicFieldObjectResponse)
|
|
2903
|
-
throw new Error(
|
|
2904
|
-
`Failed to fetch balanceSheetDynamicFieldObjectResponse for ${poolCoinName}`
|
|
2905
|
-
);
|
|
2906
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse.data;
|
|
2907
|
-
if (balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content) {
|
|
2908
|
-
const dynamicFields = balanceSheetDynamicFieldObject.content.fields;
|
|
2909
|
-
balanceSheet = dynamicFields.value.fields;
|
|
2910
3102
|
}
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
3103
|
+
});
|
|
3104
|
+
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
3105
|
+
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
3106
|
+
throw new Error(
|
|
3107
|
+
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3108
|
+
);
|
|
3109
|
+
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
3110
|
+
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
3111
|
+
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3112
|
+
parentId: borrowIndexParentId,
|
|
3113
|
+
name: {
|
|
3114
|
+
type: "0x1::type_name::TypeName",
|
|
3115
|
+
value: {
|
|
3116
|
+
name: coinType.substring(2)
|
|
2919
3117
|
}
|
|
2920
|
-
});
|
|
2921
|
-
if (!borrowIndexDynamicFieldObjectResponse)
|
|
2922
|
-
throw new Error(
|
|
2923
|
-
`Failed to fetch borrowIndexDynamicFieldObjectResponse for ${poolCoinName}`
|
|
2924
|
-
);
|
|
2925
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse.data;
|
|
2926
|
-
if (borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content) {
|
|
2927
|
-
const dynamicFields = borrowIndexDynamicFieldObject.content.fields;
|
|
2928
|
-
borrowIndex = dynamicFields.value.fields;
|
|
2929
3118
|
}
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
3119
|
+
});
|
|
3120
|
+
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
3121
|
+
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
3122
|
+
throw new Error(
|
|
3123
|
+
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
3124
|
+
);
|
|
3125
|
+
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
3126
|
+
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
3127
|
+
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3128
|
+
parentId: interestModelParentId,
|
|
3129
|
+
name: {
|
|
3130
|
+
type: "0x1::type_name::TypeName",
|
|
3131
|
+
value: {
|
|
3132
|
+
name: coinType.substring(2)
|
|
2938
3133
|
}
|
|
2939
|
-
});
|
|
2940
|
-
if (!interestModelDynamicFieldObjectResponse)
|
|
2941
|
-
throw new Error(
|
|
2942
|
-
`Failed to fetch interestModelDynamicFieldObjectResponse for ${poolCoinName}`
|
|
2943
|
-
);
|
|
2944
|
-
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse.data;
|
|
2945
|
-
if (interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content) {
|
|
2946
|
-
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
2947
|
-
interestModel = dynamicFields.value.fields;
|
|
2948
3134
|
}
|
|
3135
|
+
});
|
|
3136
|
+
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse?.data;
|
|
3137
|
+
if (!(interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content))
|
|
3138
|
+
throw new Error(
|
|
3139
|
+
`Failed to fetch interestModelDynamicFieldObject for ${poolCoinName}: ${interestModelDynamicFieldObject}`
|
|
3140
|
+
);
|
|
3141
|
+
const interestModel = interestModelDynamicFieldObject.content.fields.value.fields;
|
|
3142
|
+
const getBorrowFee = async () => {
|
|
2949
3143
|
const borrowFeeDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2950
3144
|
parentId: marketId,
|
|
2951
3145
|
name: {
|
|
@@ -2957,18 +3151,11 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2957
3151
|
}
|
|
2958
3152
|
}
|
|
2959
3153
|
});
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
if (borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content) {
|
|
2966
|
-
const dynamicFields = borrowFeeDynamicFieldObject.content.fields;
|
|
2967
|
-
borrowFeeRate = dynamicFields.value.fields;
|
|
2968
|
-
}
|
|
2969
|
-
}
|
|
2970
|
-
}
|
|
2971
|
-
if (balanceSheet && borrowIndex && interestModel && (USE_TEST_ADDRESS || borrowFeeRate)) {
|
|
3154
|
+
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
3155
|
+
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
3156
|
+
return { value: "0" };
|
|
3157
|
+
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
3158
|
+
};
|
|
2972
3159
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
2973
3160
|
type: interestModel.type.fields,
|
|
2974
3161
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -2982,7 +3169,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2982
3169
|
reserve: balanceSheet.revenue,
|
|
2983
3170
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
2984
3171
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
2985
|
-
borrowFeeRate:
|
|
3172
|
+
borrowFeeRate: await getBorrowFee(),
|
|
2986
3173
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
2987
3174
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
2988
3175
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -2998,7 +3185,10 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2998
3185
|
const maxSupplyCoin = (0, import_bignumber3.default)(
|
|
2999
3186
|
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
3000
3187
|
).shiftedBy(-coinDecimal).toNumber();
|
|
3001
|
-
|
|
3188
|
+
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
3189
|
+
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3190
|
+
).shiftedBy(-coinDecimal).toNumber();
|
|
3191
|
+
return {
|
|
3002
3192
|
coinName: poolCoinName,
|
|
3003
3193
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
3004
3194
|
coinType: query.utils.parseCoinType(poolCoinName),
|
|
@@ -3017,12 +3207,13 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
3017
3207
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
3018
3208
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
3019
3209
|
maxSupplyCoin,
|
|
3020
|
-
|
|
3021
|
-
isIsolated:
|
|
3210
|
+
maxBorrowCoin,
|
|
3211
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
3022
3212
|
...calculatedMarketPoolData
|
|
3023
3213
|
};
|
|
3214
|
+
} catch (e) {
|
|
3215
|
+
console.error(e.message);
|
|
3024
3216
|
}
|
|
3025
|
-
return marketPool;
|
|
3026
3217
|
};
|
|
3027
3218
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
3028
3219
|
const marketId = query.address.get("core.market");
|
|
@@ -3071,85 +3262,76 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3071
3262
|
);
|
|
3072
3263
|
return marketCollateralIndexer;
|
|
3073
3264
|
}
|
|
3074
|
-
let marketCollateral;
|
|
3075
|
-
let riskModel;
|
|
3076
|
-
let collateralStat;
|
|
3077
3265
|
const marketId = query.address.get("core.market");
|
|
3078
3266
|
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
3079
3267
|
showContent: true
|
|
3080
3268
|
}))?.data;
|
|
3081
|
-
if (marketObject)
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
}
|
|
3093
|
-
}
|
|
3094
|
-
});
|
|
3095
|
-
if (!riskModelDynamicFieldObjectResponse)
|
|
3096
|
-
return void 0;
|
|
3097
|
-
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse.data;
|
|
3098
|
-
if (riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content) {
|
|
3099
|
-
const dynamicFields = riskModelDynamicFieldObject.content.fields;
|
|
3100
|
-
riskModel = dynamicFields.value.fields;
|
|
3269
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
3270
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
3271
|
+
const fields = marketObject.content.fields;
|
|
3272
|
+
const coinType = query.utils.parseCoinType(collateralCoinName);
|
|
3273
|
+
const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
|
|
3274
|
+
const riskModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3275
|
+
parentId: riskModelParentId,
|
|
3276
|
+
name: {
|
|
3277
|
+
type: "0x1::type_name::TypeName",
|
|
3278
|
+
value: {
|
|
3279
|
+
name: coinType.substring(2)
|
|
3101
3280
|
}
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
collateralStat = dynamicFields.value.fields;
|
|
3281
|
+
}
|
|
3282
|
+
});
|
|
3283
|
+
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse?.data;
|
|
3284
|
+
if (!(riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content))
|
|
3285
|
+
throw new Error(
|
|
3286
|
+
`Failed to fetch riskModelDynamicFieldObject for ${riskModelDynamicFieldObjectResponse?.error?.code.toString()}: `
|
|
3287
|
+
);
|
|
3288
|
+
const riskModel = riskModelDynamicFieldObject.content.fields.value.fields;
|
|
3289
|
+
const collateralStatParentId = fields.collateral_stats.fields.table.fields.id.id;
|
|
3290
|
+
const collateralStatDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3291
|
+
parentId: collateralStatParentId,
|
|
3292
|
+
name: {
|
|
3293
|
+
type: "0x1::type_name::TypeName",
|
|
3294
|
+
value: {
|
|
3295
|
+
name: coinType.substring(2)
|
|
3118
3296
|
}
|
|
3119
3297
|
}
|
|
3120
|
-
}
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3126
|
-
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3127
|
-
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
3128
|
-
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3129
|
-
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3130
|
-
totalCollateralAmount: collateralStat.amount
|
|
3131
|
-
});
|
|
3132
|
-
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3133
|
-
query.utils,
|
|
3134
|
-
parsedMarketCollateralData
|
|
3298
|
+
});
|
|
3299
|
+
const collateralStatDynamicFieldObject = collateralStatDynamicFieldObjectResponse?.data;
|
|
3300
|
+
if (!(collateralStatDynamicFieldObject && collateralStatDynamicFieldObject.content && "fields" in collateralStatDynamicFieldObject.content))
|
|
3301
|
+
throw new Error(
|
|
3302
|
+
`Failed to fetch collateralStatDynamicFieldObject for ${collateralCoinName}: ${collateralStatDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3135
3303
|
);
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3304
|
+
const collateralStat = collateralStatDynamicFieldObject.content.fields.value.fields;
|
|
3305
|
+
const parsedMarketCollateralData = parseOriginMarketCollateralData({
|
|
3306
|
+
type: riskModel.type.fields,
|
|
3307
|
+
collateralFactor: riskModel.collateral_factor.fields,
|
|
3308
|
+
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3309
|
+
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3310
|
+
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
3311
|
+
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3312
|
+
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3313
|
+
totalCollateralAmount: collateralStat.amount
|
|
3314
|
+
});
|
|
3315
|
+
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3316
|
+
query.utils,
|
|
3317
|
+
parsedMarketCollateralData
|
|
3318
|
+
);
|
|
3319
|
+
return {
|
|
3320
|
+
coinName: collateralCoinName,
|
|
3321
|
+
symbol: query.utils.parseSymbol(collateralCoinName),
|
|
3322
|
+
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
3323
|
+
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3324
|
+
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3325
|
+
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3326
|
+
coinPrice: coinPrice ?? 0,
|
|
3327
|
+
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3328
|
+
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3329
|
+
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3330
|
+
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
3331
|
+
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3332
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3333
|
+
...calculatedMarketCollateralData
|
|
3334
|
+
};
|
|
3153
3335
|
};
|
|
3154
3336
|
var getObligations = async ({
|
|
3155
3337
|
address
|
|
@@ -3327,98 +3509,18 @@ var getFlashLoanFees = async (query, assetNames) => {
|
|
|
3327
3509
|
);
|
|
3328
3510
|
};
|
|
3329
3511
|
|
|
3330
|
-
// src/queries/isolatedAssetQuery.ts
|
|
3331
|
-
var import_zod2 = require("zod");
|
|
3332
|
-
var isolatedAssetZod = import_zod2.z.object({
|
|
3333
|
-
dataType: import_zod2.z.string(),
|
|
3334
|
-
type: import_zod2.z.string(),
|
|
3335
|
-
hasPublicTransfer: import_zod2.z.boolean(),
|
|
3336
|
-
fields: import_zod2.z.object({
|
|
3337
|
-
id: import_zod2.z.object({
|
|
3338
|
-
id: import_zod2.z.string()
|
|
3339
|
-
}),
|
|
3340
|
-
name: import_zod2.z.object({
|
|
3341
|
-
type: import_zod2.z.string()
|
|
3342
|
-
}),
|
|
3343
|
-
value: import_zod2.z.boolean()
|
|
3344
|
-
})
|
|
3345
|
-
});
|
|
3346
|
-
var ISOLATED_ASSET_KEY = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::IsolatedAssetKey";
|
|
3347
|
-
var getIsolatedAssets = async (address) => {
|
|
3348
|
-
try {
|
|
3349
|
-
const marketObject = address.get("core.market");
|
|
3350
|
-
const isolatedAssets = [];
|
|
3351
|
-
if (!marketObject)
|
|
3352
|
-
return isolatedAssets;
|
|
3353
|
-
let hasNextPage = false;
|
|
3354
|
-
let nextCursor = null;
|
|
3355
|
-
const isIsolatedDynamicField = (dynamicField) => {
|
|
3356
|
-
return dynamicField.name.type === ISOLATED_ASSET_KEY;
|
|
3357
|
-
};
|
|
3358
|
-
do {
|
|
3359
|
-
const response = await address.cache.queryGetDynamicFields({
|
|
3360
|
-
parentId: marketObject,
|
|
3361
|
-
cursor: nextCursor,
|
|
3362
|
-
limit: 10
|
|
3363
|
-
});
|
|
3364
|
-
if (!response)
|
|
3365
|
-
break;
|
|
3366
|
-
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
3367
|
-
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
3368
|
-
if (response && response.hasNextPage && response.nextCursor) {
|
|
3369
|
-
hasNextPage = true;
|
|
3370
|
-
nextCursor = response.nextCursor;
|
|
3371
|
-
} else {
|
|
3372
|
-
hasNextPage = false;
|
|
3373
|
-
}
|
|
3374
|
-
} while (hasNextPage);
|
|
3375
|
-
return isolatedAssets;
|
|
3376
|
-
} catch (e) {
|
|
3377
|
-
console.error(e);
|
|
3378
|
-
return [];
|
|
3379
|
-
}
|
|
3380
|
-
};
|
|
3381
|
-
var isIsolatedAsset = async (utils, coinName) => {
|
|
3382
|
-
try {
|
|
3383
|
-
const marketObject = utils.address.get("core.market");
|
|
3384
|
-
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
3385
|
-
"getDynamicFields",
|
|
3386
|
-
marketObject
|
|
3387
|
-
]);
|
|
3388
|
-
if (cachedData) {
|
|
3389
|
-
const coinType2 = utils.parseCoinType(coinName);
|
|
3390
|
-
return cachedData.includes(coinType2);
|
|
3391
|
-
}
|
|
3392
|
-
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
3393
|
-
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
3394
|
-
parentId: marketObject,
|
|
3395
|
-
name: {
|
|
3396
|
-
type: ISOLATED_ASSET_KEY,
|
|
3397
|
-
value: coinType
|
|
3398
|
-
}
|
|
3399
|
-
});
|
|
3400
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
3401
|
-
if (!parsedData.success)
|
|
3402
|
-
return false;
|
|
3403
|
-
return parsedData.data.fields.value;
|
|
3404
|
-
} catch (e) {
|
|
3405
|
-
console.error(e);
|
|
3406
|
-
return false;
|
|
3407
|
-
}
|
|
3408
|
-
};
|
|
3409
|
-
|
|
3410
3512
|
// src/queries/loyaltyProgramQuery.ts
|
|
3411
3513
|
var import_bignumber4 = __toESM(require("bignumber.js"));
|
|
3412
|
-
var
|
|
3413
|
-
var rewardPoolFieldsZod =
|
|
3414
|
-
balance:
|
|
3415
|
-
enable_claim:
|
|
3514
|
+
var import_zod4 = require("zod");
|
|
3515
|
+
var rewardPoolFieldsZod = import_zod4.z.object({
|
|
3516
|
+
balance: import_zod4.z.string(),
|
|
3517
|
+
enable_claim: import_zod4.z.boolean()
|
|
3416
3518
|
}).transform((value) => ({
|
|
3417
3519
|
totalPoolReward: (0, import_bignumber4.default)(value.balance).shiftedBy(-9).toNumber(),
|
|
3418
3520
|
isClaimEnabled: value.enable_claim
|
|
3419
3521
|
}));
|
|
3420
|
-
var userRewardFieldsZod =
|
|
3421
|
-
value:
|
|
3522
|
+
var userRewardFieldsZod = import_zod4.z.object({
|
|
3523
|
+
value: import_zod4.z.string()
|
|
3422
3524
|
}).transform((value) => (0, import_bignumber4.default)(value.value).shiftedBy(-9).toNumber());
|
|
3423
3525
|
var getLoyaltyProgramInformations = async (query, veScaKey) => {
|
|
3424
3526
|
const rewardPool = query.address.get("loyaltyProgram.rewardPool");
|
|
@@ -4227,7 +4329,7 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
|
|
|
4227
4329
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
4228
4330
|
marketPool = marketPool || await query.getMarketPool(coinName, indexer);
|
|
4229
4331
|
if (!marketPool) {
|
|
4230
|
-
throw new Error(`
|
|
4332
|
+
throw new Error(`Failed to fetch marketPool for ${marketCoinName}`);
|
|
4231
4333
|
}
|
|
4232
4334
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
4233
4335
|
const rewardPoolId = query.address.get(
|
|
@@ -4501,7 +4603,7 @@ var getStakeRewardPool = async ({
|
|
|
4501
4603
|
var import_bignumber7 = __toESM(require("bignumber.js"));
|
|
4502
4604
|
var import_sui_kit3 = require("@scallop-io/sui-kit");
|
|
4503
4605
|
var import_bcs2 = require("@mysten/sui/bcs");
|
|
4504
|
-
var
|
|
4606
|
+
var import_zod5 = require("zod");
|
|
4505
4607
|
var import_assert2 = __toESM(require("assert"));
|
|
4506
4608
|
var getVescaKeys = async (utils, ownerAddress) => {
|
|
4507
4609
|
const owner = ownerAddress || utils.suiKit.currentAddress();
|
|
@@ -4550,10 +4652,10 @@ var getVeScas = async ({
|
|
|
4550
4652
|
}
|
|
4551
4653
|
return result;
|
|
4552
4654
|
};
|
|
4553
|
-
var SuiObjectRefZod =
|
|
4554
|
-
objectId:
|
|
4555
|
-
digest:
|
|
4556
|
-
version:
|
|
4655
|
+
var SuiObjectRefZod = import_zod5.z.object({
|
|
4656
|
+
objectId: import_zod5.z.string(),
|
|
4657
|
+
digest: import_zod5.z.string(),
|
|
4658
|
+
version: import_zod5.z.string()
|
|
4557
4659
|
});
|
|
4558
4660
|
var getVeSca = async (utils, veScaKey) => {
|
|
4559
4661
|
const tableId = utils.address.get(`vesca.tableId`);
|
|
@@ -4743,10 +4845,10 @@ var ScallopUtils = class {
|
|
|
4743
4845
|
* @param address - ScallopAddress instance.
|
|
4744
4846
|
*/
|
|
4745
4847
|
async init(force = false, address) {
|
|
4746
|
-
if (
|
|
4747
|
-
await this.address.read();
|
|
4748
|
-
} else {
|
|
4848
|
+
if (address && !this.address)
|
|
4749
4849
|
this.address = address;
|
|
4850
|
+
if (force || !this.address.getAddresses()) {
|
|
4851
|
+
await this.address.read();
|
|
4750
4852
|
}
|
|
4751
4853
|
}
|
|
4752
4854
|
/**
|
|
@@ -5032,9 +5134,7 @@ var ScallopUtils = class {
|
|
|
5032
5134
|
for (const endpoint of endpoints) {
|
|
5033
5135
|
const priceIdPairs = Array.from(failedRequests.values()).reduce(
|
|
5034
5136
|
(acc, coinName) => {
|
|
5035
|
-
const priceId = this.address.get(
|
|
5036
|
-
`core.coins.${coinName}.oracle.pyth.feed`
|
|
5037
|
-
);
|
|
5137
|
+
const priceId = this.address.get(`core.coins.${coinName}.oracle.pyth.feed`) ?? PYTH_FEED_IDS[coinName];
|
|
5038
5138
|
acc.push([coinName, priceId]);
|
|
5039
5139
|
return acc;
|
|
5040
5140
|
},
|
|
@@ -6997,11 +7097,12 @@ var ScallopQuery = class {
|
|
|
6997
7097
|
* @param address - ScallopAddress instance.
|
|
6998
7098
|
*/
|
|
6999
7099
|
async init(force = false, address) {
|
|
7000
|
-
if (
|
|
7001
|
-
await this.address.read();
|
|
7002
|
-
} else {
|
|
7100
|
+
if (address && !this.address) {
|
|
7003
7101
|
this.address = address;
|
|
7004
7102
|
}
|
|
7103
|
+
if (force || !this.address.getAddresses()) {
|
|
7104
|
+
await this.address.read();
|
|
7105
|
+
}
|
|
7005
7106
|
await this.utils.init(force, this.address);
|
|
7006
7107
|
}
|
|
7007
7108
|
/* ==================== Core Query Methods ==================== */
|
|
@@ -7463,11 +7564,17 @@ var ScallopQuery = class {
|
|
|
7463
7564
|
return await getFlashLoanFees(this, assetCoinNames);
|
|
7464
7565
|
}
|
|
7465
7566
|
/**
|
|
7466
|
-
* Get supply limit of
|
|
7567
|
+
* Get supply limit of lending pool
|
|
7467
7568
|
*/
|
|
7468
7569
|
async getPoolSupplyLimit(poolName) {
|
|
7469
7570
|
return await getSupplyLimit(this.utils, poolName);
|
|
7470
7571
|
}
|
|
7572
|
+
/**
|
|
7573
|
+
* Get borrow limit of borrow pool
|
|
7574
|
+
*/
|
|
7575
|
+
async getPoolBorrowLimit(poolName) {
|
|
7576
|
+
return await getBorrowLimit(this.utils, poolName);
|
|
7577
|
+
}
|
|
7471
7578
|
/**
|
|
7472
7579
|
* Get list of isolated assets
|
|
7473
7580
|
*/
|
|
@@ -7540,10 +7647,10 @@ var ScallopBuilder = class {
|
|
|
7540
7647
|
* @param address - ScallopAddress instance.
|
|
7541
7648
|
*/
|
|
7542
7649
|
async init(force = false, address) {
|
|
7543
|
-
if (
|
|
7544
|
-
await this.address.read();
|
|
7545
|
-
} else {
|
|
7650
|
+
if (address && !this.address)
|
|
7546
7651
|
this.address = address;
|
|
7652
|
+
if (force || !this.address.getAddresses()) {
|
|
7653
|
+
await this.address.read();
|
|
7547
7654
|
}
|
|
7548
7655
|
await this.query.init(force, this.address);
|
|
7549
7656
|
await this.utils.init(force, this.address);
|