@scallop-io/sui-scallop-sdk 1.3.2 → 1.3.3-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/queryKeys.d.ts +2 -1
- package/dist/index.js +820 -788
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +819 -788
- package/dist/index.mjs.map +1 -1
- package/dist/types/query/core.d.ts +1 -0
- package/package.json +1 -2
- package/src/constants/enum.ts +11 -4
- package/src/constants/index.ts +1 -0
- package/src/constants/queryKeys.ts +2 -2
- package/src/constants/testAddress.ts +76 -35
- package/src/models/scallopBuilder.ts +2 -3
- package/src/models/scallopQuery.ts +4 -3
- package/src/models/scallopUtils.ts +39 -28
- package/src/queries/coreQuery.ts +222 -216
- package/src/queries/isolatedAsset.ts +4 -4
- package/src/queries/portfolioQuery.ts +6 -9
- package/src/queries/referralQuery.ts +0 -1
- package/src/queries/spoolQuery.ts +1 -1
- package/src/types/query/core.ts +1 -0
- package/dist/models/scallopPrice.d.ts +0 -0
- package/src/models/scallopPrice.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -62,6 +62,7 @@ __export(src_exports, {
|
|
|
62
62
|
ScallopIndexer: () => ScallopIndexer,
|
|
63
63
|
ScallopQuery: () => ScallopQuery,
|
|
64
64
|
ScallopUtils: () => ScallopUtils,
|
|
65
|
+
TEST_ADDRESSES: () => TEST_ADDRESSES,
|
|
65
66
|
UNLOCK_ROUND_DURATION: () => UNLOCK_ROUND_DURATION,
|
|
66
67
|
USE_TEST_ADDRESS: () => USE_TEST_ADDRESS,
|
|
67
68
|
assetCoins: () => assetCoins,
|
|
@@ -336,11 +337,20 @@ var voloCoinIds = {
|
|
|
336
337
|
var sCoinIds = {
|
|
337
338
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
338
339
|
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
339
|
-
|
|
340
|
+
// TODO: Change this to the correct value on production release
|
|
341
|
+
ssui: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
342
|
+
// ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
340
343
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
+
// TODO: Change this to the correct value on production release
|
|
345
|
+
ssca: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
346
|
+
// '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
|
|
347
|
+
// TODO: Change this to the correct value on production release
|
|
348
|
+
swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
349
|
+
// '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
|
|
350
|
+
swusdt: (
|
|
351
|
+
// '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
|
|
352
|
+
"0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT"
|
|
353
|
+
),
|
|
344
354
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
345
355
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
346
356
|
shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
@@ -441,10 +451,10 @@ var queryKeys = {
|
|
|
441
451
|
]
|
|
442
452
|
},
|
|
443
453
|
oracle: {
|
|
444
|
-
getPythLatestPriceFeed: (pythPriceId) => [
|
|
454
|
+
getPythLatestPriceFeed: (pythPriceId, endpoint) => [
|
|
445
455
|
"oracle",
|
|
446
456
|
"getPythPriceId",
|
|
447
|
-
{ pythPriceId }
|
|
457
|
+
{ pythPriceId, endpoint }
|
|
448
458
|
]
|
|
449
459
|
}
|
|
450
460
|
};
|
|
@@ -456,6 +466,430 @@ var MAX_LOCK_DURATION = MAX_LOCK_ROUNDS * UNLOCK_ROUND_DURATION;
|
|
|
456
466
|
var MIN_INITIAL_LOCK_AMOUNT = 1e10;
|
|
457
467
|
var MIN_TOP_UP_AMOUNT = 1e9;
|
|
458
468
|
|
|
469
|
+
// src/constants/testAddress.ts
|
|
470
|
+
var TEST_ADDRESSES = {
|
|
471
|
+
core: {
|
|
472
|
+
// version:
|
|
473
|
+
// '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
|
|
474
|
+
version: "0xd318de9b0f6873879a82cbfcc2daa1d1591a8b54e7cea9f4b567da63c692a52b",
|
|
475
|
+
versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
|
|
476
|
+
// object:
|
|
477
|
+
// '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
|
|
478
|
+
object: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
|
|
479
|
+
// market:
|
|
480
|
+
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
481
|
+
market: "0x9d6434e97f3f98fd9b0c0e1dca22632073985abcd22541feae7ee1e34cbe3af2",
|
|
482
|
+
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
483
|
+
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
484
|
+
// obligationAccessStore:
|
|
485
|
+
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
486
|
+
obligationAccessStore: "0x46e9b44a77ee9c9d33cc2689ecdfbb8f681935cbc6bdf6ac3df048e396c36c82",
|
|
487
|
+
coins: {
|
|
488
|
+
usdc: {
|
|
489
|
+
id: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
|
|
490
|
+
metaData: "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
|
|
491
|
+
treasury: "",
|
|
492
|
+
oracle: {
|
|
493
|
+
supra: "",
|
|
494
|
+
switchboard: "",
|
|
495
|
+
pyth: {
|
|
496
|
+
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
497
|
+
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
cetus: {
|
|
502
|
+
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
503
|
+
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
504
|
+
treasury: "",
|
|
505
|
+
oracle: {
|
|
506
|
+
supra: "",
|
|
507
|
+
switchboard: "",
|
|
508
|
+
pyth: {
|
|
509
|
+
feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
|
|
510
|
+
feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
wapt: {
|
|
515
|
+
id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
516
|
+
metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
|
|
517
|
+
treasury: "",
|
|
518
|
+
oracle: {
|
|
519
|
+
supra: "",
|
|
520
|
+
switchboard: "",
|
|
521
|
+
pyth: {
|
|
522
|
+
feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
|
|
523
|
+
feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
wsol: {
|
|
528
|
+
id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
529
|
+
metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
|
|
530
|
+
treasury: "",
|
|
531
|
+
oracle: {
|
|
532
|
+
supra: "",
|
|
533
|
+
switchboard: "",
|
|
534
|
+
pyth: {
|
|
535
|
+
feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
|
|
536
|
+
feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
wbtc: {
|
|
541
|
+
id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
542
|
+
metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
|
|
543
|
+
treasury: "",
|
|
544
|
+
oracle: {
|
|
545
|
+
supra: "",
|
|
546
|
+
switchboard: "",
|
|
547
|
+
pyth: {
|
|
548
|
+
feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
|
|
549
|
+
feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
weth: {
|
|
554
|
+
id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
555
|
+
metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
|
|
556
|
+
treasury: "",
|
|
557
|
+
oracle: {
|
|
558
|
+
supra: "",
|
|
559
|
+
switchboard: "",
|
|
560
|
+
pyth: {
|
|
561
|
+
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
562
|
+
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
wusdc: {
|
|
567
|
+
id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
568
|
+
metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
|
|
569
|
+
treasury: "",
|
|
570
|
+
oracle: {
|
|
571
|
+
supra: "",
|
|
572
|
+
switchboard: "",
|
|
573
|
+
pyth: {
|
|
574
|
+
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
575
|
+
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
wusdt: {
|
|
580
|
+
id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
581
|
+
metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
|
|
582
|
+
treasury: "",
|
|
583
|
+
oracle: {
|
|
584
|
+
supra: "",
|
|
585
|
+
switchboard: "",
|
|
586
|
+
pyth: {
|
|
587
|
+
feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
|
588
|
+
feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
sui: {
|
|
593
|
+
id: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
594
|
+
metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
|
|
595
|
+
treasury: "",
|
|
596
|
+
oracle: {
|
|
597
|
+
supra: "",
|
|
598
|
+
switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
|
|
599
|
+
pyth: {
|
|
600
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
601
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
},
|
|
605
|
+
afsui: {
|
|
606
|
+
id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
607
|
+
metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
|
|
608
|
+
treasury: "",
|
|
609
|
+
oracle: {
|
|
610
|
+
supra: "",
|
|
611
|
+
switchboard: "",
|
|
612
|
+
pyth: {
|
|
613
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
614
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
hasui: {
|
|
619
|
+
id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
620
|
+
metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
|
|
621
|
+
treasury: "",
|
|
622
|
+
oracle: {
|
|
623
|
+
supra: "",
|
|
624
|
+
switchboard: "",
|
|
625
|
+
pyth: {
|
|
626
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
627
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
vsui: {
|
|
632
|
+
id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
633
|
+
metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
|
|
634
|
+
treasury: "",
|
|
635
|
+
oracle: {
|
|
636
|
+
supra: "",
|
|
637
|
+
switchboard: "",
|
|
638
|
+
pyth: {
|
|
639
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
640
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
sca: {
|
|
645
|
+
id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
646
|
+
metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
|
|
647
|
+
treasury: "",
|
|
648
|
+
oracle: {
|
|
649
|
+
supra: "",
|
|
650
|
+
switchboard: "",
|
|
651
|
+
pyth: {
|
|
652
|
+
feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
653
|
+
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
sbeth: {
|
|
658
|
+
id: "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
|
|
659
|
+
metaData: "0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0",
|
|
660
|
+
treasury: "",
|
|
661
|
+
oracle: {
|
|
662
|
+
supra: "",
|
|
663
|
+
switchboard: "",
|
|
664
|
+
pyth: {
|
|
665
|
+
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
666
|
+
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
oracles: {
|
|
672
|
+
xOracle: "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
|
|
673
|
+
xOracleCap: "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
|
|
674
|
+
supra: { registry: "", registryCap: "", holder: "" },
|
|
675
|
+
switchboard: { registry: "", registryCap: "" },
|
|
676
|
+
pyth: {
|
|
677
|
+
registry: "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
|
|
678
|
+
registryCap: "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
|
|
679
|
+
state: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
|
|
680
|
+
wormhole: "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
|
|
681
|
+
wormholeState: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
packages: {
|
|
685
|
+
coinDecimalsRegistry: {
|
|
686
|
+
id: "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
|
|
687
|
+
upgradeCap: "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
|
|
688
|
+
},
|
|
689
|
+
math: {
|
|
690
|
+
id: "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
|
|
691
|
+
upgradeCap: "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
|
|
692
|
+
},
|
|
693
|
+
whitelist: {
|
|
694
|
+
id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
|
|
695
|
+
upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
|
|
696
|
+
},
|
|
697
|
+
x: {
|
|
698
|
+
id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
|
|
699
|
+
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
700
|
+
},
|
|
701
|
+
protocol: {
|
|
702
|
+
id: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
|
|
703
|
+
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
704
|
+
},
|
|
705
|
+
// protocol: {
|
|
706
|
+
// id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
707
|
+
// upgradeCap:
|
|
708
|
+
// '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
709
|
+
// },
|
|
710
|
+
protocolWhitelist: {
|
|
711
|
+
id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
|
|
712
|
+
upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
|
|
713
|
+
},
|
|
714
|
+
// query: {
|
|
715
|
+
// id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
716
|
+
// upgradeCap:
|
|
717
|
+
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
718
|
+
// },
|
|
719
|
+
query: {
|
|
720
|
+
id: "0x89706958f43fb170de134579e3fbc53972b946ee78bd2442d8e1adc36074fbdc",
|
|
721
|
+
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
722
|
+
},
|
|
723
|
+
supra: { id: "", upgradeCap: "" },
|
|
724
|
+
pyth: {
|
|
725
|
+
id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
|
|
726
|
+
upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
|
|
727
|
+
},
|
|
728
|
+
switchboard: { id: "", upgradeCap: "" },
|
|
729
|
+
xOracle: {
|
|
730
|
+
id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
|
|
731
|
+
upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
|
|
732
|
+
},
|
|
733
|
+
testCoin: { id: "", upgradeCap: "" }
|
|
734
|
+
}
|
|
735
|
+
},
|
|
736
|
+
spool: {
|
|
737
|
+
// id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
738
|
+
id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
739
|
+
adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
|
|
740
|
+
// object:
|
|
741
|
+
// '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
742
|
+
object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
743
|
+
pools: {
|
|
744
|
+
sweth: {
|
|
745
|
+
id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
746
|
+
rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
747
|
+
},
|
|
748
|
+
ssui: {
|
|
749
|
+
// id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
750
|
+
id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
|
|
751
|
+
rewardPoolId: (
|
|
752
|
+
// '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
753
|
+
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
754
|
+
)
|
|
755
|
+
},
|
|
756
|
+
susdc: {
|
|
757
|
+
id: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
|
|
758
|
+
rewardPoolId: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
|
|
759
|
+
},
|
|
760
|
+
swusdc: {
|
|
761
|
+
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
762
|
+
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
763
|
+
rewardPoolId: (
|
|
764
|
+
// '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
765
|
+
"0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
|
|
766
|
+
)
|
|
767
|
+
},
|
|
768
|
+
swusdt: {
|
|
769
|
+
// id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
770
|
+
id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
|
|
771
|
+
rewardPoolId: (
|
|
772
|
+
// '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
773
|
+
"0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
|
|
774
|
+
)
|
|
775
|
+
},
|
|
776
|
+
scetus: {
|
|
777
|
+
id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
778
|
+
rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
779
|
+
},
|
|
780
|
+
safsui: {
|
|
781
|
+
// id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
782
|
+
id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
|
|
783
|
+
rewardPoolId: (
|
|
784
|
+
// '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
785
|
+
"0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
|
|
786
|
+
)
|
|
787
|
+
},
|
|
788
|
+
shasui: {
|
|
789
|
+
// id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
790
|
+
id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
|
|
791
|
+
rewardPoolId: (
|
|
792
|
+
// '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
793
|
+
"0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
|
|
794
|
+
)
|
|
795
|
+
},
|
|
796
|
+
svsui: {
|
|
797
|
+
// id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
798
|
+
id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
|
|
799
|
+
rewardPoolId: (
|
|
800
|
+
// '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
801
|
+
"0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
|
|
802
|
+
)
|
|
803
|
+
}
|
|
804
|
+
},
|
|
805
|
+
config: ""
|
|
806
|
+
},
|
|
807
|
+
borrowIncentive: {
|
|
808
|
+
id: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
809
|
+
adminCap: "0x56ac8e6f2b360b2b35c0168d72cc6cd17d9592afb83709865cb87af24bb2025b",
|
|
810
|
+
object: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
811
|
+
query: "0x8e0d00f8ff1199d7c5fe56cea0e901a525daeefff0445a1635ace8282ae3302c",
|
|
812
|
+
incentivePools: "0x9d564c93128c6ab0c0d3e050a47f11df0b91494f3bb779bdc1301c1c637f15eb",
|
|
813
|
+
incentiveAccounts: "0x09e6040e798246de04941bc79a3ba62d3eca6d7a218cc30f21fb07f478fa2926",
|
|
814
|
+
config: "0x43d4ca1dfc90b161c4240facd119e74e4b850cca2957f88c2ec289c9380da064"
|
|
815
|
+
},
|
|
816
|
+
referral: {
|
|
817
|
+
id: "0x1bf5a8ce77050d8052549d743e16b469f15aa6b81b752b78b6ebb65179665f5a",
|
|
818
|
+
object: "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
|
|
819
|
+
adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
|
|
820
|
+
referralBindings: "0xcf184487782bed962bf678001efe775d31fb94b9992333a57594cf15d79d5ced",
|
|
821
|
+
bindingTableId: "0x41a50e258c0a266ce84e0e1a618dbf70b878cc943909e613089a50afcceb2bc0",
|
|
822
|
+
referralRevenuePool: "0xc24e3e5e37032f29a3dd91a9a1f057af8821b7e6c148e9683900ac8b6d30f0c6",
|
|
823
|
+
revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
|
|
824
|
+
referralTiers: "0x144350f3db9b46d11b140084cd54e6de0b9c3b8d265ce8059b51d0ef58ea464b",
|
|
825
|
+
tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
|
|
826
|
+
// authorizedWitnessList:
|
|
827
|
+
// '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
|
|
828
|
+
authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
|
|
829
|
+
version: "0x3545849eb97723e676a476ec9d4fe5f2eb0eb2c6b78972851114fd4c7ed4639f"
|
|
830
|
+
},
|
|
831
|
+
vesca: {
|
|
832
|
+
id: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
833
|
+
object: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
834
|
+
adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
|
|
835
|
+
tableId: "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
|
|
836
|
+
table: "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
|
|
837
|
+
treasury: "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
|
|
838
|
+
config: "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
|
|
839
|
+
},
|
|
840
|
+
loyaltyProgram: {
|
|
841
|
+
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
842
|
+
object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
843
|
+
rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
|
|
844
|
+
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
845
|
+
},
|
|
846
|
+
scoin: {
|
|
847
|
+
id: "0x773dab39c90fe05439b06a2d061795e52a974ff92c2aef90b2ee467acf7f33c8",
|
|
848
|
+
coins: {
|
|
849
|
+
ssui: {
|
|
850
|
+
coinType: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
851
|
+
treasury: "0x0e499640a12c38dd9cc44532f5bc5fd1b6da86d2f9a8810357250f4b26e9e5c7"
|
|
852
|
+
},
|
|
853
|
+
scetus: {
|
|
854
|
+
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
855
|
+
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
856
|
+
},
|
|
857
|
+
ssca: {
|
|
858
|
+
coinType: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
859
|
+
treasury: "0x5f1c5de1df7341075d119570269b7b452af50afe8363080638f1ae29a554c038"
|
|
860
|
+
},
|
|
861
|
+
swusdc: {
|
|
862
|
+
coinType: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
863
|
+
treasury: "0x471fbab72578bab577263006fe32543b6e76153fffa2bef69affe4bc4934258f"
|
|
864
|
+
},
|
|
865
|
+
swusdt: {
|
|
866
|
+
coinType: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
867
|
+
treasury: "0x921a4ed4bb4b4f11f51a462c83f4c0f6b60a90e441d1bc0d26d6fd893146bf4d"
|
|
868
|
+
},
|
|
869
|
+
sweth: {
|
|
870
|
+
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
871
|
+
treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
|
|
872
|
+
},
|
|
873
|
+
safsui: {
|
|
874
|
+
coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
|
|
875
|
+
treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
|
|
876
|
+
},
|
|
877
|
+
shasui: {
|
|
878
|
+
coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
879
|
+
treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
|
|
880
|
+
},
|
|
881
|
+
svsui: {
|
|
882
|
+
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
883
|
+
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6"
|
|
884
|
+
},
|
|
885
|
+
ssbeth: {
|
|
886
|
+
coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
887
|
+
treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
};
|
|
892
|
+
|
|
459
893
|
// src/models/scallop.ts
|
|
460
894
|
var import_sui_kit16 = require("@scallop-io/sui-kit");
|
|
461
895
|
|
|
@@ -1147,541 +1581,149 @@ var ScallopCache = class {
|
|
|
1147
1581
|
async invalidateAllCache() {
|
|
1148
1582
|
return Object.values(queryKeys.rpc).map(
|
|
1149
1583
|
(t) => this.queryClient.invalidateQueries({
|
|
1150
|
-
queryKey: t(),
|
|
1151
|
-
type: "all"
|
|
1152
|
-
})
|
|
1153
|
-
);
|
|
1154
|
-
}
|
|
1155
|
-
/**
|
|
1156
|
-
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1157
|
-
* @param QueryInspectTxnParams
|
|
1158
|
-
* @param txBlock
|
|
1159
|
-
* @returns Promise<DevInspectResults>
|
|
1160
|
-
*/
|
|
1161
|
-
async queryInspectTxn({
|
|
1162
|
-
queryTarget,
|
|
1163
|
-
args,
|
|
1164
|
-
typeArgs
|
|
1165
|
-
}) {
|
|
1166
|
-
const txBlock = new import_sui_kit.SuiTxBlock();
|
|
1167
|
-
txBlock.moveCall(queryTarget, args, typeArgs);
|
|
1168
|
-
const query = await this.queryClient.fetchQuery({
|
|
1169
|
-
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1170
|
-
queryFn: async () => {
|
|
1171
|
-
return await callWithRateLimit(
|
|
1172
|
-
this.tokenBucket,
|
|
1173
|
-
() => this.suiKit.inspectTxn(txBlock)
|
|
1174
|
-
);
|
|
1175
|
-
}
|
|
1176
|
-
});
|
|
1177
|
-
return query;
|
|
1178
|
-
}
|
|
1179
|
-
/**
|
|
1180
|
-
* @description Provides cache for getObject of the SuiKit.
|
|
1181
|
-
* @param objectId
|
|
1182
|
-
* @param QueryObjectParams
|
|
1183
|
-
* @returns Promise<SuiObjectResponse>
|
|
1184
|
-
*/
|
|
1185
|
-
async queryGetObject(objectId, options) {
|
|
1186
|
-
return this.queryClient.fetchQuery({
|
|
1187
|
-
queryKey: queryKeys.rpc.getObject(objectId, this.walletAddress, options),
|
|
1188
|
-
queryFn: async () => {
|
|
1189
|
-
return await callWithRateLimit(
|
|
1190
|
-
this.tokenBucket,
|
|
1191
|
-
() => this.client.getObject({
|
|
1192
|
-
id: objectId,
|
|
1193
|
-
options
|
|
1194
|
-
})
|
|
1195
|
-
);
|
|
1196
|
-
}
|
|
1197
|
-
});
|
|
1198
|
-
}
|
|
1199
|
-
/**
|
|
1200
|
-
* @description Provides cache for getObjects of the SuiKit.
|
|
1201
|
-
* @param objectIds
|
|
1202
|
-
* @returns Promise<SuiObjectData[]>
|
|
1203
|
-
*/
|
|
1204
|
-
async queryGetObjects(objectIds, options = {
|
|
1205
|
-
showContent: true
|
|
1206
|
-
}) {
|
|
1207
|
-
if (objectIds.length === 0)
|
|
1208
|
-
return [];
|
|
1209
|
-
return this.queryClient.fetchQuery({
|
|
1210
|
-
queryKey: queryKeys.rpc.getObjects(
|
|
1211
|
-
objectIds,
|
|
1212
|
-
this.walletAddress,
|
|
1213
|
-
options
|
|
1214
|
-
),
|
|
1215
|
-
queryFn: async () => {
|
|
1216
|
-
return await callWithRateLimit(
|
|
1217
|
-
this.tokenBucket,
|
|
1218
|
-
() => this.suiKit.getObjects(objectIds, options)
|
|
1219
|
-
);
|
|
1220
|
-
}
|
|
1221
|
-
});
|
|
1584
|
+
queryKey: t(),
|
|
1585
|
+
type: "all"
|
|
1586
|
+
})
|
|
1587
|
+
);
|
|
1222
1588
|
}
|
|
1223
1589
|
/**
|
|
1224
|
-
* @description Provides cache for
|
|
1225
|
-
* @param
|
|
1226
|
-
* @
|
|
1590
|
+
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1591
|
+
* @param QueryInspectTxnParams
|
|
1592
|
+
* @param txBlock
|
|
1593
|
+
* @returns Promise<DevInspectResults>
|
|
1227
1594
|
*/
|
|
1228
|
-
async
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
});
|
|
1238
|
-
}
|
|
1239
|
-
async queryGetDynamicFields(input) {
|
|
1240
|
-
return this.queryClient.fetchQuery({
|
|
1241
|
-
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1595
|
+
async queryInspectTxn({
|
|
1596
|
+
queryTarget,
|
|
1597
|
+
args,
|
|
1598
|
+
typeArgs
|
|
1599
|
+
}) {
|
|
1600
|
+
const txBlock = new import_sui_kit.SuiTxBlock();
|
|
1601
|
+
txBlock.moveCall(queryTarget, args, typeArgs);
|
|
1602
|
+
const query = await this.queryClient.fetchQuery({
|
|
1603
|
+
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1242
1604
|
queryFn: async () => {
|
|
1243
1605
|
return await callWithRateLimit(
|
|
1244
1606
|
this.tokenBucket,
|
|
1245
|
-
() => this.
|
|
1607
|
+
() => this.suiKit.inspectTxn(txBlock)
|
|
1246
1608
|
);
|
|
1247
1609
|
}
|
|
1248
1610
|
});
|
|
1611
|
+
return query;
|
|
1249
1612
|
}
|
|
1250
|
-
|
|
1613
|
+
/**
|
|
1614
|
+
* @description Provides cache for getObject of the SuiKit.
|
|
1615
|
+
* @param objectId
|
|
1616
|
+
* @param QueryObjectParams
|
|
1617
|
+
* @returns Promise<SuiObjectResponse>
|
|
1618
|
+
*/
|
|
1619
|
+
async queryGetObject(objectId, options) {
|
|
1251
1620
|
return this.queryClient.fetchQuery({
|
|
1252
|
-
queryKey: queryKeys.rpc.
|
|
1621
|
+
queryKey: queryKeys.rpc.getObject(objectId, this.walletAddress, options),
|
|
1253
1622
|
queryFn: async () => {
|
|
1254
1623
|
return await callWithRateLimit(
|
|
1255
1624
|
this.tokenBucket,
|
|
1256
|
-
() => this.client.
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
}
|
|
1261
|
-
async queryGetAllCoinBalances(owner) {
|
|
1262
|
-
return this.queryClient.fetchQuery({
|
|
1263
|
-
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1264
|
-
queryFn: async () => {
|
|
1265
|
-
const allBalances = await callWithRateLimit(
|
|
1266
|
-
this.tokenBucket,
|
|
1267
|
-
() => this.client.getAllBalances({ owner })
|
|
1268
|
-
);
|
|
1269
|
-
if (!allBalances)
|
|
1270
|
-
return {};
|
|
1271
|
-
const balances = allBalances.reduce(
|
|
1272
|
-
(acc, coinBalance) => {
|
|
1273
|
-
if (coinBalance.totalBalance !== "0") {
|
|
1274
|
-
acc[(0, import_sui_kit.normalizeStructTag)(coinBalance.coinType)] = coinBalance.totalBalance;
|
|
1275
|
-
}
|
|
1276
|
-
return acc;
|
|
1277
|
-
},
|
|
1278
|
-
{}
|
|
1625
|
+
() => this.client.getObject({
|
|
1626
|
+
id: objectId,
|
|
1627
|
+
options
|
|
1628
|
+
})
|
|
1279
1629
|
);
|
|
1280
|
-
return balances;
|
|
1281
1630
|
}
|
|
1282
1631
|
});
|
|
1283
|
-
}
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
1306
|
-
market: "0x8606ed145cc887985b8ed793f7753ff5dc762a42c379dac035f568e1bac58490",
|
|
1307
|
-
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
1308
|
-
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
1309
|
-
// obligationAccessStore:
|
|
1310
|
-
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
1311
|
-
obligationAccessStore: "0x48b472d68ca910c45f7f3b6c26836b6aa6d2569810d94b1b939023da05ae0a23",
|
|
1312
|
-
coins: {
|
|
1313
|
-
cetus: {
|
|
1314
|
-
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
1315
|
-
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
1316
|
-
treasury: "",
|
|
1317
|
-
oracle: {
|
|
1318
|
-
supra: "",
|
|
1319
|
-
switchboard: "",
|
|
1320
|
-
pyth: {
|
|
1321
|
-
feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
|
|
1322
|
-
feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
|
|
1323
|
-
}
|
|
1324
|
-
}
|
|
1325
|
-
},
|
|
1326
|
-
wapt: {
|
|
1327
|
-
id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
1328
|
-
metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
|
|
1329
|
-
treasury: "",
|
|
1330
|
-
oracle: {
|
|
1331
|
-
supra: "",
|
|
1332
|
-
switchboard: "",
|
|
1333
|
-
pyth: {
|
|
1334
|
-
feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
|
|
1335
|
-
feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
|
|
1336
|
-
}
|
|
1337
|
-
}
|
|
1338
|
-
},
|
|
1339
|
-
wsol: {
|
|
1340
|
-
id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
1341
|
-
metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
|
|
1342
|
-
treasury: "",
|
|
1343
|
-
oracle: {
|
|
1344
|
-
supra: "",
|
|
1345
|
-
switchboard: "",
|
|
1346
|
-
pyth: {
|
|
1347
|
-
feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
|
|
1348
|
-
feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
|
|
1349
|
-
}
|
|
1350
|
-
}
|
|
1351
|
-
},
|
|
1352
|
-
wbtc: {
|
|
1353
|
-
id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
1354
|
-
metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
|
|
1355
|
-
treasury: "",
|
|
1356
|
-
oracle: {
|
|
1357
|
-
supra: "",
|
|
1358
|
-
switchboard: "",
|
|
1359
|
-
pyth: {
|
|
1360
|
-
feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
|
|
1361
|
-
feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1364
|
-
},
|
|
1365
|
-
weth: {
|
|
1366
|
-
id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
1367
|
-
metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
|
|
1368
|
-
treasury: "",
|
|
1369
|
-
oracle: {
|
|
1370
|
-
supra: "",
|
|
1371
|
-
switchboard: "",
|
|
1372
|
-
pyth: {
|
|
1373
|
-
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
1374
|
-
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
1375
|
-
}
|
|
1376
|
-
}
|
|
1377
|
-
},
|
|
1378
|
-
wusdc: {
|
|
1379
|
-
id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
1380
|
-
metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
|
|
1381
|
-
treasury: "",
|
|
1382
|
-
oracle: {
|
|
1383
|
-
supra: "",
|
|
1384
|
-
switchboard: "",
|
|
1385
|
-
pyth: {
|
|
1386
|
-
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
1387
|
-
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
1388
|
-
}
|
|
1389
|
-
}
|
|
1390
|
-
},
|
|
1391
|
-
wusdt: {
|
|
1392
|
-
id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
1393
|
-
metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
|
|
1394
|
-
treasury: "",
|
|
1395
|
-
oracle: {
|
|
1396
|
-
supra: "",
|
|
1397
|
-
switchboard: "",
|
|
1398
|
-
pyth: {
|
|
1399
|
-
feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
|
1400
|
-
feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
|
|
1401
|
-
}
|
|
1402
|
-
}
|
|
1403
|
-
},
|
|
1404
|
-
sui: {
|
|
1405
|
-
id: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
1406
|
-
metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
|
|
1407
|
-
treasury: "",
|
|
1408
|
-
oracle: {
|
|
1409
|
-
supra: "",
|
|
1410
|
-
switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
|
|
1411
|
-
pyth: {
|
|
1412
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1413
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1414
|
-
}
|
|
1415
|
-
}
|
|
1416
|
-
},
|
|
1417
|
-
afsui: {
|
|
1418
|
-
id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
1419
|
-
metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
|
|
1420
|
-
treasury: "",
|
|
1421
|
-
oracle: {
|
|
1422
|
-
supra: "",
|
|
1423
|
-
switchboard: "",
|
|
1424
|
-
pyth: {
|
|
1425
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1426
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1427
|
-
}
|
|
1428
|
-
}
|
|
1429
|
-
},
|
|
1430
|
-
hasui: {
|
|
1431
|
-
id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
1432
|
-
metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
|
|
1433
|
-
treasury: "",
|
|
1434
|
-
oracle: {
|
|
1435
|
-
supra: "",
|
|
1436
|
-
switchboard: "",
|
|
1437
|
-
pyth: {
|
|
1438
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1439
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1440
|
-
}
|
|
1441
|
-
}
|
|
1442
|
-
},
|
|
1443
|
-
vsui: {
|
|
1444
|
-
id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
1445
|
-
metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
|
|
1446
|
-
treasury: "",
|
|
1447
|
-
oracle: {
|
|
1448
|
-
supra: "",
|
|
1449
|
-
switchboard: "",
|
|
1450
|
-
pyth: {
|
|
1451
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1452
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1453
|
-
}
|
|
1454
|
-
}
|
|
1455
|
-
},
|
|
1456
|
-
sca: {
|
|
1457
|
-
id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
1458
|
-
metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
|
|
1459
|
-
treasury: "",
|
|
1460
|
-
oracle: {
|
|
1461
|
-
supra: "",
|
|
1462
|
-
switchboard: "",
|
|
1463
|
-
pyth: {
|
|
1464
|
-
feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
1465
|
-
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
1466
|
-
}
|
|
1467
|
-
}
|
|
1632
|
+
}
|
|
1633
|
+
/**
|
|
1634
|
+
* @description Provides cache for getObjects of the SuiKit.
|
|
1635
|
+
* @param objectIds
|
|
1636
|
+
* @returns Promise<SuiObjectData[]>
|
|
1637
|
+
*/
|
|
1638
|
+
async queryGetObjects(objectIds, options = {
|
|
1639
|
+
showContent: true
|
|
1640
|
+
}) {
|
|
1641
|
+
if (objectIds.length === 0)
|
|
1642
|
+
return [];
|
|
1643
|
+
return this.queryClient.fetchQuery({
|
|
1644
|
+
queryKey: queryKeys.rpc.getObjects(
|
|
1645
|
+
objectIds,
|
|
1646
|
+
this.walletAddress,
|
|
1647
|
+
options
|
|
1648
|
+
),
|
|
1649
|
+
queryFn: async () => {
|
|
1650
|
+
return await callWithRateLimit(
|
|
1651
|
+
this.tokenBucket,
|
|
1652
|
+
() => this.suiKit.getObjects(objectIds, options)
|
|
1653
|
+
);
|
|
1468
1654
|
}
|
|
1469
|
-
}
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1657
|
+
/**
|
|
1658
|
+
* @description Provides cache for getOwnedObjects of the SuiKit.
|
|
1659
|
+
* @param input
|
|
1660
|
+
* @returns Promise<PaginatedObjectsResponse>
|
|
1661
|
+
*/
|
|
1662
|
+
async queryGetOwnedObjects(input) {
|
|
1663
|
+
return this.queryClient.fetchQuery({
|
|
1664
|
+
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1665
|
+
queryFn: async () => {
|
|
1666
|
+
return await callWithRateLimit(
|
|
1667
|
+
this.tokenBucket,
|
|
1668
|
+
() => this.client.getOwnedObjects(input)
|
|
1669
|
+
);
|
|
1481
1670
|
}
|
|
1482
|
-
}
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
whitelist: {
|
|
1493
|
-
id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
|
|
1494
|
-
upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
|
|
1495
|
-
},
|
|
1496
|
-
x: {
|
|
1497
|
-
id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
|
|
1498
|
-
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
1499
|
-
},
|
|
1500
|
-
protocol: {
|
|
1501
|
-
id: "0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1",
|
|
1502
|
-
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
1503
|
-
},
|
|
1504
|
-
// protocol: {
|
|
1505
|
-
// id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
1506
|
-
// upgradeCap:
|
|
1507
|
-
// '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
1508
|
-
// },
|
|
1509
|
-
protocolWhitelist: {
|
|
1510
|
-
id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
|
|
1511
|
-
upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
|
|
1512
|
-
},
|
|
1513
|
-
// query: {
|
|
1514
|
-
// id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
1515
|
-
// upgradeCap:
|
|
1516
|
-
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
1517
|
-
// },
|
|
1518
|
-
query: {
|
|
1519
|
-
id: "0xe4f9d62d17746d5b9dbf0d5557747430021a71575780b515161210cdba0a4c1c",
|
|
1520
|
-
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
1521
|
-
},
|
|
1522
|
-
supra: { id: "", upgradeCap: "" },
|
|
1523
|
-
pyth: {
|
|
1524
|
-
id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
|
|
1525
|
-
upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
|
|
1526
|
-
},
|
|
1527
|
-
switchboard: { id: "", upgradeCap: "" },
|
|
1528
|
-
xOracle: {
|
|
1529
|
-
id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
|
|
1530
|
-
upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
|
|
1531
|
-
},
|
|
1532
|
-
testCoin: { id: "", upgradeCap: "" }
|
|
1533
|
-
}
|
|
1534
|
-
},
|
|
1535
|
-
spool: {
|
|
1536
|
-
// id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
1537
|
-
id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1538
|
-
adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
|
|
1539
|
-
// object:
|
|
1540
|
-
// '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
1541
|
-
object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1542
|
-
pools: {
|
|
1543
|
-
sweth: {
|
|
1544
|
-
id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
1545
|
-
rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
1546
|
-
},
|
|
1547
|
-
ssui: {
|
|
1548
|
-
// id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
1549
|
-
id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
|
|
1550
|
-
rewardPoolId: (
|
|
1551
|
-
// '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
1552
|
-
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
1553
|
-
)
|
|
1554
|
-
},
|
|
1555
|
-
swusdc: {
|
|
1556
|
-
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
1557
|
-
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
1558
|
-
rewardPoolId: (
|
|
1559
|
-
// '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
1560
|
-
"0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
|
|
1561
|
-
)
|
|
1562
|
-
},
|
|
1563
|
-
swusdt: {
|
|
1564
|
-
// id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
1565
|
-
id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
|
|
1566
|
-
rewardPoolId: (
|
|
1567
|
-
// '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
1568
|
-
"0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
|
|
1569
|
-
)
|
|
1570
|
-
},
|
|
1571
|
-
scetus: {
|
|
1572
|
-
id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
1573
|
-
rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
1574
|
-
},
|
|
1575
|
-
safsui: {
|
|
1576
|
-
// id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
1577
|
-
id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
|
|
1578
|
-
rewardPoolId: (
|
|
1579
|
-
// '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
1580
|
-
"0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
|
|
1581
|
-
)
|
|
1582
|
-
},
|
|
1583
|
-
shasui: {
|
|
1584
|
-
// id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
1585
|
-
id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
|
|
1586
|
-
rewardPoolId: (
|
|
1587
|
-
// '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
1588
|
-
"0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
|
|
1589
|
-
)
|
|
1590
|
-
},
|
|
1591
|
-
svsui: {
|
|
1592
|
-
// id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
1593
|
-
id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
|
|
1594
|
-
rewardPoolId: (
|
|
1595
|
-
// '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
1596
|
-
"0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
|
|
1597
|
-
)
|
|
1671
|
+
});
|
|
1672
|
+
}
|
|
1673
|
+
async queryGetDynamicFields(input) {
|
|
1674
|
+
return this.queryClient.fetchQuery({
|
|
1675
|
+
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1676
|
+
queryFn: async () => {
|
|
1677
|
+
return await callWithRateLimit(
|
|
1678
|
+
this.tokenBucket,
|
|
1679
|
+
() => this.client.getDynamicFields(input)
|
|
1680
|
+
);
|
|
1598
1681
|
}
|
|
1599
|
-
}
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
treasury: "0xe8c112c09b88158dc6c8e23d1fbae5b3c7136cdee54b7dafc08e65db28c4a5bc",
|
|
1633
|
-
config: "0xe0a2ff281e73c1d53cfa85807080f87e833e4f1a7f93dcf8800b3865269a76b9"
|
|
1634
|
-
},
|
|
1635
|
-
loyaltyProgram: {
|
|
1636
|
-
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1637
|
-
object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1638
|
-
rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
|
|
1639
|
-
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
1640
|
-
},
|
|
1641
|
-
scoin: {
|
|
1642
|
-
id: "0xad2ca2aa5089df94bb2d444d5eb3520378c2f2dfb3a0bd2a2c994145ac4b0a53",
|
|
1643
|
-
coins: {
|
|
1644
|
-
ssui: {
|
|
1645
|
-
coinType: "0xfac769100bccc0caebcf4f4e2d00ac2f8883f07f724be28940df90605f5e7e9a::scallop_sui::SCALLOP_SUI",
|
|
1646
|
-
treasury: "0x9cb4551b36c17d37e19d700147fa819ea1c487ff8bcf18374de2cceb2e9d4845"
|
|
1647
|
-
},
|
|
1648
|
-
scetus: {
|
|
1649
|
-
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
1650
|
-
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
1651
|
-
},
|
|
1652
|
-
ssca: {
|
|
1653
|
-
coinType: "0x0a9d3c6c9af9f6e8def82921541bcbd17f73ed31bed3adcb684f2a4c267e42f0::scallop_sca::SCALLOP_SCA",
|
|
1654
|
-
treasury: "0xe818636d1d6c46d6ea1a2dce9d94696d7cbc18ce27451b603eeaa47aba8d75e0"
|
|
1655
|
-
},
|
|
1656
|
-
swusdc: {
|
|
1657
|
-
coinType: "0xaedc3ab75db8680b81a755015fa90124d217be93457b893c05bac033817defaf::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
1658
|
-
treasury: "0xfc6971648f867f7fd6928d1b873af71577e2eaf2c7543ef8bc82c431d833ae78"
|
|
1659
|
-
},
|
|
1660
|
-
swusdt: {
|
|
1661
|
-
coinType: "0xbf02fc87ddc104b342ad8414c85ceadf5b0c823c055a06fb0ed776272c01a52a::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
1662
|
-
treasury: "0xb9593e2c3a0ba796ee815012b75ae46468ea78cda0188b9ac6816efe65503521"
|
|
1663
|
-
},
|
|
1664
|
-
sweth: {
|
|
1665
|
-
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
1666
|
-
treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
|
|
1667
|
-
},
|
|
1668
|
-
safsui: {
|
|
1669
|
-
coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
|
|
1670
|
-
treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
|
|
1671
|
-
},
|
|
1672
|
-
shasui: {
|
|
1673
|
-
coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
1674
|
-
treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
|
|
1675
|
-
},
|
|
1676
|
-
svsui: {
|
|
1677
|
-
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
1678
|
-
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6\u0192"
|
|
1682
|
+
});
|
|
1683
|
+
}
|
|
1684
|
+
async queryGetDynamicFieldObject(input) {
|
|
1685
|
+
return this.queryClient.fetchQuery({
|
|
1686
|
+
queryKey: queryKeys.rpc.getDynamicFieldObject(input),
|
|
1687
|
+
queryFn: async () => {
|
|
1688
|
+
return await callWithRateLimit(
|
|
1689
|
+
this.tokenBucket,
|
|
1690
|
+
() => this.client.getDynamicFieldObject(input)
|
|
1691
|
+
);
|
|
1692
|
+
}
|
|
1693
|
+
});
|
|
1694
|
+
}
|
|
1695
|
+
async queryGetAllCoinBalances(owner) {
|
|
1696
|
+
return this.queryClient.fetchQuery({
|
|
1697
|
+
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1698
|
+
queryFn: async () => {
|
|
1699
|
+
const allBalances = await callWithRateLimit(
|
|
1700
|
+
this.tokenBucket,
|
|
1701
|
+
() => this.client.getAllBalances({ owner })
|
|
1702
|
+
);
|
|
1703
|
+
if (!allBalances)
|
|
1704
|
+
return {};
|
|
1705
|
+
const balances = allBalances.reduce(
|
|
1706
|
+
(acc, coinBalance) => {
|
|
1707
|
+
if (coinBalance.totalBalance !== "0") {
|
|
1708
|
+
acc[(0, import_sui_kit.normalizeStructTag)(coinBalance.coinType)] = coinBalance.totalBalance;
|
|
1709
|
+
}
|
|
1710
|
+
return acc;
|
|
1711
|
+
},
|
|
1712
|
+
{}
|
|
1713
|
+
);
|
|
1714
|
+
return balances;
|
|
1679
1715
|
}
|
|
1680
|
-
}
|
|
1716
|
+
});
|
|
1717
|
+
}
|
|
1718
|
+
async queryGetCoinBalance(input) {
|
|
1719
|
+
if (!input.coinType)
|
|
1720
|
+
return "0";
|
|
1721
|
+
return (await this.queryGetAllCoinBalances(input.owner) || {})[(0, import_sui_kit.normalizeStructTag)(input.coinType)] ?? "0";
|
|
1681
1722
|
}
|
|
1682
1723
|
};
|
|
1683
1724
|
|
|
1684
1725
|
// src/models/scallopAddress.ts
|
|
1726
|
+
var import_axios = __toESM(require("axios"));
|
|
1685
1727
|
var EMPTY_ADDRESSES = {
|
|
1686
1728
|
core: {
|
|
1687
1729
|
version: "",
|
|
@@ -2391,6 +2433,89 @@ var getSupplyLimit = async (utils, poolName) => {
|
|
|
2391
2433
|
return parsedData.data.fields.value;
|
|
2392
2434
|
};
|
|
2393
2435
|
|
|
2436
|
+
// src/queries/isolatedAsset.ts
|
|
2437
|
+
var import_zod2 = require("zod");
|
|
2438
|
+
var isolatedAssetZod = import_zod2.z.object({
|
|
2439
|
+
dataType: import_zod2.z.string(),
|
|
2440
|
+
type: import_zod2.z.string(),
|
|
2441
|
+
hasPublicTransfer: import_zod2.z.boolean(),
|
|
2442
|
+
fields: import_zod2.z.object({
|
|
2443
|
+
id: import_zod2.z.object({
|
|
2444
|
+
id: import_zod2.z.string()
|
|
2445
|
+
}),
|
|
2446
|
+
name: import_zod2.z.object({
|
|
2447
|
+
type: import_zod2.z.string()
|
|
2448
|
+
}),
|
|
2449
|
+
value: import_zod2.z.boolean()
|
|
2450
|
+
})
|
|
2451
|
+
});
|
|
2452
|
+
var getIsolatedAssets = async (address) => {
|
|
2453
|
+
try {
|
|
2454
|
+
const marketObject = address.get("core.market");
|
|
2455
|
+
const protocolObject = address.get("core.packages.protocol.id");
|
|
2456
|
+
const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
|
|
2457
|
+
const isolatedAssets = [];
|
|
2458
|
+
if (!marketObject)
|
|
2459
|
+
return isolatedAssets;
|
|
2460
|
+
let hasNextPage = false;
|
|
2461
|
+
let nextCursor = null;
|
|
2462
|
+
const isIsolatedDynamicField = (dynamicField) => {
|
|
2463
|
+
return dynamicField.name.type === ISOLATED_ASSET_KEY;
|
|
2464
|
+
};
|
|
2465
|
+
do {
|
|
2466
|
+
const response = await address.cache.queryGetDynamicFields({
|
|
2467
|
+
parentId: marketObject,
|
|
2468
|
+
cursor: nextCursor,
|
|
2469
|
+
limit: 10
|
|
2470
|
+
});
|
|
2471
|
+
if (!response)
|
|
2472
|
+
break;
|
|
2473
|
+
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
2474
|
+
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
2475
|
+
if (response && response.hasNextPage && response.nextCursor) {
|
|
2476
|
+
hasNextPage = true;
|
|
2477
|
+
nextCursor = response.nextCursor;
|
|
2478
|
+
} else {
|
|
2479
|
+
hasNextPage = false;
|
|
2480
|
+
}
|
|
2481
|
+
} while (hasNextPage);
|
|
2482
|
+
return isolatedAssets;
|
|
2483
|
+
} catch (e) {
|
|
2484
|
+
console.error(e);
|
|
2485
|
+
return [];
|
|
2486
|
+
}
|
|
2487
|
+
};
|
|
2488
|
+
var isIsolatedAsset = async (utils, coinName) => {
|
|
2489
|
+
try {
|
|
2490
|
+
const marketObject = utils.address.get("core.market");
|
|
2491
|
+
const protocolObject = utils.address.get("core.packages.protocol.id");
|
|
2492
|
+
const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
|
|
2493
|
+
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
2494
|
+
"getDynamicFields",
|
|
2495
|
+
marketObject
|
|
2496
|
+
]);
|
|
2497
|
+
if (cachedData) {
|
|
2498
|
+
const coinType2 = utils.parseCoinType(coinName);
|
|
2499
|
+
return cachedData.includes(coinType2);
|
|
2500
|
+
}
|
|
2501
|
+
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
2502
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2503
|
+
parentId: marketObject,
|
|
2504
|
+
name: {
|
|
2505
|
+
type: ISOLATED_ASSET_KEY,
|
|
2506
|
+
value: coinType
|
|
2507
|
+
}
|
|
2508
|
+
});
|
|
2509
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2510
|
+
if (!parsedData.success)
|
|
2511
|
+
return false;
|
|
2512
|
+
return parsedData.data.fields.value;
|
|
2513
|
+
} catch (e) {
|
|
2514
|
+
console.error(e);
|
|
2515
|
+
return false;
|
|
2516
|
+
}
|
|
2517
|
+
};
|
|
2518
|
+
|
|
2394
2519
|
// src/queries/coreQuery.ts
|
|
2395
2520
|
var queryMarket = async (query, indexer = false) => {
|
|
2396
2521
|
const coinPrices = await query.utils.getCoinPrices();
|
|
@@ -2475,8 +2600,8 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2475
2600
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
2476
2601
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2477
2602
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2478
|
-
|
|
2479
|
-
isIsolated: false,
|
|
2603
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2604
|
+
// isIsolated: false,
|
|
2480
2605
|
maxSupplyCoin,
|
|
2481
2606
|
...calculatedMarketPoolData
|
|
2482
2607
|
};
|
|
@@ -2515,6 +2640,7 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2515
2640
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2516
2641
|
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2517
2642
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2643
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2518
2644
|
...calculatedMarketCollateralData
|
|
2519
2645
|
};
|
|
2520
2646
|
}
|
|
@@ -2562,79 +2688,73 @@ var getMarketPools = async (query, poolCoinNames = [...SUPPORT_POOLS], indexer =
|
|
|
2562
2688
|
return marketPools;
|
|
2563
2689
|
};
|
|
2564
2690
|
var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, coinPrice) => {
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
name: {
|
|
2591
|
-
type: "0x1::type_name::TypeName",
|
|
2592
|
-
value: {
|
|
2593
|
-
name: coinType.substring(2)
|
|
2594
|
-
}
|
|
2691
|
+
try {
|
|
2692
|
+
coinPrice = coinPrice || (await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
|
|
2693
|
+
if (indexer) {
|
|
2694
|
+
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
2695
|
+
marketPoolIndexer.coinPrice = coinPrice || marketPoolIndexer.coinPrice;
|
|
2696
|
+
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
2697
|
+
marketPoolIndexer.coinName
|
|
2698
|
+
);
|
|
2699
|
+
return marketPoolIndexer;
|
|
2700
|
+
}
|
|
2701
|
+
const marketId = query.address.get("core.market");
|
|
2702
|
+
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
2703
|
+
showContent: true
|
|
2704
|
+
}))?.data;
|
|
2705
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
2706
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
2707
|
+
const fields = marketObject.content.fields;
|
|
2708
|
+
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
2709
|
+
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
2710
|
+
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2711
|
+
parentId: balanceSheetParentId,
|
|
2712
|
+
name: {
|
|
2713
|
+
type: "0x1::type_name::TypeName",
|
|
2714
|
+
value: {
|
|
2715
|
+
name: coinType.substring(2)
|
|
2595
2716
|
}
|
|
2596
|
-
});
|
|
2597
|
-
if (!balanceSheetDynamicFieldObjectResponse)
|
|
2598
|
-
return void 0;
|
|
2599
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse.data;
|
|
2600
|
-
if (balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content) {
|
|
2601
|
-
const dynamicFields = balanceSheetDynamicFieldObject.content.fields;
|
|
2602
|
-
balanceSheet = dynamicFields.value.fields;
|
|
2603
2717
|
}
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2718
|
+
});
|
|
2719
|
+
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
2720
|
+
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
2721
|
+
throw new Error(
|
|
2722
|
+
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
2723
|
+
);
|
|
2724
|
+
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
2725
|
+
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
2726
|
+
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2727
|
+
parentId: borrowIndexParentId,
|
|
2728
|
+
name: {
|
|
2729
|
+
type: "0x1::type_name::TypeName",
|
|
2730
|
+
value: {
|
|
2731
|
+
name: coinType.substring(2)
|
|
2612
2732
|
}
|
|
2613
|
-
});
|
|
2614
|
-
if (!borrowIndexDynamicFieldObjectResponse)
|
|
2615
|
-
return void 0;
|
|
2616
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse.data;
|
|
2617
|
-
if (borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content) {
|
|
2618
|
-
const dynamicFields = borrowIndexDynamicFieldObject.content.fields;
|
|
2619
|
-
borrowIndex = dynamicFields.value.fields;
|
|
2620
2733
|
}
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2734
|
+
});
|
|
2735
|
+
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
2736
|
+
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
2737
|
+
throw new Error(
|
|
2738
|
+
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
2739
|
+
);
|
|
2740
|
+
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
2741
|
+
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
2742
|
+
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2743
|
+
parentId: interestModelParentId,
|
|
2744
|
+
name: {
|
|
2745
|
+
type: "0x1::type_name::TypeName",
|
|
2746
|
+
value: {
|
|
2747
|
+
name: coinType.substring(2)
|
|
2629
2748
|
}
|
|
2630
|
-
});
|
|
2631
|
-
if (!interestModelDynamicFieldObjectResponse)
|
|
2632
|
-
return void 0;
|
|
2633
|
-
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse.data;
|
|
2634
|
-
if (interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content) {
|
|
2635
|
-
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
2636
|
-
interestModel = dynamicFields.value.fields;
|
|
2637
2749
|
}
|
|
2750
|
+
});
|
|
2751
|
+
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse?.data;
|
|
2752
|
+
if (!(interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content))
|
|
2753
|
+
throw new Error(
|
|
2754
|
+
`Failed to fetch interestModelDynamicFieldObject for ${poolCoinName}: ${interestModelDynamicFieldObject}`
|
|
2755
|
+
);
|
|
2756
|
+
const interestModel = interestModelDynamicFieldObject.content.fields.value.fields;
|
|
2757
|
+
const getBorrowFee = async () => {
|
|
2638
2758
|
const borrowFeeDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2639
2759
|
parentId: marketId,
|
|
2640
2760
|
name: {
|
|
@@ -2646,16 +2766,11 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2646
2766
|
}
|
|
2647
2767
|
}
|
|
2648
2768
|
});
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
borrowFeeRate = dynamicFields.value.fields;
|
|
2655
|
-
}
|
|
2656
|
-
}
|
|
2657
|
-
}
|
|
2658
|
-
if (balanceSheet && borrowIndex && interestModel && (USE_TEST_ADDRESS || borrowFeeRate)) {
|
|
2769
|
+
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
2770
|
+
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
2771
|
+
return { value: "0" };
|
|
2772
|
+
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
2773
|
+
};
|
|
2659
2774
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
2660
2775
|
type: interestModel.type.fields,
|
|
2661
2776
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -2669,7 +2784,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2669
2784
|
reserve: balanceSheet.revenue,
|
|
2670
2785
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
2671
2786
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
2672
|
-
borrowFeeRate:
|
|
2787
|
+
borrowFeeRate: await getBorrowFee(),
|
|
2673
2788
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
2674
2789
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
2675
2790
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -2685,7 +2800,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2685
2800
|
const maxSupplyCoin = (0, import_bignumber2.default)(
|
|
2686
2801
|
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2687
2802
|
).shiftedBy(-coinDecimal).toNumber();
|
|
2688
|
-
|
|
2803
|
+
return {
|
|
2689
2804
|
coinName: poolCoinName,
|
|
2690
2805
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
2691
2806
|
coinType: query.utils.parseCoinType(poolCoinName),
|
|
@@ -2704,12 +2819,13 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2704
2819
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2705
2820
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2706
2821
|
maxSupplyCoin,
|
|
2707
|
-
|
|
2708
|
-
isIsolated: false,
|
|
2822
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2823
|
+
// isIsolated: false,
|
|
2709
2824
|
...calculatedMarketPoolData
|
|
2710
2825
|
};
|
|
2826
|
+
} catch (e) {
|
|
2827
|
+
console.error(e);
|
|
2711
2828
|
}
|
|
2712
|
-
return marketPool;
|
|
2713
2829
|
};
|
|
2714
2830
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
2715
2831
|
const marketId = query.address.get("core.market");
|
|
@@ -2758,85 +2874,76 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
2758
2874
|
);
|
|
2759
2875
|
return marketCollateralIndexer;
|
|
2760
2876
|
}
|
|
2761
|
-
let marketCollateral;
|
|
2762
|
-
let riskModel;
|
|
2763
|
-
let collateralStat;
|
|
2764
2877
|
const marketId = query.address.get("core.market");
|
|
2765
2878
|
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
2766
2879
|
showContent: true
|
|
2767
2880
|
}))?.data;
|
|
2768
|
-
if (marketObject)
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
}
|
|
2780
|
-
}
|
|
2781
|
-
});
|
|
2782
|
-
if (!riskModelDynamicFieldObjectResponse)
|
|
2783
|
-
return void 0;
|
|
2784
|
-
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse.data;
|
|
2785
|
-
if (riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content) {
|
|
2786
|
-
const dynamicFields = riskModelDynamicFieldObject.content.fields;
|
|
2787
|
-
riskModel = dynamicFields.value.fields;
|
|
2881
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
2882
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
2883
|
+
const fields = marketObject.content.fields;
|
|
2884
|
+
const coinType = query.utils.parseCoinType(collateralCoinName);
|
|
2885
|
+
const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
|
|
2886
|
+
const riskModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2887
|
+
parentId: riskModelParentId,
|
|
2888
|
+
name: {
|
|
2889
|
+
type: "0x1::type_name::TypeName",
|
|
2890
|
+
value: {
|
|
2891
|
+
name: coinType.substring(2)
|
|
2788
2892
|
}
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
collateralStat = dynamicFields.value.fields;
|
|
2893
|
+
}
|
|
2894
|
+
});
|
|
2895
|
+
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse?.data;
|
|
2896
|
+
if (!(riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content))
|
|
2897
|
+
throw new Error(
|
|
2898
|
+
`Failed to fetch riskModelDynamicFieldObject for ${riskModelDynamicFieldObjectResponse?.error?.code.toString()}: `
|
|
2899
|
+
);
|
|
2900
|
+
const riskModel = riskModelDynamicFieldObject.content.fields.value.fields;
|
|
2901
|
+
const collateralStatParentId = fields.collateral_stats.fields.table.fields.id.id;
|
|
2902
|
+
const collateralStatDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2903
|
+
parentId: collateralStatParentId,
|
|
2904
|
+
name: {
|
|
2905
|
+
type: "0x1::type_name::TypeName",
|
|
2906
|
+
value: {
|
|
2907
|
+
name: coinType.substring(2)
|
|
2805
2908
|
}
|
|
2806
2909
|
}
|
|
2807
|
-
}
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
2813
|
-
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
2814
|
-
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
2815
|
-
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
2816
|
-
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
2817
|
-
totalCollateralAmount: collateralStat.amount
|
|
2818
|
-
});
|
|
2819
|
-
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2820
|
-
query.utils,
|
|
2821
|
-
parsedMarketCollateralData
|
|
2910
|
+
});
|
|
2911
|
+
const collateralStatDynamicFieldObject = collateralStatDynamicFieldObjectResponse?.data;
|
|
2912
|
+
if (!(collateralStatDynamicFieldObject && collateralStatDynamicFieldObject.content && "fields" in collateralStatDynamicFieldObject.content))
|
|
2913
|
+
throw new Error(
|
|
2914
|
+
`Failed to fetch collateralStatDynamicFieldObject for ${collateralCoinName}: ${collateralStatDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
2822
2915
|
);
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2916
|
+
const collateralStat = collateralStatDynamicFieldObject.content.fields.value.fields;
|
|
2917
|
+
const parsedMarketCollateralData = parseOriginMarketCollateralData({
|
|
2918
|
+
type: riskModel.type.fields,
|
|
2919
|
+
collateralFactor: riskModel.collateral_factor.fields,
|
|
2920
|
+
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
2921
|
+
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
2922
|
+
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
2923
|
+
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
2924
|
+
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
2925
|
+
totalCollateralAmount: collateralStat.amount
|
|
2926
|
+
});
|
|
2927
|
+
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2928
|
+
query.utils,
|
|
2929
|
+
parsedMarketCollateralData
|
|
2930
|
+
);
|
|
2931
|
+
return {
|
|
2932
|
+
coinName: collateralCoinName,
|
|
2933
|
+
symbol: query.utils.parseSymbol(collateralCoinName),
|
|
2934
|
+
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
2935
|
+
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
2936
|
+
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
2937
|
+
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
2938
|
+
coinPrice: coinPrice ?? 0,
|
|
2939
|
+
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
2940
|
+
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
2941
|
+
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2942
|
+
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2943
|
+
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2944
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2945
|
+
...calculatedMarketCollateralData
|
|
2946
|
+
};
|
|
2840
2947
|
};
|
|
2841
2948
|
var getObligations = async ({
|
|
2842
2949
|
address
|
|
@@ -3065,7 +3172,7 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
|
|
|
3065
3172
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
3066
3173
|
marketPool = marketPool || await query.getMarketPool(coinName, indexer);
|
|
3067
3174
|
if (!marketPool) {
|
|
3068
|
-
throw new Error(
|
|
3175
|
+
throw new Error(`Failed to fetch marketPool for ${marketCoinName}`);
|
|
3069
3176
|
}
|
|
3070
3177
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
3071
3178
|
const rewardPoolId = query.address.get(
|
|
@@ -3793,12 +3900,8 @@ var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
|
3793
3900
|
};
|
|
3794
3901
|
var getObligationAccount = async (query, obligationId, ownerAddress, indexer = false, market, coinPrices, coinAmounts) => {
|
|
3795
3902
|
market = market || await query.queryMarket(indexer);
|
|
3796
|
-
const
|
|
3797
|
-
.../* @__PURE__ */ new Set([
|
|
3798
|
-
...Object.values(market.collaterals).map(
|
|
3799
|
-
(collateral) => collateral.coinName
|
|
3800
|
-
)
|
|
3801
|
-
])
|
|
3903
|
+
const poolAssetCoinNames = [
|
|
3904
|
+
.../* @__PURE__ */ new Set([...Object.values(market.pools).map((pool) => pool.coinName)])
|
|
3802
3905
|
];
|
|
3803
3906
|
const obligationQuery = await query.queryObligation(obligationId);
|
|
3804
3907
|
const borrowIncentivePools = await query.getBorrowIncentivePools(
|
|
@@ -3806,8 +3909,9 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3806
3909
|
indexer
|
|
3807
3910
|
);
|
|
3808
3911
|
const borrowIncentiveAccounts = await query.getBorrowIncentiveAccounts(obligationId);
|
|
3809
|
-
coinPrices = coinPrices || await query.utils.getCoinPrices(
|
|
3810
|
-
coinAmounts = coinAmounts || await query.getCoinAmounts(
|
|
3912
|
+
coinPrices = coinPrices || await query.utils.getCoinPrices(poolAssetCoinNames);
|
|
3913
|
+
coinAmounts = coinAmounts || await query.getCoinAmounts(poolAssetCoinNames, ownerAddress);
|
|
3914
|
+
console.log(coinPrices);
|
|
3811
3915
|
const collaterals = {};
|
|
3812
3916
|
const debts = {};
|
|
3813
3917
|
const borrowIncentives = {};
|
|
@@ -3819,7 +3923,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3819
3923
|
let totalRewardedPools = 0;
|
|
3820
3924
|
let totalBorrowedValue = (0, import_bignumber4.default)(0);
|
|
3821
3925
|
let totalBorrowedValueWithWeight = (0, import_bignumber4.default)(0);
|
|
3822
|
-
for (const assetCoinName of
|
|
3926
|
+
for (const assetCoinName of poolAssetCoinNames) {
|
|
3823
3927
|
const collateral = obligationQuery?.collaterals.find((collateral2) => {
|
|
3824
3928
|
const collateralCoinName = query.utils.parseCoinNameFromType(
|
|
3825
3929
|
collateral2.type.name
|
|
@@ -4124,7 +4228,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
|
|
|
4124
4228
|
var import_bignumber5 = __toESM(require("bignumber.js"));
|
|
4125
4229
|
var import_sui_kit3 = require("@scallop-io/sui-kit");
|
|
4126
4230
|
var import_bcs = require("@mysten/sui/bcs");
|
|
4127
|
-
var
|
|
4231
|
+
var import_zod3 = require("zod");
|
|
4128
4232
|
var import_assert = __toESM(require("assert"));
|
|
4129
4233
|
var getVescaKeys = async (utils, ownerAddress) => {
|
|
4130
4234
|
const owner = ownerAddress || utils.suiKit.currentAddress();
|
|
@@ -4173,10 +4277,10 @@ var getVeScas = async ({
|
|
|
4173
4277
|
}
|
|
4174
4278
|
return result;
|
|
4175
4279
|
};
|
|
4176
|
-
var SuiObjectRefZod =
|
|
4177
|
-
objectId:
|
|
4178
|
-
digest:
|
|
4179
|
-
version:
|
|
4280
|
+
var SuiObjectRefZod = import_zod3.z.object({
|
|
4281
|
+
objectId: import_zod3.z.string(),
|
|
4282
|
+
digest: import_zod3.z.string(),
|
|
4283
|
+
version: import_zod3.z.string()
|
|
4180
4284
|
});
|
|
4181
4285
|
var getVeSca = async (utils, veScaKey, ownerAddress) => {
|
|
4182
4286
|
const tableId = utils.address.get(`vesca.tableId`);
|
|
@@ -4310,16 +4414,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
|
|
|
4310
4414
|
|
|
4311
4415
|
// src/queries/loyaltyProgramQuery.ts
|
|
4312
4416
|
var import_bignumber6 = __toESM(require("bignumber.js"));
|
|
4313
|
-
var
|
|
4314
|
-
var rewardPoolFieldsZod =
|
|
4315
|
-
balance:
|
|
4316
|
-
enable_claim:
|
|
4417
|
+
var import_zod4 = require("zod");
|
|
4418
|
+
var rewardPoolFieldsZod = import_zod4.z.object({
|
|
4419
|
+
balance: import_zod4.z.string(),
|
|
4420
|
+
enable_claim: import_zod4.z.boolean()
|
|
4317
4421
|
}).transform((value) => ({
|
|
4318
4422
|
totalPoolReward: (0, import_bignumber6.default)(value.balance).shiftedBy(-9).toNumber(),
|
|
4319
4423
|
isClaimEnabled: value.enable_claim
|
|
4320
4424
|
}));
|
|
4321
|
-
var userRewardFieldsZod =
|
|
4322
|
-
value:
|
|
4425
|
+
var userRewardFieldsZod = import_zod4.z.object({
|
|
4426
|
+
value: import_zod4.z.string()
|
|
4323
4427
|
}).transform((value) => (0, import_bignumber6.default)(value.value).shiftedBy(-9).toNumber());
|
|
4324
4428
|
var getLoyaltyProgramInformations = async (query, veScaKey) => {
|
|
4325
4429
|
const rewardPool = query.address.get("loyaltyProgram.rewardPool");
|
|
@@ -4430,10 +4534,10 @@ var ScallopUtils = class {
|
|
|
4430
4534
|
* @param address - ScallopAddress instance.
|
|
4431
4535
|
*/
|
|
4432
4536
|
async init(force = false, address) {
|
|
4433
|
-
if (
|
|
4434
|
-
await this.address.read();
|
|
4435
|
-
} else {
|
|
4537
|
+
if (address && !this.address)
|
|
4436
4538
|
this.address = address;
|
|
4539
|
+
if (force || !this.address.getAddresses()) {
|
|
4540
|
+
await this.address.read();
|
|
4437
4541
|
}
|
|
4438
4542
|
}
|
|
4439
4543
|
/**
|
|
@@ -4733,30 +4837,38 @@ var ScallopUtils = class {
|
|
|
4733
4837
|
const priceId = this.address.get(
|
|
4734
4838
|
`core.coins.${coinName}.oracle.pyth.feed`
|
|
4735
4839
|
);
|
|
4736
|
-
|
|
4840
|
+
if (priceId) {
|
|
4841
|
+
acc[coinName] = priceId;
|
|
4842
|
+
}
|
|
4737
4843
|
return acc;
|
|
4738
4844
|
},
|
|
4739
4845
|
{}
|
|
4740
4846
|
);
|
|
4741
4847
|
await Promise.allSettled(
|
|
4742
|
-
Object.entries(priceIds).map(async ([coinName, priceId]) => {
|
|
4848
|
+
Object.entries(priceIds).filter(([_, priceId]) => !!priceId).map(async ([coinName, priceId]) => {
|
|
4743
4849
|
const pythConnection = new import_pyth_sui_js.SuiPriceServiceConnection(endpoint);
|
|
4744
4850
|
try {
|
|
4745
4851
|
const feed = await this.cache.queryClient.fetchQuery({
|
|
4746
|
-
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4852
|
+
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4853
|
+
priceId,
|
|
4854
|
+
endpoint
|
|
4855
|
+
),
|
|
4747
4856
|
queryFn: async () => {
|
|
4748
4857
|
return await pythConnection.getLatestPriceFeeds([priceId]) ?? [];
|
|
4749
4858
|
}
|
|
4750
4859
|
});
|
|
4751
4860
|
if (feed[0]) {
|
|
4752
|
-
const data = parseDataFromPythPriceFeed(
|
|
4861
|
+
const data = parseDataFromPythPriceFeed(
|
|
4862
|
+
feed[0],
|
|
4863
|
+
this.address
|
|
4864
|
+
);
|
|
4753
4865
|
this._priceMap.set(coinName, {
|
|
4754
4866
|
price: data.price,
|
|
4755
4867
|
publishTime: data.publishTime
|
|
4756
4868
|
});
|
|
4757
4869
|
coinPrices[coinName] = data.price;
|
|
4870
|
+
failedRequests.delete(coinName);
|
|
4758
4871
|
}
|
|
4759
|
-
failedRequests.delete(coinName);
|
|
4760
4872
|
} catch (e) {
|
|
4761
4873
|
console.warn(
|
|
4762
4874
|
`Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
|
|
@@ -6702,88 +6814,6 @@ var getSCoinSwapRate = async (query, fromSCoin, toSCoin, underlyingCoinPrice) =>
|
|
|
6702
6814
|
|
|
6703
6815
|
// src/models/scallopQuery.ts
|
|
6704
6816
|
var import_utils23 = require("@mysten/sui/utils");
|
|
6705
|
-
|
|
6706
|
-
// src/queries/isolatedAsset.ts
|
|
6707
|
-
var import_zod4 = require("zod");
|
|
6708
|
-
var isolatedAssetZod = import_zod4.z.object({
|
|
6709
|
-
dataType: import_zod4.z.string(),
|
|
6710
|
-
type: import_zod4.z.string(),
|
|
6711
|
-
hasPublicTransfer: import_zod4.z.boolean(),
|
|
6712
|
-
fields: import_zod4.z.object({
|
|
6713
|
-
id: import_zod4.z.object({
|
|
6714
|
-
id: import_zod4.z.string()
|
|
6715
|
-
}),
|
|
6716
|
-
name: import_zod4.z.object({
|
|
6717
|
-
type: import_zod4.z.string()
|
|
6718
|
-
}),
|
|
6719
|
-
value: import_zod4.z.boolean()
|
|
6720
|
-
})
|
|
6721
|
-
});
|
|
6722
|
-
var ISOLATED_ASSET_KEY = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::IsolatedAssetKey";
|
|
6723
|
-
var getIsolatedAssets = async (address) => {
|
|
6724
|
-
try {
|
|
6725
|
-
const marketObject = address.get("core.market");
|
|
6726
|
-
const isolatedAssets = [];
|
|
6727
|
-
if (!marketObject)
|
|
6728
|
-
return isolatedAssets;
|
|
6729
|
-
let hasNextPage = false;
|
|
6730
|
-
let nextCursor = null;
|
|
6731
|
-
const isIsolatedDynamicField = (dynamicField) => {
|
|
6732
|
-
return dynamicField.name.type === ISOLATED_ASSET_KEY;
|
|
6733
|
-
};
|
|
6734
|
-
do {
|
|
6735
|
-
const response = await address.cache.queryGetDynamicFields({
|
|
6736
|
-
parentId: marketObject,
|
|
6737
|
-
cursor: nextCursor,
|
|
6738
|
-
limit: 10
|
|
6739
|
-
});
|
|
6740
|
-
if (!response)
|
|
6741
|
-
break;
|
|
6742
|
-
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
6743
|
-
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
6744
|
-
if (response && response.hasNextPage && response.nextCursor) {
|
|
6745
|
-
hasNextPage = true;
|
|
6746
|
-
nextCursor = response.nextCursor;
|
|
6747
|
-
} else {
|
|
6748
|
-
hasNextPage = false;
|
|
6749
|
-
}
|
|
6750
|
-
} while (hasNextPage);
|
|
6751
|
-
return isolatedAssets;
|
|
6752
|
-
} catch (e) {
|
|
6753
|
-
console.error(e);
|
|
6754
|
-
return [];
|
|
6755
|
-
}
|
|
6756
|
-
};
|
|
6757
|
-
var isIsolatedAsset = async (utils, coinName) => {
|
|
6758
|
-
try {
|
|
6759
|
-
const marketObject = utils.address.get("core.market");
|
|
6760
|
-
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
6761
|
-
"getDynamicFields",
|
|
6762
|
-
marketObject
|
|
6763
|
-
]);
|
|
6764
|
-
if (cachedData) {
|
|
6765
|
-
const coinType2 = utils.parseCoinType(coinName);
|
|
6766
|
-
return cachedData.includes(coinType2);
|
|
6767
|
-
}
|
|
6768
|
-
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
6769
|
-
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
6770
|
-
parentId: marketObject,
|
|
6771
|
-
name: {
|
|
6772
|
-
type: ISOLATED_ASSET_KEY,
|
|
6773
|
-
value: coinType
|
|
6774
|
-
}
|
|
6775
|
-
});
|
|
6776
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
6777
|
-
if (!parsedData.success)
|
|
6778
|
-
return false;
|
|
6779
|
-
return parsedData.data.fields.value;
|
|
6780
|
-
} catch (e) {
|
|
6781
|
-
console.error(e);
|
|
6782
|
-
return false;
|
|
6783
|
-
}
|
|
6784
|
-
};
|
|
6785
|
-
|
|
6786
|
-
// src/models/scallopQuery.ts
|
|
6787
6817
|
var ScallopQuery = class {
|
|
6788
6818
|
constructor(params, instance) {
|
|
6789
6819
|
this.params = params;
|
|
@@ -6853,11 +6883,12 @@ var ScallopQuery = class {
|
|
|
6853
6883
|
* @param address - ScallopAddress instance.
|
|
6854
6884
|
*/
|
|
6855
6885
|
async init(force = false, address) {
|
|
6856
|
-
if (
|
|
6857
|
-
await this.address.read();
|
|
6858
|
-
} else {
|
|
6886
|
+
if (address && !this.address) {
|
|
6859
6887
|
this.address = address;
|
|
6860
6888
|
}
|
|
6889
|
+
if (force || !this.address.getAddresses()) {
|
|
6890
|
+
await this.address.read();
|
|
6891
|
+
}
|
|
6861
6892
|
await this.utils.init(force, this.address);
|
|
6862
6893
|
}
|
|
6863
6894
|
/* ==================== Core Query Methods ==================== */
|
|
@@ -7365,10 +7396,10 @@ var ScallopBuilder = class {
|
|
|
7365
7396
|
* @param address - ScallopAddress instance.
|
|
7366
7397
|
*/
|
|
7367
7398
|
async init(force = false, address) {
|
|
7368
|
-
if (
|
|
7369
|
-
await this.address.read();
|
|
7370
|
-
} else {
|
|
7399
|
+
if (address && !this.address)
|
|
7371
7400
|
this.address = address;
|
|
7401
|
+
if (force || !this.address.getAddresses()) {
|
|
7402
|
+
await this.address.read();
|
|
7372
7403
|
}
|
|
7373
7404
|
await this.query.init(force, this.address);
|
|
7374
7405
|
await this.utils.init(force, this.address);
|
|
@@ -8283,6 +8314,7 @@ var Scallop = class {
|
|
|
8283
8314
|
ScallopIndexer,
|
|
8284
8315
|
ScallopQuery,
|
|
8285
8316
|
ScallopUtils,
|
|
8317
|
+
TEST_ADDRESSES,
|
|
8286
8318
|
UNLOCK_ROUND_DURATION,
|
|
8287
8319
|
USE_TEST_ADDRESS,
|
|
8288
8320
|
assetCoins,
|