@scallop-io/sui-scallop-sdk 1.4.14 → 1.4.15-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/poolAddress.d.ts +14 -4
- package/dist/constants/queryKeys.d.ts +1 -2
- package/dist/constants/tokenBucket.d.ts +2 -2
- package/dist/index.js +719 -307
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +674 -262
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopCache.d.ts +1 -0
- package/dist/models/scallopQuery.d.ts +20 -17
- package/dist/queries/coreQuery.d.ts +18 -19
- package/dist/queries/index.d.ts +2 -0
- package/dist/queries/isolatedAssetQuery.d.ts +2 -2
- package/dist/queries/objectsQuery.d.ts +3 -0
- package/dist/queries/poolAddressesQuery.d.ts +15 -0
- package/dist/types/query/core.d.ts +22 -5
- package/dist/types/utils.d.ts +7 -2
- package/dist/utils/core.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/util.d.ts +1 -0
- package/package.json +1 -1
- package/src/constants/poolAddress.ts +290 -29
- package/src/constants/queryKeys.ts +5 -5
- package/src/constants/tokenBucket.ts +2 -2
- package/src/models/scallopCache.ts +43 -11
- package/src/models/scallopQuery.ts +24 -12
- package/src/queries/borrowIncentiveQuery.ts +1 -1
- package/src/queries/coreQuery.ts +378 -248
- package/src/queries/index.ts +2 -0
- package/src/queries/isolatedAssetQuery.ts +37 -31
- package/src/queries/objectsQuery.ts +20 -0
- package/src/queries/poolAddressesQuery.ts +134 -0
- package/src/queries/portfolioQuery.ts +14 -7
- package/src/queries/priceQuery.ts +3 -1
- package/src/queries/spoolQuery.ts +3 -1
- package/src/types/query/core.ts +21 -5
- package/src/types/utils.ts +8 -3
- package/src/utils/core.ts +11 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/query.ts +16 -2
- package/src/utils/tokenBucket.ts +2 -2
- package/src/utils/util.ts +8 -0
package/dist/index.mjs
CHANGED
|
@@ -328,67 +328,213 @@ var FlashLoanFeeObjectMap = {
|
|
|
328
328
|
|
|
329
329
|
// src/constants/poolAddress.ts
|
|
330
330
|
var POOL_ADDRESSES = {
|
|
331
|
-
usdc: {
|
|
332
|
-
lendingPoolAddress: "0xd3be98bf540f7603eeb550c0c0a19dbfc78822f25158b5fa84ebd9609def415f",
|
|
333
|
-
collateralPoolAddress: "0x8f0d529ba179c5b3d508213003eab813aaae31f78226099639b9a69d1aec17af"
|
|
334
|
-
},
|
|
335
331
|
sbeth: {
|
|
336
|
-
lendingPoolAddress: "
|
|
337
|
-
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
|
|
338
343
|
},
|
|
339
|
-
|
|
340
|
-
lendingPoolAddress: "
|
|
341
|
-
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"
|
|
342
356
|
},
|
|
343
357
|
wbtc: {
|
|
344
358
|
lendingPoolAddress: "0x65cc08a5aca0a0b8d72e1993ded8d145f06dd102fd0d8f285b92934faed564ab",
|
|
345
|
-
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
|
|
346
369
|
},
|
|
347
370
|
wusdc: {
|
|
348
|
-
lendingPoolAddress: "
|
|
349
|
-
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"
|
|
350
395
|
},
|
|
351
396
|
wusdt: {
|
|
352
397
|
lendingPoolAddress: "0xfbc056f126dd35adc1f8fe985e2cedc8010e687e8e851e1c5b99fdf63cd1c879",
|
|
353
|
-
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"
|
|
354
408
|
},
|
|
355
409
|
sui: {
|
|
356
410
|
lendingPoolAddress: "0x9c9077abf7a29eebce41e33addbcd6f5246a5221dd733e56ea0f00ae1b25c9e8",
|
|
357
|
-
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"
|
|
358
421
|
},
|
|
359
422
|
wapt: {
|
|
360
423
|
lendingPoolAddress: "0xca8c14a24e0c32b198eaf479a3317461e3cc339097ce88eaf296a15df8dcfdf5",
|
|
361
|
-
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"
|
|
362
447
|
},
|
|
363
448
|
wsol: {
|
|
364
449
|
lendingPoolAddress: "0x985682c42984cdfb03f9ff7d8923344c2fe096b1ae4b82ea17721af19d22a21f",
|
|
365
|
-
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
|
|
366
460
|
},
|
|
367
461
|
cetus: {
|
|
368
462
|
lendingPoolAddress: "0xc09858f60e74a1b671635bec4e8a2c84a0ff313eb87f525fba3258e88c6b6282",
|
|
369
|
-
collateralPoolAddress: "0xe363967e29b7b9c1245d6d46d63e719de8f90b37e3358c545b55d945ea0b676a"
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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"
|
|
374
473
|
},
|
|
375
474
|
hasui: {
|
|
376
475
|
lendingPoolAddress: "0x7ebc607f6bdeb659fb6506cb91c5cc1d47bb365cfd5d2e637ea765346ec84ed4",
|
|
377
|
-
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"
|
|
378
486
|
},
|
|
379
487
|
vsui: {
|
|
380
488
|
lendingPoolAddress: "0xda9257c0731d8822e8a438ebced13415850d705b779c79958dcf2aeb21fcb43d",
|
|
381
|
-
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"
|
|
382
499
|
},
|
|
383
500
|
sca: {
|
|
384
501
|
lendingPoolAddress: "0x6fc7d4211fc7018b6c75e7b908b88f2e0536443239804a3d32af547637bd28d7",
|
|
385
|
-
collateralPoolAddress: "0xff677a5d9e9dc8f08f0a8681ebfc7481d1c7d57bc441f2881974adcdd7b13c31"
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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
|
|
389
512
|
},
|
|
390
513
|
deep: {
|
|
391
|
-
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
|
|
392
538
|
}
|
|
393
539
|
};
|
|
394
540
|
|
|
@@ -439,7 +585,11 @@ var queryKeys = {
|
|
|
439
585
|
typeArgs: !typeArgs ? void 0 : JSON.stringify(typeArgs)
|
|
440
586
|
}
|
|
441
587
|
],
|
|
442
|
-
getObject: (objectId,
|
|
588
|
+
getObject: (objectId, options) => [
|
|
589
|
+
"rpc",
|
|
590
|
+
"getObject",
|
|
591
|
+
{ options, objectId }
|
|
592
|
+
],
|
|
443
593
|
getObjects: (objectIds, walletAddress, options) => [
|
|
444
594
|
"rpc",
|
|
445
595
|
"getObjects",
|
|
@@ -972,8 +1122,8 @@ var TEST_ADDRESSES = {
|
|
|
972
1122
|
};
|
|
973
1123
|
|
|
974
1124
|
// src/constants/tokenBucket.ts
|
|
975
|
-
var DEFAULT_TOKENS_PER_INTERVAL =
|
|
976
|
-
var DEFAULT_INTERVAL_IN_MS =
|
|
1125
|
+
var DEFAULT_TOKENS_PER_INTERVAL = 50;
|
|
1126
|
+
var DEFAULT_INTERVAL_IN_MS = 250;
|
|
977
1127
|
|
|
978
1128
|
// src/constants/vesca.ts
|
|
979
1129
|
var UNLOCK_ROUND_DURATION = 60 * 60 * 24;
|
|
@@ -1120,7 +1270,10 @@ var parseOriginMarketPoolData = (originMarketPoolData) => {
|
|
|
1120
1270
|
borrowRateOnMidKink: Number(originMarketPoolData.borrowRateOnMidKink.value) / 2 ** 32,
|
|
1121
1271
|
highKink: Number(originMarketPoolData.highKink.value) / 2 ** 32,
|
|
1122
1272
|
midKink: Number(originMarketPoolData.midKink.value) / 2 ** 32,
|
|
1123
|
-
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount)
|
|
1273
|
+
minBorrowAmount: Number(originMarketPoolData.minBorrowAmount),
|
|
1274
|
+
isIsolated: originMarketPoolData.isIsolated,
|
|
1275
|
+
supplyLimit: Number(originMarketPoolData.supplyLimit),
|
|
1276
|
+
borrowLimit: Number(originMarketPoolData.borrowLimit)
|
|
1124
1277
|
};
|
|
1125
1278
|
};
|
|
1126
1279
|
var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
@@ -1172,6 +1325,7 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1172
1325
|
borrowApyOnHighKink: utils.parseAprToApy(borrowAprOnHighKink),
|
|
1173
1326
|
borrowAprOnMidKink,
|
|
1174
1327
|
borrowApyOnMidKink: utils.parseAprToApy(borrowAprOnMidKink),
|
|
1328
|
+
coinDecimal,
|
|
1175
1329
|
maxBorrowApr,
|
|
1176
1330
|
maxBorrowApy: utils.parseAprToApy(maxBorrowApr),
|
|
1177
1331
|
borrowApr: Math.min(borrowApr, maxBorrowApr),
|
|
@@ -1190,17 +1344,21 @@ var calculateMarketPoolData = (utils, parsedMarketPoolData) => {
|
|
|
1190
1344
|
utilizationRate: utilizationRate.toNumber(),
|
|
1191
1345
|
supplyApr: supplyApr.toNumber(),
|
|
1192
1346
|
supplyApy: utils.parseAprToApy(supplyApr.toNumber()),
|
|
1193
|
-
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()
|
|
1194
1351
|
};
|
|
1195
1352
|
};
|
|
1196
1353
|
var parseOriginMarketCollateralData = (originMarketCollateralData) => {
|
|
1197
1354
|
const divisor = 2 ** 32;
|
|
1198
1355
|
return {
|
|
1199
1356
|
coinType: normalizeStructTag(originMarketCollateralData.type.name),
|
|
1357
|
+
isIsolated: originMarketCollateralData.isIsolated,
|
|
1200
1358
|
collateralFactor: Number(originMarketCollateralData.collateralFactor.value) / divisor,
|
|
1201
1359
|
liquidationFactor: Number(originMarketCollateralData.liquidationFactor.value) / divisor,
|
|
1202
1360
|
liquidationDiscount: Number(originMarketCollateralData.liquidationDiscount.value) / divisor,
|
|
1203
|
-
|
|
1361
|
+
liquidationPenalty: Number(originMarketCollateralData.liquidationPenalty.value) / divisor,
|
|
1204
1362
|
liquidationReserveFactor: Number(originMarketCollateralData.liquidationReserveFactor.value) / divisor,
|
|
1205
1363
|
maxCollateralAmount: Number(originMarketCollateralData.maxCollateralAmount),
|
|
1206
1364
|
totalCollateralAmount: Number(
|
|
@@ -1220,6 +1378,8 @@ var calculateMarketCollateralData = (utils, parsedMarketCollateralData) => {
|
|
|
1220
1378
|
parsedMarketCollateralData.totalCollateralAmount
|
|
1221
1379
|
).shiftedBy(-1 * coinDecimal);
|
|
1222
1380
|
return {
|
|
1381
|
+
coinDecimal,
|
|
1382
|
+
isIsolated: parsedMarketCollateralData.isIsolated,
|
|
1223
1383
|
maxDepositAmount: parsedMarketCollateralData.maxCollateralAmount,
|
|
1224
1384
|
maxDepositCoin: maxCollateralCoin.toNumber(),
|
|
1225
1385
|
depositAmount: parsedMarketCollateralData.totalCollateralAmount,
|
|
@@ -1550,6 +1710,13 @@ var findClosestUnlockRound = (unlockAtInSecondTimestamp) => {
|
|
|
1550
1710
|
}
|
|
1551
1711
|
return Math.floor(closestTwelveAM.getTime() / 1e3);
|
|
1552
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
|
+
};
|
|
1553
1720
|
|
|
1554
1721
|
// src/utils/tokenBucket.ts
|
|
1555
1722
|
var TokenBucket = class {
|
|
@@ -1577,7 +1744,7 @@ var TokenBucket = class {
|
|
|
1577
1744
|
return false;
|
|
1578
1745
|
}
|
|
1579
1746
|
};
|
|
1580
|
-
var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVAL_IN_MS, maxRetries = 15, backoffFactor =
|
|
1747
|
+
var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVAL_IN_MS, maxRetries = 15, backoffFactor = 1.25) => {
|
|
1581
1748
|
let retries = 0;
|
|
1582
1749
|
const tryRequest = async () => {
|
|
1583
1750
|
if (tokenBucket.removeTokens(1)) {
|
|
@@ -1586,7 +1753,6 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
|
|
|
1586
1753
|
} else if (retries < maxRetries) {
|
|
1587
1754
|
retries++;
|
|
1588
1755
|
const delay = retryDelayInMs * Math.pow(backoffFactor, retries);
|
|
1589
|
-
console.error(`Rate limit exceeded, retrying in ${delay} ms`);
|
|
1590
1756
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
1591
1757
|
return tryRequest();
|
|
1592
1758
|
} else {
|
|
@@ -1622,6 +1788,16 @@ function withIndexerFallback(method) {
|
|
|
1622
1788
|
};
|
|
1623
1789
|
}
|
|
1624
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
|
+
|
|
1625
1801
|
// src/models/scallopCache.ts
|
|
1626
1802
|
var ScallopCache = class {
|
|
1627
1803
|
constructor(suiKit, walletAddress, cacheOptions, tokenBucket, queryClient) {
|
|
@@ -1656,6 +1832,13 @@ var ScallopCache = class {
|
|
|
1656
1832
|
})
|
|
1657
1833
|
);
|
|
1658
1834
|
}
|
|
1835
|
+
retryFn(errCount, e) {
|
|
1836
|
+
if (errCount === 5)
|
|
1837
|
+
return false;
|
|
1838
|
+
if (e.status === 429)
|
|
1839
|
+
return true;
|
|
1840
|
+
return false;
|
|
1841
|
+
}
|
|
1659
1842
|
/**
|
|
1660
1843
|
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1661
1844
|
* @param QueryInspectTxnParams
|
|
@@ -1668,9 +1851,17 @@ var ScallopCache = class {
|
|
|
1668
1851
|
typeArgs
|
|
1669
1852
|
}) {
|
|
1670
1853
|
const txBlock = new SuiTxBlock();
|
|
1671
|
-
|
|
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);
|
|
1672
1863
|
const query = await this.queryClient.fetchQuery({
|
|
1673
|
-
retry:
|
|
1864
|
+
retry: this.retryFn,
|
|
1674
1865
|
retryDelay: 1e3,
|
|
1675
1866
|
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1676
1867
|
queryFn: async () => {
|
|
@@ -1690,9 +1881,9 @@ var ScallopCache = class {
|
|
|
1690
1881
|
*/
|
|
1691
1882
|
async queryGetObject(objectId, options) {
|
|
1692
1883
|
return this.queryClient.fetchQuery({
|
|
1693
|
-
retry:
|
|
1884
|
+
retry: this.retryFn,
|
|
1694
1885
|
retryDelay: 1e3,
|
|
1695
|
-
queryKey: queryKeys.rpc.getObject(objectId,
|
|
1886
|
+
queryKey: queryKeys.rpc.getObject(objectId, options),
|
|
1696
1887
|
queryFn: async () => {
|
|
1697
1888
|
return await callWithRateLimit(
|
|
1698
1889
|
this.tokenBucket,
|
|
@@ -1715,7 +1906,7 @@ var ScallopCache = class {
|
|
|
1715
1906
|
if (objectIds.length === 0)
|
|
1716
1907
|
return [];
|
|
1717
1908
|
return this.queryClient.fetchQuery({
|
|
1718
|
-
retry:
|
|
1909
|
+
retry: this.retryFn,
|
|
1719
1910
|
retryDelay: 1e3,
|
|
1720
1911
|
queryKey: queryKeys.rpc.getObjects(
|
|
1721
1912
|
objectIds,
|
|
@@ -1723,10 +1914,28 @@ var ScallopCache = class {
|
|
|
1723
1914
|
options
|
|
1724
1915
|
),
|
|
1725
1916
|
queryFn: async () => {
|
|
1726
|
-
|
|
1917
|
+
const results = await callWithRateLimit(
|
|
1727
1918
|
this.tokenBucket,
|
|
1728
1919
|
async () => await this.suiKit.getObjects(objectIds, options)
|
|
1729
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;
|
|
1730
1939
|
}
|
|
1731
1940
|
});
|
|
1732
1941
|
}
|
|
@@ -1737,7 +1946,7 @@ var ScallopCache = class {
|
|
|
1737
1946
|
*/
|
|
1738
1947
|
async queryGetOwnedObjects(input) {
|
|
1739
1948
|
return this.queryClient.fetchQuery({
|
|
1740
|
-
retry:
|
|
1949
|
+
retry: this.retryFn,
|
|
1741
1950
|
retryDelay: 1e3,
|
|
1742
1951
|
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1743
1952
|
queryFn: async () => {
|
|
@@ -1750,7 +1959,7 @@ var ScallopCache = class {
|
|
|
1750
1959
|
}
|
|
1751
1960
|
async queryGetDynamicFields(input) {
|
|
1752
1961
|
return this.queryClient.fetchQuery({
|
|
1753
|
-
retry:
|
|
1962
|
+
retry: this.retryFn,
|
|
1754
1963
|
retryDelay: 1e3,
|
|
1755
1964
|
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1756
1965
|
queryFn: async () => {
|
|
@@ -1763,7 +1972,7 @@ var ScallopCache = class {
|
|
|
1763
1972
|
}
|
|
1764
1973
|
async queryGetDynamicFieldObject(input) {
|
|
1765
1974
|
return this.queryClient.fetchQuery({
|
|
1766
|
-
retry:
|
|
1975
|
+
retry: this.retryFn,
|
|
1767
1976
|
retryDelay: (attemptIndex) => Math.min(1e3 * attemptIndex, 8e3),
|
|
1768
1977
|
queryKey: queryKeys.rpc.getDynamicFieldObject(input),
|
|
1769
1978
|
queryFn: async () => {
|
|
@@ -1776,7 +1985,7 @@ var ScallopCache = class {
|
|
|
1776
1985
|
}
|
|
1777
1986
|
async queryGetAllCoinBalances(owner) {
|
|
1778
1987
|
return this.queryClient.fetchQuery({
|
|
1779
|
-
retry:
|
|
1988
|
+
retry: this.retryFn,
|
|
1780
1989
|
retryDelay: 1e3,
|
|
1781
1990
|
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1782
1991
|
queryFn: async () => {
|
|
@@ -2495,7 +2704,7 @@ var getBorrowIncentivePools = async (query, borrowIncentiveCoinNames = [
|
|
|
2495
2704
|
...SUPPORT_BORROW_INCENTIVE_POOLS
|
|
2496
2705
|
], indexer = false, marketPools, coinPrices) => {
|
|
2497
2706
|
const borrowIncentivePools = {};
|
|
2498
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
2707
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices, indexer })).pools;
|
|
2499
2708
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools });
|
|
2500
2709
|
if (indexer) {
|
|
2501
2710
|
const borrowIncentivePoolsIndexer = await query.indexer.getBorrowIncentivePools();
|
|
@@ -2728,9 +2937,14 @@ var isolatedAssetZod = zod2.object({
|
|
|
2728
2937
|
})
|
|
2729
2938
|
});
|
|
2730
2939
|
var isolatedAssetKeyType = `0xe7dbb371a9595631f7964b7ece42255ad0e738cc85fe6da26c7221b220f01af6::market_dynamic_keys::IsolatedAssetKey`;
|
|
2731
|
-
var getIsolatedAssets = async (
|
|
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
|
+
}
|
|
2732
2946
|
try {
|
|
2733
|
-
const marketObject = address.get("core.market");
|
|
2947
|
+
const marketObject = query.address.get("core.market");
|
|
2734
2948
|
const isolatedAssets = [];
|
|
2735
2949
|
if (!marketObject)
|
|
2736
2950
|
return isolatedAssets;
|
|
@@ -2740,7 +2954,7 @@ var getIsolatedAssets = async (address) => {
|
|
|
2740
2954
|
return dynamicField.name.type === isolatedAssetKeyType;
|
|
2741
2955
|
};
|
|
2742
2956
|
do {
|
|
2743
|
-
const response = await
|
|
2957
|
+
const response = await query.cache.queryGetDynamicFields({
|
|
2744
2958
|
parentId: marketObject,
|
|
2745
2959
|
cursor: nextCursor,
|
|
2746
2960
|
limit: 10
|
|
@@ -2763,32 +2977,30 @@ var getIsolatedAssets = async (address) => {
|
|
|
2763
2977
|
}
|
|
2764
2978
|
};
|
|
2765
2979
|
var isIsolatedAsset = async (utils, coinName) => {
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
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
|
|
2775
2998
|
}
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
name: {
|
|
2780
|
-
type: isolatedAssetKeyType,
|
|
2781
|
-
value: coinType
|
|
2782
|
-
}
|
|
2783
|
-
});
|
|
2784
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2785
|
-
if (!parsedData.success)
|
|
2786
|
-
return false;
|
|
2787
|
-
return parsedData.data.fields.value;
|
|
2788
|
-
} catch (e) {
|
|
2789
|
-
console.error(e);
|
|
2999
|
+
});
|
|
3000
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
3001
|
+
if (!parsedData.success)
|
|
2790
3002
|
return false;
|
|
2791
|
-
|
|
3003
|
+
return parsedData.data.fields.value;
|
|
2792
3004
|
};
|
|
2793
3005
|
|
|
2794
3006
|
// src/queries/borrowLimitQuery.ts
|
|
@@ -2831,6 +3043,17 @@ var getBorrowLimit = async (utils, poolName) => {
|
|
|
2831
3043
|
}
|
|
2832
3044
|
};
|
|
2833
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
|
+
|
|
2834
3057
|
// src/queries/coreQuery.ts
|
|
2835
3058
|
var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
2836
3059
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
@@ -2887,19 +3110,15 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2887
3110
|
borrowRateOnMidKink: pool.borrowRateOnMidKink,
|
|
2888
3111
|
highKink: pool.highKink,
|
|
2889
3112
|
midKink: pool.midKink,
|
|
2890
|
-
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"
|
|
2891
3117
|
});
|
|
2892
3118
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
2893
3119
|
query.utils,
|
|
2894
3120
|
parsedMarketPoolData
|
|
2895
3121
|
);
|
|
2896
|
-
const coinDecimal = query.utils.getCoinDecimal(poolCoinName);
|
|
2897
|
-
const maxSupplyCoin = BigNumber3(
|
|
2898
|
-
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2899
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2900
|
-
const maxBorrowCoin = BigNumber3(
|
|
2901
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
2902
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
2903
3122
|
pools[poolCoinName] = {
|
|
2904
3123
|
coinName: poolCoinName,
|
|
2905
3124
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -2909,7 +3128,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2909
3128
|
query.utils.parseMarketCoinName(poolCoinName)
|
|
2910
3129
|
),
|
|
2911
3130
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
2912
|
-
coinDecimal,
|
|
2913
3131
|
coinPrice,
|
|
2914
3132
|
highKink: parsedMarketPoolData.highKink,
|
|
2915
3133
|
midKink: parsedMarketPoolData.midKink,
|
|
@@ -2918,10 +3136,6 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2918
3136
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
2919
3137
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2920
3138
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2921
|
-
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2922
|
-
// isIsolated: false,
|
|
2923
|
-
maxSupplyCoin,
|
|
2924
|
-
maxBorrowCoin,
|
|
2925
3139
|
...calculatedMarketPoolData
|
|
2926
3140
|
};
|
|
2927
3141
|
}
|
|
@@ -2937,10 +3151,11 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2937
3151
|
collateralFactor: collateral.collateralFactor,
|
|
2938
3152
|
liquidationFactor: collateral.liquidationFactor,
|
|
2939
3153
|
liquidationDiscount: collateral.liquidationDiscount,
|
|
2940
|
-
|
|
3154
|
+
liquidationPenalty: collateral.liquidationPanelty,
|
|
2941
3155
|
liquidationReserveFactor: collateral.liquidationReserveFactor,
|
|
2942
3156
|
maxCollateralAmount: collateral.maxCollateralAmount,
|
|
2943
|
-
totalCollateralAmount: collateral.totalCollateralAmount
|
|
3157
|
+
totalCollateralAmount: collateral.totalCollateralAmount,
|
|
3158
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
2944
3159
|
});
|
|
2945
3160
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2946
3161
|
query.utils,
|
|
@@ -2952,14 +3167,12 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2952
3167
|
coinType,
|
|
2953
3168
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
2954
3169
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
2955
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
2956
3170
|
coinPrice,
|
|
2957
3171
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
2958
3172
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
2959
3173
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2960
|
-
|
|
3174
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
2961
3175
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2962
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2963
3176
|
...calculatedMarketCollateralData
|
|
2964
3177
|
};
|
|
2965
3178
|
}
|
|
@@ -2969,44 +3182,216 @@ var queryMarket = async (query, indexer = false, coinPrices) => {
|
|
|
2969
3182
|
// data: marketData,
|
|
2970
3183
|
};
|
|
2971
3184
|
};
|
|
2972
|
-
var
|
|
2973
|
-
const
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
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) => {
|
|
2977
3286
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
2978
|
-
const
|
|
3287
|
+
const pools = {};
|
|
3288
|
+
const collaterals = {};
|
|
2979
3289
|
if (indexer) {
|
|
2980
|
-
const
|
|
2981
|
-
const
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
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
|
|
2989
3306
|
};
|
|
2990
|
-
Object.values(marketPoolsIndexer).forEach(updateMarketPool);
|
|
2991
|
-
return marketPools;
|
|
2992
3307
|
}
|
|
3308
|
+
const requiredObjects = await queryRequiredMarketObjects(
|
|
3309
|
+
query,
|
|
3310
|
+
poolCoinNames
|
|
3311
|
+
);
|
|
2993
3312
|
await Promise.allSettled(
|
|
2994
3313
|
poolCoinNames.map(async (poolCoinName) => {
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
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);
|
|
3004
3330
|
}
|
|
3005
3331
|
})
|
|
3006
3332
|
);
|
|
3007
|
-
return
|
|
3333
|
+
return {
|
|
3334
|
+
pools,
|
|
3335
|
+
collaterals
|
|
3336
|
+
};
|
|
3337
|
+
};
|
|
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
|
+
};
|
|
3008
3393
|
};
|
|
3009
|
-
var getMarketPool = async (query, poolCoinName, indexer = false,
|
|
3394
|
+
var getMarketPool = async (query, poolCoinName, indexer = false, coinPrice, requiredObjects) => {
|
|
3010
3395
|
coinPrice = coinPrice ?? (await query.utils.getCoinPrices())?.[poolCoinName];
|
|
3011
3396
|
if (indexer) {
|
|
3012
3397
|
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
@@ -3017,135 +3402,70 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
3017
3402
|
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
3018
3403
|
marketPoolIndexer.coinName
|
|
3019
3404
|
);
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
3030
|
-
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
3031
|
-
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3032
|
-
parentId: balanceSheetParentId,
|
|
3033
|
-
name: {
|
|
3034
|
-
type: "0x1::type_name::TypeName",
|
|
3035
|
-
value: {
|
|
3036
|
-
name: coinType.substring(2)
|
|
3037
|
-
}
|
|
3038
|
-
}
|
|
3039
|
-
});
|
|
3040
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
3041
|
-
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
3042
|
-
throw new Error(
|
|
3043
|
-
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
3044
|
-
);
|
|
3045
|
-
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
3046
|
-
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
3047
|
-
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3048
|
-
parentId: borrowIndexParentId,
|
|
3049
|
-
name: {
|
|
3050
|
-
type: "0x1::type_name::TypeName",
|
|
3051
|
-
value: {
|
|
3052
|
-
name: coinType.substring(2)
|
|
3053
|
-
}
|
|
3054
|
-
}
|
|
3055
|
-
});
|
|
3056
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
3057
|
-
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
3058
|
-
throw new Error(
|
|
3059
|
-
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
3060
|
-
);
|
|
3061
|
-
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
3062
|
-
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
3063
|
-
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
3064
|
-
parentId: interestModelParentId,
|
|
3065
|
-
name: {
|
|
3066
|
-
type: "0x1::type_name::TypeName",
|
|
3067
|
-
value: {
|
|
3068
|
-
name: coinType.substring(2)
|
|
3069
|
-
}
|
|
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
|
+
);
|
|
3070
3414
|
}
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
const
|
|
3078
|
-
const
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
name: {
|
|
3082
|
-
type: `${BORROW_FEE_PROTOCOL_ID}::market_dynamic_keys::BorrowFeeKey`,
|
|
3083
|
-
value: {
|
|
3084
|
-
type: {
|
|
3085
|
-
name: coinType.substring(2)
|
|
3086
|
-
}
|
|
3087
|
-
}
|
|
3088
|
-
}
|
|
3089
|
-
});
|
|
3090
|
-
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
3091
|
-
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
3092
|
-
return { value: "0" };
|
|
3093
|
-
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
3094
|
-
};
|
|
3095
|
-
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
3096
|
-
type: interestModel.type.fields,
|
|
3097
|
-
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
3098
|
-
interestRate: borrowIndex.interest_rate.fields,
|
|
3099
|
-
interestRateScale: borrowIndex.interest_rate_scale,
|
|
3100
|
-
borrowIndex: borrowIndex.borrow_index,
|
|
3101
|
-
lastUpdated: borrowIndex.last_updated,
|
|
3102
|
-
cash: balanceSheet.cash,
|
|
3103
|
-
debt: balanceSheet.debt,
|
|
3104
|
-
marketCoinSupply: balanceSheet.market_coin_supply,
|
|
3105
|
-
reserve: balanceSheet.revenue,
|
|
3106
|
-
reserveFactor: interestModel.revenue_factor.fields,
|
|
3107
|
-
borrowWeight: interestModel.borrow_weight.fields,
|
|
3108
|
-
borrowFeeRate: await getBorrowFee(),
|
|
3109
|
-
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
3110
|
-
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
3111
|
-
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
3112
|
-
highKink: interestModel.high_kink.fields,
|
|
3113
|
-
midKink: interestModel.mid_kink.fields,
|
|
3114
|
-
minBorrowAmount: interestModel.min_borrow_amount
|
|
3115
|
-
});
|
|
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
|
+
);
|
|
3116
3425
|
const calculatedMarketPoolData = calculateMarketPoolData(
|
|
3117
3426
|
query.utils,
|
|
3118
3427
|
parsedMarketPoolData
|
|
3119
3428
|
);
|
|
3120
|
-
const
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
const maxBorrowCoin = BigNumber3(
|
|
3125
|
-
await getBorrowLimit(query.utils, poolCoinName) ?? "0"
|
|
3126
|
-
).shiftedBy(-coinDecimal).toNumber();
|
|
3127
|
-
return {
|
|
3429
|
+
const parsedMarketCollateralData = parsedMarketPoolObjects.parsedOriginMarketCollateral ? parseOriginMarketCollateralData(
|
|
3430
|
+
parsedMarketPoolObjects.parsedOriginMarketCollateral
|
|
3431
|
+
) : void 0;
|
|
3432
|
+
const basePoolData = () => ({
|
|
3128
3433
|
coinName: poolCoinName,
|
|
3129
3434
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
3130
|
-
coinType: query.utils.parseCoinType(poolCoinName),
|
|
3131
3435
|
marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
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
|
|
3149
3469
|
};
|
|
3150
3470
|
};
|
|
3151
3471
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
@@ -3240,10 +3560,11 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3240
3560
|
collateralFactor: riskModel.collateral_factor.fields,
|
|
3241
3561
|
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
3242
3562
|
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
3243
|
-
|
|
3563
|
+
liquidationPenalty: riskModel.liquidation_penalty.fields,
|
|
3244
3564
|
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
3245
3565
|
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
3246
|
-
totalCollateralAmount: collateralStat.amount
|
|
3566
|
+
totalCollateralAmount: collateralStat.amount,
|
|
3567
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName)
|
|
3247
3568
|
});
|
|
3248
3569
|
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
3249
3570
|
query.utils,
|
|
@@ -3255,14 +3576,12 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
3255
3576
|
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
3256
3577
|
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
3257
3578
|
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
3258
|
-
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
3259
3579
|
coinPrice: coinPrice ?? 0,
|
|
3260
3580
|
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
3261
3581
|
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
3262
3582
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
3263
|
-
|
|
3583
|
+
liquidationPenalty: parsedMarketCollateralData.liquidationPenalty,
|
|
3264
3584
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
3265
|
-
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
3266
3585
|
...calculatedMarketCollateralData
|
|
3267
3586
|
};
|
|
3268
3587
|
};
|
|
@@ -3503,10 +3822,10 @@ var getLendings = async (query, poolCoinNames = [...SUPPORT_POOLS], ownerAddress
|
|
|
3503
3822
|
(marketCoinName) => SUPPORT_SPOOLS.includes(marketCoinName)
|
|
3504
3823
|
);
|
|
3505
3824
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3506
|
-
const marketPools = await query.getMarketPools(poolCoinNames, {
|
|
3825
|
+
const marketPools = (await query.getMarketPools(poolCoinNames, {
|
|
3507
3826
|
indexer,
|
|
3508
3827
|
coinPrices
|
|
3509
|
-
});
|
|
3828
|
+
})).pools;
|
|
3510
3829
|
const spools = await query.getSpools(stakeMarketCoinNames, {
|
|
3511
3830
|
indexer,
|
|
3512
3831
|
marketPools,
|
|
@@ -3675,7 +3994,7 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
|
|
|
3675
3994
|
};
|
|
3676
3995
|
var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
3677
3996
|
const coinPrices = await query.utils.getCoinPrices();
|
|
3678
|
-
const market = await query.
|
|
3997
|
+
const market = await query.getMarketPools(void 0, { coinPrices, indexer });
|
|
3679
3998
|
const [coinAmounts, obligations] = await Promise.all([
|
|
3680
3999
|
query.getCoinAmounts(void 0, ownerAddress),
|
|
3681
4000
|
query.getObligations(ownerAddress)
|
|
@@ -3703,7 +4022,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3703
4022
|
const collateralAssetCoinNames = [
|
|
3704
4023
|
...SUPPORT_COLLATERALS
|
|
3705
4024
|
];
|
|
3706
|
-
market = market ?? await query.
|
|
4025
|
+
market = market ?? await query.getMarketPools(void 0, { indexer });
|
|
3707
4026
|
coinPrices = coinPrices ?? await query.getAllCoinPrices({ marketPools: market.pools });
|
|
3708
4027
|
coinAmounts = coinAmounts || await query.getCoinAmounts(coinNames, ownerAddress);
|
|
3709
4028
|
const [obligationQuery, borrowIncentivePools, borrowIncentiveAccounts] = await Promise.all([
|
|
@@ -3994,7 +4313,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3994
4313
|
return obligationAccount;
|
|
3995
4314
|
};
|
|
3996
4315
|
var getTotalValueLocked = async (query, indexer = false) => {
|
|
3997
|
-
const market = await query.
|
|
4316
|
+
const market = await query.getMarketPools(void 0, { indexer });
|
|
3998
4317
|
let supplyValue = BigNumber5(0);
|
|
3999
4318
|
let borrowValue = BigNumber5(0);
|
|
4000
4319
|
if (indexer) {
|
|
@@ -4115,7 +4434,7 @@ var getPythPrices = async ({
|
|
|
4115
4434
|
};
|
|
4116
4435
|
var getAllCoinPrices = async (query, marketPools, coinPrices) => {
|
|
4117
4436
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices();
|
|
4118
|
-
marketPools = marketPools ?? await query.getMarketPools(void 0, { coinPrices });
|
|
4437
|
+
marketPools = marketPools ?? (await query.getMarketPools(void 0, { coinPrices })).pools;
|
|
4119
4438
|
if (!marketPools) {
|
|
4120
4439
|
throw new Error(`Failed to fetch market pool for getAllCoinPrices`);
|
|
4121
4440
|
}
|
|
@@ -4246,7 +4565,7 @@ var getSpools = async (query, stakeMarketCoinNames = [...SUPPORT_SPOOLS], indexe
|
|
|
4246
4565
|
(stakeMarketCoinName) => query.utils.parseCoinName(stakeMarketCoinName)
|
|
4247
4566
|
);
|
|
4248
4567
|
coinPrices = coinPrices ?? await query.utils.getCoinPrices() ?? {};
|
|
4249
|
-
marketPools = marketPools ?? await query.getMarketPools(stakeCoinNames, { indexer });
|
|
4568
|
+
marketPools = marketPools ?? (await query.getMarketPools(stakeCoinNames, { indexer })).pools;
|
|
4250
4569
|
if (!marketPools)
|
|
4251
4570
|
throw new Error(`Fail to fetch marketPools for ${stakeCoinNames}`);
|
|
4252
4571
|
const spools = {};
|
|
@@ -4730,6 +5049,96 @@ var getVeScaTreasuryInfo = async (utils) => {
|
|
|
4730
5049
|
};
|
|
4731
5050
|
};
|
|
4732
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
|
+
|
|
4733
5142
|
// src/models/suiKit.ts
|
|
4734
5143
|
import { SuiKit as SuiKit2 } from "@scallop-io/sui-kit";
|
|
4735
5144
|
var newSuiKit = (params) => {
|
|
@@ -7080,6 +7489,7 @@ var ScallopQuery = class {
|
|
|
7080
7489
|
}
|
|
7081
7490
|
/* ==================== Core Query Methods ==================== */
|
|
7082
7491
|
/**
|
|
7492
|
+
* @deprecated use getMarketPools
|
|
7083
7493
|
* Query market data.
|
|
7084
7494
|
* @param indexer - Whether to use indexer.
|
|
7085
7495
|
* @return Market data.
|
|
@@ -7098,7 +7508,7 @@ var ScallopQuery = class {
|
|
|
7098
7508
|
* @param indexer - Whether to use indexer.
|
|
7099
7509
|
* @return Market pools data.
|
|
7100
7510
|
*/
|
|
7101
|
-
async getMarketPools(poolCoinNames, args) {
|
|
7511
|
+
async getMarketPools(poolCoinNames = [...SUPPORT_POOLS], args) {
|
|
7102
7512
|
return await getMarketPools(
|
|
7103
7513
|
this,
|
|
7104
7514
|
poolCoinNames,
|
|
@@ -7114,13 +7524,8 @@ var ScallopQuery = class {
|
|
|
7114
7524
|
* @return Market pool data.
|
|
7115
7525
|
*/
|
|
7116
7526
|
async getMarketPool(poolCoinName, args) {
|
|
7117
|
-
|
|
7118
|
-
|
|
7119
|
-
poolCoinName,
|
|
7120
|
-
args?.indexer,
|
|
7121
|
-
args?.marketObject,
|
|
7122
|
-
args?.coinPrice
|
|
7123
|
-
);
|
|
7527
|
+
const marketPools = await this.getMarketPools(void 0, args);
|
|
7528
|
+
return marketPools.pools[poolCoinName];
|
|
7124
7529
|
}
|
|
7125
7530
|
/**
|
|
7126
7531
|
* Get market collaterals.
|
|
@@ -7558,7 +7963,7 @@ var ScallopQuery = class {
|
|
|
7558
7963
|
* Get list of isolated assets
|
|
7559
7964
|
*/
|
|
7560
7965
|
async getIsolatedAssets() {
|
|
7561
|
-
return await getIsolatedAssets(this
|
|
7966
|
+
return await getIsolatedAssets(this);
|
|
7562
7967
|
}
|
|
7563
7968
|
/**
|
|
7564
7969
|
* Check if asset is an isolated asset
|
|
@@ -7581,6 +7986,13 @@ var ScallopQuery = class {
|
|
|
7581
7986
|
async getAllCoinPrices(args) {
|
|
7582
7987
|
return getAllCoinPrices(this, args?.marketPools, args?.coinPrices);
|
|
7583
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
|
+
}
|
|
7584
7996
|
};
|
|
7585
7997
|
|
|
7586
7998
|
// src/models/scallopBuilder.ts
|