@scallop-io/sui-scallop-sdk 1.3.3-alpha.1 → 1.3.3

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/index.js CHANGED
@@ -62,7 +62,6 @@ __export(src_exports, {
62
62
  ScallopIndexer: () => ScallopIndexer,
63
63
  ScallopQuery: () => ScallopQuery,
64
64
  ScallopUtils: () => ScallopUtils,
65
- TEST_ADDRESSES: () => TEST_ADDRESSES,
66
65
  UNLOCK_ROUND_DURATION: () => UNLOCK_ROUND_DURATION,
67
66
  USE_TEST_ADDRESS: () => USE_TEST_ADDRESS,
68
67
  assetCoins: () => assetCoins,
@@ -337,18 +336,11 @@ var voloCoinIds = {
337
336
  var sCoinIds = {
338
337
  susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
339
338
  ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
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',
339
+ ssui: "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
343
340
  scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
344
341
  ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
345
- // TODO: Change this to the correct value on production release
346
- swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
347
- // '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
348
- swusdt: (
349
- // '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
350
- "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT"
351
- ),
342
+ swusdc: "0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
343
+ swusdt: "0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
352
344
  sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
353
345
  safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
354
346
  shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
@@ -449,10 +441,10 @@ var queryKeys = {
449
441
  ]
450
442
  },
451
443
  oracle: {
452
- getPythLatestPriceFeed: (pythPriceId, endpoint) => [
444
+ getPythLatestPriceFeed: (pythPriceId) => [
453
445
  "oracle",
454
446
  "getPythPriceId",
455
- { pythPriceId, endpoint }
447
+ { pythPriceId }
456
448
  ]
457
449
  }
458
450
  };
@@ -464,430 +456,6 @@ var MAX_LOCK_DURATION = MAX_LOCK_ROUNDS * UNLOCK_ROUND_DURATION;
464
456
  var MIN_INITIAL_LOCK_AMOUNT = 1e10;
465
457
  var MIN_TOP_UP_AMOUNT = 1e9;
466
458
 
467
- // src/constants/testAddress.ts
468
- var TEST_ADDRESSES = {
469
- core: {
470
- // version:
471
- // '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
472
- version: "0xd318de9b0f6873879a82cbfcc2daa1d1591a8b54e7cea9f4b567da63c692a52b",
473
- versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
474
- // object:
475
- // '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
476
- object: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
477
- // market:
478
- // '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
479
- market: "0x9d6434e97f3f98fd9b0c0e1dca22632073985abcd22541feae7ee1e34cbe3af2",
480
- adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
481
- coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
482
- // obligationAccessStore:
483
- // '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
484
- obligationAccessStore: "0x46e9b44a77ee9c9d33cc2689ecdfbb8f681935cbc6bdf6ac3df048e396c36c82",
485
- coins: {
486
- usdc: {
487
- id: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
488
- metaData: "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
489
- treasury: "",
490
- oracle: {
491
- supra: "",
492
- switchboard: "",
493
- pyth: {
494
- feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
495
- feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
496
- }
497
- }
498
- },
499
- cetus: {
500
- id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
501
- metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
502
- treasury: "",
503
- oracle: {
504
- supra: "",
505
- switchboard: "",
506
- pyth: {
507
- feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
508
- feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
509
- }
510
- }
511
- },
512
- wapt: {
513
- id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
514
- metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
515
- treasury: "",
516
- oracle: {
517
- supra: "",
518
- switchboard: "",
519
- pyth: {
520
- feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
521
- feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
522
- }
523
- }
524
- },
525
- wsol: {
526
- id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
527
- metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
528
- treasury: "",
529
- oracle: {
530
- supra: "",
531
- switchboard: "",
532
- pyth: {
533
- feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
534
- feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
535
- }
536
- }
537
- },
538
- wbtc: {
539
- id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
540
- metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
541
- treasury: "",
542
- oracle: {
543
- supra: "",
544
- switchboard: "",
545
- pyth: {
546
- feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
547
- feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
548
- }
549
- }
550
- },
551
- weth: {
552
- id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
553
- metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
554
- treasury: "",
555
- oracle: {
556
- supra: "",
557
- switchboard: "",
558
- pyth: {
559
- feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
560
- feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
561
- }
562
- }
563
- },
564
- wusdc: {
565
- id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
566
- metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
567
- treasury: "",
568
- oracle: {
569
- supra: "",
570
- switchboard: "",
571
- pyth: {
572
- feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
573
- feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
574
- }
575
- }
576
- },
577
- wusdt: {
578
- id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
579
- metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
580
- treasury: "",
581
- oracle: {
582
- supra: "",
583
- switchboard: "",
584
- pyth: {
585
- feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
586
- feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
587
- }
588
- }
589
- },
590
- sui: {
591
- id: "0x0000000000000000000000000000000000000000000000000000000000000002",
592
- metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
593
- treasury: "",
594
- oracle: {
595
- supra: "",
596
- switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
597
- pyth: {
598
- feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
599
- feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
600
- }
601
- }
602
- },
603
- afsui: {
604
- id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
605
- metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
606
- treasury: "",
607
- oracle: {
608
- supra: "",
609
- switchboard: "",
610
- pyth: {
611
- feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
612
- feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
613
- }
614
- }
615
- },
616
- hasui: {
617
- id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
618
- metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
619
- treasury: "",
620
- oracle: {
621
- supra: "",
622
- switchboard: "",
623
- pyth: {
624
- feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
625
- feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
626
- }
627
- }
628
- },
629
- vsui: {
630
- id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
631
- metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
632
- treasury: "",
633
- oracle: {
634
- supra: "",
635
- switchboard: "",
636
- pyth: {
637
- feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
638
- feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
639
- }
640
- }
641
- },
642
- sca: {
643
- id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
644
- metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
645
- treasury: "",
646
- oracle: {
647
- supra: "",
648
- switchboard: "",
649
- pyth: {
650
- feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
651
- feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
652
- }
653
- }
654
- },
655
- sbeth: {
656
- id: "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
657
- metaData: "0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0",
658
- treasury: "",
659
- oracle: {
660
- supra: "",
661
- switchboard: "",
662
- pyth: {
663
- feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
664
- feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
665
- }
666
- }
667
- }
668
- },
669
- oracles: {
670
- xOracle: "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
671
- xOracleCap: "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
672
- supra: { registry: "", registryCap: "", holder: "" },
673
- switchboard: { registry: "", registryCap: "" },
674
- pyth: {
675
- registry: "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
676
- registryCap: "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
677
- state: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
678
- wormhole: "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
679
- wormholeState: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
680
- }
681
- },
682
- packages: {
683
- coinDecimalsRegistry: {
684
- id: "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
685
- upgradeCap: "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
686
- },
687
- math: {
688
- id: "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
689
- upgradeCap: "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
690
- },
691
- whitelist: {
692
- id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
693
- upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
694
- },
695
- x: {
696
- id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
697
- upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
698
- },
699
- protocol: {
700
- id: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
701
- upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
702
- },
703
- // protocol: {
704
- // id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
705
- // upgradeCap:
706
- // '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
707
- // },
708
- protocolWhitelist: {
709
- id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
710
- upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
711
- },
712
- // query: {
713
- // id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
714
- // upgradeCap:
715
- // '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
716
- // },
717
- query: {
718
- id: "0x89706958f43fb170de134579e3fbc53972b946ee78bd2442d8e1adc36074fbdc",
719
- upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
720
- },
721
- supra: { id: "", upgradeCap: "" },
722
- pyth: {
723
- id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
724
- upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
725
- },
726
- switchboard: { id: "", upgradeCap: "" },
727
- xOracle: {
728
- id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
729
- upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
730
- },
731
- testCoin: { id: "", upgradeCap: "" }
732
- }
733
- },
734
- spool: {
735
- // id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
736
- id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
737
- adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
738
- // object:
739
- // '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
740
- object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
741
- pools: {
742
- sweth: {
743
- id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
744
- rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
745
- },
746
- ssui: {
747
- // id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
748
- id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
749
- rewardPoolId: (
750
- // '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
751
- "0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
752
- )
753
- },
754
- susdc: {
755
- id: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
756
- rewardPoolId: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
757
- },
758
- swusdc: {
759
- // id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
760
- id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
761
- rewardPoolId: (
762
- // '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
763
- "0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
764
- )
765
- },
766
- swusdt: {
767
- // id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
768
- id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
769
- rewardPoolId: (
770
- // '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
771
- "0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
772
- )
773
- },
774
- scetus: {
775
- id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
776
- rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
777
- },
778
- safsui: {
779
- // id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
780
- id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
781
- rewardPoolId: (
782
- // '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
783
- "0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
784
- )
785
- },
786
- shasui: {
787
- // id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
788
- id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
789
- rewardPoolId: (
790
- // '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
791
- "0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
792
- )
793
- },
794
- svsui: {
795
- // id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
796
- id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
797
- rewardPoolId: (
798
- // '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
799
- "0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
800
- )
801
- }
802
- },
803
- config: ""
804
- },
805
- borrowIncentive: {
806
- id: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
807
- adminCap: "0x56ac8e6f2b360b2b35c0168d72cc6cd17d9592afb83709865cb87af24bb2025b",
808
- object: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
809
- query: "0x8e0d00f8ff1199d7c5fe56cea0e901a525daeefff0445a1635ace8282ae3302c",
810
- incentivePools: "0x9d564c93128c6ab0c0d3e050a47f11df0b91494f3bb779bdc1301c1c637f15eb",
811
- incentiveAccounts: "0x09e6040e798246de04941bc79a3ba62d3eca6d7a218cc30f21fb07f478fa2926",
812
- config: "0x43d4ca1dfc90b161c4240facd119e74e4b850cca2957f88c2ec289c9380da064"
813
- },
814
- referral: {
815
- id: "0x1bf5a8ce77050d8052549d743e16b469f15aa6b81b752b78b6ebb65179665f5a",
816
- object: "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
817
- adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
818
- referralBindings: "0xcf184487782bed962bf678001efe775d31fb94b9992333a57594cf15d79d5ced",
819
- bindingTableId: "0x41a50e258c0a266ce84e0e1a618dbf70b878cc943909e613089a50afcceb2bc0",
820
- referralRevenuePool: "0xc24e3e5e37032f29a3dd91a9a1f057af8821b7e6c148e9683900ac8b6d30f0c6",
821
- revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
822
- referralTiers: "0x144350f3db9b46d11b140084cd54e6de0b9c3b8d265ce8059b51d0ef58ea464b",
823
- tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
824
- // authorizedWitnessList:
825
- // '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
826
- authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
827
- version: "0x3545849eb97723e676a476ec9d4fe5f2eb0eb2c6b78972851114fd4c7ed4639f"
828
- },
829
- vesca: {
830
- id: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
831
- object: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
832
- adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
833
- tableId: "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
834
- table: "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
835
- treasury: "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
836
- config: "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
837
- },
838
- loyaltyProgram: {
839
- id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
840
- object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
841
- rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
842
- userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
843
- },
844
- scoin: {
845
- id: "0x773dab39c90fe05439b06a2d061795e52a974ff92c2aef90b2ee467acf7f33c8",
846
- coins: {
847
- ssui: {
848
- coinType: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
849
- treasury: "0x0e499640a12c38dd9cc44532f5bc5fd1b6da86d2f9a8810357250f4b26e9e5c7"
850
- },
851
- scetus: {
852
- coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
853
- treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
854
- },
855
- ssca: {
856
- coinType: "0x0a9d3c6c9af9f6e8def82921541bcbd17f73ed31bed3adcb684f2a4c267e42f0::scallop_sca::SCALLOP_SCA",
857
- treasury: "0xe818636d1d6c46d6ea1a2dce9d94696d7cbc18ce27451b603eeaa47aba8d75e0"
858
- },
859
- swusdc: {
860
- coinType: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
861
- treasury: "0x471fbab72578bab577263006fe32543b6e76153fffa2bef69affe4bc4934258f"
862
- },
863
- swusdt: {
864
- coinType: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
865
- treasury: "0x921a4ed4bb4b4f11f51a462c83f4c0f6b60a90e441d1bc0d26d6fd893146bf4d"
866
- },
867
- sweth: {
868
- coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
869
- treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
870
- },
871
- safsui: {
872
- coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
873
- treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
874
- },
875
- shasui: {
876
- coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
877
- treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
878
- },
879
- svsui: {
880
- coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
881
- treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6"
882
- },
883
- ssbeth: {
884
- coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
885
- treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
886
- }
887
- }
888
- }
889
- };
890
-
891
459
  // src/models/scallop.ts
892
460
  var import_sui_kit16 = require("@scallop-io/sui-kit");
893
461
 
@@ -1666,62 +1234,454 @@ var ScallopCache = class {
1666
1234
  () => this.client.getOwnedObjects(input)
1667
1235
  );
1668
1236
  }
1669
- });
1670
- }
1671
- async queryGetDynamicFields(input) {
1672
- return this.queryClient.fetchQuery({
1673
- queryKey: queryKeys.rpc.getDynamicFields(input),
1674
- queryFn: async () => {
1675
- return await callWithRateLimit(
1676
- this.tokenBucket,
1677
- () => this.client.getDynamicFields(input)
1678
- );
1237
+ });
1238
+ }
1239
+ async queryGetDynamicFields(input) {
1240
+ return this.queryClient.fetchQuery({
1241
+ queryKey: queryKeys.rpc.getDynamicFields(input),
1242
+ queryFn: async () => {
1243
+ return await callWithRateLimit(
1244
+ this.tokenBucket,
1245
+ () => this.client.getDynamicFields(input)
1246
+ );
1247
+ }
1248
+ });
1249
+ }
1250
+ async queryGetDynamicFieldObject(input) {
1251
+ return this.queryClient.fetchQuery({
1252
+ queryKey: queryKeys.rpc.getDynamicFieldObject(input),
1253
+ queryFn: async () => {
1254
+ return await callWithRateLimit(
1255
+ this.tokenBucket,
1256
+ () => this.client.getDynamicFieldObject(input)
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
+ {}
1279
+ );
1280
+ return balances;
1281
+ }
1282
+ });
1283
+ }
1284
+ async queryGetCoinBalance(input) {
1285
+ if (!input.coinType)
1286
+ return "0";
1287
+ return (await this.queryGetAllCoinBalances(input.owner) || {})[(0, import_sui_kit.normalizeStructTag)(input.coinType)] ?? "0";
1288
+ }
1289
+ };
1290
+
1291
+ // src/models/scallopAddress.ts
1292
+ var import_axios = __toESM(require("axios"));
1293
+
1294
+ // src/constants/testAddress.ts
1295
+ var TEST_ADDRESSES = {
1296
+ core: {
1297
+ // version:
1298
+ // '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
1299
+ version: "0x6156d5cd1538bec8a167a40fe1209a4ec9cf8137921fe0a697f191ac561f0b09",
1300
+ versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
1301
+ // object:
1302
+ // '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
1303
+ object: "0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1",
1304
+ // market:
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
+ }
1468
+ }
1469
+ },
1470
+ oracles: {
1471
+ xOracle: "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
1472
+ xOracleCap: "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
1473
+ supra: { registry: "", registryCap: "", holder: "" },
1474
+ switchboard: { registry: "", registryCap: "" },
1475
+ pyth: {
1476
+ registry: "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
1477
+ registryCap: "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
1478
+ state: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
1479
+ wormhole: "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
1480
+ wormholeState: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
1679
1481
  }
1680
- });
1681
- }
1682
- async queryGetDynamicFieldObject(input) {
1683
- return this.queryClient.fetchQuery({
1684
- queryKey: queryKeys.rpc.getDynamicFieldObject(input),
1685
- queryFn: async () => {
1686
- return await callWithRateLimit(
1687
- this.tokenBucket,
1688
- () => this.client.getDynamicFieldObject(input)
1689
- );
1482
+ },
1483
+ packages: {
1484
+ coinDecimalsRegistry: {
1485
+ id: "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
1486
+ upgradeCap: "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
1487
+ },
1488
+ math: {
1489
+ id: "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
1490
+ upgradeCap: "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
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
+ )
1690
1598
  }
1691
- });
1692
- }
1693
- async queryGetAllCoinBalances(owner) {
1694
- return this.queryClient.fetchQuery({
1695
- queryKey: queryKeys.rpc.getAllCoinBalances(owner),
1696
- queryFn: async () => {
1697
- const allBalances = await callWithRateLimit(
1698
- this.tokenBucket,
1699
- () => this.client.getAllBalances({ owner })
1700
- );
1701
- if (!allBalances)
1702
- return {};
1703
- const balances = allBalances.reduce(
1704
- (acc, coinBalance) => {
1705
- if (coinBalance.totalBalance !== "0") {
1706
- acc[(0, import_sui_kit.normalizeStructTag)(coinBalance.coinType)] = coinBalance.totalBalance;
1707
- }
1708
- return acc;
1709
- },
1710
- {}
1711
- );
1712
- return balances;
1599
+ },
1600
+ config: ""
1601
+ },
1602
+ borrowIncentive: {
1603
+ id: "0x6152f696fc3a658f33c4b891764731a59153125ffedfa8bff7167c42823f58a9",
1604
+ adminCap: "0xc486afa253646f4d381e81d7f1df8aa4723b845a6bb356f69bad635ffefffe2c",
1605
+ object: "0x002875153e09f8145ab63527bc85c00f2bd102e12f9573c47f8cdf1a1cb62934",
1606
+ query: "0x529edc54a3dce2207703ceebbccb0ac14133f7825c1f528775ba0d85a4063489",
1607
+ incentivePools: "0x6547e143d406b5ccd5f46aae482497de279cc1a68c406f701df70a05f9212ab4",
1608
+ incentiveAccounts: "0xc4701fdbc1c92f9a636d334d66012b3027659e9fb8aff27279a82edfb6b77d02",
1609
+ config: "0xdf5d04b4691cc67e82fd4db8394d89ff44823a9de29716c924f74bb4f11cc1f7"
1610
+ },
1611
+ referral: {
1612
+ id: "0xa3654ebb63eb06c0f4ff52f8aa6512df9f164f7772bdf15dac3709bd3798dda9",
1613
+ object: "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
1614
+ adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
1615
+ referralBindings: "0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09",
1616
+ bindingTableId: "0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1",
1617
+ referralRevenuePool: "0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07",
1618
+ revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
1619
+ referralTiers: "0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e",
1620
+ tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
1621
+ // authorizedWitnessList:
1622
+ // '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
1623
+ authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
1624
+ version: "0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e"
1625
+ },
1626
+ vesca: {
1627
+ id: "0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4",
1628
+ object: "0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4",
1629
+ adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
1630
+ tableId: "0xe3153b2bf124be0b86cb8bd468346a861efd0da52fc42197b54d2f616488a311",
1631
+ table: "0x611cb8d9d4d90867467b5ebdf4cc447a0047ed5b01334a28a29fcfe733e3d609",
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"
1713
1679
  }
1714
- });
1715
- }
1716
- async queryGetCoinBalance(input) {
1717
- if (!input.coinType)
1718
- return "0";
1719
- return (await this.queryGetAllCoinBalances(input.owner) || {})[(0, import_sui_kit.normalizeStructTag)(input.coinType)] ?? "0";
1680
+ }
1720
1681
  }
1721
1682
  };
1722
1683
 
1723
1684
  // src/models/scallopAddress.ts
1724
- var import_axios = __toESM(require("axios"));
1725
1685
  var EMPTY_ADDRESSES = {
1726
1686
  core: {
1727
1687
  version: "",
@@ -2431,89 +2391,6 @@ var getSupplyLimit = async (utils, poolName) => {
2431
2391
  return parsedData.data.fields.value;
2432
2392
  };
2433
2393
 
2434
- // src/queries/isolatedAsset.ts
2435
- var import_zod2 = require("zod");
2436
- var isolatedAssetZod = import_zod2.z.object({
2437
- dataType: import_zod2.z.string(),
2438
- type: import_zod2.z.string(),
2439
- hasPublicTransfer: import_zod2.z.boolean(),
2440
- fields: import_zod2.z.object({
2441
- id: import_zod2.z.object({
2442
- id: import_zod2.z.string()
2443
- }),
2444
- name: import_zod2.z.object({
2445
- type: import_zod2.z.string()
2446
- }),
2447
- value: import_zod2.z.boolean()
2448
- })
2449
- });
2450
- var getIsolatedAssets = async (address) => {
2451
- try {
2452
- const marketObject = address.get("core.market");
2453
- const protocolObject = address.get("core.packages.protocol.id");
2454
- const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
2455
- const isolatedAssets = [];
2456
- if (!marketObject)
2457
- return isolatedAssets;
2458
- let hasNextPage = false;
2459
- let nextCursor = null;
2460
- const isIsolatedDynamicField = (dynamicField) => {
2461
- return dynamicField.name.type === ISOLATED_ASSET_KEY;
2462
- };
2463
- do {
2464
- const response = await address.cache.queryGetDynamicFields({
2465
- parentId: marketObject,
2466
- cursor: nextCursor,
2467
- limit: 10
2468
- });
2469
- if (!response)
2470
- break;
2471
- const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
2472
- isolatedAssets.push(...isolatedAssetCoinTypes);
2473
- if (response && response.hasNextPage && response.nextCursor) {
2474
- hasNextPage = true;
2475
- nextCursor = response.nextCursor;
2476
- } else {
2477
- hasNextPage = false;
2478
- }
2479
- } while (hasNextPage);
2480
- return isolatedAssets;
2481
- } catch (e) {
2482
- console.error(e);
2483
- return [];
2484
- }
2485
- };
2486
- var isIsolatedAsset = async (utils, coinName) => {
2487
- try {
2488
- const marketObject = utils.address.get("core.market");
2489
- const protocolObject = utils.address.get("core.packages.protocol.id");
2490
- const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
2491
- const cachedData = utils.address.cache.queryClient.getQueryData([
2492
- "getDynamicFields",
2493
- marketObject
2494
- ]);
2495
- if (cachedData) {
2496
- const coinType2 = utils.parseCoinType(coinName);
2497
- return cachedData.includes(coinType2);
2498
- }
2499
- const coinType = utils.parseCoinType(coinName).slice(2);
2500
- const object = await utils.cache.queryGetDynamicFieldObject({
2501
- parentId: marketObject,
2502
- name: {
2503
- type: ISOLATED_ASSET_KEY,
2504
- value: coinType
2505
- }
2506
- });
2507
- const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
2508
- if (!parsedData.success)
2509
- return false;
2510
- return parsedData.data.fields.value;
2511
- } catch (e) {
2512
- console.error(e);
2513
- return false;
2514
- }
2515
- };
2516
-
2517
2394
  // src/queries/coreQuery.ts
2518
2395
  var queryMarket = async (query, indexer = false) => {
2519
2396
  const coinPrices = await query.utils.getCoinPrices();
@@ -2598,8 +2475,8 @@ var queryMarket = async (query, indexer = false) => {
2598
2475
  borrowFee: parsedMarketPoolData.borrowFee,
2599
2476
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2600
2477
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2601
- isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
2602
- // isIsolated: false,
2478
+ // isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
2479
+ isIsolated: false,
2603
2480
  maxSupplyCoin,
2604
2481
  ...calculatedMarketPoolData
2605
2482
  };
@@ -2638,7 +2515,6 @@ var queryMarket = async (query, indexer = false) => {
2638
2515
  liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
2639
2516
  liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
2640
2517
  liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
2641
- isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
2642
2518
  ...calculatedMarketCollateralData
2643
2519
  };
2644
2520
  }
@@ -2686,73 +2562,79 @@ var getMarketPools = async (query, poolCoinNames = [...SUPPORT_POOLS], indexer =
2686
2562
  return marketPools;
2687
2563
  };
2688
2564
  var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, coinPrice) => {
2689
- try {
2690
- coinPrice = coinPrice || (await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
2691
- if (indexer) {
2692
- const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
2693
- marketPoolIndexer.coinPrice = coinPrice || marketPoolIndexer.coinPrice;
2694
- marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
2695
- marketPoolIndexer.coinName
2696
- );
2697
- return marketPoolIndexer;
2698
- }
2699
- const marketId = query.address.get("core.market");
2700
- marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
2701
- showContent: true
2702
- }))?.data;
2703
- if (!(marketObject && marketObject.content?.dataType === "moveObject"))
2704
- throw new Error(`Failed to fetch marketObject`);
2705
- const fields = marketObject.content.fields;
2706
- const coinType = query.utils.parseCoinType(poolCoinName);
2707
- const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
2708
- const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2709
- parentId: balanceSheetParentId,
2710
- name: {
2711
- type: "0x1::type_name::TypeName",
2712
- value: {
2713
- name: coinType.substring(2)
2565
+ let marketPool;
2566
+ let balanceSheet;
2567
+ let borrowIndex;
2568
+ let interestModel;
2569
+ let borrowFeeRate;
2570
+ coinPrice = coinPrice || (await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
2571
+ if (indexer) {
2572
+ const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
2573
+ marketPoolIndexer.coinPrice = coinPrice || marketPoolIndexer.coinPrice;
2574
+ marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
2575
+ marketPoolIndexer.coinName
2576
+ );
2577
+ return marketPoolIndexer;
2578
+ }
2579
+ const marketId = query.address.get("core.market");
2580
+ marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
2581
+ showContent: true
2582
+ }))?.data;
2583
+ if (marketObject) {
2584
+ if (marketObject.content && "fields" in marketObject.content) {
2585
+ const fields = marketObject.content.fields;
2586
+ const coinType = query.utils.parseCoinType(poolCoinName);
2587
+ const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
2588
+ const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2589
+ parentId: balanceSheetParentId,
2590
+ name: {
2591
+ type: "0x1::type_name::TypeName",
2592
+ value: {
2593
+ name: coinType.substring(2)
2594
+ }
2714
2595
  }
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;
2715
2603
  }
2716
- });
2717
- const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
2718
- if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
2719
- throw new Error(
2720
- `Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
2721
- );
2722
- const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
2723
- const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
2724
- const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2725
- parentId: borrowIndexParentId,
2726
- name: {
2727
- type: "0x1::type_name::TypeName",
2728
- value: {
2729
- name: coinType.substring(2)
2604
+ const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
2605
+ const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2606
+ parentId: borrowIndexParentId,
2607
+ name: {
2608
+ type: "0x1::type_name::TypeName",
2609
+ value: {
2610
+ name: coinType.substring(2)
2611
+ }
2730
2612
  }
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;
2731
2620
  }
2732
- });
2733
- const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
2734
- if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
2735
- throw new Error(
2736
- `Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
2737
- );
2738
- const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
2739
- const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
2740
- const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2741
- parentId: interestModelParentId,
2742
- name: {
2743
- type: "0x1::type_name::TypeName",
2744
- value: {
2745
- name: coinType.substring(2)
2621
+ const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
2622
+ const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2623
+ parentId: interestModelParentId,
2624
+ name: {
2625
+ type: "0x1::type_name::TypeName",
2626
+ value: {
2627
+ name: coinType.substring(2)
2628
+ }
2746
2629
  }
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;
2747
2637
  }
2748
- });
2749
- const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse?.data;
2750
- if (!(interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content))
2751
- throw new Error(
2752
- `Failed to fetch interestModelDynamicFieldObject for ${poolCoinName}: ${interestModelDynamicFieldObject}`
2753
- );
2754
- const interestModel = interestModelDynamicFieldObject.content.fields.value.fields;
2755
- const getBorrowFee = async () => {
2756
2638
  const borrowFeeDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2757
2639
  parentId: marketId,
2758
2640
  name: {
@@ -2764,11 +2646,16 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2764
2646
  }
2765
2647
  }
2766
2648
  });
2767
- const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
2768
- if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
2769
- return { value: "0" };
2770
- return borrowFeeDynamicFieldObject.content.fields.value.fields;
2771
- };
2649
+ if (!borrowFeeDynamicFieldObjectResponse)
2650
+ return void 0;
2651
+ const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse.data;
2652
+ if (borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content) {
2653
+ const dynamicFields = borrowFeeDynamicFieldObject.content.fields;
2654
+ borrowFeeRate = dynamicFields.value.fields;
2655
+ }
2656
+ }
2657
+ }
2658
+ if (balanceSheet && borrowIndex && interestModel && (USE_TEST_ADDRESS || borrowFeeRate)) {
2772
2659
  const parsedMarketPoolData = parseOriginMarketPoolData({
2773
2660
  type: interestModel.type.fields,
2774
2661
  maxBorrowRate: interestModel.max_borrow_rate.fields,
@@ -2782,7 +2669,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2782
2669
  reserve: balanceSheet.revenue,
2783
2670
  reserveFactor: interestModel.revenue_factor.fields,
2784
2671
  borrowWeight: interestModel.borrow_weight.fields,
2785
- borrowFeeRate: await getBorrowFee(),
2672
+ borrowFeeRate: borrowFeeRate || { value: "0" },
2786
2673
  baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
2787
2674
  borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
2788
2675
  borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
@@ -2798,7 +2685,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2798
2685
  const maxSupplyCoin = (0, import_bignumber2.default)(
2799
2686
  await getSupplyLimit(query.utils, poolCoinName) ?? "0"
2800
2687
  ).shiftedBy(-coinDecimal).toNumber();
2801
- return {
2688
+ marketPool = {
2802
2689
  coinName: poolCoinName,
2803
2690
  symbol: query.utils.parseSymbol(poolCoinName),
2804
2691
  coinType: query.utils.parseCoinType(poolCoinName),
@@ -2817,13 +2704,12 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
2817
2704
  marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
2818
2705
  minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
2819
2706
  maxSupplyCoin,
2820
- isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
2821
- // isIsolated: false,
2707
+ // isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
2708
+ isIsolated: false,
2822
2709
  ...calculatedMarketPoolData
2823
2710
  };
2824
- } catch (e) {
2825
- console.error(e);
2826
2711
  }
2712
+ return marketPool;
2827
2713
  };
2828
2714
  var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
2829
2715
  const marketId = query.address.get("core.market");
@@ -2872,76 +2758,85 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
2872
2758
  );
2873
2759
  return marketCollateralIndexer;
2874
2760
  }
2761
+ let marketCollateral;
2762
+ let riskModel;
2763
+ let collateralStat;
2875
2764
  const marketId = query.address.get("core.market");
2876
2765
  marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
2877
2766
  showContent: true
2878
2767
  }))?.data;
2879
- if (!(marketObject && marketObject.content?.dataType === "moveObject"))
2880
- throw new Error(`Failed to fetch marketObject`);
2881
- const fields = marketObject.content.fields;
2882
- const coinType = query.utils.parseCoinType(collateralCoinName);
2883
- const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
2884
- const riskModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2885
- parentId: riskModelParentId,
2886
- name: {
2887
- type: "0x1::type_name::TypeName",
2888
- value: {
2889
- name: coinType.substring(2)
2768
+ if (marketObject) {
2769
+ if (marketObject.content && "fields" in marketObject.content) {
2770
+ const fields = marketObject.content.fields;
2771
+ const coinType = query.utils.parseCoinType(collateralCoinName);
2772
+ const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
2773
+ const riskModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2774
+ parentId: riskModelParentId,
2775
+ name: {
2776
+ type: "0x1::type_name::TypeName",
2777
+ value: {
2778
+ name: coinType.substring(2)
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;
2890
2788
  }
2891
- }
2892
- });
2893
- const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse?.data;
2894
- if (!(riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content))
2895
- throw new Error(
2896
- `Failed to ftech riskModelDynamicFieldObject for ${riskModelDynamicFieldObjectResponse?.error?.code.toString()}: `
2897
- );
2898
- const riskModel = riskModelDynamicFieldObject.content.fields.value.fields;
2899
- const collateralStatParentId = fields.collateral_stats.fields.table.fields.id.id;
2900
- const collateralStatDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2901
- parentId: collateralStatParentId,
2902
- name: {
2903
- type: "0x1::type_name::TypeName",
2904
- value: {
2905
- name: coinType.substring(2)
2789
+ const collateralStatParentId = fields.collateral_stats.fields.table.fields.id.id;
2790
+ const collateralStatDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
2791
+ parentId: collateralStatParentId,
2792
+ name: {
2793
+ type: "0x1::type_name::TypeName",
2794
+ value: {
2795
+ name: coinType.substring(2)
2796
+ }
2797
+ }
2798
+ });
2799
+ if (!collateralStatDynamicFieldObjectResponse)
2800
+ return void 0;
2801
+ const collateralStatDynamicFieldObject = collateralStatDynamicFieldObjectResponse.data;
2802
+ if (collateralStatDynamicFieldObject && collateralStatDynamicFieldObject.content && "fields" in collateralStatDynamicFieldObject.content) {
2803
+ const dynamicFields = collateralStatDynamicFieldObject.content.fields;
2804
+ collateralStat = dynamicFields.value.fields;
2906
2805
  }
2907
2806
  }
2908
- });
2909
- const collateralStatDynamicFieldObject = collateralStatDynamicFieldObjectResponse?.data;
2910
- if (!(collateralStatDynamicFieldObject && collateralStatDynamicFieldObject.content && "fields" in collateralStatDynamicFieldObject.content))
2911
- throw new Error(
2912
- `Failed to fetch collateralStatDynamicFieldObject for ${collateralCoinName}: ${collateralStatDynamicFieldObjectResponse?.error?.code.toString()}`
2807
+ }
2808
+ if (riskModel && collateralStat) {
2809
+ const parsedMarketCollateralData = parseOriginMarketCollateralData({
2810
+ type: riskModel.type.fields,
2811
+ collateralFactor: riskModel.collateral_factor.fields,
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
2913
2822
  );
2914
- const collateralStat = collateralStatDynamicFieldObject.content.fields.value.fields;
2915
- const parsedMarketCollateralData = parseOriginMarketCollateralData({
2916
- type: riskModel.type.fields,
2917
- collateralFactor: riskModel.collateral_factor.fields,
2918
- liquidationFactor: riskModel.liquidation_factor.fields,
2919
- liquidationDiscount: riskModel.liquidation_discount.fields,
2920
- liquidationPanelty: riskModel.liquidation_penalty.fields,
2921
- liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
2922
- maxCollateralAmount: riskModel.max_collateral_amount,
2923
- totalCollateralAmount: collateralStat.amount
2924
- });
2925
- const calculatedMarketCollateralData = calculateMarketCollateralData(
2926
- query.utils,
2927
- parsedMarketCollateralData
2928
- );
2929
- return {
2930
- coinName: collateralCoinName,
2931
- symbol: query.utils.parseSymbol(collateralCoinName),
2932
- coinType: query.utils.parseCoinType(collateralCoinName),
2933
- marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
2934
- coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
2935
- coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
2936
- coinPrice: coinPrice ?? 0,
2937
- collateralFactor: parsedMarketCollateralData.collateralFactor,
2938
- liquidationFactor: parsedMarketCollateralData.liquidationFactor,
2939
- liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
2940
- liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
2941
- liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
2942
- isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
2943
- ...calculatedMarketCollateralData
2944
- };
2823
+ marketCollateral = {
2824
+ coinName: collateralCoinName,
2825
+ symbol: query.utils.parseSymbol(collateralCoinName),
2826
+ coinType: query.utils.parseCoinType(collateralCoinName),
2827
+ marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
2828
+ coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
2829
+ coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
2830
+ coinPrice: coinPrice ?? 0,
2831
+ collateralFactor: parsedMarketCollateralData.collateralFactor,
2832
+ liquidationFactor: parsedMarketCollateralData.liquidationFactor,
2833
+ liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
2834
+ liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
2835
+ liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
2836
+ ...calculatedMarketCollateralData
2837
+ };
2838
+ }
2839
+ return marketCollateral;
2945
2840
  };
2946
2841
  var getObligations = async ({
2947
2842
  address
@@ -2957,6 +2852,9 @@ var getObligations = async ({
2957
2852
  filter: {
2958
2853
  StructType: `${protocolObjectId}::obligation::ObligationKey`
2959
2854
  },
2855
+ options: {
2856
+ showContent: true
2857
+ },
2960
2858
  cursor: nextCursor,
2961
2859
  limit: 10
2962
2860
  });
@@ -2970,14 +2868,14 @@ var getObligations = async ({
2970
2868
  hasNextPage = false;
2971
2869
  }
2972
2870
  } while (hasNextPage);
2973
- const keyObjectIds = keyObjectsResponse.map((ref) => ref?.data?.objectId).filter((id) => id !== void 0);
2974
- const keyObjects = await address.cache.queryGetObjects(keyObjectIds);
2871
+ const keyObjects = keyObjectsResponse.filter((ref) => !!ref.data);
2975
2872
  const obligations = [];
2976
2873
  await Promise.allSettled(
2977
- keyObjects.map(async (keyObject) => {
2978
- const keyId = keyObject.objectId;
2979
- if (keyObject.content && "fields" in keyObject.content) {
2980
- const fields = keyObject.content.fields;
2874
+ keyObjects.map(async ({ data }) => {
2875
+ const keyId = data?.objectId;
2876
+ const content = data?.content;
2877
+ if (keyId && content && "fields" in content) {
2878
+ const fields = content.fields;
2981
2879
  const obligationId = String(fields.ownership.fields.of);
2982
2880
  const locked = await getObligationLocked(address.cache, obligationId);
2983
2881
  obligations.push({ id: obligationId, keyId, locked });
@@ -3170,7 +3068,7 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
3170
3068
  const coinName = query.utils.parseCoinName(marketCoinName);
3171
3069
  marketPool = marketPool || await query.getMarketPool(coinName, indexer);
3172
3070
  if (!marketPool) {
3173
- throw new Error("Failed to fetch marketPool");
3071
+ throw new Error("Fail to fetch marketPool");
3174
3072
  }
3175
3073
  const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
3176
3074
  const rewardPoolId = query.address.get(
@@ -3245,6 +3143,7 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
3245
3143
  coinType: query.utils.parseCoinType(coinName),
3246
3144
  marketCoinType: query.utils.parseMarketCoinType(coinName),
3247
3145
  rewardCoinType: isMarketCoin(rewardCoinName) ? query.utils.parseMarketCoinType(rewardCoinName) : query.utils.parseCoinType(rewardCoinName),
3146
+ sCoinType: marketPool.sCoinType,
3248
3147
  coinDecimal: query.utils.getCoinDecimal(coinName),
3249
3148
  rewardCoinDecimal: query.utils.getCoinDecimal(rewardCoinName),
3250
3149
  coinPrice: coinPrices?.[coinName] ?? 0,
@@ -3841,6 +3740,7 @@ var getLending = async (query, poolCoinName, ownerAddress, indexer = false, mark
3841
3740
  symbol: query.utils.parseSymbol(poolCoinName),
3842
3741
  coinType: query.utils.parseCoinType(poolCoinName),
3843
3742
  marketCoinType: query.utils.parseMarketCoinType(poolCoinName),
3743
+ sCoinType: marketPool?.sCoinType ?? "",
3844
3744
  coinDecimal,
3845
3745
  coinPrice: coinPrice ?? 0,
3846
3746
  conversionRate: marketPool?.conversionRate ?? 1,
@@ -4229,7 +4129,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
4229
4129
  var import_bignumber5 = __toESM(require("bignumber.js"));
4230
4130
  var import_sui_kit3 = require("@scallop-io/sui-kit");
4231
4131
  var import_bcs = require("@mysten/sui/bcs");
4232
- var import_zod3 = require("zod");
4132
+ var import_zod2 = require("zod");
4233
4133
  var import_assert = __toESM(require("assert"));
4234
4134
  var getVescaKeys = async (utils, ownerAddress) => {
4235
4135
  const owner = ownerAddress || utils.suiKit.currentAddress();
@@ -4278,14 +4178,13 @@ var getVeScas = async ({
4278
4178
  }
4279
4179
  return result;
4280
4180
  };
4281
- var SuiObjectRefZod = import_zod3.z.object({
4282
- objectId: import_zod3.z.string(),
4283
- digest: import_zod3.z.string(),
4284
- version: import_zod3.z.string()
4181
+ var SuiObjectRefZod = import_zod2.z.object({
4182
+ objectId: import_zod2.z.string(),
4183
+ digest: import_zod2.z.string(),
4184
+ version: import_zod2.z.string()
4285
4185
  });
4286
- var getVeSca = async (utils, veScaKey, ownerAddress) => {
4186
+ var getVeSca = async (utils, veScaKey) => {
4287
4187
  const tableId = utils.address.get(`vesca.tableId`);
4288
- veScaKey = veScaKey || (await getVescaKeys(utils, ownerAddress))[0];
4289
4188
  if (!veScaKey)
4290
4189
  return void 0;
4291
4190
  if (typeof veScaKey === "object") {
@@ -4415,16 +4314,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
4415
4314
 
4416
4315
  // src/queries/loyaltyProgramQuery.ts
4417
4316
  var import_bignumber6 = __toESM(require("bignumber.js"));
4418
- var import_zod4 = require("zod");
4419
- var rewardPoolFieldsZod = import_zod4.z.object({
4420
- balance: import_zod4.z.string(),
4421
- enable_claim: import_zod4.z.boolean()
4317
+ var import_zod3 = require("zod");
4318
+ var rewardPoolFieldsZod = import_zod3.z.object({
4319
+ balance: import_zod3.z.string(),
4320
+ enable_claim: import_zod3.z.boolean()
4422
4321
  }).transform((value) => ({
4423
4322
  totalPoolReward: (0, import_bignumber6.default)(value.balance).shiftedBy(-9).toNumber(),
4424
4323
  isClaimEnabled: value.enable_claim
4425
4324
  }));
4426
- var userRewardFieldsZod = import_zod4.z.object({
4427
- value: import_zod4.z.string()
4325
+ var userRewardFieldsZod = import_zod3.z.object({
4326
+ value: import_zod3.z.string()
4428
4327
  }).transform((value) => (0, import_bignumber6.default)(value.value).shiftedBy(-9).toNumber());
4429
4328
  var getLoyaltyProgramInformations = async (query, veScaKey) => {
4430
4329
  const rewardPool = query.address.get("loyaltyProgram.rewardPool");
@@ -4535,10 +4434,10 @@ var ScallopUtils = class {
4535
4434
  * @param address - ScallopAddress instance.
4536
4435
  */
4537
4436
  async init(force = false, address) {
4538
- if (address && !this.address)
4539
- this.address = address;
4540
- if (force || !this.address.getAddresses()) {
4437
+ if (force || !this.address.getAddresses() || !address?.getAddresses()) {
4541
4438
  await this.address.read();
4439
+ } else {
4440
+ this.address = address;
4542
4441
  }
4543
4442
  }
4544
4443
  /**
@@ -4838,38 +4737,30 @@ var ScallopUtils = class {
4838
4737
  const priceId = this.address.get(
4839
4738
  `core.coins.${coinName}.oracle.pyth.feed`
4840
4739
  );
4841
- if (priceId) {
4842
- acc[coinName] = priceId;
4843
- }
4740
+ acc[coinName] = priceId;
4844
4741
  return acc;
4845
4742
  },
4846
4743
  {}
4847
4744
  );
4848
4745
  await Promise.allSettled(
4849
- Object.entries(priceIds).filter(([_, priceId]) => !!priceId).map(async ([coinName, priceId]) => {
4746
+ Object.entries(priceIds).map(async ([coinName, priceId]) => {
4850
4747
  const pythConnection = new import_pyth_sui_js.SuiPriceServiceConnection(endpoint);
4851
4748
  try {
4852
4749
  const feed = await this.cache.queryClient.fetchQuery({
4853
- queryKey: queryKeys.oracle.getPythLatestPriceFeed(
4854
- priceId,
4855
- endpoint
4856
- ),
4750
+ queryKey: queryKeys.oracle.getPythLatestPriceFeed(priceId),
4857
4751
  queryFn: async () => {
4858
4752
  return await pythConnection.getLatestPriceFeeds([priceId]) ?? [];
4859
4753
  }
4860
4754
  });
4861
4755
  if (feed[0]) {
4862
- const data = parseDataFromPythPriceFeed(
4863
- feed[0],
4864
- this.address
4865
- );
4756
+ const data = parseDataFromPythPriceFeed(feed[0], this.address);
4866
4757
  this._priceMap.set(coinName, {
4867
4758
  price: data.price,
4868
4759
  publishTime: data.publishTime
4869
4760
  });
4870
4761
  coinPrices[coinName] = data.price;
4871
- failedRequests.delete(coinName);
4872
4762
  }
4763
+ failedRequests.delete(coinName);
4873
4764
  } catch (e) {
4874
4765
  console.warn(
4875
4766
  `Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
@@ -5878,13 +5769,14 @@ var generateBorrowIncentiveQuickMethod = ({ builder, txBlock }) => {
5878
5769
  );
5879
5770
  if (!obligationLocked || unstakeObligationBeforeStake) {
5880
5771
  const bindedVeScaKey = await builder.query.getBindedVeScaKey(obligationArg);
5881
- if (veScaKey && veScaKey !== bindedVeScaKey || !bindedVeScaKey) {
5772
+ const _veScaKey = bindedVeScaKey ?? veScaKey;
5773
+ if (!_veScaKey) {
5882
5774
  txBlock.stakeObligation(obligationArg, obligationKeyArg);
5883
5775
  } else {
5884
5776
  txBlock.stakeObligationWithVesca(
5885
5777
  obligationArg,
5886
5778
  obligationKeyArg,
5887
- bindedVeScaKey
5779
+ _veScaKey
5888
5780
  );
5889
5781
  }
5890
5782
  }
@@ -6718,6 +6610,14 @@ var ScallopIndexer = class {
6718
6610
  throw Error("Failed to getTotalValueLocked.");
6719
6611
  }
6720
6612
  }
6613
+ /**
6614
+ * Get coin price index data.
6615
+ *
6616
+ * @return price data.
6617
+ */
6618
+ async getCoinPrice(poolCoinName) {
6619
+ return (await this.getMarketPool(poolCoinName))?.coinPrice ?? 0;
6620
+ }
6721
6621
  };
6722
6622
 
6723
6623
  // src/queries/sCoinQuery.ts
@@ -6815,6 +6715,88 @@ var getSCoinSwapRate = async (query, fromSCoin, toSCoin, underlyingCoinPrice) =>
6815
6715
 
6816
6716
  // src/models/scallopQuery.ts
6817
6717
  var import_utils23 = require("@mysten/sui/utils");
6718
+
6719
+ // src/queries/isolatedAsset.ts
6720
+ var import_zod4 = require("zod");
6721
+ var isolatedAssetZod = import_zod4.z.object({
6722
+ dataType: import_zod4.z.string(),
6723
+ type: import_zod4.z.string(),
6724
+ hasPublicTransfer: import_zod4.z.boolean(),
6725
+ fields: import_zod4.z.object({
6726
+ id: import_zod4.z.object({
6727
+ id: import_zod4.z.string()
6728
+ }),
6729
+ name: import_zod4.z.object({
6730
+ type: import_zod4.z.string()
6731
+ }),
6732
+ value: import_zod4.z.boolean()
6733
+ })
6734
+ });
6735
+ var ISOLATED_ASSET_KEY = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::IsolatedAssetKey";
6736
+ var getIsolatedAssets = async (address) => {
6737
+ try {
6738
+ const marketObject = address.get("core.market");
6739
+ const isolatedAssets = [];
6740
+ if (!marketObject)
6741
+ return isolatedAssets;
6742
+ let hasNextPage = false;
6743
+ let nextCursor = null;
6744
+ const isIsolatedDynamicField = (dynamicField) => {
6745
+ return dynamicField.name.type === ISOLATED_ASSET_KEY;
6746
+ };
6747
+ do {
6748
+ const response = await address.cache.queryGetDynamicFields({
6749
+ parentId: marketObject,
6750
+ cursor: nextCursor,
6751
+ limit: 10
6752
+ });
6753
+ if (!response)
6754
+ break;
6755
+ const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
6756
+ isolatedAssets.push(...isolatedAssetCoinTypes);
6757
+ if (response && response.hasNextPage && response.nextCursor) {
6758
+ hasNextPage = true;
6759
+ nextCursor = response.nextCursor;
6760
+ } else {
6761
+ hasNextPage = false;
6762
+ }
6763
+ } while (hasNextPage);
6764
+ return isolatedAssets;
6765
+ } catch (e) {
6766
+ console.error(e);
6767
+ return [];
6768
+ }
6769
+ };
6770
+ var isIsolatedAsset = async (utils, coinName) => {
6771
+ try {
6772
+ const marketObject = utils.address.get("core.market");
6773
+ const cachedData = utils.address.cache.queryClient.getQueryData([
6774
+ "getDynamicFields",
6775
+ marketObject
6776
+ ]);
6777
+ if (cachedData) {
6778
+ const coinType2 = utils.parseCoinType(coinName);
6779
+ return cachedData.includes(coinType2);
6780
+ }
6781
+ const coinType = utils.parseCoinType(coinName).slice(2);
6782
+ const object = await utils.cache.queryGetDynamicFieldObject({
6783
+ parentId: marketObject,
6784
+ name: {
6785
+ type: ISOLATED_ASSET_KEY,
6786
+ value: coinType
6787
+ }
6788
+ });
6789
+ const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
6790
+ if (!parsedData.success)
6791
+ return false;
6792
+ return parsedData.data.fields.value;
6793
+ } catch (e) {
6794
+ console.error(e);
6795
+ return false;
6796
+ }
6797
+ };
6798
+
6799
+ // src/models/scallopQuery.ts
6818
6800
  var ScallopQuery = class {
6819
6801
  constructor(params, instance) {
6820
6802
  this.params = params;
@@ -6884,11 +6866,10 @@ var ScallopQuery = class {
6884
6866
  * @param address - ScallopAddress instance.
6885
6867
  */
6886
6868
  async init(force = false, address) {
6887
- if (address && !this.address) {
6888
- this.address = address;
6889
- }
6890
- if (force || !this.address.getAddresses()) {
6869
+ if (force || !this.address.getAddresses() || !address?.getAddresses()) {
6891
6870
  await this.address.read();
6871
+ } else {
6872
+ this.address = address;
6892
6873
  }
6893
6874
  await this.utils.init(force, this.address);
6894
6875
  }
@@ -7345,6 +7326,14 @@ var ScallopQuery = class {
7345
7326
  async isIsolatedAsset(assetCoinName) {
7346
7327
  return isIsolatedAsset(this.utils, assetCoinName);
7347
7328
  }
7329
+ /**
7330
+ * Get pool coin price from indexer
7331
+ * @param coinName
7332
+ * @returns price data
7333
+ */
7334
+ async getCoinPriceByIndexer(poolName) {
7335
+ return this.indexer.getCoinPrice(poolName);
7336
+ }
7348
7337
  };
7349
7338
 
7350
7339
  // src/models/scallopBuilder.ts
@@ -7397,10 +7386,10 @@ var ScallopBuilder = class {
7397
7386
  * @param address - ScallopAddress instance.
7398
7387
  */
7399
7388
  async init(force = false, address) {
7400
- if (address && !this.address)
7401
- this.address = address;
7402
- if (force || !this.address.getAddresses()) {
7389
+ if (force || !this.address.getAddresses() || !address?.getAddresses()) {
7403
7390
  await this.address.read();
7391
+ } else {
7392
+ this.address = address;
7404
7393
  }
7405
7394
  await this.query.init(force, this.address);
7406
7395
  await this.utils.init(force, this.address);
@@ -7785,7 +7774,7 @@ var ScallopClient = class {
7785
7774
  );
7786
7775
  txBlock.transferObjects([coin], sender);
7787
7776
  if (sign && availableStake) {
7788
- await txBlock.stakeObligationQuick(obligationId, obligationKey);
7777
+ await txBlock.stakeObligationWithVeScaQuick(obligationId, obligationKey);
7789
7778
  }
7790
7779
  if (sign) {
7791
7780
  return await this.suiKit.signAndSendTxn(
@@ -7815,7 +7804,7 @@ var ScallopClient = class {
7815
7804
  }
7816
7805
  await txBlock.repayQuick(amount, poolCoinName, obligationId);
7817
7806
  if (sign && availableStake) {
7818
- await txBlock.stakeObligationQuick(obligationId, obligationKey);
7807
+ await txBlock.stakeObligationWithVeScaQuick(obligationId, obligationKey);
7819
7808
  }
7820
7809
  if (sign) {
7821
7810
  return await this.suiKit.signAndSendTxn(
@@ -7962,7 +7951,7 @@ var ScallopClient = class {
7962
7951
  const txBlock = this.builder.createTxBlock();
7963
7952
  const sender = walletAddress || this.walletAddress;
7964
7953
  txBlock.setSender(sender);
7965
- await txBlock.stakeObligationQuick(obligationId, obligationKeyId);
7954
+ await txBlock.stakeObligationWithVeScaQuick(obligationId, obligationKeyId);
7966
7955
  if (sign) {
7967
7956
  return await this.suiKit.signAndSendTxn(
7968
7957
  txBlock
@@ -8315,7 +8304,6 @@ var Scallop = class {
8315
8304
  ScallopIndexer,
8316
8305
  ScallopQuery,
8317
8306
  ScallopUtils,
8318
- TEST_ADDRESSES,
8319
8307
  UNLOCK_ROUND_DURATION,
8320
8308
  USE_TEST_ADDRESS,
8321
8309
  assetCoins,