@scallop-io/sui-scallop-sdk 1.4.14 → 1.4.15-rc.1
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/poolAddress.d.ts +14 -4
- package/dist/constants/queryKeys.d.ts +1 -2
- package/dist/constants/tokenBucket.d.ts +2 -2
- package/dist/index.js +719 -307
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +674 -262
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopCache.d.ts +1 -0
- package/dist/models/scallopQuery.d.ts +20 -17
- package/dist/queries/coreQuery.d.ts +18 -19
- package/dist/queries/index.d.ts +2 -0
- package/dist/queries/isolatedAssetQuery.d.ts +2 -2
- package/dist/queries/objectsQuery.d.ts +3 -0
- package/dist/queries/poolAddressesQuery.d.ts +15 -0
- package/dist/types/query/core.d.ts +22 -5
- package/dist/types/utils.d.ts +7 -2
- package/dist/utils/core.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/util.d.ts +1 -0
- package/package.json +1 -1
- package/src/constants/poolAddress.ts +290 -29
- package/src/constants/queryKeys.ts +5 -5
- package/src/constants/tokenBucket.ts +2 -2
- package/src/models/scallopCache.ts +43 -11
- package/src/models/scallopQuery.ts +24 -12
- package/src/queries/borrowIncentiveQuery.ts +1 -1
- package/src/queries/coreQuery.ts +378 -248
- package/src/queries/index.ts +2 -0
- package/src/queries/isolatedAssetQuery.ts +37 -31
- package/src/queries/objectsQuery.ts +20 -0
- package/src/queries/poolAddressesQuery.ts +134 -0
- package/src/queries/portfolioQuery.ts +14 -7
- package/src/queries/priceQuery.ts +3 -1
- package/src/queries/spoolQuery.ts +3 -1
- package/src/types/query/core.ts +21 -5
- package/src/types/utils.ts +8 -3
- package/src/utils/core.ts +11 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/query.ts +16 -2
- package/src/utils/tokenBucket.ts +2 -2
- package/src/utils/util.ts +8 -0
package/dist/index.js
CHANGED
|
@@ -420,67 +420,213 @@ var FlashLoanFeeObjectMap = {
|
|
|
420
420
|
|
|
421
421
|
// src/constants/poolAddress.ts
|
|
422
422
|
var POOL_ADDRESSES = {
|
|
423
|
-
usdc: {
|
|
424
|
-
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
425
|
-
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af"
|
|
426
|
-
},
|
|
427
423
|
sbeth: {
|
|
428
|
-
lendingPoolAddress: "
|
|
429
|
-
collateralPoolAddress: "0xce0549a1cbe952e734f56646988e6b02bbae14667889a60e24d0d03540a6119f"
|
|
424
|
+
lendingPoolAddress: "0xaa34c938e0394e5186c7dc626ad69be96af2194b23fdc6ac1c63090e399f5ba4",
|
|
425
|
+
collateralPoolAddress: "0xce0549a1cbe952e734f56646988e6b02bbae14667889a60e24d0d03540a6119f",
|
|
426
|
+
borrowDynamic: "0x7bbe75e8b924229f2f2110838ff612ea66e670fa3766759515dee78f617b1ea3",
|
|
427
|
+
interestModel: "0x9e6cae260d05155785a1904d24e6abc98368509c5752c8a9cec15a35aabc1512",
|
|
428
|
+
riskModel: "0xcf10334cfee675ecea2d2fee37b0f7cd2835c84b8b5692a853021debe6af80ab",
|
|
429
|
+
borrowFeeKey: "0x4298c8b6afe7a42a8e3ff93773fb9769529fe6d37e085ab411acf2ba2a44a931",
|
|
430
|
+
supplyLimitKey: "0x812fe508b78d3e0817149c0b39976221ddb267b5cc9514e81679f9b9a2f3624c",
|
|
431
|
+
borrowLimitKey: "0x165c274c67eda2b0d13563124741fffd0ce7d643f4c1c4b59d7e53a83796ae25",
|
|
432
|
+
isolatedAssetKey: void 0,
|
|
433
|
+
spool: void 0,
|
|
434
|
+
spoolReward: void 0
|
|
430
435
|
},
|
|
431
|
-
|
|
432
|
-
lendingPoolAddress: "
|
|
433
|
-
collateralPoolAddress: "
|
|
436
|
+
usdc: {
|
|
437
|
+
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
438
|
+
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af",
|
|
439
|
+
borrowDynamic: "0x77837ecd4f26fac9a410fff594f2c0bd3288904a15492ca77cb8a52684dbb866",
|
|
440
|
+
interestModel: "0xaae3f179d63009380cbdcb9acb12907afc9c3cb79cc3460be296a9c6d28f3ff3",
|
|
441
|
+
riskModel: "0x198b24db213bfeb8b3c80ae63dde92e32fd24984d25da8233ff777b851edd574",
|
|
442
|
+
borrowFeeKey: "0xd37c5316cfe0a5967d14264fa6b423f880518b294a1ee6581ccbb49ccc401fb8",
|
|
443
|
+
supplyLimitKey: "0x4be9ae54ac4d320f4f9c14cae78cb85c8e0e67791dd9bdba6d2db20614a28a24",
|
|
444
|
+
borrowLimitKey: "0x6b01093cba95b835181f00e3a2c31ed8dfc8d64fe3db0fb80933a09f66e1ccf1",
|
|
445
|
+
isolatedAssetKey: void 0,
|
|
446
|
+
spool: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
|
|
447
|
+
spoolReward: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
|
|
434
448
|
},
|
|
435
449
|
wbtc: {
|
|
436
450
|
lendingPoolAddress: "0x65cc08a5aca0a0b8d72e1993ded8d145f06dd102fd0d8f285b92934faed564ab",
|
|
437
|
-
collateralPoolAddress: "0x1aa4e5cf743cd797b4eb8bf1e614f80ae2cf556ced426cddaaf190ffcd0e59c3"
|
|
451
|
+
collateralPoolAddress: "0x1aa4e5cf743cd797b4eb8bf1e614f80ae2cf556ced426cddaaf190ffcd0e59c3",
|
|
452
|
+
borrowDynamic: "0x6f97dcf54158a5d08f359a213a41e347bc1e6316414288dc1e1b674dc008742e",
|
|
453
|
+
interestModel: "0x582b915cca0ffca9576a7cedd505d0fd7cb146e9521ccf10e7453ed93705684d",
|
|
454
|
+
riskModel: "0x1d0a242bf1682e259112239720da19d3155dd99d70b1f4b3b973eecbab858911",
|
|
455
|
+
borrowFeeKey: "0x654ab7e8ff6d9ef04da697e1f12ca21eaf72ebb495daf877e0776e65187dcb92",
|
|
456
|
+
supplyLimitKey: "0xac3b0d17df9f98aa2798c54405cf1d8d5356ef22f76f02d150cbe5195e9f3a36",
|
|
457
|
+
borrowLimitKey: "0x231e13ba6b1eb26c562f4a125778d3152f9a77e31f124bd6012e234a73012169",
|
|
458
|
+
isolatedAssetKey: void 0,
|
|
459
|
+
spool: void 0,
|
|
460
|
+
spoolReward: void 0
|
|
438
461
|
},
|
|
439
462
|
wusdc: {
|
|
440
|
-
lendingPoolAddress: "
|
|
441
|
-
collateralPoolAddress: "
|
|
463
|
+
lendingPoolAddress: "0x2f4df5e1368fbbdaa5c712d28b837b3d41c2d3872979ccededcdfdac55ff8a93",
|
|
464
|
+
collateralPoolAddress: "0x94cf69158114c5b242d2ee5d0149a335bddf3b9c9a6ba919cca58097a4814980",
|
|
465
|
+
borrowDynamic: "0x0464d117908b52fc75f7f85322a47caa078ef56f48681bcfdcb630a66f2591e6",
|
|
466
|
+
interestModel: "0xd72e2b5ba486752939d6dfb86a67b86ce9a60c83cb8fb893caac54a0f112577f",
|
|
467
|
+
riskModel: "0xb74035de8f70c1531ceb8e2e8c152d6b8db24c8a9fe7bbf6f75dbf7c6700a0a3",
|
|
468
|
+
borrowFeeKey: "0x76dcf1acbd9951fe3d1a3fe28403fec089ffe53a7c7d6c77e3ea97033a63581a",
|
|
469
|
+
supplyLimitKey: "0x7b302196907e87c5d5872f2e6f40628d110170f994e0e08bc607bded001958c3",
|
|
470
|
+
borrowLimitKey: "0x97f1502ce994db0bcb15aac1760d174def9e88e97cd2262eed54521ee2c19f81",
|
|
471
|
+
isolatedAssetKey: void 0,
|
|
472
|
+
spool: "0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0",
|
|
473
|
+
spoolReward: "0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8"
|
|
474
|
+
},
|
|
475
|
+
weth: {
|
|
476
|
+
lendingPoolAddress: "0xc8fcdff48efc265740ae0b74aae3faccae9ec00034039a113f3339798035108c",
|
|
477
|
+
collateralPoolAddress: "0xad7ced91ed6e7f2b81805561eee27fa6f3e72fdae561077334c7248583db4dbf",
|
|
478
|
+
borrowDynamic: "0xd1578e1d1c9c82eb4c5bf14beece8142a67a683b2647d7276e92984119fc1445",
|
|
479
|
+
interestModel: "0xa1dc08541cd2cb7cfb4e56272292d5c6a4780e80fd210c58abffae98268b5ed9",
|
|
480
|
+
riskModel: "0x9f05a25fd33a9e8cf33962126b175d038e184f0ee1b87dc41d4cedbe6abebbe5",
|
|
481
|
+
borrowFeeKey: "0x29672ba8ab4625b8181d8ed739e5344de22a97d417748c4d1276c7379283d7a3",
|
|
482
|
+
supplyLimitKey: "0x2b957941bdc9432bbc83ab74dc194b6ebb7c927bc4c6926a5492b5503499e509",
|
|
483
|
+
borrowLimitKey: "0x51f256d87e51a7ca2b1c482923096f4b6dac6beac89d8ecf4c65b7d5764115d6",
|
|
484
|
+
isolatedAssetKey: void 0,
|
|
485
|
+
spool: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
486
|
+
spoolReward: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
442
487
|
},
|
|
443
488
|
wusdt: {
|
|
444
489
|
lendingPoolAddress: "0xfbc056f126dd35adc1f8fe985e2cedc8010e687e8e851e1c5b99fdf63cd1c879",
|
|
445
|
-
collateralPoolAddress: "0x2260cb5b24929dd20a1742f37a61ff3ce4fde5cdb023e2d3ce2e0ce2d90719e3"
|
|
490
|
+
collateralPoolAddress: "0x2260cb5b24929dd20a1742f37a61ff3ce4fde5cdb023e2d3ce2e0ce2d90719e3",
|
|
491
|
+
borrowDynamic: "0xb524030cc8f7cdbf13f1925a0a2b5e77cc52bab73b070f42c5e510f6083da1ba",
|
|
492
|
+
interestModel: "0x92f93c4431b4c51774d6d964da516af2def18b78f49dbbf519e58449a8ba4659",
|
|
493
|
+
riskModel: "0xdf89d66988cb506ddeff46f5dfd1d11aaece345e9a05a0c6a18a0788647de2a7",
|
|
494
|
+
borrowFeeKey: "0xda8f8b3522fc4086eae4ae7ce8844d60aa0dc3eab8ffc91fe93e922a72639b2d",
|
|
495
|
+
supplyLimitKey: "0xa9cb5ebb90ca6e808a2bd7728cca4a6fa8b565d4deeda96eb23c8322c477c24e",
|
|
496
|
+
borrowLimitKey: "0xa3278564fc613680a69c10972a0299965bf6e12e9ac171388842fc958de0f90e",
|
|
497
|
+
isolatedAssetKey: void 0,
|
|
498
|
+
spool: "0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f",
|
|
499
|
+
spoolReward: "0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080"
|
|
446
500
|
},
|
|
447
501
|
sui: {
|
|
448
502
|
lendingPoolAddress: "0x9c9077abf7a29eebce41e33addbcd6f5246a5221dd733e56ea0f00ae1b25c9e8",
|
|
449
|
-
collateralPoolAddress: "0x75aacfb7dcbf92ee0111fc1bf975b12569e4ba632e81ed7ae5ac090d40cd3acb"
|
|
503
|
+
collateralPoolAddress: "0x75aacfb7dcbf92ee0111fc1bf975b12569e4ba632e81ed7ae5ac090d40cd3acb",
|
|
504
|
+
borrowDynamic: "0xbf68e6159c99dcaf87717385f1143d2891c2d19663bd51f0bc9b6909e4bb7c27",
|
|
505
|
+
interestModel: "0x0dad9baa89b863c15a0487575de7cc428b01f1aa3998ad7a9e9752d96e83ffa9",
|
|
506
|
+
riskModel: "0xcd6675864690b5648a6e309f2f02a66914b2b2bd9c31936f4e0f7fc0f792bc86",
|
|
507
|
+
borrowFeeKey: "0xda5ede87a05c0677b17511c859b22d0a2b0229ee374d5d7a1274cb836b9fe5f8",
|
|
508
|
+
supplyLimitKey: "0x0602418e66fb7a73fa997077bd66f248ad5b090d43344a14b9f1db598ecc1d47",
|
|
509
|
+
borrowLimitKey: "0x2b33a7efdcf6a6df24f4d8a356dd52f58d75bc023c3f171d99502d4d008b53f0",
|
|
510
|
+
isolatedAssetKey: void 0,
|
|
511
|
+
spool: "0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4",
|
|
512
|
+
spoolReward: "0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9"
|
|
450
513
|
},
|
|
451
514
|
wapt: {
|
|
452
515
|
lendingPoolAddress: "0xca8c14a24e0c32b198eaf479a3317461e3cc339097ce88eaf296a15df8dcfdf5",
|
|
453
|
-
collateralPoolAddress: "0xde33f9ac5bb0ed34598da4e64b4983832716ced65f172fbf267bcfe859c4ad9c"
|
|
516
|
+
collateralPoolAddress: "0xde33f9ac5bb0ed34598da4e64b4983832716ced65f172fbf267bcfe859c4ad9c",
|
|
517
|
+
borrowDynamic: "0xadda873fb6bf68e1ba3f2dfaa51cf75d4a1bef73d9627bd36e77d2baecb1f2dc",
|
|
518
|
+
interestModel: "0xa4a29d07beecea5eb0c59745bb89d7a1380c6f206a7f1ca37046e05db6025c43",
|
|
519
|
+
riskModel: "0x7ada83b473af30aed50d187de82a0912878b53ade7ac30e11ce23953cf739d84",
|
|
520
|
+
borrowFeeKey: "0x768735df587c7e0f141dcd035fbbcbf9d2149a7b23888baed4e2baa160fa2eeb",
|
|
521
|
+
supplyLimitKey: void 0,
|
|
522
|
+
borrowLimitKey: void 0,
|
|
523
|
+
isolatedAssetKey: void 0,
|
|
524
|
+
spool: void 0,
|
|
525
|
+
spoolReward: void 0
|
|
526
|
+
},
|
|
527
|
+
afsui: {
|
|
528
|
+
lendingPoolAddress: "0x9b942a24ce390b7f5016d34a0217057bf9487b92aa6d7cc9894271dbbe62471a",
|
|
529
|
+
collateralPoolAddress: "0xe5e56f5c0e3072760b21f9d49a5cc793f37d736c412a9065c16e1265c74e6341",
|
|
530
|
+
borrowDynamic: "0x1c76d4df9506154a117bbac0f5e005d8a9c0d9ca60e3fe0c9d080006f6f54e81",
|
|
531
|
+
interestModel: "0xb155c536b37c9601baaa734ad1dd0ef335b2b597aceb8d3ecee41a43f94dcd70",
|
|
532
|
+
riskModel: "0x75371b1d04b5bebc0738af548ba64ea658e74f78228ec8014336d8eebb992312",
|
|
533
|
+
borrowFeeKey: "0xabc6422db2d4ee01635ddaeaa44ba68370eebd785d2c4632515f841ae9bc47d9",
|
|
534
|
+
supplyLimitKey: "0x61a2054eb37f543c0d774da57f2c9542aad8d79a197f748ac08ef5df6cc47028",
|
|
535
|
+
borrowLimitKey: "0x4459498a043872cd107ea917493fee0baf2d37a273c7538e1d6581cc61b92af8",
|
|
536
|
+
isolatedAssetKey: void 0,
|
|
537
|
+
spool: "0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800",
|
|
538
|
+
spoolReward: "0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e"
|
|
454
539
|
},
|
|
455
540
|
wsol: {
|
|
456
541
|
lendingPoolAddress: "0x985682c42984cdfb03f9ff7d8923344c2fe096b1ae4b82ea17721af19d22a21f",
|
|
457
|
-
collateralPoolAddress: "0xdc1cc2c371a043ae8e3c3fe2d013c35f1346960b7dbb4c072982c5b794ed144f"
|
|
542
|
+
collateralPoolAddress: "0xdc1cc2c371a043ae8e3c3fe2d013c35f1346960b7dbb4c072982c5b794ed144f",
|
|
543
|
+
borrowDynamic: "0xe3f301e16d4f1273ea659dd82c5c3f124ca5a5883a5726c7ec0f77bf43b70895",
|
|
544
|
+
interestModel: "0xd95affaee077006b8dbb4b108c1b087e95fc6e5143ef0682da345d5b35bc6356",
|
|
545
|
+
riskModel: "0x8e0da6358073144ec3557400c87f04991ba3a13ca7e0d0a19daed45260b32f16",
|
|
546
|
+
borrowFeeKey: "0x604bffbc817e8e12db15f2373a9e15b2c7adbc510649cdf2cc62a594af90671c",
|
|
547
|
+
supplyLimitKey: "0xbd419b536b3f9c9d4adfc20372ca6feedc53cc31798ac860dbfc847bcf05f54b",
|
|
548
|
+
borrowLimitKey: "0x77d453c51948f32564c810bc73f9ba7abde880657b7f89e1c8a3bc28fa36ee87",
|
|
549
|
+
isolatedAssetKey: void 0,
|
|
550
|
+
spool: void 0,
|
|
551
|
+
spoolReward: void 0
|
|
458
552
|
},
|
|
459
553
|
cetus: {
|
|
460
554
|
lendingPoolAddress: "0xc09858f60e74a1b671635bec4e8a2c84a0ff313eb87f525fba3258e88c6b6282",
|
|
461
|
-
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a"
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
555
|
+
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a",
|
|
556
|
+
borrowDynamic: "0xcc725fd5d71990cdccc7e16c88a2abde6dbcd0bf6e805ccc1c0cb83a106bbf4e",
|
|
557
|
+
interestModel: "0x2f1258aab89d04d11834121599ab1317dfecb582b4246f106df399911125845a",
|
|
558
|
+
riskModel: "0x03fed312dbba624dff5edaf4736891a1c7d864445fd268e7572b42ec7381132e",
|
|
559
|
+
borrowFeeKey: "0xdf5fb0cc4ebbf5eebfae23dfa5b266f6a58c18a894a13054ae60c0eb6e79c382",
|
|
560
|
+
supplyLimitKey: "0xa5ea3d4bf663d7bc667e82b40a98923590ff3851b9ea8e7afbc26c588c7007d3",
|
|
561
|
+
borrowLimitKey: "0xf44218a5f0feb128e6fbe74b91d1e7e9ef859bd23a576ff0de151829e015a157",
|
|
562
|
+
isolatedAssetKey: void 0,
|
|
563
|
+
spool: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
564
|
+
spoolReward: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
466
565
|
},
|
|
467
566
|
hasui: {
|
|
468
567
|
lendingPoolAddress: "0x7ebc607f6bdeb659fb6506cb91c5cc1d47bb365cfd5d2e637ea765346ec84ed4",
|
|
469
|
-
collateralPoolAddress: "0xad9ed40d6486e4c26cec7370dffce8dc4821eb79178250b5938a34ccafd61e6d"
|
|
568
|
+
collateralPoolAddress: "0xad9ed40d6486e4c26cec7370dffce8dc4821eb79178250b5938a34ccafd61e6d",
|
|
569
|
+
borrowDynamic: "0x13ec1220b41c6e0f11dd6113199a2aff8e4cf2223047b5bd06d7a3ed5d23e1d2",
|
|
570
|
+
interestModel: "0x987c58cbe48096618f4d9d83e0bde2ff638ce4753aba40dab7c302ac3e4b4519",
|
|
571
|
+
riskModel: "0xe42d8497d423eca0d8df89850c2d77d3644e7f54a2d28f59c315903ea5ec8dec",
|
|
572
|
+
borrowFeeKey: "0xef885c382d461c4fb14d1f3b3758c380c78a1a4b2a3d2fafe6e8649a60fdd7ab",
|
|
573
|
+
supplyLimitKey: "0xc7385b1703693cbbc9c97227fe3fd5c91d7afda00e0da69d942c3260d78e45e0",
|
|
574
|
+
borrowLimitKey: "0x65333e606eead786a999c8267bc9886b0fdbc298a8a8635a48a9c9b8838d9395",
|
|
575
|
+
isolatedAssetKey: void 0,
|
|
576
|
+
spool: "0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa",
|
|
577
|
+
spoolReward: "0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66"
|
|
470
578
|
},
|
|
471
579
|
vsui: {
|
|
472
580
|
lendingPoolAddress: "0xda9257c0731d8822e8a438ebced13415850d705b779c79958dcf2aeb21fcb43d",
|
|
473
|
-
collateralPoolAddress: "0x4435e8b8ec2a04094d863aa52deb6ab6f8f47ed8778f4d9f1b27afc4a6e85f1e"
|
|
581
|
+
collateralPoolAddress: "0x4435e8b8ec2a04094d863aa52deb6ab6f8f47ed8778f4d9f1b27afc4a6e85f1e",
|
|
582
|
+
borrowDynamic: "0x8eae703505246f975e83f5af24780e5f1b89ef403d5a80ea15534624d6f1a503",
|
|
583
|
+
interestModel: "0xaf6a52b5eaaa5af4d9e49d83de0d504c295ae21f3a37560c3f48e0e15a1d4625",
|
|
584
|
+
riskModel: "0x1e862f27a6bd47c3041159a5cf392f549485c6605ed9aa937f16ecc951e82e65",
|
|
585
|
+
borrowFeeKey: "0x5230de0f41a5e4c05b3d1187a90a9eeab491cec97b08b71512d9785e8af36aa6",
|
|
586
|
+
supplyLimitKey: "0x1d40e34d1f365ec431fff020bd75c16b14b340b3ed6c139803cc15c2384621b2",
|
|
587
|
+
borrowLimitKey: "0x4eb206b4417642cfc1b02f80bb5f5e366af2af2f9fb4ea4f4e898ae82367f8a0",
|
|
588
|
+
isolatedAssetKey: void 0,
|
|
589
|
+
spool: "0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670",
|
|
590
|
+
spoolReward: "0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a"
|
|
474
591
|
},
|
|
475
592
|
sca: {
|
|
476
593
|
lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
|
|
477
|
-
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
594
|
+
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31",
|
|
595
|
+
borrowDynamic: "0x4e24f52edd739dab59ca4c6353ca430b7ce57e7f333abd0957958570a7cd09ca",
|
|
596
|
+
interestModel: "0xbdcd48cf5b1a814911dc2d5c72d393a980c87820199fe5d799289ce94f4c47df",
|
|
597
|
+
riskModel: "0xc437c24b67b8e2676907700fa395af337ad6463d2c0b4f4fa2e9276414026089",
|
|
598
|
+
borrowFeeKey: "0xee55ba0f9800a62d9e7aef667f87e658258f41814d2c9fa02e25590671b4e5ad",
|
|
599
|
+
supplyLimitKey: "0x8dd938856b972a10ea27ecab2af7ed78e48fc5f6ccedaf2b2119959f747dc2e3",
|
|
600
|
+
borrowLimitKey: "0x04c7de61c5b42972f9bf6a8b1848e5fea2d037ee8deba81741ecd4a70aa80d30",
|
|
601
|
+
isolatedAssetKey: void 0,
|
|
602
|
+
spool: void 0,
|
|
603
|
+
spoolReward: void 0
|
|
481
604
|
},
|
|
482
605
|
deep: {
|
|
483
|
-
lendingPoolAddress: "0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03"
|
|
606
|
+
lendingPoolAddress: "0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03",
|
|
607
|
+
collateralPoolAddress: void 0,
|
|
608
|
+
borrowDynamic: "0x95e00d7466f97a100e70f08bd37788dc49335796f6f49fab996d40dd0681c6d3",
|
|
609
|
+
interestModel: "0x4143c298506a332d92ea8a995e6f3991ee3215f58f6fc6441752835d275b9a69",
|
|
610
|
+
riskModel: void 0,
|
|
611
|
+
borrowFeeKey: "0xb14ee43f4ad2a2c40bac8c4406a401690e93c982e289cf3802fedf74a159cab2",
|
|
612
|
+
supplyLimitKey: "0x599528fdfdc253e90dfd0acf4f4a166b391e2aac1ca6528abbff63225b548fee",
|
|
613
|
+
borrowLimitKey: "0xf4217e8ef9d9c32e8992092e910a77535a8124c19b8a762a673f227f5f765a4e",
|
|
614
|
+
isolatedAssetKey: "0x208d3a24ba369dcfc8f0387333d1512b98199eb150d2f2a69359ff708cf761e3",
|
|
615
|
+
spool: void 0,
|
|
616
|
+
spoolReward: void 0
|
|
617
|
+
},
|
|
618
|
+
fud: {
|
|
619
|
+
lendingPoolAddress: "0xefed2cbe76b344792ac724523c8b2236740d1cea2100d46a0ed0dc760c7f4231",
|
|
620
|
+
collateralPoolAddress: void 0,
|
|
621
|
+
borrowDynamic: "0x14367ddca30e2860cb89ed4eaca20c7ece260c5d59dd9990d2c85a8321326acb",
|
|
622
|
+
interestModel: "0x2600ac100ef154eb2329ffd3aad47aca308ff9f9348de3e8e94aaeb906ec2303",
|
|
623
|
+
riskModel: void 0,
|
|
624
|
+
borrowFeeKey: "0xa87e8b26e07ff35ac9fb57adcc779be2883080fc7d12de2d9e7e16d8d8d5e529",
|
|
625
|
+
supplyLimitKey: "0xf98419aecc37a3c5de716f8ec590f8991a5be34da72ce1a2da09531ff45adf7d",
|
|
626
|
+
borrowLimitKey: "0x3d928a001c453c50004baa54e14b0a0e1b0907d9c613dfd76064fd7ed4e8beb8",
|
|
627
|
+
isolatedAssetKey: "0xfcb533e9e4e31f9c9f32d6cbf7fbb3425f1d60474e229a363a2dc7f835d587e2",
|
|
628
|
+
spool: void 0,
|
|
629
|
+
spoolReward: void 0
|
|
484
630
|
}
|
|
485
631
|
};
|
|
486
632
|
|
|
@@ -531,7 +677,11 @@ var queryKeys = {
|
|
|
531
677
|
typeArgs: !typeArgs ? void 0 : JSON.stringify(typeArgs)
|
|
532
678
|
}
|
|
533
679
|
],
|
|
534
|
-
getObject: (objectId,
|
|
680
|
+
getObject: (objectId, options) => [
|
|
681
|
+
"rpc",
|
|
682
|
+
"getObject",
|
|
683
|
+
{ options, objectId }
|
|
684
|
+
],
|
|
535
685
|
getObjects: (objectIds, walletAddress, options) => [
|
|
536
686
|
"rpc",
|
|
537
687
|
"getObjects",
|
|
@@ -1064,8 +1214,8 @@ var TEST_ADDRESSES = {
|
|
|
1064
1214
|
};
|
|
1065
1215
|
|
|
1066
1216
|
// src/constants/tokenBucket.ts
|
|
1067
|
-
var DEFAULT_TOKENS_PER_INTERVAL =
|
|
1068
|
-
var DEFAULT_INTERVAL_IN_MS =
|
|
1217
|
+
var DEFAULT_TOKENS_PER_INTERVAL = 50;
|
|
1218
|
+
var DEFAULT_INTERVAL_IN_MS = 250;
|
|
1069
1219
|
|
|
1070
1220
|
// src/constants/vesca.ts
|
|
1071
1221
|
var UNLOCK_ROUND_DURATION = 60 * 60 * 24;
|
|
@@ -1209,7 +1359,10 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
1209
1359
|
borrowRateOnMidKink: Number(originMarketPoolData.borrowRateOnMidKink.value) / 2 ** 32,
|
|
1210
1360
|
highKink: Number(originMarketPoolData.highKink.value) / 2 ** 32,
|
|
1211
1361
|
midKink: Number(originMarketPoolData.midKink.value) / 2 ** 32,
|
|
1212
|
-
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount)
|
|
1362
|
+
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount),
|
|
1363
|
+
isIsolated: originMarketPoolData.isIsolated,
|
|
1364
|
+
supplyLimit: Number(originMarketPoolData.supplyLimit),
|
|
1365
|
+
borrowLimit: Number(originMarketPoolData.borrowLimit)
|
|
1213
1366
|
};
|
|
1214
1367
|
};
|
|
1215
1368
|
var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
@@ -1261,6 +1414,7 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1261
1414
|
borrowApyOnHighKink: utils.parseAprToApy(borrowAprOnHighKink),
|
|
1262
1415
|
borrowAprOnMidKink,
|
|
1263
1416
|
borrowApyOnMidKink: utils.parseAprToApy(borrowAprOnMidKink),
|
|
1417
|
+
coinDecimal,
|
|
1264
1418
|
maxBorrowApr,
|
|
1265
1419
|
maxBorrowApy: utils.parseAprToApy(maxBorrowApr),
|
|
1266
1420
|
borrowApr: Math.min(borrowApr, maxBorrowApr),
|
|
@@ -1279,17 +1433,21 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1279
1433
|
utilizationRate: utilizationRate.toNumber(),
|
|
1280
1434
|
supplyApr: supplyApr.toNumber(),
|
|
1281
1435
|
supplyApy: utils.parseAprToApy(supplyApr.toNumber()),
|
|
1282
|
-
conversionRate: conversionRate.toNumber()
|
|
1436
|
+
conversionRate: conversionRate.toNumber(),
|
|
1437
|
+
isIsolated: parsedMarketPoolData.isIsolated,
|
|
1438
|
+
maxSupplyCoin: (0, import_bignumber.default)(parsedMarketPoolData.supplyLimit).shiftedBy(coinDecimal).toNumber(),
|
|
1439
|
+
maxBorrowCoin: (0, import_bignumber.default)(parsedMarketPoolData.borrowLimit).shiftedBy(coinDecimal).toNumber()
|
|
1283
1440
|
};
|
|
1284
1441
|
};
|
|
1285
1442
|
var parseOriginMarketCollateralData = (originMarketCollateralData) => {
|
|
1286
1443
|
const divisor = 2 ** 32;
|
|
1287
1444
|
return {
|
|
1288
1445
|
coinType: (0, import_utils.normalizeStructTag)(originMarketCollateralData.type.name),
|
|
1446
|
+
isIsolated: originMarketCollateralData.isIsolated,
|
|
1289
1447
|
collateralFactor: Number(originMarketCollateralData.collateralFactor.value) / divisor,
|
|
1290
1448
|
liquidationFactor: Number(originMarketCollateralData.liquidationFactor.value) / divisor,
|
|
1291
1449
|
liquidationDiscount: Number(originMarketCollateralData.liquidationDiscount.value) / divisor,
|
|
1292
|
-
|
|
1450
|
+
liquidationPenalty: Number(originMarketCollateralData.liquidationPenalty.value) / divisor,
|
|
1293
1451
|
liquidationReserveFactor: Number(originMarketCollateralData.liquidationReserveFactor.value) / divisor,
|
|
1294
1452
|
maxCollateralAmount: Number(originMarketCollateralData.maxCollateralAmount),
|
|
1295
1453
|
totalCollateralAmount: Number(
|
|
@@ -1309,6 +1467,8 @@ var calculateMarketCollateralData = (utils, parsedMarketCollateralData) => {
|
|
|
1309
1467
|
parsedMarketCollateralData.totalCollateralAmount
|
|
1310
1468
|
).shiftedBy(-1 * coinDecimal);
|
|
1311
1469
|
return {
|
|
1470
|
+
coinDecimal,
|
|
1471
|
+
isIsolated: parsedMarketCollateralData.isIsolated,
|
|
1312
1472
|
maxDepositAmount: parsedMarketCollateralData.maxCollateralAmount,
|
|
1313
1473
|
maxDepositCoin: maxCollateralCoin.toNumber(),
|
|
1314
1474
|
depositAmount: parsedMarketCollateralData.totalCollateralAmount,
|
|
@@ -1639,6 +1799,13 @@ var findClosestUnlockRound = (unlockAtInSecondTimestamp) => {
|
|
|
1639
1799
|
}
|
|
1640
1800
|
return Math.floor(closestTwelveAM.getTime() / 1e3);
|
|
1641
1801
|
};
|
|
1802
|
+
var partitionArray = (array, chunkSize) => {
|
|
1803
|
+
const result = [];
|
|
1804
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
|
1805
|
+
result.push(array.slice(i, i + chunkSize));
|
|
1806
|
+
}
|
|
1807
|
+
return result;
|
|
1808
|
+
};
|
|
1642
1809
|
|
|
1643
1810
|
// src/utils/tokenBucket.ts
|
|
1644
1811
|
var TokenBucket = class {
|
|
@@ -1666,7 +1833,7 @@ var TokenBucket = class {
|
|
|
1666
1833
|
return false;
|
|
1667
1834
|
}
|
|
1668
1835
|
};
|
|
1669
|
-
var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVAL_IN_MS, maxRetries = 15, backoffFactor =
|
|
1836
|
+
var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVAL_IN_MS, maxRetries = 15, backoffFactor = 1.25) => {
|
|
1670
1837
|
let retries = 0;
|
|
1671
1838
|
const tryRequest = async () => {
|
|
1672
1839
|
if (tokenBucket.removeTokens(1)) {
|
|
@@ -1675,7 +1842,6 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
|
|
|
1675
1842
|
} else if (retries < maxRetries) {
|
|
1676
1843
|
retries++;
|
|
1677
1844
|
const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
|
|
1678
|
-
console.error(`Rate limit exceeded, retrying in ${delay} ms`);
|
|
1679
1845
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1680
1846
|
return tryRequest();
|
|
1681
1847
|
} else {
|
|
@@ -1711,6 +1877,16 @@ function withIndexerFallback(method) {
|
|
|
1711
1877
|
};
|
|
1712
1878
|
}
|
|
1713
1879
|
|
|
1880
|
+
// src/utils/core.ts
|
|
1881
|
+
var parseObjectAs = (object) => {
|
|
1882
|
+
if (!(object && object.content && "fields" in object.content))
|
|
1883
|
+
throw new Error(`Failed to parse object`);
|
|
1884
|
+
const value = object.content.fields.value;
|
|
1885
|
+
if (typeof value === "object" && "fields" in value)
|
|
1886
|
+
return object.content.fields.value.fields;
|
|
1887
|
+
return value;
|
|
1888
|
+
};
|
|
1889
|
+
|
|
1714
1890
|
// src/models/scallopCache.ts
|
|
1715
1891
|
var ScallopCache = class {
|
|
1716
1892
|
constructor(suiKit, walletAddress, cacheOptions, tokenBucket, queryClient) {
|
|
@@ -1745,6 +1921,13 @@ var ScallopCache = class {
|
|
|
1745
1921
|
})
|
|
1746
1922
|
);
|
|
1747
1923
|
}
|
|
1924
|
+
retryFn(errCount, e) {
|
|
1925
|
+
if (errCount === 5)
|
|
1926
|
+
return false;
|
|
1927
|
+
if (e.status === 429)
|
|
1928
|
+
return true;
|
|
1929
|
+
return false;
|
|
1930
|
+
}
|
|
1748
1931
|
/**
|
|
1749
1932
|
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1750
1933
|
* @param QueryInspectTxnParams
|
|
@@ -1757,9 +1940,17 @@ var ScallopCache = class {
|
|
|
1757
1940
|
typeArgs
|
|
1758
1941
|
}) {
|
|
1759
1942
|
const txBlock = new import_sui_kit.SuiTxBlock();
|
|
1760
|
-
|
|
1943
|
+
const resolvedArgs = await Promise.all(
|
|
1944
|
+
args.map(async (arg) => {
|
|
1945
|
+
if (typeof arg === "string") {
|
|
1946
|
+
return (await this.queryGetObject(arg))?.data;
|
|
1947
|
+
}
|
|
1948
|
+
return arg;
|
|
1949
|
+
})
|
|
1950
|
+
);
|
|
1951
|
+
txBlock.moveCall(queryTarget, resolvedArgs, typeArgs);
|
|
1761
1952
|
const query = await this.queryClient.fetchQuery({
|
|
1762
|
-
retry:
|
|
1953
|
+
retry: this.retryFn,
|
|
1763
1954
|
retryDelay: 1e3,
|
|
1764
1955
|
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1765
1956
|
queryFn: async () => {
|
|
@@ -1779,9 +1970,9 @@ var ScallopCache = class {
|
|
|
1779
1970
|
*/
|
|
1780
1971
|
async queryGetObject(objectId, options) {
|
|
1781
1972
|
return this.queryClient.fetchQuery({
|
|
1782
|
-
retry:
|
|
1973
|
+
retry: this.retryFn,
|
|
1783
1974
|
retryDelay: 1e3,
|
|
1784
|
-
queryKey: queryKeys.rpc.getObject(objectId,
|
|
1975
|
+
queryKey: queryKeys.rpc.getObject(objectId, options),
|
|
1785
1976
|
queryFn: async () => {
|
|
1786
1977
|
return await callWithRateLimit(
|
|
1787
1978
|
this.tokenBucket,
|
|
@@ -1804,7 +1995,7 @@ var ScallopCache = class {
|
|
|
1804
1995
|
if (objectIds.length === 0)
|
|
1805
1996
|
return [];
|
|
1806
1997
|
return this.queryClient.fetchQuery({
|
|
1807
|
-
retry:
|
|
1998
|
+
retry: this.retryFn,
|
|
1808
1999
|
retryDelay: 1e3,
|
|
1809
2000
|
queryKey: queryKeys.rpc.getObjects(
|
|
1810
2001
|
objectIds,
|
|
@@ -1812,10 +2003,28 @@ var ScallopCache = class {
|
|
|
1812
2003
|
options
|
|
1813
2004
|
),
|
|
1814
2005
|
queryFn: async () => {
|
|
1815
|
-
|
|
2006
|
+
const results = await callWithRateLimit(
|
|
1816
2007
|
this.tokenBucket,
|
|
1817
2008
|
async () => await this.suiKit.getObjects(objectIds, options)
|
|
1818
2009
|
);
|
|
2010
|
+
if (results) {
|
|
2011
|
+
results.forEach((result) => {
|
|
2012
|
+
this.queryClient.setQueriesData(
|
|
2013
|
+
{
|
|
2014
|
+
exact: false,
|
|
2015
|
+
queryKey: queryKeys.rpc.getObject(result.objectId, options)
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
data: result,
|
|
2019
|
+
error: null
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
updatedAt: Date.now()
|
|
2023
|
+
}
|
|
2024
|
+
);
|
|
2025
|
+
});
|
|
2026
|
+
}
|
|
2027
|
+
return results;
|
|
1819
2028
|
}
|
|
1820
2029
|
});
|
|
1821
2030
|
}
|
|
@@ -1826,7 +2035,7 @@ var ScallopCache = class {
|
|
|
1826
2035
|
*/
|
|
1827
2036
|
async queryGetOwnedObjects(input) {
|
|
1828
2037
|
return this.queryClient.fetchQuery({
|
|
1829
|
-
retry:
|
|
2038
|
+
retry: this.retryFn,
|
|
1830
2039
|
retryDelay: 1e3,
|
|
1831
2040
|
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1832
2041
|
queryFn: async () => {
|
|
@@ -1839,7 +2048,7 @@ var ScallopCache = class {
|
|
|
1839
2048
|
}
|
|
1840
2049
|
async queryGetDynamicFields(input) {
|
|
1841
2050
|
return this.queryClient.fetchQuery({
|
|
1842
|
-
retry:
|
|
2051
|
+
retry: this.retryFn,
|
|
1843
2052
|
retryDelay: 1e3,
|
|
1844
2053
|
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1845
2054
|
queryFn: async () => {
|
|
@@ -1852,7 +2061,7 @@ var ScallopCache = class {
|
|
|
1852
2061
|
}
|
|
1853
2062
|
async queryGetDynamicFieldObject(input) {
|
|
1854
2063
|
return this.queryClient.fetchQuery({
|
|
1855
|
-
retry:
|
|
2064
|
+
retry: this.retryFn,
|
|
1856
2065
|
retryDelay: (attemptIndex) => Math.min(1e3 * attemptIndex, 8e3),
|
|
1857
2066
|
queryKey: queryKeys.rpc.getDynamicFieldObject(input),
|
|
1858
2067
|
queryFn: async () => {
|
|
@@ -1865,7 +2074,7 @@ var ScallopCache = class {
|
|
|
1865
2074
|
}
|
|
1866
2075
|
async queryGetAllCoinBalances(owner) {
|
|
1867
2076
|
return this.queryClient.fetchQuery({
|
|
1868
|
-
retry:
|
|
2077
|
+
retry: this.retryFn,
|
|
1869
2078
|
retryDelay: 1e3,
|
|
1870
2079
|
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1871
2080
|
queryFn: async () => {
|
|
@@ -2559,10 +2768,10 @@ var ScallopAddress = class {
|
|
|
2559
2768
|
};
|
|
2560
2769
|
|
|
2561
2770
|
// src/models/scallopClient.ts
|
|
2562
|
-
var
|
|
2771
|
+
var import_utils26 = require("@mysten/sui/utils");
|
|
2563
2772
|
|
|
2564
2773
|
// src/models/scallopUtils.ts
|
|
2565
|
-
var
|
|
2774
|
+
var import_utils11 = require("@mysten/sui/utils");
|
|
2566
2775
|
var import_pyth_sui_js = require("@pythnetwork/pyth-sui-js");
|
|
2567
2776
|
|
|
2568
2777
|
// src/queries/borrowIncentiveQuery.ts
|
|
@@ -2584,7 +2793,7 @@ var getBorrowIncentivePools = async (query, borrowIncentiveCoinNames = [
|
|
|
2584
2793
|
...SUPPORT_BORROW_INCENTIVE_POOLS
|
|
2585
2794
|
], indexer = false, marketPools, coinPrices) => {
|
|
2586
2795
|
const borrowIncentivePools = {};
|
|
2587
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
2796
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices, indexer })).pools;
|
|
2588
2797
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools });
|
|
2589
2798
|
if (indexer) {
|
|
2590
2799
|
const borrowIncentivePoolsIndexer = await query.indexer.getBorrowIncentivePools();
|
|
@@ -2757,7 +2966,7 @@ var getBindedVeScaKey = async ({
|
|
|
2757
2966
|
};
|
|
2758
2967
|
|
|
2759
2968
|
// src/queries/coreQuery.ts
|
|
2760
|
-
var
|
|
2969
|
+
var import_utils6 = require("@mysten/sui/utils");
|
|
2761
2970
|
var import_bignumber3 = __toESM(require("bignumber.js"));
|
|
2762
2971
|
|
|
2763
2972
|
// src/queries/supplyLimitQuery.ts
|
|
@@ -2817,9 +3026,14 @@ var isolatedAssetZod = import_zod2.z.object({
|
|
|
2817
3026
|
})
|
|
2818
3027
|
});
|
|
2819
3028
|
var isolatedAssetKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
2820
|
-
var getIsolatedAssets = async (
|
|
3029
|
+
var getIsolatedAssets = async (query) => {
|
|
3030
|
+
if (SUPPORT_POOLS.every((t) => !!POOL_ADDRESSES[t])) {
|
|
3031
|
+
return SUPPORT_POOLS.filter(
|
|
3032
|
+
(t) => !!POOL_ADDRESSES[t]?.isolatedAssetKey && !!POOL_ADDRESSES[t]?.coinType
|
|
3033
|
+
).map((t) => POOL_ADDRESSES[t]?.coinType);
|
|
3034
|
+
}
|
|
2821
3035
|
try {
|
|
2822
|
-
const marketObject = address.get("core.market");
|
|
3036
|
+
const marketObject = query.address.get("core.market");
|
|
2823
3037
|
const isolatedAssets = [];
|
|
2824
3038
|
if (!marketObject)
|
|
2825
3039
|
return isolatedAssets;
|
|
@@ -2829,7 +3043,7 @@ var getIsolatedAssets = async (address) => {
|
|
|
2829
3043
|
return dynamicField.name.type === isolatedAssetKeyType;
|
|
2830
3044
|
};
|
|
2831
3045
|
do {
|
|
2832
|
-
const response = await
|
|
3046
|
+
const response = await query.cache.queryGetDynamicFields({
|
|
2833
3047
|
parentId: marketObject,
|
|
2834
3048
|
cursor: nextCursor,
|
|
2835
3049
|
limit: 10
|
|
@@ -2852,32 +3066,30 @@ var getIsolatedAssets = async (address) => {
|
|
|
2852
3066
|
}
|
|
2853
3067
|
};
|
|
2854
3068
|
var isIsolatedAsset = async (utils, coinName) => {
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
3069
|
+
if (POOL_ADDRESSES[coinName]) {
|
|
3070
|
+
return !!POOL_ADDRESSES[coinName].isolatedAssetKey;
|
|
3071
|
+
}
|
|
3072
|
+
const marketObject = utils.address.get("core.market");
|
|
3073
|
+
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
3074
|
+
"getDynamicFields",
|
|
3075
|
+
marketObject
|
|
3076
|
+
]);
|
|
3077
|
+
if (cachedData) {
|
|
3078
|
+
const coinType2 = utils.parseCoinType(coinName);
|
|
3079
|
+
return cachedData.includes(coinType2);
|
|
3080
|
+
}
|
|
3081
|
+
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
3082
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
3083
|
+
parentId: marketObject,
|
|
3084
|
+
name: {
|
|
3085
|
+
type: isolatedAssetKeyType,
|
|
3086
|
+
value: coinType
|
|
2864
3087
|
}
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
name: {
|
|
2869
|
-
type: isolatedAssetKeyType,
|
|
2870
|
-
value: coinType
|
|
2871
|
-
}
|
|
2872
|
-
});
|
|
2873
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2874
|
-
if (!parsedData.success)
|
|
2875
|
-
return false;
|
|
2876
|
-
return parsedData.data.fields.value;
|
|
2877
|
-
} catch (e) {
|
|
2878
|
-
console.error(e);
|
|
3088
|
+
});
|
|
3089
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
3090
|
+
if (!parsedData.success)
|
|
2879
3091
|
return false;
|
|
2880
|
-
|
|
3092
|
+
return parsedData.data.fields.value;
|
|
2881
3093
|
};
|
|
2882
3094
|
|
|
2883
3095
|
// src/queries/borrowLimitQuery.ts
|
|
@@ -2920,6 +3132,17 @@ var getBorrowLimit = async (utils, poolName) => {
|
|
|
2920
3132
|
}
|
|
2921
3133
|
};
|
|
2922
3134
|
|
|
3135
|
+
// src/queries/objectsQuery.ts
|
|
3136
|
+
var queryMultipleObjects = async (cache, objectIds, options, partitionSize = 50) => {
|
|
3137
|
+
const objectIdsPartition = partitionArray(objectIds, partitionSize);
|
|
3138
|
+
const objects = [];
|
|
3139
|
+
for (const objectIds2 of objectIdsPartition) {
|
|
3140
|
+
const result = await cache.queryGetObjects(objectIds2, options);
|
|
3141
|
+
objects.push(...result);
|
|
3142
|
+
}
|
|
3143
|
+
return objects;
|
|
3144
|
+
};
|
|
3145
|
+
|
|
2923
3146
|
// src/queries/coreQuery.ts
|
|
2924
3147
|
var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
2925
3148
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
@@ -2951,7 +3174,7 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2951
3174
|
const queryResult = await query.cache.queryInspectTxn({ queryTarget, args });
|
|
2952
3175
|
const marketData = queryResult?.events[0]?.parsedJson;
|
|
2953
3176
|
for (const pool of marketData?.pools ?? []) {
|
|
2954
|
-
const coinType = (0,
|
|
3177
|
+
const coinType = (0, import_utils6.normalizeStructTag)(pool.type.name);
|
|
2955
3178
|
const poolCoinName = query.utils.parseCoinNameFromType(coinType);
|
|
2956
3179
|
const coinPrice = coinPrices[poolCoinName] ?? 0;
|
|
2957
3180
|
if (!SUPPORT_POOLS.includes(poolCoinName)) {
|
|
@@ -2976,19 +3199,15 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2976
3199
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
2977
3200
|
highKink: pool.highKink,
|
|
2978
3201
|
midKink: pool.midKink,
|
|
2979
|
-
minBorrowAmount: pool.minBorrowAmount
|
|
3202
|
+
minBorrowAmount: pool.minBorrowAmount,
|
|
3203
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
3204
|
+
supplyLimit: await getSupplyLimit(query.utils, poolCoinName) ?? "0",
|
|
3205
|
+
borrowLimit: await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2980
3206
|
});
|
|
2981
3207
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
2982
3208
|
query.utils,
|
|
2983
3209
|
parsedMarketPoolData
|
|
2984
3210
|
);
|
|
2985
|
-
const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
|
|
2986
|
-
const maxSupplyCoin = (0, import_bignumber3.default)(
|
|
2987
|
-
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2988
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2989
|
-
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
2990
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2991
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2992
3211
|
pools[poolCoinName] = {
|
|
2993
3212
|
coinName: poolCoinName,
|
|
2994
3213
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -2998,7 +3217,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2998
3217
|
query.utils.parseMarketCoinName(poolCoinName)
|
|
2999
3218
|
),
|
|
3000
3219
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3001
|
-
coinDecimal,
|
|
3002
3220
|
coinPrice,
|
|
3003
3221
|
highKink: parsedMarketPoolData.highKink,
|
|
3004
3222
|
midKink: parsedMarketPoolData.midKink,
|
|
@@ -3007,15 +3225,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3007
3225
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
3008
3226
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
3009
3227
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
3010
|
-
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
3011
|
-
// isIsolated: false,
|
|
3012
|
-
maxSupplyCoin,
|
|
3013
|
-
maxBorrowCoin,
|
|
3014
3228
|
...calculatedMarketPoolData
|
|
3015
3229
|
};
|
|
3016
3230
|
}
|
|
3017
3231
|
for (const collateral of marketData?.collaterals ?? []) {
|
|
3018
|
-
const coinType = (0,
|
|
3232
|
+
const coinType = (0, import_utils6.normalizeStructTag)(collateral.type.name);
|
|
3019
3233
|
const collateralCoinName = query.utils.parseCoinNameFromType(coinType);
|
|
3020
3234
|
const coinPrice = coinPrices[collateralCoinName] ?? 0;
|
|
3021
3235
|
if (!SUPPORT_COLLATERALS.includes(collateralCoinName)) {
|
|
@@ -3026,10 +3240,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3026
3240
|
collateralFactor: collateral.collateralFactor,
|
|
3027
3241
|
liquidationFactor: collateral.liquidationFactor,
|
|
3028
3242
|
liquidationDiscount: collateral.liquidationDiscount,
|
|
3029
|
-
|
|
3243
|
+
liquidationPenalty: collateral.liquidationPanelty,
|
|
3030
3244
|
liquidationReserveFactor: collateral.liquidationReserveFactor,
|
|
3031
3245
|
maxCollateralAmount: collateral.maxCollateralAmount,
|
|
3032
|
-
totalCollateralAmount: collateral.totalCollateralAmount
|
|
3246
|
+
totalCollateralAmount: collateral.totalCollateralAmount,
|
|
3247
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3033
3248
|
});
|
|
3034
3249
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3035
3250
|
query.utils,
|
|
@@ -3041,14 +3256,12 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3041
3256
|
coinType,
|
|
3042
3257
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3043
3258
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3044
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3045
3259
|
coinPrice,
|
|
3046
3260
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3047
3261
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3048
3262
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3049
|
-
|
|
3263
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3050
3264
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3051
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3052
3265
|
...calculatedMarketCollateralData
|
|
3053
3266
|
};
|
|
3054
3267
|
}
|
|
@@ -3058,44 +3271,216 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3058
3271
|
// data: marketData,
|
|
3059
3272
|
};
|
|
3060
3273
|
};
|
|
3061
|
-
var
|
|
3062
|
-
const
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3274
|
+
var queryRequiredMarketObjects = async (query, poolCoinNames) => {
|
|
3275
|
+
const tasks = poolCoinNames.map((t) => ({
|
|
3276
|
+
poolCoinName: t,
|
|
3277
|
+
balanceSheet: POOL_ADDRESSES[t]?.lendingPoolAddress,
|
|
3278
|
+
collateralStat: POOL_ADDRESSES[t]?.collateralPoolAddress,
|
|
3279
|
+
borrowDynamic: POOL_ADDRESSES[t]?.borrowDynamic,
|
|
3280
|
+
interestModel: POOL_ADDRESSES[t]?.interestModel,
|
|
3281
|
+
riskModel: POOL_ADDRESSES[t]?.riskModel,
|
|
3282
|
+
borrowFeeKey: POOL_ADDRESSES[t]?.borrowFeeKey,
|
|
3283
|
+
supplyLimitKey: POOL_ADDRESSES[t]?.supplyLimitKey,
|
|
3284
|
+
borrowLimitKey: POOL_ADDRESSES[t]?.borrowLimitKey,
|
|
3285
|
+
isolatedAssetKey: POOL_ADDRESSES[t]?.isolatedAssetKey
|
|
3286
|
+
}));
|
|
3287
|
+
const [
|
|
3288
|
+
balanceSheetObjects,
|
|
3289
|
+
collateralStatObjects,
|
|
3290
|
+
borrowDynamicObjects,
|
|
3291
|
+
interestModelObjects,
|
|
3292
|
+
riskModelObjects,
|
|
3293
|
+
borrowFeeObjects,
|
|
3294
|
+
supplyLimitObjects,
|
|
3295
|
+
borrowLimitObjects,
|
|
3296
|
+
isolatedAssetObjects
|
|
3297
|
+
] = await Promise.all([
|
|
3298
|
+
queryMultipleObjects(
|
|
3299
|
+
query.cache,
|
|
3300
|
+
tasks.map((task) => task.balanceSheet).filter((t) => !!t)
|
|
3301
|
+
),
|
|
3302
|
+
queryMultipleObjects(
|
|
3303
|
+
query.cache,
|
|
3304
|
+
tasks.map((task) => task.collateralStat).filter((t) => !!t)
|
|
3305
|
+
),
|
|
3306
|
+
queryMultipleObjects(
|
|
3307
|
+
query.cache,
|
|
3308
|
+
tasks.map((task) => task.borrowDynamic).filter((t) => !!t)
|
|
3309
|
+
),
|
|
3310
|
+
queryMultipleObjects(
|
|
3311
|
+
query.cache,
|
|
3312
|
+
tasks.map((task) => task.interestModel).filter((t) => !!t)
|
|
3313
|
+
),
|
|
3314
|
+
queryMultipleObjects(
|
|
3315
|
+
query.cache,
|
|
3316
|
+
tasks.map((task) => task.riskModel).filter((t) => !!t)
|
|
3317
|
+
),
|
|
3318
|
+
queryMultipleObjects(
|
|
3319
|
+
query.cache,
|
|
3320
|
+
tasks.map((task) => task.borrowFeeKey).filter((t) => !!t)
|
|
3321
|
+
),
|
|
3322
|
+
queryMultipleObjects(
|
|
3323
|
+
query.cache,
|
|
3324
|
+
tasks.map((task) => task.supplyLimitKey).filter((t) => !!t)
|
|
3325
|
+
),
|
|
3326
|
+
queryMultipleObjects(
|
|
3327
|
+
query.cache,
|
|
3328
|
+
tasks.map((task) => task.borrowLimitKey).filter((t) => !!t)
|
|
3329
|
+
),
|
|
3330
|
+
queryMultipleObjects(
|
|
3331
|
+
query.cache,
|
|
3332
|
+
tasks.map((task) => task.isolatedAssetKey).filter((t) => !!t)
|
|
3333
|
+
)
|
|
3334
|
+
]);
|
|
3335
|
+
const mapObjects = (tasks2, fetchedObjects) => {
|
|
3336
|
+
const resultMap = {};
|
|
3337
|
+
let fetchedIndex = 0;
|
|
3338
|
+
for (const task of tasks2) {
|
|
3339
|
+
const key = task[Object.keys(task)[1]];
|
|
3340
|
+
if (key) {
|
|
3341
|
+
resultMap[task.poolCoinName] = fetchedObjects[fetchedIndex];
|
|
3342
|
+
fetchedIndex++;
|
|
3343
|
+
}
|
|
3344
|
+
}
|
|
3345
|
+
return resultMap;
|
|
3346
|
+
};
|
|
3347
|
+
const balanceSheetMap = mapObjects(tasks, balanceSheetObjects);
|
|
3348
|
+
const collateralStatMap = mapObjects(tasks, collateralStatObjects);
|
|
3349
|
+
const borrowDynamicMap = mapObjects(tasks, borrowDynamicObjects);
|
|
3350
|
+
const interestModelMap = mapObjects(tasks, interestModelObjects);
|
|
3351
|
+
const riskModelMap = mapObjects(tasks, riskModelObjects);
|
|
3352
|
+
const borrowFeeMap = mapObjects(tasks, borrowFeeObjects);
|
|
3353
|
+
const supplyLimitMap = mapObjects(tasks, supplyLimitObjects);
|
|
3354
|
+
const borrowLimitMap = mapObjects(tasks, borrowLimitObjects);
|
|
3355
|
+
const isolatedAssetMap = mapObjects(tasks, isolatedAssetObjects);
|
|
3356
|
+
return poolCoinNames.reduce(
|
|
3357
|
+
(acc, name) => {
|
|
3358
|
+
acc[name] = {
|
|
3359
|
+
balanceSheet: balanceSheetMap[name],
|
|
3360
|
+
collateralStat: collateralStatMap[name],
|
|
3361
|
+
borrowDynamic: borrowDynamicMap[name],
|
|
3362
|
+
interestModel: interestModelMap[name],
|
|
3363
|
+
riskModel: riskModelMap[name],
|
|
3364
|
+
borrowFeeKey: borrowFeeMap[name],
|
|
3365
|
+
supplyLimitKey: supplyLimitMap[name],
|
|
3366
|
+
borrowLimitKey: borrowLimitMap[name],
|
|
3367
|
+
isolatedAssetKey: isolatedAssetMap[name]
|
|
3368
|
+
};
|
|
3369
|
+
return acc;
|
|
3370
|
+
},
|
|
3371
|
+
{}
|
|
3372
|
+
);
|
|
3373
|
+
};
|
|
3374
|
+
var getMarketPools = async (query, poolCoinNames, indexer = false, coinPrices) => {
|
|
3066
3375
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
3067
|
-
const
|
|
3376
|
+
const pools = {};
|
|
3377
|
+
const collaterals = {};
|
|
3068
3378
|
if (indexer) {
|
|
3069
|
-
const
|
|
3070
|
-
const
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3379
|
+
const marketIndexer = await query.indexer.getMarket();
|
|
3380
|
+
const updatePools = (item) => {
|
|
3381
|
+
item.coinPrice = coinPrices[item.coinName] ?? item.coinPrice;
|
|
3382
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
3383
|
+
pools[item.coinName] = item;
|
|
3384
|
+
};
|
|
3385
|
+
const updateCollaterals = (item) => {
|
|
3386
|
+
item.coinPrice = coinPrices[item.coinName] ?? item.coinPrice;
|
|
3387
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
3388
|
+
collaterals[item.coinName] = item;
|
|
3389
|
+
};
|
|
3390
|
+
Object.values(marketIndexer.pools).forEach(updatePools);
|
|
3391
|
+
Object.values(marketIndexer.collaterals).forEach(updateCollaterals);
|
|
3392
|
+
return {
|
|
3393
|
+
pools,
|
|
3394
|
+
collaterals
|
|
3078
3395
|
};
|
|
3079
|
-
Object.values(marketPoolsIndexer).forEach(updateMarketPool);
|
|
3080
|
-
return marketPools;
|
|
3081
3396
|
}
|
|
3397
|
+
const requiredObjects = await queryRequiredMarketObjects(
|
|
3398
|
+
query,
|
|
3399
|
+
poolCoinNames
|
|
3400
|
+
);
|
|
3082
3401
|
await Promise.allSettled(
|
|
3083
3402
|
poolCoinNames.map(async (poolCoinName) => {
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3403
|
+
try {
|
|
3404
|
+
const result = await getMarketPool(
|
|
3405
|
+
query,
|
|
3406
|
+
poolCoinName,
|
|
3407
|
+
indexer,
|
|
3408
|
+
coinPrices?.[poolCoinName] ?? 0,
|
|
3409
|
+
requiredObjects[poolCoinName]
|
|
3410
|
+
);
|
|
3411
|
+
if (result?.marketPool) {
|
|
3412
|
+
pools[poolCoinName] = result?.marketPool;
|
|
3413
|
+
}
|
|
3414
|
+
if (result?.collateral) {
|
|
3415
|
+
collaterals[poolCoinName] = result.collateral;
|
|
3416
|
+
}
|
|
3417
|
+
} catch (e) {
|
|
3418
|
+
console.error(e);
|
|
3093
3419
|
}
|
|
3094
3420
|
})
|
|
3095
3421
|
);
|
|
3096
|
-
return
|
|
3422
|
+
return {
|
|
3423
|
+
pools,
|
|
3424
|
+
collaterals
|
|
3425
|
+
};
|
|
3426
|
+
};
|
|
3427
|
+
var parseMarketPoolObjects = ({
|
|
3428
|
+
balanceSheet,
|
|
3429
|
+
borrowDynamic,
|
|
3430
|
+
collateralStat,
|
|
3431
|
+
interestModel,
|
|
3432
|
+
riskModel,
|
|
3433
|
+
borrowFeeKey,
|
|
3434
|
+
supplyLimitKey,
|
|
3435
|
+
borrowLimitKey,
|
|
3436
|
+
isolatedAssetKey
|
|
3437
|
+
}) => {
|
|
3438
|
+
const _balanceSheet = parseObjectAs(balanceSheet);
|
|
3439
|
+
const _interestModel = parseObjectAs(interestModel);
|
|
3440
|
+
const _borrowDynamic = parseObjectAs(borrowDynamic);
|
|
3441
|
+
const _borrowFee = parseObjectAs(borrowFeeKey);
|
|
3442
|
+
const _supplyLimit = supplyLimitKey ? parseObjectAs(supplyLimitKey) : "0";
|
|
3443
|
+
const _borrowLimit = borrowLimitKey ? parseObjectAs(borrowLimitKey) : "0";
|
|
3444
|
+
const _riskModel = riskModel ? parseObjectAs(riskModel) : void 0;
|
|
3445
|
+
const _collateralStat = collateralStat ? parseObjectAs(collateralStat) : void 0;
|
|
3446
|
+
const parsedOriginMarketCollateral = _riskModel && _collateralStat ? {
|
|
3447
|
+
type: _interestModel.type.fields,
|
|
3448
|
+
isIsolated: !!isolatedAssetKey,
|
|
3449
|
+
collateralFactor: _riskModel.collateral_factor.fields,
|
|
3450
|
+
liquidationFactor: _riskModel.liquidation_factor.fields,
|
|
3451
|
+
liquidationPenalty: _riskModel.liquidation_penalty.fields,
|
|
3452
|
+
liquidationDiscount: _riskModel.liquidation_discount.fields,
|
|
3453
|
+
liquidationReserveFactor: _riskModel.liquidation_revenue_factor.fields,
|
|
3454
|
+
maxCollateralAmount: _riskModel.max_collateral_amount,
|
|
3455
|
+
totalCollateralAmount: _collateralStat.amount
|
|
3456
|
+
} : void 0;
|
|
3457
|
+
return {
|
|
3458
|
+
type: _interestModel.type.fields,
|
|
3459
|
+
maxBorrowRate: _interestModel.max_borrow_rate.fields,
|
|
3460
|
+
interestRate: _borrowDynamic.interest_rate.fields,
|
|
3461
|
+
interestRateScale: _borrowDynamic.interest_rate_scale,
|
|
3462
|
+
borrowIndex: _borrowDynamic.borrow_index,
|
|
3463
|
+
lastUpdated: _borrowDynamic.last_updated,
|
|
3464
|
+
cash: _balanceSheet.cash,
|
|
3465
|
+
debt: _balanceSheet.debt,
|
|
3466
|
+
marketCoinSupply: _balanceSheet.market_coin_supply,
|
|
3467
|
+
reserve: _balanceSheet.revenue,
|
|
3468
|
+
reserveFactor: _interestModel.revenue_factor.fields,
|
|
3469
|
+
borrowWeight: _interestModel.borrow_weight.fields,
|
|
3470
|
+
borrowFeeRate: _borrowFee,
|
|
3471
|
+
baseBorrowRatePerSec: _interestModel.base_borrow_rate_per_sec.fields,
|
|
3472
|
+
borrowRateOnHighKink: _interestModel.borrow_rate_on_high_kink.fields,
|
|
3473
|
+
borrowRateOnMidKink: _interestModel.borrow_rate_on_mid_kink.fields,
|
|
3474
|
+
highKink: _interestModel.high_kink.fields,
|
|
3475
|
+
midKink: _interestModel.mid_kink.fields,
|
|
3476
|
+
minBorrowAmount: _interestModel.min_borrow_amount,
|
|
3477
|
+
isIsolated: !!isolatedAssetKey,
|
|
3478
|
+
supplyLimit: _supplyLimit,
|
|
3479
|
+
borrowLimit: _borrowLimit,
|
|
3480
|
+
parsedOriginMarketCollateral
|
|
3481
|
+
};
|
|
3097
3482
|
};
|
|
3098
|
-
var getMarketPool = async (query, poolCoinName, indexer = false,
|
|
3483
|
+
var getMarketPool = async (query, poolCoinName, indexer = false, coinPrice, requiredObjects) => {
|
|
3099
3484
|
coinPrice = coinPrice ?? (await query.utils.getCoinPrices())?.[poolCoinName];
|
|
3100
3485
|
if (indexer) {
|
|
3101
3486
|
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
@@ -3106,135 +3491,70 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
3106
3491
|
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3107
3492
|
marketPoolIndexer.coinName
|
|
3108
3493
|
);
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
3119
|
-
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
3120
|
-
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3121
|
-
parentId: balanceSheetParentId,
|
|
3122
|
-
name: {
|
|
3123
|
-
type: "0x1::type_name::TypeName",
|
|
3124
|
-
value: {
|
|
3125
|
-
name: coinType.substring(2)
|
|
3126
|
-
}
|
|
3127
|
-
}
|
|
3128
|
-
});
|
|
3129
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
3130
|
-
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
3131
|
-
throw new Error(
|
|
3132
|
-
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3133
|
-
);
|
|
3134
|
-
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
3135
|
-
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
3136
|
-
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3137
|
-
parentId: borrowIndexParentId,
|
|
3138
|
-
name: {
|
|
3139
|
-
type: "0x1::type_name::TypeName",
|
|
3140
|
-
value: {
|
|
3141
|
-
name: coinType.substring(2)
|
|
3142
|
-
}
|
|
3143
|
-
}
|
|
3144
|
-
});
|
|
3145
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
3146
|
-
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
3147
|
-
throw new Error(
|
|
3148
|
-
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
3149
|
-
);
|
|
3150
|
-
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
3151
|
-
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
3152
|
-
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3153
|
-
parentId: interestModelParentId,
|
|
3154
|
-
name: {
|
|
3155
|
-
type: "0x1::type_name::TypeName",
|
|
3156
|
-
value: {
|
|
3157
|
-
name: coinType.substring(2)
|
|
3158
|
-
}
|
|
3494
|
+
let marketCollateralIndexer = void 0;
|
|
3495
|
+
if (SUPPORT_COLLATERALS.includes(poolCoinName)) {
|
|
3496
|
+
marketCollateralIndexer = await query.indexer.getMarketCollateral(
|
|
3497
|
+
poolCoinName
|
|
3498
|
+
);
|
|
3499
|
+
marketCollateralIndexer.coinPrice = coinPrice ?? marketCollateralIndexer.coinPrice;
|
|
3500
|
+
marketCollateralIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3501
|
+
marketCollateralIndexer.coinName
|
|
3502
|
+
);
|
|
3159
3503
|
}
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
const
|
|
3167
|
-
const
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
name: {
|
|
3171
|
-
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
3172
|
-
value: {
|
|
3173
|
-
type: {
|
|
3174
|
-
name: coinType.substring(2)
|
|
3175
|
-
}
|
|
3176
|
-
}
|
|
3177
|
-
}
|
|
3178
|
-
});
|
|
3179
|
-
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
3180
|
-
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
3181
|
-
return { value: "0" };
|
|
3182
|
-
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
3183
|
-
};
|
|
3184
|
-
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
3185
|
-
type: interestModel.type.fields,
|
|
3186
|
-
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
3187
|
-
interestRate: borrowIndex.interest_rate.fields,
|
|
3188
|
-
interestRateScale: borrowIndex.interest_rate_scale,
|
|
3189
|
-
borrowIndex: borrowIndex.borrow_index,
|
|
3190
|
-
lastUpdated: borrowIndex.last_updated,
|
|
3191
|
-
cash: balanceSheet.cash,
|
|
3192
|
-
debt: balanceSheet.debt,
|
|
3193
|
-
marketCoinSupply: balanceSheet.market_coin_supply,
|
|
3194
|
-
reserve: balanceSheet.revenue,
|
|
3195
|
-
reserveFactor: interestModel.revenue_factor.fields,
|
|
3196
|
-
borrowWeight: interestModel.borrow_weight.fields,
|
|
3197
|
-
borrowFeeRate: await getBorrowFee(),
|
|
3198
|
-
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
3199
|
-
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
3200
|
-
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
3201
|
-
highKink: interestModel.high_kink.fields,
|
|
3202
|
-
midKink: interestModel.mid_kink.fields,
|
|
3203
|
-
minBorrowAmount: interestModel.min_borrow_amount
|
|
3204
|
-
});
|
|
3504
|
+
return {
|
|
3505
|
+
marketPool: marketPoolIndexer,
|
|
3506
|
+
collateral: marketCollateralIndexer
|
|
3507
|
+
};
|
|
3508
|
+
}
|
|
3509
|
+
requiredObjects ?? (requiredObjects = (await queryRequiredMarketObjects(query, [poolCoinName]))[poolCoinName]);
|
|
3510
|
+
const parsedMarketPoolObjects = parseMarketPoolObjects(requiredObjects);
|
|
3511
|
+
const parsedMarketPoolData = parseOriginMarketPoolData(
|
|
3512
|
+
parsedMarketPoolObjects
|
|
3513
|
+
);
|
|
3205
3514
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
3206
3515
|
query.utils,
|
|
3207
3516
|
parsedMarketPoolData
|
|
3208
3517
|
);
|
|
3209
|
-
const
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
3214
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3215
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3216
|
-
return {
|
|
3518
|
+
const parsedMarketCollateralData = parsedMarketPoolObjects.parsedOriginMarketCollateral ? parseOriginMarketCollateralData(
|
|
3519
|
+
parsedMarketPoolObjects.parsedOriginMarketCollateral
|
|
3520
|
+
) : void 0;
|
|
3521
|
+
const basePoolData = () => ({
|
|
3217
3522
|
coinName: poolCoinName,
|
|
3218
3523
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
3219
|
-
coinType: query.utils.parseCoinType(poolCoinName),
|
|
3220
3524
|
marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3525
|
+
coinType: query.utils.parseCoinType(poolCoinName)
|
|
3526
|
+
});
|
|
3527
|
+
return {
|
|
3528
|
+
marketPool: {
|
|
3529
|
+
...basePoolData(),
|
|
3530
|
+
sCoinType: query.utils.parseSCoinType(
|
|
3531
|
+
query.utils.parseMarketCoinName(poolCoinName)
|
|
3532
|
+
),
|
|
3533
|
+
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3534
|
+
coinPrice: coinPrice ?? 0,
|
|
3535
|
+
highKink: parsedMarketPoolData.highKink,
|
|
3536
|
+
midKink: parsedMarketPoolData.midKink,
|
|
3537
|
+
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
3538
|
+
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
3539
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
3540
|
+
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
3541
|
+
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
3542
|
+
...calculatedMarketPoolData
|
|
3543
|
+
},
|
|
3544
|
+
collateral: parsedMarketCollateralData ? {
|
|
3545
|
+
...basePoolData(),
|
|
3546
|
+
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3547
|
+
coinPrice,
|
|
3548
|
+
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3549
|
+
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3550
|
+
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3551
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3552
|
+
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3553
|
+
...calculateMarketCollateralData(
|
|
3554
|
+
query.utils,
|
|
3555
|
+
parsedMarketCollateralData
|
|
3556
|
+
)
|
|
3557
|
+
} : void 0
|
|
3238
3558
|
};
|
|
3239
3559
|
};
|
|
3240
3560
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
@@ -3329,10 +3649,11 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3329
3649
|
collateralFactor: riskModel.collateral_factor.fields,
|
|
3330
3650
|
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3331
3651
|
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3332
|
-
|
|
3652
|
+
liquidationPenalty: riskModel.liquidation_penalty.fields,
|
|
3333
3653
|
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3334
3654
|
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3335
|
-
totalCollateralAmount: collateralStat.amount
|
|
3655
|
+
totalCollateralAmount: collateralStat.amount,
|
|
3656
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3336
3657
|
});
|
|
3337
3658
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3338
3659
|
query.utils,
|
|
@@ -3344,14 +3665,12 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3344
3665
|
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
3345
3666
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3346
3667
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3347
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3348
3668
|
coinPrice: coinPrice ?? 0,
|
|
3349
3669
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3350
3670
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3351
3671
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3352
|
-
|
|
3672
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3353
3673
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3354
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3355
3674
|
...calculatedMarketCollateralData
|
|
3356
3675
|
};
|
|
3357
3676
|
};
|
|
@@ -3592,10 +3911,10 @@ var getLendings = async (query, poolCoinNames = [...SUPPORT_POOLS], ownerAddress
|
|
|
3592
3911
|
(marketCoinName) => SUPPORT_SPOOLS.includes(marketCoinName)
|
|
3593
3912
|
);
|
|
3594
3913
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3595
|
-
const marketPools = await query.getMarketPools(poolCoinNames, {
|
|
3914
|
+
const marketPools = (await query.getMarketPools(poolCoinNames, {
|
|
3596
3915
|
indexer,
|
|
3597
3916
|
coinPrices
|
|
3598
|
-
});
|
|
3917
|
+
})).pools;
|
|
3599
3918
|
const spools = await query.getSpools(stakeMarketCoinNames, {
|
|
3600
3919
|
indexer,
|
|
3601
3920
|
marketPools,
|
|
@@ -3764,7 +4083,7 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
|
|
|
3764
4083
|
};
|
|
3765
4084
|
var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
3766
4085
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3767
|
-
const market = await query.
|
|
4086
|
+
const market = await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
3768
4087
|
const [coinAmounts, obligations] = await Promise.all([
|
|
3769
4088
|
query.getCoinAmounts(void 0, ownerAddress),
|
|
3770
4089
|
query.getObligations(ownerAddress)
|
|
@@ -3792,7 +4111,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3792
4111
|
const collateralAssetCoinNames = [
|
|
3793
4112
|
...SUPPORT_COLLATERALS
|
|
3794
4113
|
];
|
|
3795
|
-
market = market ?? await query.
|
|
4114
|
+
market = market ?? await query.getMarketPools(void 0, { indexer });
|
|
3796
4115
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools: market.pools });
|
|
3797
4116
|
coinAmounts = coinAmounts || await query.getCoinAmounts(coinNames, ownerAddress);
|
|
3798
4117
|
const [obligationQuery, borrowIncentivePools, borrowIncentiveAccounts] = await Promise.all([
|
|
@@ -4083,7 +4402,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
4083
4402
|
return obligationAccount;
|
|
4084
4403
|
};
|
|
4085
4404
|
var getTotalValueLocked = async (query, indexer = false) => {
|
|
4086
|
-
const market = await query.
|
|
4405
|
+
const market = await query.getMarketPools(void 0, { indexer });
|
|
4087
4406
|
let supplyValue = (0, import_bignumber5.default)(0);
|
|
4088
4407
|
let borrowValue = (0, import_bignumber5.default)(0);
|
|
4089
4408
|
if (indexer) {
|
|
@@ -4204,7 +4523,7 @@ var getPythPrices = async ({
|
|
|
4204
4523
|
};
|
|
4205
4524
|
var getAllCoinPrices = async (query, marketPools, coinPrices) => {
|
|
4206
4525
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
4207
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices });
|
|
4526
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices })).pools;
|
|
4208
4527
|
if (!marketPools) {
|
|
4209
4528
|
throw new Error(`Failed to fetch market pool for getAllCoinPrices`);
|
|
4210
4529
|
}
|
|
@@ -4329,13 +4648,13 @@ var getSCoinSwapRate = async (query, fromSCoin, toSCoin, underlyingCoinPrice) =>
|
|
|
4329
4648
|
};
|
|
4330
4649
|
|
|
4331
4650
|
// src/queries/spoolQuery.ts
|
|
4332
|
-
var
|
|
4651
|
+
var import_utils9 = require("@mysten/sui/utils");
|
|
4333
4652
|
var getSpools = async (query, stakeMarketCoinNames = [...SUPPORT_SPOOLS], indexer = false, marketPools, coinPrices) => {
|
|
4334
4653
|
const stakeCoinNames = stakeMarketCoinNames.map(
|
|
4335
4654
|
(stakeMarketCoinName) => query.utils.parseCoinName(stakeMarketCoinName)
|
|
4336
4655
|
);
|
|
4337
4656
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
4338
|
-
marketPools = marketPools ?? await query.getMarketPools(stakeCoinNames, { indexer });
|
|
4657
|
+
marketPools = marketPools ?? (await query.getMarketPools(stakeCoinNames, { indexer })).pools;
|
|
4339
4658
|
if (!marketPools)
|
|
4340
4659
|
throw new Error(`Fail to fetch marketPools for ${stakeCoinNames}`);
|
|
4341
4660
|
const spools = {};
|
|
@@ -4546,14 +4865,14 @@ var getStakeAccounts = async ({
|
|
|
4546
4865
|
svsui: stakeAccounts.svsui,
|
|
4547
4866
|
susdc: stakeAccounts.susdc
|
|
4548
4867
|
};
|
|
4549
|
-
const normalizedType = (0,
|
|
4868
|
+
const normalizedType = (0, import_utils9.normalizeStructTag)(type);
|
|
4550
4869
|
const stakeAccountArray = stakeMarketCoinTypeMap[reversedStakeMarketCoinTypes[normalizedType]];
|
|
4551
4870
|
if (stakeAccountArray) {
|
|
4552
4871
|
stakeAccountArray.push({
|
|
4553
4872
|
id,
|
|
4554
4873
|
type: normalizedType,
|
|
4555
4874
|
stakePoolId,
|
|
4556
|
-
stakeType: (0,
|
|
4875
|
+
stakeType: (0, import_utils9.normalizeStructTag)(stakeType),
|
|
4557
4876
|
staked,
|
|
4558
4877
|
index,
|
|
4559
4878
|
points,
|
|
@@ -4591,13 +4910,13 @@ var getStakePool = async ({
|
|
|
4591
4910
|
const lastUpdate = Number(fields.last_update);
|
|
4592
4911
|
stakePool = {
|
|
4593
4912
|
id,
|
|
4594
|
-
type: (0,
|
|
4913
|
+
type: (0, import_utils9.normalizeStructTag)(type),
|
|
4595
4914
|
maxPoint,
|
|
4596
4915
|
distributedPoint,
|
|
4597
4916
|
pointPerPeriod,
|
|
4598
4917
|
period,
|
|
4599
4918
|
maxStake,
|
|
4600
|
-
stakeType: (0,
|
|
4919
|
+
stakeType: (0, import_utils9.normalizeStructTag)(stakeType),
|
|
4601
4920
|
totalStaked,
|
|
4602
4921
|
index,
|
|
4603
4922
|
createdAt,
|
|
@@ -4636,7 +4955,7 @@ var getStakeRewardPool = async ({
|
|
|
4636
4955
|
const claimedRewards = Number(rewardPoolFields.claimed_rewards);
|
|
4637
4956
|
stakeRewardPool = {
|
|
4638
4957
|
id,
|
|
4639
|
-
type: (0,
|
|
4958
|
+
type: (0, import_utils9.normalizeStructTag)(type),
|
|
4640
4959
|
stakePoolId,
|
|
4641
4960
|
ratioNumerator,
|
|
4642
4961
|
ratioDenominator,
|
|
@@ -4819,6 +5138,96 @@ var getVeScaTreasuryInfo = async (utils) => {
|
|
|
4819
5138
|
};
|
|
4820
5139
|
};
|
|
4821
5140
|
|
|
5141
|
+
// src/queries/poolAddressesQuery.ts
|
|
5142
|
+
var getAllAddresses = async (query) => {
|
|
5143
|
+
const results = {};
|
|
5144
|
+
const marketId = query.address.get("core.market");
|
|
5145
|
+
const marketObject = (await query.cache.queryGetObject(marketId, {
|
|
5146
|
+
showContent: true
|
|
5147
|
+
}))?.data;
|
|
5148
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
5149
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
5150
|
+
const fields = marketObject.content.fields;
|
|
5151
|
+
const coinTypesPairs = SUPPORT_POOLS.reduce(
|
|
5152
|
+
(acc, pool) => {
|
|
5153
|
+
acc.push([pool, query.utils.parseCoinType(pool).substring(2)]);
|
|
5154
|
+
return acc;
|
|
5155
|
+
},
|
|
5156
|
+
[]
|
|
5157
|
+
);
|
|
5158
|
+
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
5159
|
+
const collateralStatsParentId = fields.collateral_stats.fields.table.fields.id.id;
|
|
5160
|
+
const borrowDynamicsParentid = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
5161
|
+
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
5162
|
+
const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
|
|
5163
|
+
const ADDRESS_TYPE = `0x1::type_name::TypeName`;
|
|
5164
|
+
const BORROW_FEE_TYPE = `0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da::market_dynamic_keys::BorrowFeeKey`;
|
|
5165
|
+
const SUPPLY_LIMIT_TYPE = `0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey`;
|
|
5166
|
+
const BORROW_LIMIT_TYPE = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::BorrowLimitKey`;
|
|
5167
|
+
const ISOLATED_ASSET_KEY = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
5168
|
+
const fetchDynamicObject = async (parentId, type, value) => {
|
|
5169
|
+
try {
|
|
5170
|
+
return (await query.cache.queryGetDynamicFieldObject({
|
|
5171
|
+
parentId,
|
|
5172
|
+
name: {
|
|
5173
|
+
type,
|
|
5174
|
+
value
|
|
5175
|
+
}
|
|
5176
|
+
}))?.data?.objectId;
|
|
5177
|
+
} catch (_e) {
|
|
5178
|
+
return void 0;
|
|
5179
|
+
}
|
|
5180
|
+
};
|
|
5181
|
+
await Promise.all(
|
|
5182
|
+
coinTypesPairs.map(async ([coinName, coinType]) => {
|
|
5183
|
+
const addresses = await Promise.all([
|
|
5184
|
+
fetchDynamicObject(balanceSheetParentId, ADDRESS_TYPE, {
|
|
5185
|
+
name: coinType
|
|
5186
|
+
}),
|
|
5187
|
+
fetchDynamicObject(collateralStatsParentId, ADDRESS_TYPE, {
|
|
5188
|
+
name: coinType
|
|
5189
|
+
}),
|
|
5190
|
+
fetchDynamicObject(borrowDynamicsParentid, ADDRESS_TYPE, {
|
|
5191
|
+
name: coinType
|
|
5192
|
+
}),
|
|
5193
|
+
fetchDynamicObject(interestModelParentId, ADDRESS_TYPE, {
|
|
5194
|
+
name: coinType
|
|
5195
|
+
}),
|
|
5196
|
+
fetchDynamicObject(riskModelParentId, ADDRESS_TYPE, {
|
|
5197
|
+
name: coinType
|
|
5198
|
+
}),
|
|
5199
|
+
fetchDynamicObject(marketId, BORROW_FEE_TYPE, coinType),
|
|
5200
|
+
fetchDynamicObject(marketId, SUPPLY_LIMIT_TYPE, coinType),
|
|
5201
|
+
fetchDynamicObject(marketId, BORROW_LIMIT_TYPE, coinType),
|
|
5202
|
+
fetchDynamicObject(marketId, ISOLATED_ASSET_KEY, coinType)
|
|
5203
|
+
]);
|
|
5204
|
+
const spool = query.address.get(
|
|
5205
|
+
// @ts-ignore
|
|
5206
|
+
`spool.pools.s${coinName}.id`
|
|
5207
|
+
);
|
|
5208
|
+
const rewardPool = query.address.get(
|
|
5209
|
+
// @ts-ignore
|
|
5210
|
+
`spool.pools.s${coinName}.rewardPoolId`
|
|
5211
|
+
);
|
|
5212
|
+
results[coinName] = {
|
|
5213
|
+
lendingPoolAddress: addresses[0],
|
|
5214
|
+
collateralPoolAddress: addresses[1],
|
|
5215
|
+
borrowDynamic: addresses[2],
|
|
5216
|
+
interestModel: addresses[3],
|
|
5217
|
+
riskModel: addresses[4],
|
|
5218
|
+
borrowFeeKey: addresses[5],
|
|
5219
|
+
supplyLimitKey: addresses[6],
|
|
5220
|
+
borrowLimitKey: addresses[7],
|
|
5221
|
+
isolatedAssetKey: addresses[8],
|
|
5222
|
+
spool,
|
|
5223
|
+
spoolReward: rewardPool
|
|
5224
|
+
};
|
|
5225
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
5226
|
+
})
|
|
5227
|
+
);
|
|
5228
|
+
return results;
|
|
5229
|
+
};
|
|
5230
|
+
|
|
4822
5231
|
// src/models/suiKit.ts
|
|
4823
5232
|
var import_sui_kit4 = require("@scallop-io/sui-kit");
|
|
4824
5233
|
var newSuiKit = (params) => {
|
|
@@ -4921,7 +5330,7 @@ var ScallopUtils = class {
|
|
|
4921
5330
|
throw Error(`Coin ${coinName} is not supported`);
|
|
4922
5331
|
}
|
|
4923
5332
|
if (coinName === "sui")
|
|
4924
|
-
return (0,
|
|
5333
|
+
return (0, import_utils11.normalizeStructTag)(`${coinPackageId}::sui::SUI`);
|
|
4925
5334
|
const wormHolePackageIds = [
|
|
4926
5335
|
this.address.get("core.coins.wusdc.id") ?? wormholeCoinIds.wusdc,
|
|
4927
5336
|
this.address.get("core.coins.wusdt.id") ?? wormholeCoinIds.wusdt,
|
|
@@ -5025,7 +5434,7 @@ var ScallopUtils = class {
|
|
|
5025
5434
|
return `${protocolObjectId}::reserve::MarketCoin<${coinType}>`;
|
|
5026
5435
|
}
|
|
5027
5436
|
parseCoinNameFromType(coinType) {
|
|
5028
|
-
coinType = (0,
|
|
5437
|
+
coinType = (0, import_utils11.normalizeStructTag)(coinType);
|
|
5029
5438
|
if (sCoinTypeToName[coinType]) {
|
|
5030
5439
|
return sCoinTypeToName[coinType];
|
|
5031
5440
|
}
|
|
@@ -5109,7 +5518,7 @@ var ScallopUtils = class {
|
|
|
5109
5518
|
* @param coinType - The coin type, default is 0x2::SUI::SUI.
|
|
5110
5519
|
* @return The selected transaction coin arguments.
|
|
5111
5520
|
*/
|
|
5112
|
-
async selectCoins(amount, coinType =
|
|
5521
|
+
async selectCoins(amount, coinType = import_utils11.SUI_TYPE_ARG, ownerAddress) {
|
|
5113
5522
|
ownerAddress = ownerAddress ?? this.suiKit.currentAddress();
|
|
5114
5523
|
const coins = await this.suiKit.suiInteractor.selectCoins(
|
|
5115
5524
|
ownerAddress,
|
|
@@ -5307,15 +5716,15 @@ var ScallopUtils = class {
|
|
|
5307
5716
|
};
|
|
5308
5717
|
|
|
5309
5718
|
// src/models/scallopBuilder.ts
|
|
5310
|
-
var
|
|
5719
|
+
var import_utils25 = require("@mysten/sui/utils");
|
|
5311
5720
|
|
|
5312
5721
|
// src/builders/coreBuilder.ts
|
|
5313
5722
|
var import_transactions = require("@mysten/sui/transactions");
|
|
5314
|
-
var
|
|
5723
|
+
var import_utils14 = require("@mysten/sui/utils");
|
|
5315
5724
|
var import_sui_kit5 = require("@scallop-io/sui-kit");
|
|
5316
5725
|
|
|
5317
5726
|
// src/builders/oracle.ts
|
|
5318
|
-
var
|
|
5727
|
+
var import_utils13 = require("@mysten/sui/utils");
|
|
5319
5728
|
var import_pyth_sui_js2 = require("@pythnetwork/pyth-sui-js");
|
|
5320
5729
|
var updateOracles = async (builder, txBlock, assetCoinNames, options = { usePythPullModel: true }) => {
|
|
5321
5730
|
const usePythPullModel = builder.params.usePythPullModel ?? options.usePythPullModel;
|
|
@@ -5431,27 +5840,27 @@ var priceUpdateRequest = (txBlock, packageId, xOracleId, coinType) => {
|
|
|
5431
5840
|
var confirmPriceUpdateRequest = (txBlock, packageId, xOracleId, request, coinType) => {
|
|
5432
5841
|
const target = `${packageId}::x_oracle::confirm_price_update_request`;
|
|
5433
5842
|
const typeArgs = [coinType];
|
|
5434
|
-
txBlock.moveCall(target, [xOracleId, request,
|
|
5843
|
+
txBlock.moveCall(target, [xOracleId, request, import_utils13.SUI_CLOCK_OBJECT_ID], typeArgs);
|
|
5435
5844
|
return txBlock;
|
|
5436
5845
|
};
|
|
5437
5846
|
var updateSupraPrice = (txBlock, packageId, request, holderId, registryId, coinType) => {
|
|
5438
5847
|
txBlock.moveCall(
|
|
5439
5848
|
`${packageId}::rule::set_price`,
|
|
5440
|
-
[request, holderId, registryId,
|
|
5849
|
+
[request, holderId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5441
5850
|
[coinType]
|
|
5442
5851
|
);
|
|
5443
5852
|
};
|
|
5444
5853
|
var updateSwitchboardPrice = (txBlock, packageId, request, aggregatorId, registryId, coinType) => {
|
|
5445
5854
|
txBlock.moveCall(
|
|
5446
5855
|
`${packageId}::rule::set_price`,
|
|
5447
|
-
[request, aggregatorId, registryId,
|
|
5856
|
+
[request, aggregatorId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5448
5857
|
[coinType]
|
|
5449
5858
|
);
|
|
5450
5859
|
};
|
|
5451
5860
|
var updatePythPrice = (txBlock, packageId, request, stateId, feedObjectId, registryId, coinType) => {
|
|
5452
5861
|
txBlock.moveCall(
|
|
5453
5862
|
`${packageId}::rule::set_price`,
|
|
5454
|
-
[request, stateId, feedObjectId, registryId,
|
|
5863
|
+
[request, stateId, feedObjectId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5455
5864
|
[coinType]
|
|
5456
5865
|
);
|
|
5457
5866
|
};
|
|
@@ -5522,7 +5931,7 @@ var generateCoreNormalMethod = ({
|
|
|
5522
5931
|
coreIds.coinDecimalsRegistry,
|
|
5523
5932
|
txBlock.pure.u64(amount),
|
|
5524
5933
|
coreIds.xOracle,
|
|
5525
|
-
|
|
5934
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5526
5935
|
],
|
|
5527
5936
|
[coinType]
|
|
5528
5937
|
);
|
|
@@ -5531,7 +5940,7 @@ var generateCoreNormalMethod = ({
|
|
|
5531
5940
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5532
5941
|
return txBlock.moveCall(
|
|
5533
5942
|
`${coreIds.protocolPkg}::mint::mint`,
|
|
5534
|
-
[coreIds.version, coreIds.market, coin,
|
|
5943
|
+
[coreIds.version, coreIds.market, coin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5535
5944
|
[coinType]
|
|
5536
5945
|
);
|
|
5537
5946
|
},
|
|
@@ -5539,7 +5948,7 @@ var generateCoreNormalMethod = ({
|
|
|
5539
5948
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5540
5949
|
return txBlock.moveCall(
|
|
5541
5950
|
`${coreIds.protocolPkg}::mint::mint_entry`,
|
|
5542
|
-
[coreIds.version, coreIds.market, coin,
|
|
5951
|
+
[coreIds.version, coreIds.market, coin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5543
5952
|
[coinType]
|
|
5544
5953
|
);
|
|
5545
5954
|
},
|
|
@@ -5547,7 +5956,7 @@ var generateCoreNormalMethod = ({
|
|
|
5547
5956
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5548
5957
|
return txBlock.moveCall(
|
|
5549
5958
|
`${coreIds.protocolPkg}::redeem::redeem`,
|
|
5550
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
5959
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5551
5960
|
[coinType]
|
|
5552
5961
|
);
|
|
5553
5962
|
},
|
|
@@ -5555,7 +5964,7 @@ var generateCoreNormalMethod = ({
|
|
|
5555
5964
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5556
5965
|
return txBlock.moveCall(
|
|
5557
5966
|
`${coreIds.protocolPkg}::redeem::redeem_entry`,
|
|
5558
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
5967
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5559
5968
|
[coinType]
|
|
5560
5969
|
);
|
|
5561
5970
|
},
|
|
@@ -5571,7 +5980,7 @@ var generateCoreNormalMethod = ({
|
|
|
5571
5980
|
coreIds.coinDecimalsRegistry,
|
|
5572
5981
|
amount,
|
|
5573
5982
|
coreIds.xOracle,
|
|
5574
|
-
|
|
5983
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5575
5984
|
],
|
|
5576
5985
|
[coinType]
|
|
5577
5986
|
);
|
|
@@ -5589,7 +5998,7 @@ var generateCoreNormalMethod = ({
|
|
|
5589
5998
|
borrowReferral,
|
|
5590
5999
|
txBlock.pure.u64(amount),
|
|
5591
6000
|
coreIds.xOracle,
|
|
5592
|
-
|
|
6001
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5593
6002
|
],
|
|
5594
6003
|
[coinType, referralWitnessType]
|
|
5595
6004
|
);
|
|
@@ -5606,7 +6015,7 @@ var generateCoreNormalMethod = ({
|
|
|
5606
6015
|
coreIds.coinDecimalsRegistry,
|
|
5607
6016
|
txBlock.pure.u64(amount),
|
|
5608
6017
|
coreIds.xOracle,
|
|
5609
|
-
|
|
6018
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5610
6019
|
],
|
|
5611
6020
|
[coinType]
|
|
5612
6021
|
);
|
|
@@ -5620,7 +6029,7 @@ var generateCoreNormalMethod = ({
|
|
|
5620
6029
|
obligation,
|
|
5621
6030
|
coreIds.market,
|
|
5622
6031
|
coin,
|
|
5623
|
-
|
|
6032
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5624
6033
|
],
|
|
5625
6034
|
[coinType]
|
|
5626
6035
|
);
|
|
@@ -5851,7 +6260,7 @@ var newCoreTxBlock = (builder, initTxBlock) => {
|
|
|
5851
6260
|
|
|
5852
6261
|
// src/builders/spoolBuilder.ts
|
|
5853
6262
|
var import_transactions2 = require("@mysten/sui/transactions");
|
|
5854
|
-
var
|
|
6263
|
+
var import_utils16 = require("@mysten/sui/utils");
|
|
5855
6264
|
var import_sui_kit6 = require("@scallop-io/sui-kit");
|
|
5856
6265
|
var requireStakeAccountIds = async (...params) => {
|
|
5857
6266
|
const [builder, txBlock, stakeMarketCoinName, stakeAccountId] = params;
|
|
@@ -5906,7 +6315,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5906
6315
|
);
|
|
5907
6316
|
return txBlock.moveCall(
|
|
5908
6317
|
`${spoolIds.spoolPkg}::user::new_spool_account`,
|
|
5909
|
-
[stakePoolId,
|
|
6318
|
+
[stakePoolId, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5910
6319
|
[marketCoinType]
|
|
5911
6320
|
);
|
|
5912
6321
|
},
|
|
@@ -5917,7 +6326,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5917
6326
|
);
|
|
5918
6327
|
txBlock.moveCall(
|
|
5919
6328
|
`${spoolIds.spoolPkg}::user::stake`,
|
|
5920
|
-
[stakePoolId, stakeAccount, coin,
|
|
6329
|
+
[stakePoolId, stakeAccount, coin, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5921
6330
|
[marketCoinType]
|
|
5922
6331
|
);
|
|
5923
6332
|
},
|
|
@@ -5928,7 +6337,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5928
6337
|
);
|
|
5929
6338
|
return txBlock.moveCall(
|
|
5930
6339
|
`${spoolIds.spoolPkg}::user::unstake`,
|
|
5931
|
-
[stakePoolId, stakeAccount, amount,
|
|
6340
|
+
[stakePoolId, stakeAccount, amount, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5932
6341
|
[marketCoinType]
|
|
5933
6342
|
);
|
|
5934
6343
|
},
|
|
@@ -5944,7 +6353,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5944
6353
|
const rewardCoinType = builder.utils.parseCoinType(rewardCoinName);
|
|
5945
6354
|
return txBlock.moveCall(
|
|
5946
6355
|
`${spoolIds.spoolPkg}::user::redeem_rewards`,
|
|
5947
|
-
[stakePoolId, rewardPoolId, stakeAccount,
|
|
6356
|
+
[stakePoolId, rewardPoolId, stakeAccount, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5948
6357
|
[marketCoinType, rewardCoinType]
|
|
5949
6358
|
);
|
|
5950
6359
|
}
|
|
@@ -6076,7 +6485,7 @@ var newSpoolTxBlock = (builder, initTxBlock) => {
|
|
|
6076
6485
|
|
|
6077
6486
|
// src/builders/borrowIncentiveBuilder.ts
|
|
6078
6487
|
var import_transactions3 = require("@mysten/sui/transactions");
|
|
6079
|
-
var
|
|
6488
|
+
var import_utils18 = require("@mysten/sui/utils");
|
|
6080
6489
|
var import_sui_kit7 = require("@scallop-io/sui-kit");
|
|
6081
6490
|
var requireObligationInfo2 = async (...params) => {
|
|
6082
6491
|
const [builder, txBlock, obligationId, obligationKey] = params;
|
|
@@ -6128,7 +6537,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6128
6537
|
obligationKey,
|
|
6129
6538
|
obligationId,
|
|
6130
6539
|
borrowIncentiveIds.obligationAccessStore,
|
|
6131
|
-
|
|
6540
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6132
6541
|
]
|
|
6133
6542
|
);
|
|
6134
6543
|
},
|
|
@@ -6146,7 +6555,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6146
6555
|
veScaIds.treasury,
|
|
6147
6556
|
veScaIds.table,
|
|
6148
6557
|
veScaKey,
|
|
6149
|
-
|
|
6558
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6150
6559
|
],
|
|
6151
6560
|
[]
|
|
6152
6561
|
);
|
|
@@ -6160,7 +6569,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6160
6569
|
borrowIncentiveIds.incentiveAccounts,
|
|
6161
6570
|
obligationKey,
|
|
6162
6571
|
obligationId,
|
|
6163
|
-
|
|
6572
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6164
6573
|
]
|
|
6165
6574
|
);
|
|
6166
6575
|
},
|
|
@@ -6174,7 +6583,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6174
6583
|
borrowIncentiveIds.incentiveAccounts,
|
|
6175
6584
|
obligationKey,
|
|
6176
6585
|
obligationId,
|
|
6177
|
-
|
|
6586
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6178
6587
|
],
|
|
6179
6588
|
[rewardType]
|
|
6180
6589
|
);
|
|
@@ -6188,7 +6597,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6188
6597
|
borrowIncentiveIds.incentiveAccounts,
|
|
6189
6598
|
obligation,
|
|
6190
6599
|
veScaKey,
|
|
6191
|
-
|
|
6600
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6192
6601
|
]
|
|
6193
6602
|
);
|
|
6194
6603
|
}
|
|
@@ -7078,12 +7487,12 @@ var ScallopIndexer = class {
|
|
|
7078
7487
|
};
|
|
7079
7488
|
|
|
7080
7489
|
// src/models/scallopQuery.ts
|
|
7081
|
-
var
|
|
7490
|
+
var import_utils24 = require("@mysten/sui/utils");
|
|
7082
7491
|
var ScallopQuery = class {
|
|
7083
7492
|
constructor(params, instance) {
|
|
7084
7493
|
this.params = params;
|
|
7085
7494
|
this.suiKit = instance?.suiKit ?? instance?.utils?.suiKit ?? newSuiKit(params);
|
|
7086
|
-
this.walletAddress = (0,
|
|
7495
|
+
this.walletAddress = (0, import_utils24.normalizeSuiAddress)(
|
|
7087
7496
|
params.walletAddress ?? this.suiKit.currentAddress()
|
|
7088
7497
|
);
|
|
7089
7498
|
if (instance?.utils) {
|
|
@@ -7158,6 +7567,7 @@ var ScallopQuery = class {
|
|
|
7158
7567
|
}
|
|
7159
7568
|
/* ==================== Core Query Methods ==================== */
|
|
7160
7569
|
/**
|
|
7570
|
+
* @deprecated use getMarketPools
|
|
7161
7571
|
* Query market data.
|
|
7162
7572
|
* @param indexer - Whether to use indexer.
|
|
7163
7573
|
* @return Market data.
|
|
@@ -7176,7 +7586,7 @@ var ScallopQuery = class {
|
|
|
7176
7586
|
* @param indexer - Whether to use indexer.
|
|
7177
7587
|
* @return Market pools data.
|
|
7178
7588
|
*/
|
|
7179
|
-
async getMarketPools(poolCoinNames, args) {
|
|
7589
|
+
async getMarketPools(poolCoinNames = [...SUPPORT_POOLS], args) {
|
|
7180
7590
|
return await getMarketPools(
|
|
7181
7591
|
this,
|
|
7182
7592
|
poolCoinNames,
|
|
@@ -7192,13 +7602,8 @@ var ScallopQuery = class {
|
|
|
7192
7602
|
* @return Market pool data.
|
|
7193
7603
|
*/
|
|
7194
7604
|
async getMarketPool(poolCoinName, args) {
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
poolCoinName,
|
|
7198
|
-
args?.indexer,
|
|
7199
|
-
args?.marketObject,
|
|
7200
|
-
args?.coinPrice
|
|
7201
|
-
);
|
|
7605
|
+
const marketPools = await this.getMarketPools(void 0, args);
|
|
7606
|
+
return marketPools.pools[poolCoinName];
|
|
7202
7607
|
}
|
|
7203
7608
|
/**
|
|
7204
7609
|
* Get market collaterals.
|
|
@@ -7636,7 +8041,7 @@ var ScallopQuery = class {
|
|
|
7636
8041
|
* Get list of isolated assets
|
|
7637
8042
|
*/
|
|
7638
8043
|
async getIsolatedAssets() {
|
|
7639
|
-
return await getIsolatedAssets(this
|
|
8044
|
+
return await getIsolatedAssets(this);
|
|
7640
8045
|
}
|
|
7641
8046
|
/**
|
|
7642
8047
|
* Check if asset is an isolated asset
|
|
@@ -7659,6 +8064,13 @@ var ScallopQuery = class {
|
|
|
7659
8064
|
async getAllCoinPrices(args) {
|
|
7660
8065
|
return getAllCoinPrices(this, args?.marketPools, args?.coinPrices);
|
|
7661
8066
|
}
|
|
8067
|
+
/**
|
|
8068
|
+
* Query all address (lending pool, collateral pool, borrow dynamics, interest models) of all pool
|
|
8069
|
+
* @returns
|
|
8070
|
+
*/
|
|
8071
|
+
async getPoolAddresses() {
|
|
8072
|
+
return getAllAddresses(this);
|
|
8073
|
+
}
|
|
7662
8074
|
};
|
|
7663
8075
|
|
|
7664
8076
|
// src/models/scallopBuilder.ts
|
|
@@ -7666,7 +8078,7 @@ var ScallopBuilder = class {
|
|
|
7666
8078
|
constructor(params, instance) {
|
|
7667
8079
|
this.suiKit = instance?.suiKit ?? newSuiKit(params);
|
|
7668
8080
|
this.params = params;
|
|
7669
|
-
this.walletAddress = (0,
|
|
8081
|
+
this.walletAddress = (0, import_utils25.normalizeSuiAddress)(
|
|
7670
8082
|
params?.walletAddress ?? this.suiKit.currentAddress()
|
|
7671
8083
|
);
|
|
7672
8084
|
if (instance?.query) {
|
|
@@ -7813,7 +8225,7 @@ var ScallopClient = class {
|
|
|
7813
8225
|
constructor(params, instance) {
|
|
7814
8226
|
this.params = params;
|
|
7815
8227
|
this.suiKit = instance?.suiKit ?? instance?.builder?.suiKit ?? newSuiKit(params);
|
|
7816
|
-
this.walletAddress = (0,
|
|
8228
|
+
this.walletAddress = (0, import_utils26.normalizeSuiAddress)(
|
|
7817
8229
|
params?.walletAddress ?? this.suiKit.currentAddress()
|
|
7818
8230
|
);
|
|
7819
8231
|
if (instance?.builder) {
|