@scallop-io/sui-scallop-sdk 1.4.14-alpha.1 → 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 +1 -1
- package/dist/index.js +714 -316
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +669 -271
- package/dist/index.mjs.map +1 -1
- 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/enum.ts +6 -14
- package/src/constants/poolAddress.ts +290 -29
- package/src/constants/queryKeys.ts +5 -5
- package/src/constants/tokenBucket.ts +1 -1
- package/src/models/scallopCache.ts +34 -7
- package/src/models/scallopQuery.ts +24 -12
- package/src/queries/borrowIncentiveQuery.ts +1 -1
- package/src/queries/borrowLimitQuery.ts +2 -2
- package/src/queries/coreQuery.ts +378 -248
- package/src/queries/index.ts +2 -0
- package/src/queries/isolatedAssetQuery.ts +39 -33
- 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/queries/supplyLimitQuery.ts +2 -2
- 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 +1 -1
- package/src/utils/util.ts +8 -0
package/dist/index.js
CHANGED
|
@@ -371,19 +371,12 @@ var voloCoinIds = {
|
|
|
371
371
|
vsui: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55"
|
|
372
372
|
};
|
|
373
373
|
var sCoinIds = {
|
|
374
|
-
// prod values
|
|
375
|
-
// ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
376
|
-
// swusdc:
|
|
377
|
-
// '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
|
|
378
|
-
// swusdt:
|
|
379
|
-
// '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
|
|
380
|
-
// ssca: '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
|
|
381
|
-
ssui: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
382
|
-
swusdt: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
383
|
-
swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
384
|
-
ssca: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
385
374
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
386
375
|
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
376
|
+
ssui: "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
|
|
377
|
+
swusdc: "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
378
|
+
swusdt: "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
379
|
+
ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
|
|
387
380
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
388
381
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
389
382
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
@@ -427,67 +420,213 @@ var FlashLoanFeeObjectMap = {
|
|
|
427
420
|
|
|
428
421
|
// src/constants/poolAddress.ts
|
|
429
422
|
var POOL_ADDRESSES = {
|
|
430
|
-
usdc: {
|
|
431
|
-
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
432
|
-
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af"
|
|
433
|
-
},
|
|
434
423
|
sbeth: {
|
|
435
|
-
lendingPoolAddress: "
|
|
436
|
-
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
|
|
437
435
|
},
|
|
438
|
-
|
|
439
|
-
lendingPoolAddress: "
|
|
440
|
-
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"
|
|
441
448
|
},
|
|
442
449
|
wbtc: {
|
|
443
450
|
lendingPoolAddress: "0x65cc08a5aca0a0b8d72e1993ded8d145f06dd102fd0d8f285b92934faed564ab",
|
|
444
|
-
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
|
|
445
461
|
},
|
|
446
462
|
wusdc: {
|
|
447
|
-
lendingPoolAddress: "
|
|
448
|
-
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"
|
|
449
487
|
},
|
|
450
488
|
wusdt: {
|
|
451
489
|
lendingPoolAddress: "0xfbc056f126dd35adc1f8fe985e2cedc8010e687e8e851e1c5b99fdf63cd1c879",
|
|
452
|
-
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"
|
|
453
500
|
},
|
|
454
501
|
sui: {
|
|
455
502
|
lendingPoolAddress: "0x9c9077abf7a29eebce41e33addbcd6f5246a5221dd733e56ea0f00ae1b25c9e8",
|
|
456
|
-
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"
|
|
457
513
|
},
|
|
458
514
|
wapt: {
|
|
459
515
|
lendingPoolAddress: "0xca8c14a24e0c32b198eaf479a3317461e3cc339097ce88eaf296a15df8dcfdf5",
|
|
460
|
-
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"
|
|
461
539
|
},
|
|
462
540
|
wsol: {
|
|
463
541
|
lendingPoolAddress: "0x985682c42984cdfb03f9ff7d8923344c2fe096b1ae4b82ea17721af19d22a21f",
|
|
464
|
-
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
|
|
465
552
|
},
|
|
466
553
|
cetus: {
|
|
467
554
|
lendingPoolAddress: "0xc09858f60e74a1b671635bec4e8a2c84a0ff313eb87f525fba3258e88c6b6282",
|
|
468
|
-
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a"
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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"
|
|
473
565
|
},
|
|
474
566
|
hasui: {
|
|
475
567
|
lendingPoolAddress: "0x7ebc607f6bdeb659fb6506cb91c5cc1d47bb365cfd5d2e637ea765346ec84ed4",
|
|
476
|
-
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"
|
|
477
578
|
},
|
|
478
579
|
vsui: {
|
|
479
580
|
lendingPoolAddress: "0xda9257c0731d8822e8a438ebced13415850d705b779c79958dcf2aeb21fcb43d",
|
|
480
|
-
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"
|
|
481
591
|
},
|
|
482
592
|
sca: {
|
|
483
593
|
lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
|
|
484
|
-
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
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
|
|
488
604
|
},
|
|
489
605
|
deep: {
|
|
490
|
-
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
|
|
491
630
|
}
|
|
492
631
|
};
|
|
493
632
|
|
|
@@ -538,7 +677,11 @@ var queryKeys = {
|
|
|
538
677
|
typeArgs: !typeArgs ? void 0 : JSON.stringify(typeArgs)
|
|
539
678
|
}
|
|
540
679
|
],
|
|
541
|
-
getObject: (objectId,
|
|
680
|
+
getObject: (objectId, options) => [
|
|
681
|
+
"rpc",
|
|
682
|
+
"getObject",
|
|
683
|
+
{ options, objectId }
|
|
684
|
+
],
|
|
542
685
|
getObjects: (objectIds, walletAddress, options) => [
|
|
543
686
|
"rpc",
|
|
544
687
|
"getObjects",
|
|
@@ -1071,7 +1214,7 @@ var TEST_ADDRESSES = {
|
|
|
1071
1214
|
};
|
|
1072
1215
|
|
|
1073
1216
|
// src/constants/tokenBucket.ts
|
|
1074
|
-
var DEFAULT_TOKENS_PER_INTERVAL =
|
|
1217
|
+
var DEFAULT_TOKENS_PER_INTERVAL = 50;
|
|
1075
1218
|
var DEFAULT_INTERVAL_IN_MS = 250;
|
|
1076
1219
|
|
|
1077
1220
|
// src/constants/vesca.ts
|
|
@@ -1216,7 +1359,10 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
1216
1359
|
borrowRateOnMidKink: Number(originMarketPoolData.borrowRateOnMidKink.value) / 2 ** 32,
|
|
1217
1360
|
highKink: Number(originMarketPoolData.highKink.value) / 2 ** 32,
|
|
1218
1361
|
midKink: Number(originMarketPoolData.midKink.value) / 2 ** 32,
|
|
1219
|
-
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount)
|
|
1362
|
+
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount),
|
|
1363
|
+
isIsolated: originMarketPoolData.isIsolated,
|
|
1364
|
+
supplyLimit: Number(originMarketPoolData.supplyLimit),
|
|
1365
|
+
borrowLimit: Number(originMarketPoolData.borrowLimit)
|
|
1220
1366
|
};
|
|
1221
1367
|
};
|
|
1222
1368
|
var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
@@ -1268,6 +1414,7 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1268
1414
|
borrowApyOnHighKink: utils.parseAprToApy(borrowAprOnHighKink),
|
|
1269
1415
|
borrowAprOnMidKink,
|
|
1270
1416
|
borrowApyOnMidKink: utils.parseAprToApy(borrowAprOnMidKink),
|
|
1417
|
+
coinDecimal,
|
|
1271
1418
|
maxBorrowApr,
|
|
1272
1419
|
maxBorrowApy: utils.parseAprToApy(maxBorrowApr),
|
|
1273
1420
|
borrowApr: Math.min(borrowApr, maxBorrowApr),
|
|
@@ -1286,17 +1433,21 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1286
1433
|
utilizationRate: utilizationRate.toNumber(),
|
|
1287
1434
|
supplyApr: supplyApr.toNumber(),
|
|
1288
1435
|
supplyApy: utils.parseAprToApy(supplyApr.toNumber()),
|
|
1289
|
-
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()
|
|
1290
1440
|
};
|
|
1291
1441
|
};
|
|
1292
1442
|
var parseOriginMarketCollateralData = (originMarketCollateralData) => {
|
|
1293
1443
|
const divisor = 2 ** 32;
|
|
1294
1444
|
return {
|
|
1295
1445
|
coinType: (0, import_utils.normalizeStructTag)(originMarketCollateralData.type.name),
|
|
1446
|
+
isIsolated: originMarketCollateralData.isIsolated,
|
|
1296
1447
|
collateralFactor: Number(originMarketCollateralData.collateralFactor.value) / divisor,
|
|
1297
1448
|
liquidationFactor: Number(originMarketCollateralData.liquidationFactor.value) / divisor,
|
|
1298
1449
|
liquidationDiscount: Number(originMarketCollateralData.liquidationDiscount.value) / divisor,
|
|
1299
|
-
|
|
1450
|
+
liquidationPenalty: Number(originMarketCollateralData.liquidationPenalty.value) / divisor,
|
|
1300
1451
|
liquidationReserveFactor: Number(originMarketCollateralData.liquidationReserveFactor.value) / divisor,
|
|
1301
1452
|
maxCollateralAmount: Number(originMarketCollateralData.maxCollateralAmount),
|
|
1302
1453
|
totalCollateralAmount: Number(
|
|
@@ -1316,6 +1467,8 @@ var calculateMarketCollateralData = (utils, parsedMarketCollateralData) => {
|
|
|
1316
1467
|
parsedMarketCollateralData.totalCollateralAmount
|
|
1317
1468
|
).shiftedBy(-1 * coinDecimal);
|
|
1318
1469
|
return {
|
|
1470
|
+
coinDecimal,
|
|
1471
|
+
isIsolated: parsedMarketCollateralData.isIsolated,
|
|
1319
1472
|
maxDepositAmount: parsedMarketCollateralData.maxCollateralAmount,
|
|
1320
1473
|
maxDepositCoin: maxCollateralCoin.toNumber(),
|
|
1321
1474
|
depositAmount: parsedMarketCollateralData.totalCollateralAmount,
|
|
@@ -1646,6 +1799,13 @@ var findClosestUnlockRound = (unlockAtInSecondTimestamp) => {
|
|
|
1646
1799
|
}
|
|
1647
1800
|
return Math.floor(closestTwelveAM.getTime() / 1e3);
|
|
1648
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
|
+
};
|
|
1649
1809
|
|
|
1650
1810
|
// src/utils/tokenBucket.ts
|
|
1651
1811
|
var TokenBucket = class {
|
|
@@ -1682,7 +1842,6 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
|
|
|
1682
1842
|
} else if (retries < maxRetries) {
|
|
1683
1843
|
retries++;
|
|
1684
1844
|
const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
|
|
1685
|
-
console.error(`Rate limit exceeded, retrying in ${delay} ms`);
|
|
1686
1845
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1687
1846
|
return tryRequest();
|
|
1688
1847
|
} else {
|
|
@@ -1718,6 +1877,16 @@ function withIndexerFallback(method) {
|
|
|
1718
1877
|
};
|
|
1719
1878
|
}
|
|
1720
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
|
+
|
|
1721
1890
|
// src/models/scallopCache.ts
|
|
1722
1891
|
var ScallopCache = class {
|
|
1723
1892
|
constructor(suiKit, walletAddress, cacheOptions, tokenBucket, queryClient) {
|
|
@@ -1752,11 +1921,11 @@ var ScallopCache = class {
|
|
|
1752
1921
|
})
|
|
1753
1922
|
);
|
|
1754
1923
|
}
|
|
1755
|
-
retryFn(errCount,
|
|
1756
|
-
if (
|
|
1757
|
-
return true;
|
|
1758
|
-
if (errCount >= 5)
|
|
1924
|
+
retryFn(errCount, e) {
|
|
1925
|
+
if (errCount === 5)
|
|
1759
1926
|
return false;
|
|
1927
|
+
if (e.status === 429)
|
|
1928
|
+
return true;
|
|
1760
1929
|
return false;
|
|
1761
1930
|
}
|
|
1762
1931
|
/**
|
|
@@ -1771,7 +1940,15 @@ var ScallopCache = class {
|
|
|
1771
1940
|
typeArgs
|
|
1772
1941
|
}) {
|
|
1773
1942
|
const txBlock = new import_sui_kit.SuiTxBlock();
|
|
1774
|
-
|
|
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);
|
|
1775
1952
|
const query = await this.queryClient.fetchQuery({
|
|
1776
1953
|
retry: this.retryFn,
|
|
1777
1954
|
retryDelay: 1e3,
|
|
@@ -1795,7 +1972,7 @@ var ScallopCache = class {
|
|
|
1795
1972
|
return this.queryClient.fetchQuery({
|
|
1796
1973
|
retry: this.retryFn,
|
|
1797
1974
|
retryDelay: 1e3,
|
|
1798
|
-
queryKey: queryKeys.rpc.getObject(objectId,
|
|
1975
|
+
queryKey: queryKeys.rpc.getObject(objectId, options),
|
|
1799
1976
|
queryFn: async () => {
|
|
1800
1977
|
return await callWithRateLimit(
|
|
1801
1978
|
this.tokenBucket,
|
|
@@ -1826,10 +2003,28 @@ var ScallopCache = class {
|
|
|
1826
2003
|
options
|
|
1827
2004
|
),
|
|
1828
2005
|
queryFn: async () => {
|
|
1829
|
-
|
|
2006
|
+
const results = await callWithRateLimit(
|
|
1830
2007
|
this.tokenBucket,
|
|
1831
2008
|
async () => await this.suiKit.getObjects(objectIds, options)
|
|
1832
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;
|
|
1833
2028
|
}
|
|
1834
2029
|
});
|
|
1835
2030
|
}
|
|
@@ -2573,10 +2768,10 @@ var ScallopAddress = class {
|
|
|
2573
2768
|
};
|
|
2574
2769
|
|
|
2575
2770
|
// src/models/scallopClient.ts
|
|
2576
|
-
var
|
|
2771
|
+
var import_utils26 = require("@mysten/sui/utils");
|
|
2577
2772
|
|
|
2578
2773
|
// src/models/scallopUtils.ts
|
|
2579
|
-
var
|
|
2774
|
+
var import_utils11 = require("@mysten/sui/utils");
|
|
2580
2775
|
var import_pyth_sui_js = require("@pythnetwork/pyth-sui-js");
|
|
2581
2776
|
|
|
2582
2777
|
// src/queries/borrowIncentiveQuery.ts
|
|
@@ -2598,7 +2793,7 @@ var getBorrowIncentivePools = async (query, borrowIncentiveCoinNames = [
|
|
|
2598
2793
|
...SUPPORT_BORROW_INCENTIVE_POOLS
|
|
2599
2794
|
], indexer = false, marketPools, coinPrices) => {
|
|
2600
2795
|
const borrowIncentivePools = {};
|
|
2601
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
2796
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices, indexer })).pools;
|
|
2602
2797
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools });
|
|
2603
2798
|
if (indexer) {
|
|
2604
2799
|
const borrowIncentivePoolsIndexer = await query.indexer.getBorrowIncentivePools();
|
|
@@ -2771,7 +2966,7 @@ var getBindedVeScaKey = async ({
|
|
|
2771
2966
|
};
|
|
2772
2967
|
|
|
2773
2968
|
// src/queries/coreQuery.ts
|
|
2774
|
-
var
|
|
2969
|
+
var import_utils6 = require("@mysten/sui/utils");
|
|
2775
2970
|
var import_bignumber3 = __toESM(require("bignumber.js"));
|
|
2776
2971
|
|
|
2777
2972
|
// src/queries/supplyLimitQuery.ts
|
|
@@ -2790,7 +2985,7 @@ var supplyLimitZod = import_zod.z.object({
|
|
|
2790
2985
|
value: import_zod.z.string()
|
|
2791
2986
|
})
|
|
2792
2987
|
});
|
|
2793
|
-
var supplyLimitKeyType = `
|
|
2988
|
+
var supplyLimitKeyType = `0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey`;
|
|
2794
2989
|
var getSupplyLimit = async (utils, poolName) => {
|
|
2795
2990
|
try {
|
|
2796
2991
|
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
@@ -2830,10 +3025,15 @@ var isolatedAssetZod = import_zod2.z.object({
|
|
|
2830
3025
|
value: import_zod2.z.boolean()
|
|
2831
3026
|
})
|
|
2832
3027
|
});
|
|
2833
|
-
var isolatedAssetKeyType = `
|
|
2834
|
-
var getIsolatedAssets = async (
|
|
3028
|
+
var isolatedAssetKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
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
|
+
}
|
|
2835
3035
|
try {
|
|
2836
|
-
const marketObject = address.get("core.market");
|
|
3036
|
+
const marketObject = query.address.get("core.market");
|
|
2837
3037
|
const isolatedAssets = [];
|
|
2838
3038
|
if (!marketObject)
|
|
2839
3039
|
return isolatedAssets;
|
|
@@ -2843,7 +3043,7 @@ var getIsolatedAssets = async (address) => {
|
|
|
2843
3043
|
return dynamicField.name.type === isolatedAssetKeyType;
|
|
2844
3044
|
};
|
|
2845
3045
|
do {
|
|
2846
|
-
const response = await
|
|
3046
|
+
const response = await query.cache.queryGetDynamicFields({
|
|
2847
3047
|
parentId: marketObject,
|
|
2848
3048
|
cursor: nextCursor,
|
|
2849
3049
|
limit: 10
|
|
@@ -2866,32 +3066,30 @@ var getIsolatedAssets = async (address) => {
|
|
|
2866
3066
|
}
|
|
2867
3067
|
};
|
|
2868
3068
|
var isIsolatedAsset = async (utils, coinName) => {
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
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
|
|
2878
3087
|
}
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
name: {
|
|
2883
|
-
type: isolatedAssetKeyType,
|
|
2884
|
-
value: coinType
|
|
2885
|
-
}
|
|
2886
|
-
});
|
|
2887
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2888
|
-
if (!parsedData.success)
|
|
2889
|
-
return false;
|
|
2890
|
-
return parsedData.data.fields.value;
|
|
2891
|
-
} catch (e) {
|
|
2892
|
-
console.error(e);
|
|
3088
|
+
});
|
|
3089
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
3090
|
+
if (!parsedData.success)
|
|
2893
3091
|
return false;
|
|
2894
|
-
|
|
3092
|
+
return parsedData.data.fields.value;
|
|
2895
3093
|
};
|
|
2896
3094
|
|
|
2897
3095
|
// src/queries/borrowLimitQuery.ts
|
|
@@ -2910,7 +3108,7 @@ var borrowLimitZod = import_zod3.z.object({
|
|
|
2910
3108
|
value: import_zod3.z.string()
|
|
2911
3109
|
})
|
|
2912
3110
|
});
|
|
2913
|
-
var borrowLimitKeyType = `
|
|
3111
|
+
var borrowLimitKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::BorrowLimitKey`;
|
|
2914
3112
|
var getBorrowLimit = async (utils, poolName) => {
|
|
2915
3113
|
try {
|
|
2916
3114
|
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
@@ -2934,6 +3132,17 @@ var getBorrowLimit = async (utils, poolName) => {
|
|
|
2934
3132
|
}
|
|
2935
3133
|
};
|
|
2936
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
|
+
|
|
2937
3146
|
// src/queries/coreQuery.ts
|
|
2938
3147
|
var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
2939
3148
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
@@ -2965,7 +3174,7 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2965
3174
|
const queryResult = await query.cache.queryInspectTxn({ queryTarget, args });
|
|
2966
3175
|
const marketData = queryResult?.events[0]?.parsedJson;
|
|
2967
3176
|
for (const pool of marketData?.pools ?? []) {
|
|
2968
|
-
const coinType = (0,
|
|
3177
|
+
const coinType = (0, import_utils6.normalizeStructTag)(pool.type.name);
|
|
2969
3178
|
const poolCoinName = query.utils.parseCoinNameFromType(coinType);
|
|
2970
3179
|
const coinPrice = coinPrices[poolCoinName] ?? 0;
|
|
2971
3180
|
if (!SUPPORT_POOLS.includes(poolCoinName)) {
|
|
@@ -2990,19 +3199,15 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2990
3199
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
2991
3200
|
highKink: pool.highKink,
|
|
2992
3201
|
midKink: pool.midKink,
|
|
2993
|
-
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"
|
|
2994
3206
|
});
|
|
2995
3207
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
2996
3208
|
query.utils,
|
|
2997
3209
|
parsedMarketPoolData
|
|
2998
3210
|
);
|
|
2999
|
-
const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
|
|
3000
|
-
const maxSupplyCoin = (0, import_bignumber3.default)(
|
|
3001
|
-
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
3002
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3003
|
-
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
3004
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3005
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3006
3211
|
pools[poolCoinName] = {
|
|
3007
3212
|
coinName: poolCoinName,
|
|
3008
3213
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -3012,7 +3217,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3012
3217
|
query.utils.parseMarketCoinName(poolCoinName)
|
|
3013
3218
|
),
|
|
3014
3219
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3015
|
-
coinDecimal,
|
|
3016
3220
|
coinPrice,
|
|
3017
3221
|
highKink: parsedMarketPoolData.highKink,
|
|
3018
3222
|
midKink: parsedMarketPoolData.midKink,
|
|
@@ -3021,15 +3225,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3021
3225
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
3022
3226
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
3023
3227
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
3024
|
-
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
3025
|
-
// isIsolated: false,
|
|
3026
|
-
maxSupplyCoin,
|
|
3027
|
-
maxBorrowCoin,
|
|
3028
3228
|
...calculatedMarketPoolData
|
|
3029
3229
|
};
|
|
3030
3230
|
}
|
|
3031
3231
|
for (const collateral of marketData?.collaterals ?? []) {
|
|
3032
|
-
const coinType = (0,
|
|
3232
|
+
const coinType = (0, import_utils6.normalizeStructTag)(collateral.type.name);
|
|
3033
3233
|
const collateralCoinName = query.utils.parseCoinNameFromType(coinType);
|
|
3034
3234
|
const coinPrice = coinPrices[collateralCoinName] ?? 0;
|
|
3035
3235
|
if (!SUPPORT_COLLATERALS.includes(collateralCoinName)) {
|
|
@@ -3040,10 +3240,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3040
3240
|
collateralFactor: collateral.collateralFactor,
|
|
3041
3241
|
liquidationFactor: collateral.liquidationFactor,
|
|
3042
3242
|
liquidationDiscount: collateral.liquidationDiscount,
|
|
3043
|
-
|
|
3243
|
+
liquidationPenalty: collateral.liquidationPanelty,
|
|
3044
3244
|
liquidationReserveFactor: collateral.liquidationReserveFactor,
|
|
3045
3245
|
maxCollateralAmount: collateral.maxCollateralAmount,
|
|
3046
|
-
totalCollateralAmount: collateral.totalCollateralAmount
|
|
3246
|
+
totalCollateralAmount: collateral.totalCollateralAmount,
|
|
3247
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3047
3248
|
});
|
|
3048
3249
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3049
3250
|
query.utils,
|
|
@@ -3055,14 +3256,12 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3055
3256
|
coinType,
|
|
3056
3257
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3057
3258
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3058
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3059
3259
|
coinPrice,
|
|
3060
3260
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3061
3261
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3062
3262
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3063
|
-
|
|
3263
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3064
3264
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3065
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3066
3265
|
...calculatedMarketCollateralData
|
|
3067
3266
|
};
|
|
3068
3267
|
}
|
|
@@ -3072,44 +3271,216 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
3072
3271
|
// data: marketData,
|
|
3073
3272
|
};
|
|
3074
3273
|
};
|
|
3075
|
-
var
|
|
3076
|
-
const
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
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) => {
|
|
3080
3375
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
3081
|
-
const
|
|
3376
|
+
const pools = {};
|
|
3377
|
+
const collaterals = {};
|
|
3082
3378
|
if (indexer) {
|
|
3083
|
-
const
|
|
3084
|
-
const
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
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
|
|
3092
3395
|
};
|
|
3093
|
-
Object.values(marketPoolsIndexer).forEach(updateMarketPool);
|
|
3094
|
-
return marketPools;
|
|
3095
3396
|
}
|
|
3397
|
+
const requiredObjects = await queryRequiredMarketObjects(
|
|
3398
|
+
query,
|
|
3399
|
+
poolCoinNames
|
|
3400
|
+
);
|
|
3096
3401
|
await Promise.allSettled(
|
|
3097
3402
|
poolCoinNames.map(async (poolCoinName) => {
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
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);
|
|
3107
3419
|
}
|
|
3108
3420
|
})
|
|
3109
3421
|
);
|
|
3110
|
-
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
|
+
};
|
|
3111
3482
|
};
|
|
3112
|
-
var getMarketPool = async (query, poolCoinName, indexer = false,
|
|
3483
|
+
var getMarketPool = async (query, poolCoinName, indexer = false, coinPrice, requiredObjects) => {
|
|
3113
3484
|
coinPrice = coinPrice ?? (await query.utils.getCoinPrices())?.[poolCoinName];
|
|
3114
3485
|
if (indexer) {
|
|
3115
3486
|
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
@@ -3120,135 +3491,70 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
3120
3491
|
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3121
3492
|
marketPoolIndexer.coinName
|
|
3122
3493
|
);
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
3133
|
-
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
3134
|
-
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3135
|
-
parentId: balanceSheetParentId,
|
|
3136
|
-
name: {
|
|
3137
|
-
type: "0x1::type_name::TypeName",
|
|
3138
|
-
value: {
|
|
3139
|
-
name: coinType.substring(2)
|
|
3140
|
-
}
|
|
3141
|
-
}
|
|
3142
|
-
});
|
|
3143
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
3144
|
-
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
3145
|
-
throw new Error(
|
|
3146
|
-
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3147
|
-
);
|
|
3148
|
-
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
3149
|
-
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
3150
|
-
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3151
|
-
parentId: borrowIndexParentId,
|
|
3152
|
-
name: {
|
|
3153
|
-
type: "0x1::type_name::TypeName",
|
|
3154
|
-
value: {
|
|
3155
|
-
name: coinType.substring(2)
|
|
3156
|
-
}
|
|
3157
|
-
}
|
|
3158
|
-
});
|
|
3159
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
3160
|
-
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
3161
|
-
throw new Error(
|
|
3162
|
-
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
3163
|
-
);
|
|
3164
|
-
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
3165
|
-
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
3166
|
-
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3167
|
-
parentId: interestModelParentId,
|
|
3168
|
-
name: {
|
|
3169
|
-
type: "0x1::type_name::TypeName",
|
|
3170
|
-
value: {
|
|
3171
|
-
name: coinType.substring(2)
|
|
3172
|
-
}
|
|
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
|
+
);
|
|
3173
3503
|
}
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
const
|
|
3181
|
-
const
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
name: {
|
|
3185
|
-
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
3186
|
-
value: {
|
|
3187
|
-
type: {
|
|
3188
|
-
name: coinType.substring(2)
|
|
3189
|
-
}
|
|
3190
|
-
}
|
|
3191
|
-
}
|
|
3192
|
-
});
|
|
3193
|
-
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
3194
|
-
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
3195
|
-
return { value: "0" };
|
|
3196
|
-
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
3197
|
-
};
|
|
3198
|
-
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
3199
|
-
type: interestModel.type.fields,
|
|
3200
|
-
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
3201
|
-
interestRate: borrowIndex.interest_rate.fields,
|
|
3202
|
-
interestRateScale: borrowIndex.interest_rate_scale,
|
|
3203
|
-
borrowIndex: borrowIndex.borrow_index,
|
|
3204
|
-
lastUpdated: borrowIndex.last_updated,
|
|
3205
|
-
cash: balanceSheet.cash,
|
|
3206
|
-
debt: balanceSheet.debt,
|
|
3207
|
-
marketCoinSupply: balanceSheet.market_coin_supply,
|
|
3208
|
-
reserve: balanceSheet.revenue,
|
|
3209
|
-
reserveFactor: interestModel.revenue_factor.fields,
|
|
3210
|
-
borrowWeight: interestModel.borrow_weight.fields,
|
|
3211
|
-
borrowFeeRate: await getBorrowFee(),
|
|
3212
|
-
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
3213
|
-
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
3214
|
-
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
3215
|
-
highKink: interestModel.high_kink.fields,
|
|
3216
|
-
midKink: interestModel.mid_kink.fields,
|
|
3217
|
-
minBorrowAmount: interestModel.min_borrow_amount
|
|
3218
|
-
});
|
|
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
|
+
);
|
|
3219
3514
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
3220
3515
|
query.utils,
|
|
3221
3516
|
parsedMarketPoolData
|
|
3222
3517
|
);
|
|
3223
|
-
const
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
const maxBorrowCoin = (0, import_bignumber3.default)(
|
|
3228
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3229
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3230
|
-
return {
|
|
3518
|
+
const parsedMarketCollateralData = parsedMarketPoolObjects.parsedOriginMarketCollateral ? parseOriginMarketCollateralData(
|
|
3519
|
+
parsedMarketPoolObjects.parsedOriginMarketCollateral
|
|
3520
|
+
) : void 0;
|
|
3521
|
+
const basePoolData = () => ({
|
|
3231
3522
|
coinName: poolCoinName,
|
|
3232
3523
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
3233
|
-
coinType: query.utils.parseCoinType(poolCoinName),
|
|
3234
3524
|
marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
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
|
|
3252
3558
|
};
|
|
3253
3559
|
};
|
|
3254
3560
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
@@ -3343,10 +3649,11 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3343
3649
|
collateralFactor: riskModel.collateral_factor.fields,
|
|
3344
3650
|
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3345
3651
|
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3346
|
-
|
|
3652
|
+
liquidationPenalty: riskModel.liquidation_penalty.fields,
|
|
3347
3653
|
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3348
3654
|
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3349
|
-
totalCollateralAmount: collateralStat.amount
|
|
3655
|
+
totalCollateralAmount: collateralStat.amount,
|
|
3656
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3350
3657
|
});
|
|
3351
3658
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3352
3659
|
query.utils,
|
|
@@ -3358,14 +3665,12 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3358
3665
|
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
3359
3666
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3360
3667
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3361
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3362
3668
|
coinPrice: coinPrice ?? 0,
|
|
3363
3669
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3364
3670
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3365
3671
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3366
|
-
|
|
3672
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3367
3673
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3368
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3369
3674
|
...calculatedMarketCollateralData
|
|
3370
3675
|
};
|
|
3371
3676
|
};
|
|
@@ -3606,10 +3911,10 @@ var getLendings = async (query, poolCoinNames = [...SUPPORT_POOLS], ownerAddress
|
|
|
3606
3911
|
(marketCoinName) => SUPPORT_SPOOLS.includes(marketCoinName)
|
|
3607
3912
|
);
|
|
3608
3913
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3609
|
-
const marketPools = await query.getMarketPools(poolCoinNames, {
|
|
3914
|
+
const marketPools = (await query.getMarketPools(poolCoinNames, {
|
|
3610
3915
|
indexer,
|
|
3611
3916
|
coinPrices
|
|
3612
|
-
});
|
|
3917
|
+
})).pools;
|
|
3613
3918
|
const spools = await query.getSpools(stakeMarketCoinNames, {
|
|
3614
3919
|
indexer,
|
|
3615
3920
|
marketPools,
|
|
@@ -3778,7 +4083,7 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
|
|
|
3778
4083
|
};
|
|
3779
4084
|
var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
3780
4085
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3781
|
-
const market = await query.
|
|
4086
|
+
const market = await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
3782
4087
|
const [coinAmounts, obligations] = await Promise.all([
|
|
3783
4088
|
query.getCoinAmounts(void 0, ownerAddress),
|
|
3784
4089
|
query.getObligations(ownerAddress)
|
|
@@ -3806,7 +4111,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3806
4111
|
const collateralAssetCoinNames = [
|
|
3807
4112
|
...SUPPORT_COLLATERALS
|
|
3808
4113
|
];
|
|
3809
|
-
market = market ?? await query.
|
|
4114
|
+
market = market ?? await query.getMarketPools(void 0, { indexer });
|
|
3810
4115
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools: market.pools });
|
|
3811
4116
|
coinAmounts = coinAmounts || await query.getCoinAmounts(coinNames, ownerAddress);
|
|
3812
4117
|
const [obligationQuery, borrowIncentivePools, borrowIncentiveAccounts] = await Promise.all([
|
|
@@ -4097,7 +4402,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
4097
4402
|
return obligationAccount;
|
|
4098
4403
|
};
|
|
4099
4404
|
var getTotalValueLocked = async (query, indexer = false) => {
|
|
4100
|
-
const market = await query.
|
|
4405
|
+
const market = await query.getMarketPools(void 0, { indexer });
|
|
4101
4406
|
let supplyValue = (0, import_bignumber5.default)(0);
|
|
4102
4407
|
let borrowValue = (0, import_bignumber5.default)(0);
|
|
4103
4408
|
if (indexer) {
|
|
@@ -4218,7 +4523,7 @@ var getPythPrices = async ({
|
|
|
4218
4523
|
};
|
|
4219
4524
|
var getAllCoinPrices = async (query, marketPools, coinPrices) => {
|
|
4220
4525
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
4221
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices });
|
|
4526
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices })).pools;
|
|
4222
4527
|
if (!marketPools) {
|
|
4223
4528
|
throw new Error(`Failed to fetch market pool for getAllCoinPrices`);
|
|
4224
4529
|
}
|
|
@@ -4343,13 +4648,13 @@ var getSCoinSwapRate = async (query, fromSCoin, toSCoin, underlyingCoinPrice) =>
|
|
|
4343
4648
|
};
|
|
4344
4649
|
|
|
4345
4650
|
// src/queries/spoolQuery.ts
|
|
4346
|
-
var
|
|
4651
|
+
var import_utils9 = require("@mysten/sui/utils");
|
|
4347
4652
|
var getSpools = async (query, stakeMarketCoinNames = [...SUPPORT_SPOOLS], indexer = false, marketPools, coinPrices) => {
|
|
4348
4653
|
const stakeCoinNames = stakeMarketCoinNames.map(
|
|
4349
4654
|
(stakeMarketCoinName) => query.utils.parseCoinName(stakeMarketCoinName)
|
|
4350
4655
|
);
|
|
4351
4656
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
4352
|
-
marketPools = marketPools ?? await query.getMarketPools(stakeCoinNames, { indexer });
|
|
4657
|
+
marketPools = marketPools ?? (await query.getMarketPools(stakeCoinNames, { indexer })).pools;
|
|
4353
4658
|
if (!marketPools)
|
|
4354
4659
|
throw new Error(`Fail to fetch marketPools for ${stakeCoinNames}`);
|
|
4355
4660
|
const spools = {};
|
|
@@ -4560,14 +4865,14 @@ var getStakeAccounts = async ({
|
|
|
4560
4865
|
svsui: stakeAccounts.svsui,
|
|
4561
4866
|
susdc: stakeAccounts.susdc
|
|
4562
4867
|
};
|
|
4563
|
-
const normalizedType = (0,
|
|
4868
|
+
const normalizedType = (0, import_utils9.normalizeStructTag)(type);
|
|
4564
4869
|
const stakeAccountArray = stakeMarketCoinTypeMap[reversedStakeMarketCoinTypes[normalizedType]];
|
|
4565
4870
|
if (stakeAccountArray) {
|
|
4566
4871
|
stakeAccountArray.push({
|
|
4567
4872
|
id,
|
|
4568
4873
|
type: normalizedType,
|
|
4569
4874
|
stakePoolId,
|
|
4570
|
-
stakeType: (0,
|
|
4875
|
+
stakeType: (0, import_utils9.normalizeStructTag)(stakeType),
|
|
4571
4876
|
staked,
|
|
4572
4877
|
index,
|
|
4573
4878
|
points,
|
|
@@ -4605,13 +4910,13 @@ var getStakePool = async ({
|
|
|
4605
4910
|
const lastUpdate = Number(fields.last_update);
|
|
4606
4911
|
stakePool = {
|
|
4607
4912
|
id,
|
|
4608
|
-
type: (0,
|
|
4913
|
+
type: (0, import_utils9.normalizeStructTag)(type),
|
|
4609
4914
|
maxPoint,
|
|
4610
4915
|
distributedPoint,
|
|
4611
4916
|
pointPerPeriod,
|
|
4612
4917
|
period,
|
|
4613
4918
|
maxStake,
|
|
4614
|
-
stakeType: (0,
|
|
4919
|
+
stakeType: (0, import_utils9.normalizeStructTag)(stakeType),
|
|
4615
4920
|
totalStaked,
|
|
4616
4921
|
index,
|
|
4617
4922
|
createdAt,
|
|
@@ -4650,7 +4955,7 @@ var getStakeRewardPool = async ({
|
|
|
4650
4955
|
const claimedRewards = Number(rewardPoolFields.claimed_rewards);
|
|
4651
4956
|
stakeRewardPool = {
|
|
4652
4957
|
id,
|
|
4653
|
-
type: (0,
|
|
4958
|
+
type: (0, import_utils9.normalizeStructTag)(type),
|
|
4654
4959
|
stakePoolId,
|
|
4655
4960
|
ratioNumerator,
|
|
4656
4961
|
ratioDenominator,
|
|
@@ -4833,6 +5138,96 @@ var getVeScaTreasuryInfo = async (utils) => {
|
|
|
4833
5138
|
};
|
|
4834
5139
|
};
|
|
4835
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
|
+
|
|
4836
5231
|
// src/models/suiKit.ts
|
|
4837
5232
|
var import_sui_kit4 = require("@scallop-io/sui-kit");
|
|
4838
5233
|
var newSuiKit = (params) => {
|
|
@@ -4935,7 +5330,7 @@ var ScallopUtils = class {
|
|
|
4935
5330
|
throw Error(`Coin ${coinName} is not supported`);
|
|
4936
5331
|
}
|
|
4937
5332
|
if (coinName === "sui")
|
|
4938
|
-
return (0,
|
|
5333
|
+
return (0, import_utils11.normalizeStructTag)(`${coinPackageId}::sui::SUI`);
|
|
4939
5334
|
const wormHolePackageIds = [
|
|
4940
5335
|
this.address.get("core.coins.wusdc.id") ?? wormholeCoinIds.wusdc,
|
|
4941
5336
|
this.address.get("core.coins.wusdt.id") ?? wormholeCoinIds.wusdt,
|
|
@@ -5039,7 +5434,7 @@ var ScallopUtils = class {
|
|
|
5039
5434
|
return `${protocolObjectId}::reserve::MarketCoin<${coinType}>`;
|
|
5040
5435
|
}
|
|
5041
5436
|
parseCoinNameFromType(coinType) {
|
|
5042
|
-
coinType = (0,
|
|
5437
|
+
coinType = (0, import_utils11.normalizeStructTag)(coinType);
|
|
5043
5438
|
if (sCoinTypeToName[coinType]) {
|
|
5044
5439
|
return sCoinTypeToName[coinType];
|
|
5045
5440
|
}
|
|
@@ -5123,7 +5518,7 @@ var ScallopUtils = class {
|
|
|
5123
5518
|
* @param coinType - The coin type, default is 0x2::SUI::SUI.
|
|
5124
5519
|
* @return The selected transaction coin arguments.
|
|
5125
5520
|
*/
|
|
5126
|
-
async selectCoins(amount, coinType =
|
|
5521
|
+
async selectCoins(amount, coinType = import_utils11.SUI_TYPE_ARG, ownerAddress) {
|
|
5127
5522
|
ownerAddress = ownerAddress ?? this.suiKit.currentAddress();
|
|
5128
5523
|
const coins = await this.suiKit.suiInteractor.selectCoins(
|
|
5129
5524
|
ownerAddress,
|
|
@@ -5321,15 +5716,15 @@ var ScallopUtils = class {
|
|
|
5321
5716
|
};
|
|
5322
5717
|
|
|
5323
5718
|
// src/models/scallopBuilder.ts
|
|
5324
|
-
var
|
|
5719
|
+
var import_utils25 = require("@mysten/sui/utils");
|
|
5325
5720
|
|
|
5326
5721
|
// src/builders/coreBuilder.ts
|
|
5327
5722
|
var import_transactions = require("@mysten/sui/transactions");
|
|
5328
|
-
var
|
|
5723
|
+
var import_utils14 = require("@mysten/sui/utils");
|
|
5329
5724
|
var import_sui_kit5 = require("@scallop-io/sui-kit");
|
|
5330
5725
|
|
|
5331
5726
|
// src/builders/oracle.ts
|
|
5332
|
-
var
|
|
5727
|
+
var import_utils13 = require("@mysten/sui/utils");
|
|
5333
5728
|
var import_pyth_sui_js2 = require("@pythnetwork/pyth-sui-js");
|
|
5334
5729
|
var updateOracles = async (builder, txBlock, assetCoinNames, options = { usePythPullModel: true }) => {
|
|
5335
5730
|
const usePythPullModel = builder.params.usePythPullModel ?? options.usePythPullModel;
|
|
@@ -5445,27 +5840,27 @@ var priceUpdateRequest = (txBlock, packageId, xOracleId, coinType) => {
|
|
|
5445
5840
|
var confirmPriceUpdateRequest = (txBlock, packageId, xOracleId, request, coinType) => {
|
|
5446
5841
|
const target = `${packageId}::x_oracle::confirm_price_update_request`;
|
|
5447
5842
|
const typeArgs = [coinType];
|
|
5448
|
-
txBlock.moveCall(target, [xOracleId, request,
|
|
5843
|
+
txBlock.moveCall(target, [xOracleId, request, import_utils13.SUI_CLOCK_OBJECT_ID], typeArgs);
|
|
5449
5844
|
return txBlock;
|
|
5450
5845
|
};
|
|
5451
5846
|
var updateSupraPrice = (txBlock, packageId, request, holderId, registryId, coinType) => {
|
|
5452
5847
|
txBlock.moveCall(
|
|
5453
5848
|
`${packageId}::rule::set_price`,
|
|
5454
|
-
[request, holderId, registryId,
|
|
5849
|
+
[request, holderId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5455
5850
|
[coinType]
|
|
5456
5851
|
);
|
|
5457
5852
|
};
|
|
5458
5853
|
var updateSwitchboardPrice = (txBlock, packageId, request, aggregatorId, registryId, coinType) => {
|
|
5459
5854
|
txBlock.moveCall(
|
|
5460
5855
|
`${packageId}::rule::set_price`,
|
|
5461
|
-
[request, aggregatorId, registryId,
|
|
5856
|
+
[request, aggregatorId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5462
5857
|
[coinType]
|
|
5463
5858
|
);
|
|
5464
5859
|
};
|
|
5465
5860
|
var updatePythPrice = (txBlock, packageId, request, stateId, feedObjectId, registryId, coinType) => {
|
|
5466
5861
|
txBlock.moveCall(
|
|
5467
5862
|
`${packageId}::rule::set_price`,
|
|
5468
|
-
[request, stateId, feedObjectId, registryId,
|
|
5863
|
+
[request, stateId, feedObjectId, registryId, import_utils13.SUI_CLOCK_OBJECT_ID],
|
|
5469
5864
|
[coinType]
|
|
5470
5865
|
);
|
|
5471
5866
|
};
|
|
@@ -5536,7 +5931,7 @@ var generateCoreNormalMethod = ({
|
|
|
5536
5931
|
coreIds.coinDecimalsRegistry,
|
|
5537
5932
|
txBlock.pure.u64(amount),
|
|
5538
5933
|
coreIds.xOracle,
|
|
5539
|
-
|
|
5934
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5540
5935
|
],
|
|
5541
5936
|
[coinType]
|
|
5542
5937
|
);
|
|
@@ -5545,7 +5940,7 @@ var generateCoreNormalMethod = ({
|
|
|
5545
5940
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5546
5941
|
return txBlock.moveCall(
|
|
5547
5942
|
`${coreIds.protocolPkg}::mint::mint`,
|
|
5548
|
-
[coreIds.version, coreIds.market, coin,
|
|
5943
|
+
[coreIds.version, coreIds.market, coin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5549
5944
|
[coinType]
|
|
5550
5945
|
);
|
|
5551
5946
|
},
|
|
@@ -5553,7 +5948,7 @@ var generateCoreNormalMethod = ({
|
|
|
5553
5948
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5554
5949
|
return txBlock.moveCall(
|
|
5555
5950
|
`${coreIds.protocolPkg}::mint::mint_entry`,
|
|
5556
|
-
[coreIds.version, coreIds.market, coin,
|
|
5951
|
+
[coreIds.version, coreIds.market, coin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5557
5952
|
[coinType]
|
|
5558
5953
|
);
|
|
5559
5954
|
},
|
|
@@ -5561,7 +5956,7 @@ var generateCoreNormalMethod = ({
|
|
|
5561
5956
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5562
5957
|
return txBlock.moveCall(
|
|
5563
5958
|
`${coreIds.protocolPkg}::redeem::redeem`,
|
|
5564
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
5959
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5565
5960
|
[coinType]
|
|
5566
5961
|
);
|
|
5567
5962
|
},
|
|
@@ -5569,7 +5964,7 @@ var generateCoreNormalMethod = ({
|
|
|
5569
5964
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
5570
5965
|
return txBlock.moveCall(
|
|
5571
5966
|
`${coreIds.protocolPkg}::redeem::redeem_entry`,
|
|
5572
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
5967
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils14.SUI_CLOCK_OBJECT_ID],
|
|
5573
5968
|
[coinType]
|
|
5574
5969
|
);
|
|
5575
5970
|
},
|
|
@@ -5585,7 +5980,7 @@ var generateCoreNormalMethod = ({
|
|
|
5585
5980
|
coreIds.coinDecimalsRegistry,
|
|
5586
5981
|
amount,
|
|
5587
5982
|
coreIds.xOracle,
|
|
5588
|
-
|
|
5983
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5589
5984
|
],
|
|
5590
5985
|
[coinType]
|
|
5591
5986
|
);
|
|
@@ -5603,7 +5998,7 @@ var generateCoreNormalMethod = ({
|
|
|
5603
5998
|
borrowReferral,
|
|
5604
5999
|
txBlock.pure.u64(amount),
|
|
5605
6000
|
coreIds.xOracle,
|
|
5606
|
-
|
|
6001
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5607
6002
|
],
|
|
5608
6003
|
[coinType, referralWitnessType]
|
|
5609
6004
|
);
|
|
@@ -5620,7 +6015,7 @@ var generateCoreNormalMethod = ({
|
|
|
5620
6015
|
coreIds.coinDecimalsRegistry,
|
|
5621
6016
|
txBlock.pure.u64(amount),
|
|
5622
6017
|
coreIds.xOracle,
|
|
5623
|
-
|
|
6018
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5624
6019
|
],
|
|
5625
6020
|
[coinType]
|
|
5626
6021
|
);
|
|
@@ -5634,7 +6029,7 @@ var generateCoreNormalMethod = ({
|
|
|
5634
6029
|
obligation,
|
|
5635
6030
|
coreIds.market,
|
|
5636
6031
|
coin,
|
|
5637
|
-
|
|
6032
|
+
import_utils14.SUI_CLOCK_OBJECT_ID
|
|
5638
6033
|
],
|
|
5639
6034
|
[coinType]
|
|
5640
6035
|
);
|
|
@@ -5865,7 +6260,7 @@ var newCoreTxBlock = (builder, initTxBlock) => {
|
|
|
5865
6260
|
|
|
5866
6261
|
// src/builders/spoolBuilder.ts
|
|
5867
6262
|
var import_transactions2 = require("@mysten/sui/transactions");
|
|
5868
|
-
var
|
|
6263
|
+
var import_utils16 = require("@mysten/sui/utils");
|
|
5869
6264
|
var import_sui_kit6 = require("@scallop-io/sui-kit");
|
|
5870
6265
|
var requireStakeAccountIds = async (...params) => {
|
|
5871
6266
|
const [builder, txBlock, stakeMarketCoinName, stakeAccountId] = params;
|
|
@@ -5920,7 +6315,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5920
6315
|
);
|
|
5921
6316
|
return txBlock.moveCall(
|
|
5922
6317
|
`${spoolIds.spoolPkg}::user::new_spool_account`,
|
|
5923
|
-
[stakePoolId,
|
|
6318
|
+
[stakePoolId, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5924
6319
|
[marketCoinType]
|
|
5925
6320
|
);
|
|
5926
6321
|
},
|
|
@@ -5931,7 +6326,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5931
6326
|
);
|
|
5932
6327
|
txBlock.moveCall(
|
|
5933
6328
|
`${spoolIds.spoolPkg}::user::stake`,
|
|
5934
|
-
[stakePoolId, stakeAccount, coin,
|
|
6329
|
+
[stakePoolId, stakeAccount, coin, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5935
6330
|
[marketCoinType]
|
|
5936
6331
|
);
|
|
5937
6332
|
},
|
|
@@ -5942,7 +6337,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5942
6337
|
);
|
|
5943
6338
|
return txBlock.moveCall(
|
|
5944
6339
|
`${spoolIds.spoolPkg}::user::unstake`,
|
|
5945
|
-
[stakePoolId, stakeAccount, amount,
|
|
6340
|
+
[stakePoolId, stakeAccount, amount, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5946
6341
|
[marketCoinType]
|
|
5947
6342
|
);
|
|
5948
6343
|
},
|
|
@@ -5958,7 +6353,7 @@ var generateSpoolNormalMethod = ({
|
|
|
5958
6353
|
const rewardCoinType = builder.utils.parseCoinType(rewardCoinName);
|
|
5959
6354
|
return txBlock.moveCall(
|
|
5960
6355
|
`${spoolIds.spoolPkg}::user::redeem_rewards`,
|
|
5961
|
-
[stakePoolId, rewardPoolId, stakeAccount,
|
|
6356
|
+
[stakePoolId, rewardPoolId, stakeAccount, import_utils16.SUI_CLOCK_OBJECT_ID],
|
|
5962
6357
|
[marketCoinType, rewardCoinType]
|
|
5963
6358
|
);
|
|
5964
6359
|
}
|
|
@@ -6090,7 +6485,7 @@ var newSpoolTxBlock = (builder, initTxBlock) => {
|
|
|
6090
6485
|
|
|
6091
6486
|
// src/builders/borrowIncentiveBuilder.ts
|
|
6092
6487
|
var import_transactions3 = require("@mysten/sui/transactions");
|
|
6093
|
-
var
|
|
6488
|
+
var import_utils18 = require("@mysten/sui/utils");
|
|
6094
6489
|
var import_sui_kit7 = require("@scallop-io/sui-kit");
|
|
6095
6490
|
var requireObligationInfo2 = async (...params) => {
|
|
6096
6491
|
const [builder, txBlock, obligationId, obligationKey] = params;
|
|
@@ -6142,7 +6537,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6142
6537
|
obligationKey,
|
|
6143
6538
|
obligationId,
|
|
6144
6539
|
borrowIncentiveIds.obligationAccessStore,
|
|
6145
|
-
|
|
6540
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6146
6541
|
]
|
|
6147
6542
|
);
|
|
6148
6543
|
},
|
|
@@ -6160,7 +6555,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6160
6555
|
veScaIds.treasury,
|
|
6161
6556
|
veScaIds.table,
|
|
6162
6557
|
veScaKey,
|
|
6163
|
-
|
|
6558
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6164
6559
|
],
|
|
6165
6560
|
[]
|
|
6166
6561
|
);
|
|
@@ -6174,7 +6569,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6174
6569
|
borrowIncentiveIds.incentiveAccounts,
|
|
6175
6570
|
obligationKey,
|
|
6176
6571
|
obligationId,
|
|
6177
|
-
|
|
6572
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6178
6573
|
]
|
|
6179
6574
|
);
|
|
6180
6575
|
},
|
|
@@ -6188,7 +6583,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6188
6583
|
borrowIncentiveIds.incentiveAccounts,
|
|
6189
6584
|
obligationKey,
|
|
6190
6585
|
obligationId,
|
|
6191
|
-
|
|
6586
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6192
6587
|
],
|
|
6193
6588
|
[rewardType]
|
|
6194
6589
|
);
|
|
@@ -6202,7 +6597,7 @@ var generateBorrowIncentiveNormalMethod = ({ builder, txBlock }) => {
|
|
|
6202
6597
|
borrowIncentiveIds.incentiveAccounts,
|
|
6203
6598
|
obligation,
|
|
6204
6599
|
veScaKey,
|
|
6205
|
-
|
|
6600
|
+
import_utils18.SUI_CLOCK_OBJECT_ID
|
|
6206
6601
|
]
|
|
6207
6602
|
);
|
|
6208
6603
|
}
|
|
@@ -7092,12 +7487,12 @@ var ScallopIndexer = class {
|
|
|
7092
7487
|
};
|
|
7093
7488
|
|
|
7094
7489
|
// src/models/scallopQuery.ts
|
|
7095
|
-
var
|
|
7490
|
+
var import_utils24 = require("@mysten/sui/utils");
|
|
7096
7491
|
var ScallopQuery = class {
|
|
7097
7492
|
constructor(params, instance) {
|
|
7098
7493
|
this.params = params;
|
|
7099
7494
|
this.suiKit = instance?.suiKit ?? instance?.utils?.suiKit ?? newSuiKit(params);
|
|
7100
|
-
this.walletAddress = (0,
|
|
7495
|
+
this.walletAddress = (0, import_utils24.normalizeSuiAddress)(
|
|
7101
7496
|
params.walletAddress ?? this.suiKit.currentAddress()
|
|
7102
7497
|
);
|
|
7103
7498
|
if (instance?.utils) {
|
|
@@ -7172,6 +7567,7 @@ var ScallopQuery = class {
|
|
|
7172
7567
|
}
|
|
7173
7568
|
/* ==================== Core Query Methods ==================== */
|
|
7174
7569
|
/**
|
|
7570
|
+
* @deprecated use getMarketPools
|
|
7175
7571
|
* Query market data.
|
|
7176
7572
|
* @param indexer - Whether to use indexer.
|
|
7177
7573
|
* @return Market data.
|
|
@@ -7190,7 +7586,7 @@ var ScallopQuery = class {
|
|
|
7190
7586
|
* @param indexer - Whether to use indexer.
|
|
7191
7587
|
* @return Market pools data.
|
|
7192
7588
|
*/
|
|
7193
|
-
async getMarketPools(poolCoinNames, args) {
|
|
7589
|
+
async getMarketPools(poolCoinNames = [...SUPPORT_POOLS], args) {
|
|
7194
7590
|
return await getMarketPools(
|
|
7195
7591
|
this,
|
|
7196
7592
|
poolCoinNames,
|
|
@@ -7206,13 +7602,8 @@ var ScallopQuery = class {
|
|
|
7206
7602
|
* @return Market pool data.
|
|
7207
7603
|
*/
|
|
7208
7604
|
async getMarketPool(poolCoinName, args) {
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
poolCoinName,
|
|
7212
|
-
args?.indexer,
|
|
7213
|
-
args?.marketObject,
|
|
7214
|
-
args?.coinPrice
|
|
7215
|
-
);
|
|
7605
|
+
const marketPools = await this.getMarketPools(void 0, args);
|
|
7606
|
+
return marketPools.pools[poolCoinName];
|
|
7216
7607
|
}
|
|
7217
7608
|
/**
|
|
7218
7609
|
* Get market collaterals.
|
|
@@ -7650,7 +8041,7 @@ var ScallopQuery = class {
|
|
|
7650
8041
|
* Get list of isolated assets
|
|
7651
8042
|
*/
|
|
7652
8043
|
async getIsolatedAssets() {
|
|
7653
|
-
return await getIsolatedAssets(this
|
|
8044
|
+
return await getIsolatedAssets(this);
|
|
7654
8045
|
}
|
|
7655
8046
|
/**
|
|
7656
8047
|
* Check if asset is an isolated asset
|
|
@@ -7673,6 +8064,13 @@ var ScallopQuery = class {
|
|
|
7673
8064
|
async getAllCoinPrices(args) {
|
|
7674
8065
|
return getAllCoinPrices(this, args?.marketPools, args?.coinPrices);
|
|
7675
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
|
+
}
|
|
7676
8074
|
};
|
|
7677
8075
|
|
|
7678
8076
|
// src/models/scallopBuilder.ts
|
|
@@ -7680,7 +8078,7 @@ var ScallopBuilder = class {
|
|
|
7680
8078
|
constructor(params, instance) {
|
|
7681
8079
|
this.suiKit = instance?.suiKit ?? newSuiKit(params);
|
|
7682
8080
|
this.params = params;
|
|
7683
|
-
this.walletAddress = (0,
|
|
8081
|
+
this.walletAddress = (0, import_utils25.normalizeSuiAddress)(
|
|
7684
8082
|
params?.walletAddress ?? this.suiKit.currentAddress()
|
|
7685
8083
|
);
|
|
7686
8084
|
if (instance?.query) {
|
|
@@ -7827,7 +8225,7 @@ var ScallopClient = class {
|
|
|
7827
8225
|
constructor(params, instance) {
|
|
7828
8226
|
this.params = params;
|
|
7829
8227
|
this.suiKit = instance?.suiKit ?? instance?.builder?.suiKit ?? newSuiKit(params);
|
|
7830
|
-
this.walletAddress = (0,
|
|
8228
|
+
this.walletAddress = (0, import_utils26.normalizeSuiAddress)(
|
|
7831
8229
|
params?.walletAddress ?? this.suiKit.currentAddress()
|
|
7832
8230
|
);
|
|
7833
8231
|
if (instance?.builder) {
|