@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.mjs
CHANGED
|
@@ -279,19 +279,12 @@ var voloCoinIds = {
|
|
|
279
279
|
vsui: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55"
|
|
280
280
|
};
|
|
281
281
|
var sCoinIds = {
|
|
282
|
-
// prod values
|
|
283
|
-
// ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
284
|
-
// swusdc:
|
|
285
|
-
// '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
|
|
286
|
-
// swusdt:
|
|
287
|
-
// '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
|
|
288
|
-
// ssca: '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
|
|
289
|
-
ssui: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
290
|
-
swusdt: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
291
|
-
swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
292
|
-
ssca: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
293
282
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
294
283
|
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
284
|
+
ssui: "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
|
|
285
|
+
swusdc: "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
286
|
+
swusdt: "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
287
|
+
ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
|
|
295
288
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
296
289
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
297
290
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
@@ -335,67 +328,213 @@ var FlashLoanFeeObjectMap = {
|
|
|
335
328
|
|
|
336
329
|
// src/constants/poolAddress.ts
|
|
337
330
|
var POOL_ADDRESSES = {
|
|
338
|
-
usdc: {
|
|
339
|
-
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
340
|
-
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af"
|
|
341
|
-
},
|
|
342
331
|
sbeth: {
|
|
343
|
-
lendingPoolAddress: "
|
|
344
|
-
collateralPoolAddress: "0xce0549a1cbe952e734f56646988e6b02bbae14667889a60e24d0d03540a6119f"
|
|
332
|
+
lendingPoolAddress: "0xaa34c938e0394e5186c7dc626ad69be96af2194b23fdc6ac1c63090e399f5ba4",
|
|
333
|
+
collateralPoolAddress: "0xce0549a1cbe952e734f56646988e6b02bbae14667889a60e24d0d03540a6119f",
|
|
334
|
+
borrowDynamic: "0x7bbe75e8b924229f2f2110838ff612ea66e670fa3766759515dee78f617b1ea3",
|
|
335
|
+
interestModel: "0x9e6cae260d05155785a1904d24e6abc98368509c5752c8a9cec15a35aabc1512",
|
|
336
|
+
riskModel: "0xcf10334cfee675ecea2d2fee37b0f7cd2835c84b8b5692a853021debe6af80ab",
|
|
337
|
+
borrowFeeKey: "0x4298c8b6afe7a42a8e3ff93773fb9769529fe6d37e085ab411acf2ba2a44a931",
|
|
338
|
+
supplyLimitKey: "0x812fe508b78d3e0817149c0b39976221ddb267b5cc9514e81679f9b9a2f3624c",
|
|
339
|
+
borrowLimitKey: "0x165c274c67eda2b0d13563124741fffd0ce7d643f4c1c4b59d7e53a83796ae25",
|
|
340
|
+
isolatedAssetKey: void 0,
|
|
341
|
+
spool: void 0,
|
|
342
|
+
spoolReward: void 0
|
|
345
343
|
},
|
|
346
|
-
|
|
347
|
-
lendingPoolAddress: "
|
|
348
|
-
collateralPoolAddress: "
|
|
344
|
+
usdc: {
|
|
345
|
+
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
346
|
+
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af",
|
|
347
|
+
borrowDynamic: "0x77837ecd4f26fac9a410fff594f2c0bd3288904a15492ca77cb8a52684dbb866",
|
|
348
|
+
interestModel: "0xaae3f179d63009380cbdcb9acb12907afc9c3cb79cc3460be296a9c6d28f3ff3",
|
|
349
|
+
riskModel: "0x198b24db213bfeb8b3c80ae63dde92e32fd24984d25da8233ff777b851edd574",
|
|
350
|
+
borrowFeeKey: "0xd37c5316cfe0a5967d14264fa6b423f880518b294a1ee6581ccbb49ccc401fb8",
|
|
351
|
+
supplyLimitKey: "0x4be9ae54ac4d320f4f9c14cae78cb85c8e0e67791dd9bdba6d2db20614a28a24",
|
|
352
|
+
borrowLimitKey: "0x6b01093cba95b835181f00e3a2c31ed8dfc8d64fe3db0fb80933a09f66e1ccf1",
|
|
353
|
+
isolatedAssetKey: void 0,
|
|
354
|
+
spool: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
|
|
355
|
+
spoolReward: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
|
|
349
356
|
},
|
|
350
357
|
wbtc: {
|
|
351
358
|
lendingPoolAddress: "0x65cc08a5aca0a0b8d72e1993ded8d145f06dd102fd0d8f285b92934faed564ab",
|
|
352
|
-
collateralPoolAddress: "0x1aa4e5cf743cd797b4eb8bf1e614f80ae2cf556ced426cddaaf190ffcd0e59c3"
|
|
359
|
+
collateralPoolAddress: "0x1aa4e5cf743cd797b4eb8bf1e614f80ae2cf556ced426cddaaf190ffcd0e59c3",
|
|
360
|
+
borrowDynamic: "0x6f97dcf54158a5d08f359a213a41e347bc1e6316414288dc1e1b674dc008742e",
|
|
361
|
+
interestModel: "0x582b915cca0ffca9576a7cedd505d0fd7cb146e9521ccf10e7453ed93705684d",
|
|
362
|
+
riskModel: "0x1d0a242bf1682e259112239720da19d3155dd99d70b1f4b3b973eecbab858911",
|
|
363
|
+
borrowFeeKey: "0x654ab7e8ff6d9ef04da697e1f12ca21eaf72ebb495daf877e0776e65187dcb92",
|
|
364
|
+
supplyLimitKey: "0xac3b0d17df9f98aa2798c54405cf1d8d5356ef22f76f02d150cbe5195e9f3a36",
|
|
365
|
+
borrowLimitKey: "0x231e13ba6b1eb26c562f4a125778d3152f9a77e31f124bd6012e234a73012169",
|
|
366
|
+
isolatedAssetKey: void 0,
|
|
367
|
+
spool: void 0,
|
|
368
|
+
spoolReward: void 0
|
|
353
369
|
},
|
|
354
370
|
wusdc: {
|
|
355
|
-
lendingPoolAddress: "
|
|
356
|
-
collateralPoolAddress: "
|
|
371
|
+
lendingPoolAddress: "0x2f4df5e1368fbbdaa5c712d28b837b3d41c2d3872979ccededcdfdac55ff8a93",
|
|
372
|
+
collateralPoolAddress: "0x94cf69158114c5b242d2ee5d0149a335bddf3b9c9a6ba919cca58097a4814980",
|
|
373
|
+
borrowDynamic: "0x0464d117908b52fc75f7f85322a47caa078ef56f48681bcfdcb630a66f2591e6",
|
|
374
|
+
interestModel: "0xd72e2b5ba486752939d6dfb86a67b86ce9a60c83cb8fb893caac54a0f112577f",
|
|
375
|
+
riskModel: "0xb74035de8f70c1531ceb8e2e8c152d6b8db24c8a9fe7bbf6f75dbf7c6700a0a3",
|
|
376
|
+
borrowFeeKey: "0x76dcf1acbd9951fe3d1a3fe28403fec089ffe53a7c7d6c77e3ea97033a63581a",
|
|
377
|
+
supplyLimitKey: "0x7b302196907e87c5d5872f2e6f40628d110170f994e0e08bc607bded001958c3",
|
|
378
|
+
borrowLimitKey: "0x97f1502ce994db0bcb15aac1760d174def9e88e97cd2262eed54521ee2c19f81",
|
|
379
|
+
isolatedAssetKey: void 0,
|
|
380
|
+
spool: "0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0",
|
|
381
|
+
spoolReward: "0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8"
|
|
382
|
+
},
|
|
383
|
+
weth: {
|
|
384
|
+
lendingPoolAddress: "0xc8fcdff48efc265740ae0b74aae3faccae9ec00034039a113f3339798035108c",
|
|
385
|
+
collateralPoolAddress: "0xad7ced91ed6e7f2b81805561eee27fa6f3e72fdae561077334c7248583db4dbf",
|
|
386
|
+
borrowDynamic: "0xd1578e1d1c9c82eb4c5bf14beece8142a67a683b2647d7276e92984119fc1445",
|
|
387
|
+
interestModel: "0xa1dc08541cd2cb7cfb4e56272292d5c6a4780e80fd210c58abffae98268b5ed9",
|
|
388
|
+
riskModel: "0x9f05a25fd33a9e8cf33962126b175d038e184f0ee1b87dc41d4cedbe6abebbe5",
|
|
389
|
+
borrowFeeKey: "0x29672ba8ab4625b8181d8ed739e5344de22a97d417748c4d1276c7379283d7a3",
|
|
390
|
+
supplyLimitKey: "0x2b957941bdc9432bbc83ab74dc194b6ebb7c927bc4c6926a5492b5503499e509",
|
|
391
|
+
borrowLimitKey: "0x51f256d87e51a7ca2b1c482923096f4b6dac6beac89d8ecf4c65b7d5764115d6",
|
|
392
|
+
isolatedAssetKey: void 0,
|
|
393
|
+
spool: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
394
|
+
spoolReward: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
357
395
|
},
|
|
358
396
|
wusdt: {
|
|
359
397
|
lendingPoolAddress: "0xfbc056f126dd35adc1f8fe985e2cedc8010e687e8e851e1c5b99fdf63cd1c879",
|
|
360
|
-
collateralPoolAddress: "0x2260cb5b24929dd20a1742f37a61ff3ce4fde5cdb023e2d3ce2e0ce2d90719e3"
|
|
398
|
+
collateralPoolAddress: "0x2260cb5b24929dd20a1742f37a61ff3ce4fde5cdb023e2d3ce2e0ce2d90719e3",
|
|
399
|
+
borrowDynamic: "0xb524030cc8f7cdbf13f1925a0a2b5e77cc52bab73b070f42c5e510f6083da1ba",
|
|
400
|
+
interestModel: "0x92f93c4431b4c51774d6d964da516af2def18b78f49dbbf519e58449a8ba4659",
|
|
401
|
+
riskModel: "0xdf89d66988cb506ddeff46f5dfd1d11aaece345e9a05a0c6a18a0788647de2a7",
|
|
402
|
+
borrowFeeKey: "0xda8f8b3522fc4086eae4ae7ce8844d60aa0dc3eab8ffc91fe93e922a72639b2d",
|
|
403
|
+
supplyLimitKey: "0xa9cb5ebb90ca6e808a2bd7728cca4a6fa8b565d4deeda96eb23c8322c477c24e",
|
|
404
|
+
borrowLimitKey: "0xa3278564fc613680a69c10972a0299965bf6e12e9ac171388842fc958de0f90e",
|
|
405
|
+
isolatedAssetKey: void 0,
|
|
406
|
+
spool: "0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f",
|
|
407
|
+
spoolReward: "0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080"
|
|
361
408
|
},
|
|
362
409
|
sui: {
|
|
363
410
|
lendingPoolAddress: "0x9c9077abf7a29eebce41e33addbcd6f5246a5221dd733e56ea0f00ae1b25c9e8",
|
|
364
|
-
collateralPoolAddress: "0x75aacfb7dcbf92ee0111fc1bf975b12569e4ba632e81ed7ae5ac090d40cd3acb"
|
|
411
|
+
collateralPoolAddress: "0x75aacfb7dcbf92ee0111fc1bf975b12569e4ba632e81ed7ae5ac090d40cd3acb",
|
|
412
|
+
borrowDynamic: "0xbf68e6159c99dcaf87717385f1143d2891c2d19663bd51f0bc9b6909e4bb7c27",
|
|
413
|
+
interestModel: "0x0dad9baa89b863c15a0487575de7cc428b01f1aa3998ad7a9e9752d96e83ffa9",
|
|
414
|
+
riskModel: "0xcd6675864690b5648a6e309f2f02a66914b2b2bd9c31936f4e0f7fc0f792bc86",
|
|
415
|
+
borrowFeeKey: "0xda5ede87a05c0677b17511c859b22d0a2b0229ee374d5d7a1274cb836b9fe5f8",
|
|
416
|
+
supplyLimitKey: "0x0602418e66fb7a73fa997077bd66f248ad5b090d43344a14b9f1db598ecc1d47",
|
|
417
|
+
borrowLimitKey: "0x2b33a7efdcf6a6df24f4d8a356dd52f58d75bc023c3f171d99502d4d008b53f0",
|
|
418
|
+
isolatedAssetKey: void 0,
|
|
419
|
+
spool: "0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4",
|
|
420
|
+
spoolReward: "0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9"
|
|
365
421
|
},
|
|
366
422
|
wapt: {
|
|
367
423
|
lendingPoolAddress: "0xca8c14a24e0c32b198eaf479a3317461e3cc339097ce88eaf296a15df8dcfdf5",
|
|
368
|
-
collateralPoolAddress: "0xde33f9ac5bb0ed34598da4e64b4983832716ced65f172fbf267bcfe859c4ad9c"
|
|
424
|
+
collateralPoolAddress: "0xde33f9ac5bb0ed34598da4e64b4983832716ced65f172fbf267bcfe859c4ad9c",
|
|
425
|
+
borrowDynamic: "0xadda873fb6bf68e1ba3f2dfaa51cf75d4a1bef73d9627bd36e77d2baecb1f2dc",
|
|
426
|
+
interestModel: "0xa4a29d07beecea5eb0c59745bb89d7a1380c6f206a7f1ca37046e05db6025c43",
|
|
427
|
+
riskModel: "0x7ada83b473af30aed50d187de82a0912878b53ade7ac30e11ce23953cf739d84",
|
|
428
|
+
borrowFeeKey: "0x768735df587c7e0f141dcd035fbbcbf9d2149a7b23888baed4e2baa160fa2eeb",
|
|
429
|
+
supplyLimitKey: void 0,
|
|
430
|
+
borrowLimitKey: void 0,
|
|
431
|
+
isolatedAssetKey: void 0,
|
|
432
|
+
spool: void 0,
|
|
433
|
+
spoolReward: void 0
|
|
434
|
+
},
|
|
435
|
+
afsui: {
|
|
436
|
+
lendingPoolAddress: "0x9b942a24ce390b7f5016d34a0217057bf9487b92aa6d7cc9894271dbbe62471a",
|
|
437
|
+
collateralPoolAddress: "0xe5e56f5c0e3072760b21f9d49a5cc793f37d736c412a9065c16e1265c74e6341",
|
|
438
|
+
borrowDynamic: "0x1c76d4df9506154a117bbac0f5e005d8a9c0d9ca60e3fe0c9d080006f6f54e81",
|
|
439
|
+
interestModel: "0xb155c536b37c9601baaa734ad1dd0ef335b2b597aceb8d3ecee41a43f94dcd70",
|
|
440
|
+
riskModel: "0x75371b1d04b5bebc0738af548ba64ea658e74f78228ec8014336d8eebb992312",
|
|
441
|
+
borrowFeeKey: "0xabc6422db2d4ee01635ddaeaa44ba68370eebd785d2c4632515f841ae9bc47d9",
|
|
442
|
+
supplyLimitKey: "0x61a2054eb37f543c0d774da57f2c9542aad8d79a197f748ac08ef5df6cc47028",
|
|
443
|
+
borrowLimitKey: "0x4459498a043872cd107ea917493fee0baf2d37a273c7538e1d6581cc61b92af8",
|
|
444
|
+
isolatedAssetKey: void 0,
|
|
445
|
+
spool: "0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800",
|
|
446
|
+
spoolReward: "0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e"
|
|
369
447
|
},
|
|
370
448
|
wsol: {
|
|
371
449
|
lendingPoolAddress: "0x985682c42984cdfb03f9ff7d8923344c2fe096b1ae4b82ea17721af19d22a21f",
|
|
372
|
-
collateralPoolAddress: "0xdc1cc2c371a043ae8e3c3fe2d013c35f1346960b7dbb4c072982c5b794ed144f"
|
|
450
|
+
collateralPoolAddress: "0xdc1cc2c371a043ae8e3c3fe2d013c35f1346960b7dbb4c072982c5b794ed144f",
|
|
451
|
+
borrowDynamic: "0xe3f301e16d4f1273ea659dd82c5c3f124ca5a5883a5726c7ec0f77bf43b70895",
|
|
452
|
+
interestModel: "0xd95affaee077006b8dbb4b108c1b087e95fc6e5143ef0682da345d5b35bc6356",
|
|
453
|
+
riskModel: "0x8e0da6358073144ec3557400c87f04991ba3a13ca7e0d0a19daed45260b32f16",
|
|
454
|
+
borrowFeeKey: "0x604bffbc817e8e12db15f2373a9e15b2c7adbc510649cdf2cc62a594af90671c",
|
|
455
|
+
supplyLimitKey: "0xbd419b536b3f9c9d4adfc20372ca6feedc53cc31798ac860dbfc847bcf05f54b",
|
|
456
|
+
borrowLimitKey: "0x77d453c51948f32564c810bc73f9ba7abde880657b7f89e1c8a3bc28fa36ee87",
|
|
457
|
+
isolatedAssetKey: void 0,
|
|
458
|
+
spool: void 0,
|
|
459
|
+
spoolReward: void 0
|
|
373
460
|
},
|
|
374
461
|
cetus: {
|
|
375
462
|
lendingPoolAddress: "0xc09858f60e74a1b671635bec4e8a2c84a0ff313eb87f525fba3258e88c6b6282",
|
|
376
|
-
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a"
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
463
|
+
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a",
|
|
464
|
+
borrowDynamic: "0xcc725fd5d71990cdccc7e16c88a2abde6dbcd0bf6e805ccc1c0cb83a106bbf4e",
|
|
465
|
+
interestModel: "0x2f1258aab89d04d11834121599ab1317dfecb582b4246f106df399911125845a",
|
|
466
|
+
riskModel: "0x03fed312dbba624dff5edaf4736891a1c7d864445fd268e7572b42ec7381132e",
|
|
467
|
+
borrowFeeKey: "0xdf5fb0cc4ebbf5eebfae23dfa5b266f6a58c18a894a13054ae60c0eb6e79c382",
|
|
468
|
+
supplyLimitKey: "0xa5ea3d4bf663d7bc667e82b40a98923590ff3851b9ea8e7afbc26c588c7007d3",
|
|
469
|
+
borrowLimitKey: "0xf44218a5f0feb128e6fbe74b91d1e7e9ef859bd23a576ff0de151829e015a157",
|
|
470
|
+
isolatedAssetKey: void 0,
|
|
471
|
+
spool: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
472
|
+
spoolReward: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
381
473
|
},
|
|
382
474
|
hasui: {
|
|
383
475
|
lendingPoolAddress: "0x7ebc607f6bdeb659fb6506cb91c5cc1d47bb365cfd5d2e637ea765346ec84ed4",
|
|
384
|
-
collateralPoolAddress: "0xad9ed40d6486e4c26cec7370dffce8dc4821eb79178250b5938a34ccafd61e6d"
|
|
476
|
+
collateralPoolAddress: "0xad9ed40d6486e4c26cec7370dffce8dc4821eb79178250b5938a34ccafd61e6d",
|
|
477
|
+
borrowDynamic: "0x13ec1220b41c6e0f11dd6113199a2aff8e4cf2223047b5bd06d7a3ed5d23e1d2",
|
|
478
|
+
interestModel: "0x987c58cbe48096618f4d9d83e0bde2ff638ce4753aba40dab7c302ac3e4b4519",
|
|
479
|
+
riskModel: "0xe42d8497d423eca0d8df89850c2d77d3644e7f54a2d28f59c315903ea5ec8dec",
|
|
480
|
+
borrowFeeKey: "0xef885c382d461c4fb14d1f3b3758c380c78a1a4b2a3d2fafe6e8649a60fdd7ab",
|
|
481
|
+
supplyLimitKey: "0xc7385b1703693cbbc9c97227fe3fd5c91d7afda00e0da69d942c3260d78e45e0",
|
|
482
|
+
borrowLimitKey: "0x65333e606eead786a999c8267bc9886b0fdbc298a8a8635a48a9c9b8838d9395",
|
|
483
|
+
isolatedAssetKey: void 0,
|
|
484
|
+
spool: "0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa",
|
|
485
|
+
spoolReward: "0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66"
|
|
385
486
|
},
|
|
386
487
|
vsui: {
|
|
387
488
|
lendingPoolAddress: "0xda9257c0731d8822e8a438ebced13415850d705b779c79958dcf2aeb21fcb43d",
|
|
388
|
-
collateralPoolAddress: "0x4435e8b8ec2a04094d863aa52deb6ab6f8f47ed8778f4d9f1b27afc4a6e85f1e"
|
|
489
|
+
collateralPoolAddress: "0x4435e8b8ec2a04094d863aa52deb6ab6f8f47ed8778f4d9f1b27afc4a6e85f1e",
|
|
490
|
+
borrowDynamic: "0x8eae703505246f975e83f5af24780e5f1b89ef403d5a80ea15534624d6f1a503",
|
|
491
|
+
interestModel: "0xaf6a52b5eaaa5af4d9e49d83de0d504c295ae21f3a37560c3f48e0e15a1d4625",
|
|
492
|
+
riskModel: "0x1e862f27a6bd47c3041159a5cf392f549485c6605ed9aa937f16ecc951e82e65",
|
|
493
|
+
borrowFeeKey: "0x5230de0f41a5e4c05b3d1187a90a9eeab491cec97b08b71512d9785e8af36aa6",
|
|
494
|
+
supplyLimitKey: "0x1d40e34d1f365ec431fff020bd75c16b14b340b3ed6c139803cc15c2384621b2",
|
|
495
|
+
borrowLimitKey: "0x4eb206b4417642cfc1b02f80bb5f5e366af2af2f9fb4ea4f4e898ae82367f8a0",
|
|
496
|
+
isolatedAssetKey: void 0,
|
|
497
|
+
spool: "0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670",
|
|
498
|
+
spoolReward: "0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a"
|
|
389
499
|
},
|
|
390
500
|
sca: {
|
|
391
501
|
lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
|
|
392
|
-
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
502
|
+
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31",
|
|
503
|
+
borrowDynamic: "0x4e24f52edd739dab59ca4c6353ca430b7ce57e7f333abd0957958570a7cd09ca",
|
|
504
|
+
interestModel: "0xbdcd48cf5b1a814911dc2d5c72d393a980c87820199fe5d799289ce94f4c47df",
|
|
505
|
+
riskModel: "0xc437c24b67b8e2676907700fa395af337ad6463d2c0b4f4fa2e9276414026089",
|
|
506
|
+
borrowFeeKey: "0xee55ba0f9800a62d9e7aef667f87e658258f41814d2c9fa02e25590671b4e5ad",
|
|
507
|
+
supplyLimitKey: "0x8dd938856b972a10ea27ecab2af7ed78e48fc5f6ccedaf2b2119959f747dc2e3",
|
|
508
|
+
borrowLimitKey: "0x04c7de61c5b42972f9bf6a8b1848e5fea2d037ee8deba81741ecd4a70aa80d30",
|
|
509
|
+
isolatedAssetKey: void 0,
|
|
510
|
+
spool: void 0,
|
|
511
|
+
spoolReward: void 0
|
|
396
512
|
},
|
|
397
513
|
deep: {
|
|
398
|
-
lendingPoolAddress: "0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03"
|
|
514
|
+
lendingPoolAddress: "0xf4a67ffb43da1e1c61c049f188f19463ea8dbbf2d5ef4722d6df854ff1b1cc03",
|
|
515
|
+
collateralPoolAddress: void 0,
|
|
516
|
+
borrowDynamic: "0x95e00d7466f97a100e70f08bd37788dc49335796f6f49fab996d40dd0681c6d3",
|
|
517
|
+
interestModel: "0x4143c298506a332d92ea8a995e6f3991ee3215f58f6fc6441752835d275b9a69",
|
|
518
|
+
riskModel: void 0,
|
|
519
|
+
borrowFeeKey: "0xb14ee43f4ad2a2c40bac8c4406a401690e93c982e289cf3802fedf74a159cab2",
|
|
520
|
+
supplyLimitKey: "0x599528fdfdc253e90dfd0acf4f4a166b391e2aac1ca6528abbff63225b548fee",
|
|
521
|
+
borrowLimitKey: "0xf4217e8ef9d9c32e8992092e910a77535a8124c19b8a762a673f227f5f765a4e",
|
|
522
|
+
isolatedAssetKey: "0x208d3a24ba369dcfc8f0387333d1512b98199eb150d2f2a69359ff708cf761e3",
|
|
523
|
+
spool: void 0,
|
|
524
|
+
spoolReward: void 0
|
|
525
|
+
},
|
|
526
|
+
fud: {
|
|
527
|
+
lendingPoolAddress: "0xefed2cbe76b344792ac724523c8b2236740d1cea2100d46a0ed0dc760c7f4231",
|
|
528
|
+
collateralPoolAddress: void 0,
|
|
529
|
+
borrowDynamic: "0x14367ddca30e2860cb89ed4eaca20c7ece260c5d59dd9990d2c85a8321326acb",
|
|
530
|
+
interestModel: "0x2600ac100ef154eb2329ffd3aad47aca308ff9f9348de3e8e94aaeb906ec2303",
|
|
531
|
+
riskModel: void 0,
|
|
532
|
+
borrowFeeKey: "0xa87e8b26e07ff35ac9fb57adcc779be2883080fc7d12de2d9e7e16d8d8d5e529",
|
|
533
|
+
supplyLimitKey: "0xf98419aecc37a3c5de716f8ec590f8991a5be34da72ce1a2da09531ff45adf7d",
|
|
534
|
+
borrowLimitKey: "0x3d928a001c453c50004baa54e14b0a0e1b0907d9c613dfd76064fd7ed4e8beb8",
|
|
535
|
+
isolatedAssetKey: "0xfcb533e9e4e31f9c9f32d6cbf7fbb3425f1d60474e229a363a2dc7f835d587e2",
|
|
536
|
+
spool: void 0,
|
|
537
|
+
spoolReward: void 0
|
|
399
538
|
}
|
|
400
539
|
};
|
|
401
540
|
|
|
@@ -446,7 +585,11 @@ var queryKeys = {
|
|
|
446
585
|
typeArgs: !typeArgs ? void 0 : JSON.stringify(typeArgs)
|
|
447
586
|
}
|
|
448
587
|
],
|
|
449
|
-
getObject: (objectId,
|
|
588
|
+
getObject: (objectId, options) => [
|
|
589
|
+
"rpc",
|
|
590
|
+
"getObject",
|
|
591
|
+
{ options, objectId }
|
|
592
|
+
],
|
|
450
593
|
getObjects: (objectIds, walletAddress, options) => [
|
|
451
594
|
"rpc",
|
|
452
595
|
"getObjects",
|
|
@@ -979,7 +1122,7 @@ var TEST_ADDRESSES = {
|
|
|
979
1122
|
};
|
|
980
1123
|
|
|
981
1124
|
// src/constants/tokenBucket.ts
|
|
982
|
-
var DEFAULT_TOKENS_PER_INTERVAL =
|
|
1125
|
+
var DEFAULT_TOKENS_PER_INTERVAL = 50;
|
|
983
1126
|
var DEFAULT_INTERVAL_IN_MS = 250;
|
|
984
1127
|
|
|
985
1128
|
// src/constants/vesca.ts
|
|
@@ -1127,7 +1270,10 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
1127
1270
|
borrowRateOnMidKink: Number(originMarketPoolData.borrowRateOnMidKink.value) / 2 ** 32,
|
|
1128
1271
|
highKink: Number(originMarketPoolData.highKink.value) / 2 ** 32,
|
|
1129
1272
|
midKink: Number(originMarketPoolData.midKink.value) / 2 ** 32,
|
|
1130
|
-
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount)
|
|
1273
|
+
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount),
|
|
1274
|
+
isIsolated: originMarketPoolData.isIsolated,
|
|
1275
|
+
supplyLimit: Number(originMarketPoolData.supplyLimit),
|
|
1276
|
+
borrowLimit: Number(originMarketPoolData.borrowLimit)
|
|
1131
1277
|
};
|
|
1132
1278
|
};
|
|
1133
1279
|
var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
@@ -1179,6 +1325,7 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1179
1325
|
borrowApyOnHighKink: utils.parseAprToApy(borrowAprOnHighKink),
|
|
1180
1326
|
borrowAprOnMidKink,
|
|
1181
1327
|
borrowApyOnMidKink: utils.parseAprToApy(borrowAprOnMidKink),
|
|
1328
|
+
coinDecimal,
|
|
1182
1329
|
maxBorrowApr,
|
|
1183
1330
|
maxBorrowApy: utils.parseAprToApy(maxBorrowApr),
|
|
1184
1331
|
borrowApr: Math.min(borrowApr, maxBorrowApr),
|
|
@@ -1197,17 +1344,21 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1197
1344
|
utilizationRate: utilizationRate.toNumber(),
|
|
1198
1345
|
supplyApr: supplyApr.toNumber(),
|
|
1199
1346
|
supplyApy: utils.parseAprToApy(supplyApr.toNumber()),
|
|
1200
|
-
conversionRate: conversionRate.toNumber()
|
|
1347
|
+
conversionRate: conversionRate.toNumber(),
|
|
1348
|
+
isIsolated: parsedMarketPoolData.isIsolated,
|
|
1349
|
+
maxSupplyCoin: BigNumber(parsedMarketPoolData.supplyLimit).shiftedBy(coinDecimal).toNumber(),
|
|
1350
|
+
maxBorrowCoin: BigNumber(parsedMarketPoolData.borrowLimit).shiftedBy(coinDecimal).toNumber()
|
|
1201
1351
|
};
|
|
1202
1352
|
};
|
|
1203
1353
|
var parseOriginMarketCollateralData = (originMarketCollateralData) => {
|
|
1204
1354
|
const divisor = 2 ** 32;
|
|
1205
1355
|
return {
|
|
1206
1356
|
coinType: normalizeStructTag(originMarketCollateralData.type.name),
|
|
1357
|
+
isIsolated: originMarketCollateralData.isIsolated,
|
|
1207
1358
|
collateralFactor: Number(originMarketCollateralData.collateralFactor.value) / divisor,
|
|
1208
1359
|
liquidationFactor: Number(originMarketCollateralData.liquidationFactor.value) / divisor,
|
|
1209
1360
|
liquidationDiscount: Number(originMarketCollateralData.liquidationDiscount.value) / divisor,
|
|
1210
|
-
|
|
1361
|
+
liquidationPenalty: Number(originMarketCollateralData.liquidationPenalty.value) / divisor,
|
|
1211
1362
|
liquidationReserveFactor: Number(originMarketCollateralData.liquidationReserveFactor.value) / divisor,
|
|
1212
1363
|
maxCollateralAmount: Number(originMarketCollateralData.maxCollateralAmount),
|
|
1213
1364
|
totalCollateralAmount: Number(
|
|
@@ -1227,6 +1378,8 @@ var calculateMarketCollateralData = (utils, parsedMarketCollateralData) => {
|
|
|
1227
1378
|
parsedMarketCollateralData.totalCollateralAmount
|
|
1228
1379
|
).shiftedBy(-1 * coinDecimal);
|
|
1229
1380
|
return {
|
|
1381
|
+
coinDecimal,
|
|
1382
|
+
isIsolated: parsedMarketCollateralData.isIsolated,
|
|
1230
1383
|
maxDepositAmount: parsedMarketCollateralData.maxCollateralAmount,
|
|
1231
1384
|
maxDepositCoin: maxCollateralCoin.toNumber(),
|
|
1232
1385
|
depositAmount: parsedMarketCollateralData.totalCollateralAmount,
|
|
@@ -1557,6 +1710,13 @@ var findClosestUnlockRound = (unlockAtInSecondTimestamp) => {
|
|
|
1557
1710
|
}
|
|
1558
1711
|
return Math.floor(closestTwelveAM.getTime() / 1e3);
|
|
1559
1712
|
};
|
|
1713
|
+
var partitionArray = (array, chunkSize) => {
|
|
1714
|
+
const result = [];
|
|
1715
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
|
1716
|
+
result.push(array.slice(i, i + chunkSize));
|
|
1717
|
+
}
|
|
1718
|
+
return result;
|
|
1719
|
+
};
|
|
1560
1720
|
|
|
1561
1721
|
// src/utils/tokenBucket.ts
|
|
1562
1722
|
var TokenBucket = class {
|
|
@@ -1593,7 +1753,6 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
|
|
|
1593
1753
|
} else if (retries < maxRetries) {
|
|
1594
1754
|
retries++;
|
|
1595
1755
|
const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
|
|
1596
|
-
console.error(`Rate limit exceeded, retrying in ${delay} ms`);
|
|
1597
1756
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1598
1757
|
return tryRequest();
|
|
1599
1758
|
} else {
|
|
@@ -1629,6 +1788,16 @@ function withIndexerFallback(method) {
|
|
|
1629
1788
|
};
|
|
1630
1789
|
}
|
|
1631
1790
|
|
|
1791
|
+
// src/utils/core.ts
|
|
1792
|
+
var parseObjectAs = (object) => {
|
|
1793
|
+
if (!(object && object.content && "fields" in object.content))
|
|
1794
|
+
throw new Error(`Failed to parse object`);
|
|
1795
|
+
const value = object.content.fields.value;
|
|
1796
|
+
if (typeof value === "object" && "fields" in value)
|
|
1797
|
+
return object.content.fields.value.fields;
|
|
1798
|
+
return value;
|
|
1799
|
+
};
|
|
1800
|
+
|
|
1632
1801
|
// src/models/scallopCache.ts
|
|
1633
1802
|
var ScallopCache = class {
|
|
1634
1803
|
constructor(suiKit, walletAddress, cacheOptions, tokenBucket, queryClient) {
|
|
@@ -1663,11 +1832,11 @@ var ScallopCache = class {
|
|
|
1663
1832
|
})
|
|
1664
1833
|
);
|
|
1665
1834
|
}
|
|
1666
|
-
retryFn(errCount,
|
|
1667
|
-
if (
|
|
1668
|
-
return true;
|
|
1669
|
-
if (errCount >= 5)
|
|
1835
|
+
retryFn(errCount, e) {
|
|
1836
|
+
if (errCount === 5)
|
|
1670
1837
|
return false;
|
|
1838
|
+
if (e.status === 429)
|
|
1839
|
+
return true;
|
|
1671
1840
|
return false;
|
|
1672
1841
|
}
|
|
1673
1842
|
/**
|
|
@@ -1682,7 +1851,15 @@ var ScallopCache = class {
|
|
|
1682
1851
|
typeArgs
|
|
1683
1852
|
}) {
|
|
1684
1853
|
const txBlock = new SuiTxBlock();
|
|
1685
|
-
|
|
1854
|
+
const resolvedArgs = await Promise.all(
|
|
1855
|
+
args.map(async (arg) => {
|
|
1856
|
+
if (typeof arg === "string") {
|
|
1857
|
+
return (await this.queryGetObject(arg))?.data;
|
|
1858
|
+
}
|
|
1859
|
+
return arg;
|
|
1860
|
+
})
|
|
1861
|
+
);
|
|
1862
|
+
txBlock.moveCall(queryTarget, resolvedArgs, typeArgs);
|
|
1686
1863
|
const query = await this.queryClient.fetchQuery({
|
|
1687
1864
|
retry: this.retryFn,
|
|
1688
1865
|
retryDelay: 1e3,
|
|
@@ -1706,7 +1883,7 @@ var ScallopCache = class {
|
|
|
1706
1883
|
return this.queryClient.fetchQuery({
|
|
1707
1884
|
retry: this.retryFn,
|
|
1708
1885
|
retryDelay: 1e3,
|
|
1709
|
-
queryKey: queryKeys.rpc.getObject(objectId,
|
|
1886
|
+
queryKey: queryKeys.rpc.getObject(objectId, options),
|
|
1710
1887
|
queryFn: async () => {
|
|
1711
1888
|
return await callWithRateLimit(
|
|
1712
1889
|
this.tokenBucket,
|
|
@@ -1737,10 +1914,28 @@ var ScallopCache = class {
|
|
|
1737
1914
|
options
|
|
1738
1915
|
),
|
|
1739
1916
|
queryFn: async () => {
|
|
1740
|
-
|
|
1917
|
+
const results = await callWithRateLimit(
|
|
1741
1918
|
this.tokenBucket,
|
|
1742
1919
|
async () => await this.suiKit.getObjects(objectIds, options)
|
|
1743
1920
|
);
|
|
1921
|
+
if (results) {
|
|
1922
|
+
results.forEach((result) => {
|
|
1923
|
+
this.queryClient.setQueriesData(
|
|
1924
|
+
{
|
|
1925
|
+
exact: false,
|
|
1926
|
+
queryKey: queryKeys.rpc.getObject(result.objectId, options)
|
|
1927
|
+
},
|
|
1928
|
+
{
|
|
1929
|
+
data: result,
|
|
1930
|
+
error: null
|
|
1931
|
+
},
|
|
1932
|
+
{
|
|
1933
|
+
updatedAt: Date.now()
|
|
1934
|
+
}
|
|
1935
|
+
);
|
|
1936
|
+
});
|
|
1937
|
+
}
|
|
1938
|
+
return results;
|
|
1744
1939
|
}
|
|
1745
1940
|
});
|
|
1746
1941
|
}
|
|
@@ -2509,7 +2704,7 @@ var getBorrowIncentivePools = async (query, borrowIncentiveCoinNames = [
|
|
|
2509
2704
|
...SUPPORT_BORROW_INCENTIVE_POOLS
|
|
2510
2705
|
], indexer = false, marketPools, coinPrices) => {
|
|
2511
2706
|
const borrowIncentivePools = {};
|
|
2512
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
2707
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices, indexer })).pools;
|
|
2513
2708
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools });
|
|
2514
2709
|
if (indexer) {
|
|
2515
2710
|
const borrowIncentivePoolsIndexer = await query.indexer.getBorrowIncentivePools();
|
|
@@ -2701,7 +2896,7 @@ var supplyLimitZod = zod.object({
|
|
|
2701
2896
|
value: zod.string()
|
|
2702
2897
|
})
|
|
2703
2898
|
});
|
|
2704
|
-
var supplyLimitKeyType = `
|
|
2899
|
+
var supplyLimitKeyType = `0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey`;
|
|
2705
2900
|
var getSupplyLimit = async (utils, poolName) => {
|
|
2706
2901
|
try {
|
|
2707
2902
|
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
@@ -2741,10 +2936,15 @@ var isolatedAssetZod = zod2.object({
|
|
|
2741
2936
|
value: zod2.boolean()
|
|
2742
2937
|
})
|
|
2743
2938
|
});
|
|
2744
|
-
var isolatedAssetKeyType = `
|
|
2745
|
-
var getIsolatedAssets = async (
|
|
2939
|
+
var isolatedAssetKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
2940
|
+
var getIsolatedAssets = async (query) => {
|
|
2941
|
+
if (SUPPORT_POOLS.every((t) => !!POOL_ADDRESSES[t])) {
|
|
2942
|
+
return SUPPORT_POOLS.filter(
|
|
2943
|
+
(t) => !!POOL_ADDRESSES[t]?.isolatedAssetKey && !!POOL_ADDRESSES[t]?.coinType
|
|
2944
|
+
).map((t) => POOL_ADDRESSES[t]?.coinType);
|
|
2945
|
+
}
|
|
2746
2946
|
try {
|
|
2747
|
-
const marketObject = address.get("core.market");
|
|
2947
|
+
const marketObject = query.address.get("core.market");
|
|
2748
2948
|
const isolatedAssets = [];
|
|
2749
2949
|
if (!marketObject)
|
|
2750
2950
|
return isolatedAssets;
|
|
@@ -2754,7 +2954,7 @@ var getIsolatedAssets = async (address) => {
|
|
|
2754
2954
|
return dynamicField.name.type === isolatedAssetKeyType;
|
|
2755
2955
|
};
|
|
2756
2956
|
do {
|
|
2757
|
-
const response = await
|
|
2957
|
+
const response = await query.cache.queryGetDynamicFields({
|
|
2758
2958
|
parentId: marketObject,
|
|
2759
2959
|
cursor: nextCursor,
|
|
2760
2960
|
limit: 10
|
|
@@ -2777,32 +2977,30 @@ var getIsolatedAssets = async (address) => {
|
|
|
2777
2977
|
}
|
|
2778
2978
|
};
|
|
2779
2979
|
var isIsolatedAsset = async (utils, coinName) => {
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2980
|
+
if (POOL_ADDRESSES[coinName]) {
|
|
2981
|
+
return !!POOL_ADDRESSES[coinName].isolatedAssetKey;
|
|
2982
|
+
}
|
|
2983
|
+
const marketObject = utils.address.get("core.market");
|
|
2984
|
+
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
2985
|
+
"getDynamicFields",
|
|
2986
|
+
marketObject
|
|
2987
|
+
]);
|
|
2988
|
+
if (cachedData) {
|
|
2989
|
+
const coinType2 = utils.parseCoinType(coinName);
|
|
2990
|
+
return cachedData.includes(coinType2);
|
|
2991
|
+
}
|
|
2992
|
+
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
2993
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2994
|
+
parentId: marketObject,
|
|
2995
|
+
name: {
|
|
2996
|
+
type: isolatedAssetKeyType,
|
|
2997
|
+
value: coinType
|
|
2789
2998
|
}
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
name: {
|
|
2794
|
-
type: isolatedAssetKeyType,
|
|
2795
|
-
value: coinType
|
|
2796
|
-
}
|
|
2797
|
-
});
|
|
2798
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2799
|
-
if (!parsedData.success)
|
|
2800
|
-
return false;
|
|
2801
|
-
return parsedData.data.fields.value;
|
|
2802
|
-
} catch (e) {
|
|
2803
|
-
console.error(e);
|
|
2999
|
+
});
|
|
3000
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
3001
|
+
if (!parsedData.success)
|
|
2804
3002
|
return false;
|
|
2805
|
-
|
|
3003
|
+
return parsedData.data.fields.value;
|
|
2806
3004
|
};
|
|
2807
3005
|
|
|
2808
3006
|
// src/queries/borrowLimitQuery.ts
|
|
@@ -2821,7 +3019,7 @@ var borrowLimitZod = zod3.object({
|
|
|
2821
3019
|
value: zod3.string()
|
|
2822
3020
|
})
|
|
2823
3021
|
});
|
|
2824
|
-
var borrowLimitKeyType = `
|
|
3022
|
+
var borrowLimitKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::BorrowLimitKey`;
|
|
2825
3023
|
var getBorrowLimit = async (utils, poolName) => {
|
|
2826
3024
|
try {
|
|
2827
3025
|
const poolCoinType = utils.parseCoinType(poolName).slice(2);
|
|
@@ -2845,6 +3043,17 @@ var getBorrowLimit = async (utils, poolName) => {
|
|
|
2845
3043
|
}
|
|
2846
3044
|
};
|
|
2847
3045
|
|
|
3046
|
+
// src/queries/objectsQuery.ts
|
|
3047
|
+
var queryMultipleObjects = async (cache, objectIds, options, partitionSize = 50) => {
|
|
3048
|
+
const objectIdsPartition = partitionArray(objectIds, partitionSize);
|
|
3049
|
+
const objects = [];
|
|
3050
|
+
for (const objectIds2 of objectIdsPartition) {
|
|
3051
|
+
const result = await cache.queryGetObjects(objectIds2, options);
|
|
3052
|
+
objects.push(...result);
|
|
3053
|
+
}
|
|
3054
|
+
return objects;
|
|
3055
|
+
};
|
|
3056
|
+
|
|
2848
3057
|
// src/queries/coreQuery.ts
|
|
2849
3058
|
var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
2850
3059
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
@@ -2901,19 +3110,15 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2901
3110
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
2902
3111
|
highKink: pool.highKink,
|
|
2903
3112
|
midKink: pool.midKink,
|
|
2904
|
-
minBorrowAmount: pool.minBorrowAmount
|
|
3113
|
+
minBorrowAmount: pool.minBorrowAmount,
|
|
3114
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
3115
|
+
supplyLimit: await getSupplyLimit(query.utils, poolCoinName) ?? "0",
|
|
3116
|
+
borrowLimit: await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2905
3117
|
});
|
|
2906
3118
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
2907
3119
|
query.utils,
|
|
2908
3120
|
parsedMarketPoolData
|
|
2909
3121
|
);
|
|
2910
|
-
const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
|
|
2911
|
-
const maxSupplyCoin = BigNumber3(
|
|
2912
|
-
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2913
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2914
|
-
const maxBorrowCoin = BigNumber3(
|
|
2915
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2916
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2917
3122
|
pools[poolCoinName] = {
|
|
2918
3123
|
coinName: poolCoinName,
|
|
2919
3124
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -2923,7 +3128,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2923
3128
|
query.utils.parseMarketCoinName(poolCoinName)
|
|
2924
3129
|
),
|
|
2925
3130
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
2926
|
-
coinDecimal,
|
|
2927
3131
|
coinPrice,
|
|
2928
3132
|
highKink: parsedMarketPoolData.highKink,
|
|
2929
3133
|
midKink: parsedMarketPoolData.midKink,
|
|
@@ -2932,10 +3136,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2932
3136
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
2933
3137
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2934
3138
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2935
|
-
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2936
|
-
// isIsolated: false,
|
|
2937
|
-
maxSupplyCoin,
|
|
2938
|
-
maxBorrowCoin,
|
|
2939
3139
|
...calculatedMarketPoolData
|
|
2940
3140
|
};
|
|
2941
3141
|
}
|
|
@@ -2951,10 +3151,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2951
3151
|
collateralFactor: collateral.collateralFactor,
|
|
2952
3152
|
liquidationFactor: collateral.liquidationFactor,
|
|
2953
3153
|
liquidationDiscount: collateral.liquidationDiscount,
|
|
2954
|
-
|
|
3154
|
+
liquidationPenalty: collateral.liquidationPanelty,
|
|
2955
3155
|
liquidationReserveFactor: collateral.liquidationReserveFactor,
|
|
2956
3156
|
maxCollateralAmount: collateral.maxCollateralAmount,
|
|
2957
|
-
totalCollateralAmount: collateral.totalCollateralAmount
|
|
3157
|
+
totalCollateralAmount: collateral.totalCollateralAmount,
|
|
3158
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
2958
3159
|
});
|
|
2959
3160
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2960
3161
|
query.utils,
|
|
@@ -2966,14 +3167,12 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2966
3167
|
coinType,
|
|
2967
3168
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
2968
3169
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
2969
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
2970
3170
|
coinPrice,
|
|
2971
3171
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
2972
3172
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
2973
3173
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2974
|
-
|
|
3174
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
2975
3175
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2976
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2977
3176
|
...calculatedMarketCollateralData
|
|
2978
3177
|
};
|
|
2979
3178
|
}
|
|
@@ -2983,44 +3182,216 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2983
3182
|
// data: marketData,
|
|
2984
3183
|
};
|
|
2985
3184
|
};
|
|
2986
|
-
var
|
|
2987
|
-
const
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
3185
|
+
var queryRequiredMarketObjects = async (query, poolCoinNames) => {
|
|
3186
|
+
const tasks = poolCoinNames.map((t) => ({
|
|
3187
|
+
poolCoinName: t,
|
|
3188
|
+
balanceSheet: POOL_ADDRESSES[t]?.lendingPoolAddress,
|
|
3189
|
+
collateralStat: POOL_ADDRESSES[t]?.collateralPoolAddress,
|
|
3190
|
+
borrowDynamic: POOL_ADDRESSES[t]?.borrowDynamic,
|
|
3191
|
+
interestModel: POOL_ADDRESSES[t]?.interestModel,
|
|
3192
|
+
riskModel: POOL_ADDRESSES[t]?.riskModel,
|
|
3193
|
+
borrowFeeKey: POOL_ADDRESSES[t]?.borrowFeeKey,
|
|
3194
|
+
supplyLimitKey: POOL_ADDRESSES[t]?.supplyLimitKey,
|
|
3195
|
+
borrowLimitKey: POOL_ADDRESSES[t]?.borrowLimitKey,
|
|
3196
|
+
isolatedAssetKey: POOL_ADDRESSES[t]?.isolatedAssetKey
|
|
3197
|
+
}));
|
|
3198
|
+
const [
|
|
3199
|
+
balanceSheetObjects,
|
|
3200
|
+
collateralStatObjects,
|
|
3201
|
+
borrowDynamicObjects,
|
|
3202
|
+
interestModelObjects,
|
|
3203
|
+
riskModelObjects,
|
|
3204
|
+
borrowFeeObjects,
|
|
3205
|
+
supplyLimitObjects,
|
|
3206
|
+
borrowLimitObjects,
|
|
3207
|
+
isolatedAssetObjects
|
|
3208
|
+
] = await Promise.all([
|
|
3209
|
+
queryMultipleObjects(
|
|
3210
|
+
query.cache,
|
|
3211
|
+
tasks.map((task) => task.balanceSheet).filter((t) => !!t)
|
|
3212
|
+
),
|
|
3213
|
+
queryMultipleObjects(
|
|
3214
|
+
query.cache,
|
|
3215
|
+
tasks.map((task) => task.collateralStat).filter((t) => !!t)
|
|
3216
|
+
),
|
|
3217
|
+
queryMultipleObjects(
|
|
3218
|
+
query.cache,
|
|
3219
|
+
tasks.map((task) => task.borrowDynamic).filter((t) => !!t)
|
|
3220
|
+
),
|
|
3221
|
+
queryMultipleObjects(
|
|
3222
|
+
query.cache,
|
|
3223
|
+
tasks.map((task) => task.interestModel).filter((t) => !!t)
|
|
3224
|
+
),
|
|
3225
|
+
queryMultipleObjects(
|
|
3226
|
+
query.cache,
|
|
3227
|
+
tasks.map((task) => task.riskModel).filter((t) => !!t)
|
|
3228
|
+
),
|
|
3229
|
+
queryMultipleObjects(
|
|
3230
|
+
query.cache,
|
|
3231
|
+
tasks.map((task) => task.borrowFeeKey).filter((t) => !!t)
|
|
3232
|
+
),
|
|
3233
|
+
queryMultipleObjects(
|
|
3234
|
+
query.cache,
|
|
3235
|
+
tasks.map((task) => task.supplyLimitKey).filter((t) => !!t)
|
|
3236
|
+
),
|
|
3237
|
+
queryMultipleObjects(
|
|
3238
|
+
query.cache,
|
|
3239
|
+
tasks.map((task) => task.borrowLimitKey).filter((t) => !!t)
|
|
3240
|
+
),
|
|
3241
|
+
queryMultipleObjects(
|
|
3242
|
+
query.cache,
|
|
3243
|
+
tasks.map((task) => task.isolatedAssetKey).filter((t) => !!t)
|
|
3244
|
+
)
|
|
3245
|
+
]);
|
|
3246
|
+
const mapObjects = (tasks2, fetchedObjects) => {
|
|
3247
|
+
const resultMap = {};
|
|
3248
|
+
let fetchedIndex = 0;
|
|
3249
|
+
for (const task of tasks2) {
|
|
3250
|
+
const key = task[Object.keys(task)[1]];
|
|
3251
|
+
if (key) {
|
|
3252
|
+
resultMap[task.poolCoinName] = fetchedObjects[fetchedIndex];
|
|
3253
|
+
fetchedIndex++;
|
|
3254
|
+
}
|
|
3255
|
+
}
|
|
3256
|
+
return resultMap;
|
|
3257
|
+
};
|
|
3258
|
+
const balanceSheetMap = mapObjects(tasks, balanceSheetObjects);
|
|
3259
|
+
const collateralStatMap = mapObjects(tasks, collateralStatObjects);
|
|
3260
|
+
const borrowDynamicMap = mapObjects(tasks, borrowDynamicObjects);
|
|
3261
|
+
const interestModelMap = mapObjects(tasks, interestModelObjects);
|
|
3262
|
+
const riskModelMap = mapObjects(tasks, riskModelObjects);
|
|
3263
|
+
const borrowFeeMap = mapObjects(tasks, borrowFeeObjects);
|
|
3264
|
+
const supplyLimitMap = mapObjects(tasks, supplyLimitObjects);
|
|
3265
|
+
const borrowLimitMap = mapObjects(tasks, borrowLimitObjects);
|
|
3266
|
+
const isolatedAssetMap = mapObjects(tasks, isolatedAssetObjects);
|
|
3267
|
+
return poolCoinNames.reduce(
|
|
3268
|
+
(acc, name) => {
|
|
3269
|
+
acc[name] = {
|
|
3270
|
+
balanceSheet: balanceSheetMap[name],
|
|
3271
|
+
collateralStat: collateralStatMap[name],
|
|
3272
|
+
borrowDynamic: borrowDynamicMap[name],
|
|
3273
|
+
interestModel: interestModelMap[name],
|
|
3274
|
+
riskModel: riskModelMap[name],
|
|
3275
|
+
borrowFeeKey: borrowFeeMap[name],
|
|
3276
|
+
supplyLimitKey: supplyLimitMap[name],
|
|
3277
|
+
borrowLimitKey: borrowLimitMap[name],
|
|
3278
|
+
isolatedAssetKey: isolatedAssetMap[name]
|
|
3279
|
+
};
|
|
3280
|
+
return acc;
|
|
3281
|
+
},
|
|
3282
|
+
{}
|
|
3283
|
+
);
|
|
3284
|
+
};
|
|
3285
|
+
var getMarketPools = async (query, poolCoinNames, indexer = false, coinPrices) => {
|
|
2991
3286
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
2992
|
-
const
|
|
3287
|
+
const pools = {};
|
|
3288
|
+
const collaterals = {};
|
|
2993
3289
|
if (indexer) {
|
|
2994
|
-
const
|
|
2995
|
-
const
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3290
|
+
const marketIndexer = await query.indexer.getMarket();
|
|
3291
|
+
const updatePools = (item) => {
|
|
3292
|
+
item.coinPrice = coinPrices[item.coinName] ?? item.coinPrice;
|
|
3293
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
3294
|
+
pools[item.coinName] = item;
|
|
3295
|
+
};
|
|
3296
|
+
const updateCollaterals = (item) => {
|
|
3297
|
+
item.coinPrice = coinPrices[item.coinName] ?? item.coinPrice;
|
|
3298
|
+
item.coinWrappedType = query.utils.getCoinWrappedType(item.coinName);
|
|
3299
|
+
collaterals[item.coinName] = item;
|
|
3300
|
+
};
|
|
3301
|
+
Object.values(marketIndexer.pools).forEach(updatePools);
|
|
3302
|
+
Object.values(marketIndexer.collaterals).forEach(updateCollaterals);
|
|
3303
|
+
return {
|
|
3304
|
+
pools,
|
|
3305
|
+
collaterals
|
|
3003
3306
|
};
|
|
3004
|
-
Object.values(marketPoolsIndexer).forEach(updateMarketPool);
|
|
3005
|
-
return marketPools;
|
|
3006
3307
|
}
|
|
3308
|
+
const requiredObjects = await queryRequiredMarketObjects(
|
|
3309
|
+
query,
|
|
3310
|
+
poolCoinNames
|
|
3311
|
+
);
|
|
3007
3312
|
await Promise.allSettled(
|
|
3008
3313
|
poolCoinNames.map(async (poolCoinName) => {
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3314
|
+
try {
|
|
3315
|
+
const result = await getMarketPool(
|
|
3316
|
+
query,
|
|
3317
|
+
poolCoinName,
|
|
3318
|
+
indexer,
|
|
3319
|
+
coinPrices?.[poolCoinName] ?? 0,
|
|
3320
|
+
requiredObjects[poolCoinName]
|
|
3321
|
+
);
|
|
3322
|
+
if (result?.marketPool) {
|
|
3323
|
+
pools[poolCoinName] = result?.marketPool;
|
|
3324
|
+
}
|
|
3325
|
+
if (result?.collateral) {
|
|
3326
|
+
collaterals[poolCoinName] = result.collateral;
|
|
3327
|
+
}
|
|
3328
|
+
} catch (e) {
|
|
3329
|
+
console.error(e);
|
|
3018
3330
|
}
|
|
3019
3331
|
})
|
|
3020
3332
|
);
|
|
3021
|
-
return
|
|
3333
|
+
return {
|
|
3334
|
+
pools,
|
|
3335
|
+
collaterals
|
|
3336
|
+
};
|
|
3022
3337
|
};
|
|
3023
|
-
var
|
|
3338
|
+
var parseMarketPoolObjects = ({
|
|
3339
|
+
balanceSheet,
|
|
3340
|
+
borrowDynamic,
|
|
3341
|
+
collateralStat,
|
|
3342
|
+
interestModel,
|
|
3343
|
+
riskModel,
|
|
3344
|
+
borrowFeeKey,
|
|
3345
|
+
supplyLimitKey,
|
|
3346
|
+
borrowLimitKey,
|
|
3347
|
+
isolatedAssetKey
|
|
3348
|
+
}) => {
|
|
3349
|
+
const _balanceSheet = parseObjectAs(balanceSheet);
|
|
3350
|
+
const _interestModel = parseObjectAs(interestModel);
|
|
3351
|
+
const _borrowDynamic = parseObjectAs(borrowDynamic);
|
|
3352
|
+
const _borrowFee = parseObjectAs(borrowFeeKey);
|
|
3353
|
+
const _supplyLimit = supplyLimitKey ? parseObjectAs(supplyLimitKey) : "0";
|
|
3354
|
+
const _borrowLimit = borrowLimitKey ? parseObjectAs(borrowLimitKey) : "0";
|
|
3355
|
+
const _riskModel = riskModel ? parseObjectAs(riskModel) : void 0;
|
|
3356
|
+
const _collateralStat = collateralStat ? parseObjectAs(collateralStat) : void 0;
|
|
3357
|
+
const parsedOriginMarketCollateral = _riskModel && _collateralStat ? {
|
|
3358
|
+
type: _interestModel.type.fields,
|
|
3359
|
+
isIsolated: !!isolatedAssetKey,
|
|
3360
|
+
collateralFactor: _riskModel.collateral_factor.fields,
|
|
3361
|
+
liquidationFactor: _riskModel.liquidation_factor.fields,
|
|
3362
|
+
liquidationPenalty: _riskModel.liquidation_penalty.fields,
|
|
3363
|
+
liquidationDiscount: _riskModel.liquidation_discount.fields,
|
|
3364
|
+
liquidationReserveFactor: _riskModel.liquidation_revenue_factor.fields,
|
|
3365
|
+
maxCollateralAmount: _riskModel.max_collateral_amount,
|
|
3366
|
+
totalCollateralAmount: _collateralStat.amount
|
|
3367
|
+
} : void 0;
|
|
3368
|
+
return {
|
|
3369
|
+
type: _interestModel.type.fields,
|
|
3370
|
+
maxBorrowRate: _interestModel.max_borrow_rate.fields,
|
|
3371
|
+
interestRate: _borrowDynamic.interest_rate.fields,
|
|
3372
|
+
interestRateScale: _borrowDynamic.interest_rate_scale,
|
|
3373
|
+
borrowIndex: _borrowDynamic.borrow_index,
|
|
3374
|
+
lastUpdated: _borrowDynamic.last_updated,
|
|
3375
|
+
cash: _balanceSheet.cash,
|
|
3376
|
+
debt: _balanceSheet.debt,
|
|
3377
|
+
marketCoinSupply: _balanceSheet.market_coin_supply,
|
|
3378
|
+
reserve: _balanceSheet.revenue,
|
|
3379
|
+
reserveFactor: _interestModel.revenue_factor.fields,
|
|
3380
|
+
borrowWeight: _interestModel.borrow_weight.fields,
|
|
3381
|
+
borrowFeeRate: _borrowFee,
|
|
3382
|
+
baseBorrowRatePerSec: _interestModel.base_borrow_rate_per_sec.fields,
|
|
3383
|
+
borrowRateOnHighKink: _interestModel.borrow_rate_on_high_kink.fields,
|
|
3384
|
+
borrowRateOnMidKink: _interestModel.borrow_rate_on_mid_kink.fields,
|
|
3385
|
+
highKink: _interestModel.high_kink.fields,
|
|
3386
|
+
midKink: _interestModel.mid_kink.fields,
|
|
3387
|
+
minBorrowAmount: _interestModel.min_borrow_amount,
|
|
3388
|
+
isIsolated: !!isolatedAssetKey,
|
|
3389
|
+
supplyLimit: _supplyLimit,
|
|
3390
|
+
borrowLimit: _borrowLimit,
|
|
3391
|
+
parsedOriginMarketCollateral
|
|
3392
|
+
};
|
|
3393
|
+
};
|
|
3394
|
+
var getMarketPool = async (query, poolCoinName, indexer = false, coinPrice, requiredObjects) => {
|
|
3024
3395
|
coinPrice = coinPrice ?? (await query.utils.getCoinPrices())?.[poolCoinName];
|
|
3025
3396
|
if (indexer) {
|
|
3026
3397
|
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
@@ -3031,135 +3402,70 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
3031
3402
|
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3032
3403
|
marketPoolIndexer.coinName
|
|
3033
3404
|
);
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
3044
|
-
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
3045
|
-
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3046
|
-
parentId: balanceSheetParentId,
|
|
3047
|
-
name: {
|
|
3048
|
-
type: "0x1::type_name::TypeName",
|
|
3049
|
-
value: {
|
|
3050
|
-
name: coinType.substring(2)
|
|
3051
|
-
}
|
|
3052
|
-
}
|
|
3053
|
-
});
|
|
3054
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
3055
|
-
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
3056
|
-
throw new Error(
|
|
3057
|
-
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3058
|
-
);
|
|
3059
|
-
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
3060
|
-
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
3061
|
-
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3062
|
-
parentId: borrowIndexParentId,
|
|
3063
|
-
name: {
|
|
3064
|
-
type: "0x1::type_name::TypeName",
|
|
3065
|
-
value: {
|
|
3066
|
-
name: coinType.substring(2)
|
|
3067
|
-
}
|
|
3068
|
-
}
|
|
3069
|
-
});
|
|
3070
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
3071
|
-
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
3072
|
-
throw new Error(
|
|
3073
|
-
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
3074
|
-
);
|
|
3075
|
-
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
3076
|
-
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
3077
|
-
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3078
|
-
parentId: interestModelParentId,
|
|
3079
|
-
name: {
|
|
3080
|
-
type: "0x1::type_name::TypeName",
|
|
3081
|
-
value: {
|
|
3082
|
-
name: coinType.substring(2)
|
|
3083
|
-
}
|
|
3405
|
+
let marketCollateralIndexer = void 0;
|
|
3406
|
+
if (SUPPORT_COLLATERALS.includes(poolCoinName)) {
|
|
3407
|
+
marketCollateralIndexer = await query.indexer.getMarketCollateral(
|
|
3408
|
+
poolCoinName
|
|
3409
|
+
);
|
|
3410
|
+
marketCollateralIndexer.coinPrice = coinPrice ?? marketCollateralIndexer.coinPrice;
|
|
3411
|
+
marketCollateralIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3412
|
+
marketCollateralIndexer.coinName
|
|
3413
|
+
);
|
|
3084
3414
|
}
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
const
|
|
3092
|
-
const
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
name: {
|
|
3096
|
-
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
3097
|
-
value: {
|
|
3098
|
-
type: {
|
|
3099
|
-
name: coinType.substring(2)
|
|
3100
|
-
}
|
|
3101
|
-
}
|
|
3102
|
-
}
|
|
3103
|
-
});
|
|
3104
|
-
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
3105
|
-
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
3106
|
-
return { value: "0" };
|
|
3107
|
-
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
3108
|
-
};
|
|
3109
|
-
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
3110
|
-
type: interestModel.type.fields,
|
|
3111
|
-
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
3112
|
-
interestRate: borrowIndex.interest_rate.fields,
|
|
3113
|
-
interestRateScale: borrowIndex.interest_rate_scale,
|
|
3114
|
-
borrowIndex: borrowIndex.borrow_index,
|
|
3115
|
-
lastUpdated: borrowIndex.last_updated,
|
|
3116
|
-
cash: balanceSheet.cash,
|
|
3117
|
-
debt: balanceSheet.debt,
|
|
3118
|
-
marketCoinSupply: balanceSheet.market_coin_supply,
|
|
3119
|
-
reserve: balanceSheet.revenue,
|
|
3120
|
-
reserveFactor: interestModel.revenue_factor.fields,
|
|
3121
|
-
borrowWeight: interestModel.borrow_weight.fields,
|
|
3122
|
-
borrowFeeRate: await getBorrowFee(),
|
|
3123
|
-
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
3124
|
-
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
3125
|
-
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
3126
|
-
highKink: interestModel.high_kink.fields,
|
|
3127
|
-
midKink: interestModel.mid_kink.fields,
|
|
3128
|
-
minBorrowAmount: interestModel.min_borrow_amount
|
|
3129
|
-
});
|
|
3415
|
+
return {
|
|
3416
|
+
marketPool: marketPoolIndexer,
|
|
3417
|
+
collateral: marketCollateralIndexer
|
|
3418
|
+
};
|
|
3419
|
+
}
|
|
3420
|
+
requiredObjects ?? (requiredObjects = (await queryRequiredMarketObjects(query, [poolCoinName]))[poolCoinName]);
|
|
3421
|
+
const parsedMarketPoolObjects = parseMarketPoolObjects(requiredObjects);
|
|
3422
|
+
const parsedMarketPoolData = parseOriginMarketPoolData(
|
|
3423
|
+
parsedMarketPoolObjects
|
|
3424
|
+
);
|
|
3130
3425
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
3131
3426
|
query.utils,
|
|
3132
3427
|
parsedMarketPoolData
|
|
3133
3428
|
);
|
|
3134
|
-
const
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
const maxBorrowCoin = BigNumber3(
|
|
3139
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3140
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3141
|
-
return {
|
|
3429
|
+
const parsedMarketCollateralData = parsedMarketPoolObjects.parsedOriginMarketCollateral ? parseOriginMarketCollateralData(
|
|
3430
|
+
parsedMarketPoolObjects.parsedOriginMarketCollateral
|
|
3431
|
+
) : void 0;
|
|
3432
|
+
const basePoolData = () => ({
|
|
3142
3433
|
coinName: poolCoinName,
|
|
3143
3434
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
3144
|
-
coinType: query.utils.parseCoinType(poolCoinName),
|
|
3145
3435
|
marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3436
|
+
coinType: query.utils.parseCoinType(poolCoinName)
|
|
3437
|
+
});
|
|
3438
|
+
return {
|
|
3439
|
+
marketPool: {
|
|
3440
|
+
...basePoolData(),
|
|
3441
|
+
sCoinType: query.utils.parseSCoinType(
|
|
3442
|
+
query.utils.parseMarketCoinName(poolCoinName)
|
|
3443
|
+
),
|
|
3444
|
+
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3445
|
+
coinPrice: coinPrice ?? 0,
|
|
3446
|
+
highKink: parsedMarketPoolData.highKink,
|
|
3447
|
+
midKink: parsedMarketPoolData.midKink,
|
|
3448
|
+
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
3449
|
+
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
3450
|
+
borrowFee: parsedMarketPoolData.borrowFee,
|
|
3451
|
+
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
3452
|
+
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
3453
|
+
...calculatedMarketPoolData
|
|
3454
|
+
},
|
|
3455
|
+
collateral: parsedMarketCollateralData ? {
|
|
3456
|
+
...basePoolData(),
|
|
3457
|
+
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
3458
|
+
coinPrice,
|
|
3459
|
+
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3460
|
+
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3461
|
+
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3462
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3463
|
+
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3464
|
+
...calculateMarketCollateralData(
|
|
3465
|
+
query.utils,
|
|
3466
|
+
parsedMarketCollateralData
|
|
3467
|
+
)
|
|
3468
|
+
} : void 0
|
|
3163
3469
|
};
|
|
3164
3470
|
};
|
|
3165
3471
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
@@ -3254,10 +3560,11 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3254
3560
|
collateralFactor: riskModel.collateral_factor.fields,
|
|
3255
3561
|
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3256
3562
|
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3257
|
-
|
|
3563
|
+
liquidationPenalty: riskModel.liquidation_penalty.fields,
|
|
3258
3564
|
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3259
3565
|
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3260
|
-
totalCollateralAmount: collateralStat.amount
|
|
3566
|
+
totalCollateralAmount: collateralStat.amount,
|
|
3567
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3261
3568
|
});
|
|
3262
3569
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3263
3570
|
query.utils,
|
|
@@ -3269,14 +3576,12 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3269
3576
|
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
3270
3577
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3271
3578
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3272
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3273
3579
|
coinPrice: coinPrice ?? 0,
|
|
3274
3580
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3275
3581
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3276
3582
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3277
|
-
|
|
3583
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3278
3584
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3279
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3280
3585
|
...calculatedMarketCollateralData
|
|
3281
3586
|
};
|
|
3282
3587
|
};
|
|
@@ -3517,10 +3822,10 @@ var getLendings = async (query, poolCoinNames = [...SUPPORT_POOLS], ownerAddress
|
|
|
3517
3822
|
(marketCoinName) => SUPPORT_SPOOLS.includes(marketCoinName)
|
|
3518
3823
|
);
|
|
3519
3824
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3520
|
-
const marketPools = await query.getMarketPools(poolCoinNames, {
|
|
3825
|
+
const marketPools = (await query.getMarketPools(poolCoinNames, {
|
|
3521
3826
|
indexer,
|
|
3522
3827
|
coinPrices
|
|
3523
|
-
});
|
|
3828
|
+
})).pools;
|
|
3524
3829
|
const spools = await query.getSpools(stakeMarketCoinNames, {
|
|
3525
3830
|
indexer,
|
|
3526
3831
|
marketPools,
|
|
@@ -3689,7 +3994,7 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
|
|
|
3689
3994
|
};
|
|
3690
3995
|
var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
3691
3996
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3692
|
-
const market = await query.
|
|
3997
|
+
const market = await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
3693
3998
|
const [coinAmounts, obligations] = await Promise.all([
|
|
3694
3999
|
query.getCoinAmounts(void 0, ownerAddress),
|
|
3695
4000
|
query.getObligations(ownerAddress)
|
|
@@ -3717,7 +4022,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3717
4022
|
const collateralAssetCoinNames = [
|
|
3718
4023
|
...SUPPORT_COLLATERALS
|
|
3719
4024
|
];
|
|
3720
|
-
market = market ?? await query.
|
|
4025
|
+
market = market ?? await query.getMarketPools(void 0, { indexer });
|
|
3721
4026
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools: market.pools });
|
|
3722
4027
|
coinAmounts = coinAmounts || await query.getCoinAmounts(coinNames, ownerAddress);
|
|
3723
4028
|
const [obligationQuery, borrowIncentivePools, borrowIncentiveAccounts] = await Promise.all([
|
|
@@ -4008,7 +4313,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
4008
4313
|
return obligationAccount;
|
|
4009
4314
|
};
|
|
4010
4315
|
var getTotalValueLocked = async (query, indexer = false) => {
|
|
4011
|
-
const market = await query.
|
|
4316
|
+
const market = await query.getMarketPools(void 0, { indexer });
|
|
4012
4317
|
let supplyValue = BigNumber5(0);
|
|
4013
4318
|
let borrowValue = BigNumber5(0);
|
|
4014
4319
|
if (indexer) {
|
|
@@ -4129,7 +4434,7 @@ var getPythPrices = async ({
|
|
|
4129
4434
|
};
|
|
4130
4435
|
var getAllCoinPrices = async (query, marketPools, coinPrices) => {
|
|
4131
4436
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
4132
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices });
|
|
4437
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices })).pools;
|
|
4133
4438
|
if (!marketPools) {
|
|
4134
4439
|
throw new Error(`Failed to fetch market pool for getAllCoinPrices`);
|
|
4135
4440
|
}
|
|
@@ -4260,7 +4565,7 @@ var getSpools = async (query, stakeMarketCoinNames = [...SUPPORT_SPOOLS], indexe
|
|
|
4260
4565
|
(stakeMarketCoinName) => query.utils.parseCoinName(stakeMarketCoinName)
|
|
4261
4566
|
);
|
|
4262
4567
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
4263
|
-
marketPools = marketPools ?? await query.getMarketPools(stakeCoinNames, { indexer });
|
|
4568
|
+
marketPools = marketPools ?? (await query.getMarketPools(stakeCoinNames, { indexer })).pools;
|
|
4264
4569
|
if (!marketPools)
|
|
4265
4570
|
throw new Error(`Fail to fetch marketPools for ${stakeCoinNames}`);
|
|
4266
4571
|
const spools = {};
|
|
@@ -4744,6 +5049,96 @@ var getVeScaTreasuryInfo = async (utils) => {
|
|
|
4744
5049
|
};
|
|
4745
5050
|
};
|
|
4746
5051
|
|
|
5052
|
+
// src/queries/poolAddressesQuery.ts
|
|
5053
|
+
var getAllAddresses = async (query) => {
|
|
5054
|
+
const results = {};
|
|
5055
|
+
const marketId = query.address.get("core.market");
|
|
5056
|
+
const marketObject = (await query.cache.queryGetObject(marketId, {
|
|
5057
|
+
showContent: true
|
|
5058
|
+
}))?.data;
|
|
5059
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
5060
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
5061
|
+
const fields = marketObject.content.fields;
|
|
5062
|
+
const coinTypesPairs = SUPPORT_POOLS.reduce(
|
|
5063
|
+
(acc, pool) => {
|
|
5064
|
+
acc.push([pool, query.utils.parseCoinType(pool).substring(2)]);
|
|
5065
|
+
return acc;
|
|
5066
|
+
},
|
|
5067
|
+
[]
|
|
5068
|
+
);
|
|
5069
|
+
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
5070
|
+
const collateralStatsParentId = fields.collateral_stats.fields.table.fields.id.id;
|
|
5071
|
+
const borrowDynamicsParentid = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
5072
|
+
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
5073
|
+
const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
|
|
5074
|
+
const ADDRESS_TYPE = `0x1::type_name::TypeName`;
|
|
5075
|
+
const BORROW_FEE_TYPE = `0xc38f849e81cfe46d4e4320f508ea7dda42934a329d5a6571bb4c3cb6ea63f5da::market_dynamic_keys::BorrowFeeKey`;
|
|
5076
|
+
const SUPPLY_LIMIT_TYPE = `0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::SupplyLimitKey`;
|
|
5077
|
+
const BORROW_LIMIT_TYPE = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::BorrowLimitKey`;
|
|
5078
|
+
const ISOLATED_ASSET_KEY = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
5079
|
+
const fetchDynamicObject = async (parentId, type, value) => {
|
|
5080
|
+
try {
|
|
5081
|
+
return (await query.cache.queryGetDynamicFieldObject({
|
|
5082
|
+
parentId,
|
|
5083
|
+
name: {
|
|
5084
|
+
type,
|
|
5085
|
+
value
|
|
5086
|
+
}
|
|
5087
|
+
}))?.data?.objectId;
|
|
5088
|
+
} catch (_e) {
|
|
5089
|
+
return void 0;
|
|
5090
|
+
}
|
|
5091
|
+
};
|
|
5092
|
+
await Promise.all(
|
|
5093
|
+
coinTypesPairs.map(async ([coinName, coinType]) => {
|
|
5094
|
+
const addresses = await Promise.all([
|
|
5095
|
+
fetchDynamicObject(balanceSheetParentId, ADDRESS_TYPE, {
|
|
5096
|
+
name: coinType
|
|
5097
|
+
}),
|
|
5098
|
+
fetchDynamicObject(collateralStatsParentId, ADDRESS_TYPE, {
|
|
5099
|
+
name: coinType
|
|
5100
|
+
}),
|
|
5101
|
+
fetchDynamicObject(borrowDynamicsParentid, ADDRESS_TYPE, {
|
|
5102
|
+
name: coinType
|
|
5103
|
+
}),
|
|
5104
|
+
fetchDynamicObject(interestModelParentId, ADDRESS_TYPE, {
|
|
5105
|
+
name: coinType
|
|
5106
|
+
}),
|
|
5107
|
+
fetchDynamicObject(riskModelParentId, ADDRESS_TYPE, {
|
|
5108
|
+
name: coinType
|
|
5109
|
+
}),
|
|
5110
|
+
fetchDynamicObject(marketId, BORROW_FEE_TYPE, coinType),
|
|
5111
|
+
fetchDynamicObject(marketId, SUPPLY_LIMIT_TYPE, coinType),
|
|
5112
|
+
fetchDynamicObject(marketId, BORROW_LIMIT_TYPE, coinType),
|
|
5113
|
+
fetchDynamicObject(marketId, ISOLATED_ASSET_KEY, coinType)
|
|
5114
|
+
]);
|
|
5115
|
+
const spool = query.address.get(
|
|
5116
|
+
// @ts-ignore
|
|
5117
|
+
`spool.pools.s${coinName}.id`
|
|
5118
|
+
);
|
|
5119
|
+
const rewardPool = query.address.get(
|
|
5120
|
+
// @ts-ignore
|
|
5121
|
+
`spool.pools.s${coinName}.rewardPoolId`
|
|
5122
|
+
);
|
|
5123
|
+
results[coinName] = {
|
|
5124
|
+
lendingPoolAddress: addresses[0],
|
|
5125
|
+
collateralPoolAddress: addresses[1],
|
|
5126
|
+
borrowDynamic: addresses[2],
|
|
5127
|
+
interestModel: addresses[3],
|
|
5128
|
+
riskModel: addresses[4],
|
|
5129
|
+
borrowFeeKey: addresses[5],
|
|
5130
|
+
supplyLimitKey: addresses[6],
|
|
5131
|
+
borrowLimitKey: addresses[7],
|
|
5132
|
+
isolatedAssetKey: addresses[8],
|
|
5133
|
+
spool,
|
|
5134
|
+
spoolReward: rewardPool
|
|
5135
|
+
};
|
|
5136
|
+
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
5137
|
+
})
|
|
5138
|
+
);
|
|
5139
|
+
return results;
|
|
5140
|
+
};
|
|
5141
|
+
|
|
4747
5142
|
// src/models/suiKit.ts
|
|
4748
5143
|
import { SuiKit as SuiKit2 } from "@scallop-io/sui-kit";
|
|
4749
5144
|
var newSuiKit = (params) => {
|
|
@@ -7094,6 +7489,7 @@ var ScallopQuery = class {
|
|
|
7094
7489
|
}
|
|
7095
7490
|
/* ==================== Core Query Methods ==================== */
|
|
7096
7491
|
/**
|
|
7492
|
+
* @deprecated use getMarketPools
|
|
7097
7493
|
* Query market data.
|
|
7098
7494
|
* @param indexer - Whether to use indexer.
|
|
7099
7495
|
* @return Market data.
|
|
@@ -7112,7 +7508,7 @@ var ScallopQuery = class {
|
|
|
7112
7508
|
* @param indexer - Whether to use indexer.
|
|
7113
7509
|
* @return Market pools data.
|
|
7114
7510
|
*/
|
|
7115
|
-
async getMarketPools(poolCoinNames, args) {
|
|
7511
|
+
async getMarketPools(poolCoinNames = [...SUPPORT_POOLS], args) {
|
|
7116
7512
|
return await getMarketPools(
|
|
7117
7513
|
this,
|
|
7118
7514
|
poolCoinNames,
|
|
@@ -7128,13 +7524,8 @@ var ScallopQuery = class {
|
|
|
7128
7524
|
* @return Market pool data.
|
|
7129
7525
|
*/
|
|
7130
7526
|
async getMarketPool(poolCoinName, args) {
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
poolCoinName,
|
|
7134
|
-
args?.indexer,
|
|
7135
|
-
args?.marketObject,
|
|
7136
|
-
args?.coinPrice
|
|
7137
|
-
);
|
|
7527
|
+
const marketPools = await this.getMarketPools(void 0, args);
|
|
7528
|
+
return marketPools.pools[poolCoinName];
|
|
7138
7529
|
}
|
|
7139
7530
|
/**
|
|
7140
7531
|
* Get market collaterals.
|
|
@@ -7572,7 +7963,7 @@ var ScallopQuery = class {
|
|
|
7572
7963
|
* Get list of isolated assets
|
|
7573
7964
|
*/
|
|
7574
7965
|
async getIsolatedAssets() {
|
|
7575
|
-
return await getIsolatedAssets(this
|
|
7966
|
+
return await getIsolatedAssets(this);
|
|
7576
7967
|
}
|
|
7577
7968
|
/**
|
|
7578
7969
|
* Check if asset is an isolated asset
|
|
@@ -7595,6 +7986,13 @@ var ScallopQuery = class {
|
|
|
7595
7986
|
async getAllCoinPrices(args) {
|
|
7596
7987
|
return getAllCoinPrices(this, args?.marketPools, args?.coinPrices);
|
|
7597
7988
|
}
|
|
7989
|
+
/**
|
|
7990
|
+
* Query all address (lending pool, collateral pool, borrow dynamics, interest models) of all pool
|
|
7991
|
+
* @returns
|
|
7992
|
+
*/
|
|
7993
|
+
async getPoolAddresses() {
|
|
7994
|
+
return getAllAddresses(this);
|
|
7995
|
+
}
|
|
7598
7996
|
};
|
|
7599
7997
|
|
|
7600
7998
|
// src/models/scallopBuilder.ts
|