@scallop-io/sui-scallop-sdk 1.3.2-alpha.3 → 1.3.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/queryKeys.d.ts +3 -5
- package/dist/index.js +830 -789
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1309 -1269
- package/dist/index.mjs.map +1 -1
- package/dist/types/query/core.d.ts +1 -0
- package/package.json +1 -2
- package/src/builders/spoolBuilder.ts +4 -0
- package/src/constants/enum.ts +8 -3
- package/src/constants/index.ts +1 -0
- package/src/constants/queryKeys.ts +3 -6
- package/src/constants/testAddress.ts +74 -33
- package/src/models/scallopBuilder.ts +2 -3
- package/src/models/scallopClient.ts +4 -4
- package/src/models/scallopQuery.ts +4 -3
- package/src/models/scallopUtils.ts +39 -26
- package/src/queries/coreQuery.ts +221 -213
- package/src/queries/isolatedAsset.ts +4 -4
- package/src/queries/referralQuery.ts +0 -1
- package/src/queries/sCoinQuery.ts +1 -1
- package/src/queries/spoolQuery.ts +76 -79
- package/src/queries/vescaQuery.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,18 @@ 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
344
|
ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
|
|
342
|
-
|
|
343
|
-
|
|
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
|
+
),
|
|
344
352
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
345
353
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
346
354
|
shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
@@ -423,10 +431,7 @@ var queryKeys = {
|
|
|
423
431
|
"getDynamicFieldObject",
|
|
424
432
|
{
|
|
425
433
|
parentId: input?.parentId,
|
|
426
|
-
name:
|
|
427
|
-
type: input?.name?.type,
|
|
428
|
-
value: input?.name?.value
|
|
429
|
-
}
|
|
434
|
+
name: JSON.stringify(input?.name ?? void 0)
|
|
430
435
|
}
|
|
431
436
|
],
|
|
432
437
|
getTotalVeScaTreasuryAmount: (refreshArgs, vescaAmountArgs) => [
|
|
@@ -444,10 +449,10 @@ var queryKeys = {
|
|
|
444
449
|
]
|
|
445
450
|
},
|
|
446
451
|
oracle: {
|
|
447
|
-
getPythLatestPriceFeed: (pythPriceId) => [
|
|
452
|
+
getPythLatestPriceFeed: (pythPriceId, endpoint) => [
|
|
448
453
|
"oracle",
|
|
449
454
|
"getPythPriceId",
|
|
450
|
-
{ pythPriceId }
|
|
455
|
+
{ pythPriceId, endpoint }
|
|
451
456
|
]
|
|
452
457
|
}
|
|
453
458
|
};
|
|
@@ -459,70 +464,494 @@ var MAX_LOCK_DURATION = MAX_LOCK_ROUNDS * UNLOCK_ROUND_DURATION;
|
|
|
459
464
|
var MIN_INITIAL_LOCK_AMOUNT = 1e10;
|
|
460
465
|
var MIN_TOP_UP_AMOUNT = 1e9;
|
|
461
466
|
|
|
462
|
-
// src/
|
|
463
|
-
var
|
|
464
|
-
|
|
465
|
-
//
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
//
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
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
|
+
// src/models/scallop.ts
|
|
892
|
+
var import_sui_kit16 = require("@scallop-io/sui-kit");
|
|
893
|
+
|
|
894
|
+
// src/models/scallopAddress.ts
|
|
895
|
+
var import_sui_kit2 = require("@scallop-io/sui-kit");
|
|
896
|
+
|
|
897
|
+
// src/models/scallopCache.ts
|
|
898
|
+
var import_query_core = require("@tanstack/query-core");
|
|
899
|
+
var import_sui_kit = require("@scallop-io/sui-kit");
|
|
900
|
+
|
|
901
|
+
// src/constants/cache.ts
|
|
902
|
+
var DEFAULT_CACHE_OPTIONS = {
|
|
903
|
+
defaultOptions: {
|
|
904
|
+
queries: {
|
|
905
|
+
staleTime: 5e3,
|
|
906
|
+
gcTime: 5e3
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
};
|
|
910
|
+
|
|
911
|
+
// src/utils/builder.ts
|
|
912
|
+
var requireSender = (txBlock) => {
|
|
913
|
+
const sender = txBlock.blockData.sender;
|
|
914
|
+
if (!sender) {
|
|
915
|
+
throw new Error("Sender is required");
|
|
916
|
+
}
|
|
917
|
+
return sender;
|
|
918
|
+
};
|
|
919
|
+
var checkVesca = (prevUnlockAtInMillisTimestamp) => {
|
|
920
|
+
if (prevUnlockAtInMillisTimestamp === void 0) {
|
|
921
|
+
throw new Error("veSca not found");
|
|
922
|
+
}
|
|
923
|
+
};
|
|
924
|
+
var checkVescaExpired = (prevUnlockAtInMillisTimestamp) => {
|
|
925
|
+
if (prevUnlockAtInMillisTimestamp <= (/* @__PURE__ */ new Date()).getTime()) {
|
|
926
|
+
throw new Error("veSca is expired, use renewExpiredVeScaQuick instead");
|
|
927
|
+
}
|
|
928
|
+
};
|
|
929
|
+
var checkExtendLockPeriod = (lockPeriodInDays, newUnlockAtInSecondTimestamp, prevUnlockAtInMillisTimestamp) => {
|
|
930
|
+
checkVesca(prevUnlockAtInMillisTimestamp);
|
|
931
|
+
checkVescaExpired(prevUnlockAtInMillisTimestamp);
|
|
932
|
+
const prevUnlockAtInSecondTimestamp = Math.floor(
|
|
933
|
+
prevUnlockAtInMillisTimestamp / 1e3
|
|
934
|
+
);
|
|
935
|
+
if (lockPeriodInDays < 1) {
|
|
936
|
+
throw new Error("Minimum lock period is 1 day");
|
|
937
|
+
}
|
|
938
|
+
const availableLockPeriodInDays = Math.floor(
|
|
939
|
+
(newUnlockAtInSecondTimestamp - prevUnlockAtInSecondTimestamp) / UNLOCK_ROUND_DURATION
|
|
940
|
+
);
|
|
941
|
+
if (lockPeriodInDays > availableLockPeriodInDays) {
|
|
942
|
+
throw new Error(
|
|
943
|
+
`Cannot extend lock period by ${lockPeriodInDays} days, maximum lock period is ~4 years (${MAX_LOCK_ROUNDS} days), remaining lock period is ${MAX_LOCK_ROUNDS - availableLockPeriodInDays}`
|
|
944
|
+
);
|
|
945
|
+
}
|
|
946
|
+
};
|
|
947
|
+
var checkLockSca = (scaAmountOrCoin, lockPeriodInDays, newUnlockAtInSecondTimestamp, prevUnlockAtInMillisTimestamp) => {
|
|
948
|
+
const prevUnlockAtInSecondTimestamp = prevUnlockAtInMillisTimestamp ? Math.floor(prevUnlockAtInMillisTimestamp / 1e3) : void 0;
|
|
949
|
+
const isInitialLock = !prevUnlockAtInSecondTimestamp;
|
|
950
|
+
const isLockExpired = !isInitialLock && prevUnlockAtInSecondTimestamp * 1e3 <= (/* @__PURE__ */ new Date()).getTime();
|
|
951
|
+
if (isInitialLock || isLockExpired) {
|
|
952
|
+
if (scaAmountOrCoin !== void 0 && lockPeriodInDays !== void 0) {
|
|
953
|
+
if (lockPeriodInDays <= 0) {
|
|
954
|
+
throw new Error("Lock period must be greater than 0");
|
|
526
955
|
}
|
|
527
956
|
if (typeof scaAmountOrCoin === "number" && scaAmountOrCoin < MIN_INITIAL_LOCK_AMOUNT) {
|
|
528
957
|
throw new Error(
|
|
@@ -1200,491 +1629,99 @@ var ScallopCache = class {
|
|
|
1200
1629
|
});
|
|
1201
1630
|
}
|
|
1202
1631
|
/**
|
|
1203
|
-
* @description Provides cache for getObjects of the SuiKit.
|
|
1204
|
-
* @param objectIds
|
|
1205
|
-
* @returns Promise<SuiObjectData[]>
|
|
1206
|
-
*/
|
|
1207
|
-
async queryGetObjects(objectIds, options = {
|
|
1208
|
-
showContent: true
|
|
1209
|
-
}) {
|
|
1210
|
-
if (objectIds.length === 0)
|
|
1211
|
-
return [];
|
|
1212
|
-
return this.queryClient.fetchQuery({
|
|
1213
|
-
queryKey: queryKeys.rpc.getObjects(
|
|
1214
|
-
objectIds,
|
|
1215
|
-
this.walletAddress,
|
|
1216
|
-
options
|
|
1217
|
-
),
|
|
1218
|
-
queryFn: async () => {
|
|
1219
|
-
return await callWithRateLimit(
|
|
1220
|
-
this.tokenBucket,
|
|
1221
|
-
() => this.suiKit.getObjects(objectIds, options)
|
|
1222
|
-
);
|
|
1223
|
-
}
|
|
1224
|
-
});
|
|
1225
|
-
}
|
|
1226
|
-
/**
|
|
1227
|
-
* @description Provides cache for getOwnedObjects of the SuiKit.
|
|
1228
|
-
* @param input
|
|
1229
|
-
* @returns Promise<PaginatedObjectsResponse>
|
|
1230
|
-
*/
|
|
1231
|
-
async queryGetOwnedObjects(input) {
|
|
1232
|
-
return this.queryClient.fetchQuery({
|
|
1233
|
-
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1234
|
-
queryFn: async () => {
|
|
1235
|
-
return await callWithRateLimit(
|
|
1236
|
-
this.tokenBucket,
|
|
1237
|
-
() => this.client.getOwnedObjects(input)
|
|
1238
|
-
);
|
|
1239
|
-
}
|
|
1240
|
-
});
|
|
1241
|
-
}
|
|
1242
|
-
async queryGetDynamicFields(input) {
|
|
1243
|
-
return this.queryClient.fetchQuery({
|
|
1244
|
-
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1245
|
-
queryFn: async () => {
|
|
1246
|
-
return await callWithRateLimit(
|
|
1247
|
-
this.tokenBucket,
|
|
1248
|
-
() => this.client.getDynamicFields(input)
|
|
1249
|
-
);
|
|
1250
|
-
}
|
|
1251
|
-
});
|
|
1252
|
-
}
|
|
1253
|
-
async queryGetDynamicFieldObject(input) {
|
|
1254
|
-
return this.queryClient.fetchQuery({
|
|
1255
|
-
queryKey: queryKeys.rpc.getDynamicFieldObject(input),
|
|
1256
|
-
queryFn: async () => {
|
|
1257
|
-
return await callWithRateLimit(
|
|
1258
|
-
this.tokenBucket,
|
|
1259
|
-
() => this.client.getDynamicFieldObject(input)
|
|
1260
|
-
);
|
|
1261
|
-
}
|
|
1262
|
-
});
|
|
1263
|
-
}
|
|
1264
|
-
async queryGetAllCoinBalances(owner) {
|
|
1265
|
-
return this.queryClient.fetchQuery({
|
|
1266
|
-
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1267
|
-
queryFn: async () => {
|
|
1268
|
-
const allBalances = await callWithRateLimit(
|
|
1269
|
-
this.tokenBucket,
|
|
1270
|
-
() => this.client.getAllBalances({ owner })
|
|
1271
|
-
);
|
|
1272
|
-
if (!allBalances)
|
|
1273
|
-
return {};
|
|
1274
|
-
const balances = allBalances.reduce(
|
|
1275
|
-
(acc, coinBalance) => {
|
|
1276
|
-
if (coinBalance.totalBalance !== "0") {
|
|
1277
|
-
acc[(0, import_sui_kit.normalizeStructTag)(coinBalance.coinType)] = coinBalance.totalBalance;
|
|
1278
|
-
}
|
|
1279
|
-
return acc;
|
|
1280
|
-
},
|
|
1281
|
-
{}
|
|
1282
|
-
);
|
|
1283
|
-
return balances;
|
|
1284
|
-
}
|
|
1285
|
-
});
|
|
1286
|
-
}
|
|
1287
|
-
async queryGetCoinBalance(input) {
|
|
1288
|
-
if (!input.coinType)
|
|
1289
|
-
return "0";
|
|
1290
|
-
return (await this.queryGetAllCoinBalances(input.owner) || {})[(0, import_sui_kit.normalizeStructTag)(input.coinType)] ?? "0";
|
|
1291
|
-
}
|
|
1292
|
-
};
|
|
1293
|
-
|
|
1294
|
-
// src/models/scallopAddress.ts
|
|
1295
|
-
var import_axios = __toESM(require("axios"));
|
|
1296
|
-
|
|
1297
|
-
// src/constants/testAddress.ts
|
|
1298
|
-
var TEST_ADDRESSES = {
|
|
1299
|
-
core: {
|
|
1300
|
-
// version:
|
|
1301
|
-
// '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
|
|
1302
|
-
version: "0x6156d5cd1538bec8a167a40fe1209a4ec9cf8137921fe0a697f191ac561f0b09",
|
|
1303
|
-
versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
|
|
1304
|
-
// object:
|
|
1305
|
-
// '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
|
|
1306
|
-
object: "0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1",
|
|
1307
|
-
// market:
|
|
1308
|
-
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
1309
|
-
market: "0x8606ed145cc887985b8ed793f7753ff5dc762a42c379dac035f568e1bac58490",
|
|
1310
|
-
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
1311
|
-
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
1312
|
-
// obligationAccessStore:
|
|
1313
|
-
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
1314
|
-
obligationAccessStore: "0x48b472d68ca910c45f7f3b6c26836b6aa6d2569810d94b1b939023da05ae0a23",
|
|
1315
|
-
coins: {
|
|
1316
|
-
cetus: {
|
|
1317
|
-
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
1318
|
-
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
1319
|
-
treasury: "",
|
|
1320
|
-
oracle: {
|
|
1321
|
-
supra: "",
|
|
1322
|
-
switchboard: "",
|
|
1323
|
-
pyth: {
|
|
1324
|
-
feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
|
|
1325
|
-
feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
|
|
1326
|
-
}
|
|
1327
|
-
}
|
|
1328
|
-
},
|
|
1329
|
-
wapt: {
|
|
1330
|
-
id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
1331
|
-
metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
|
|
1332
|
-
treasury: "",
|
|
1333
|
-
oracle: {
|
|
1334
|
-
supra: "",
|
|
1335
|
-
switchboard: "",
|
|
1336
|
-
pyth: {
|
|
1337
|
-
feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
|
|
1338
|
-
feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
|
|
1339
|
-
}
|
|
1340
|
-
}
|
|
1341
|
-
},
|
|
1342
|
-
wsol: {
|
|
1343
|
-
id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
1344
|
-
metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
|
|
1345
|
-
treasury: "",
|
|
1346
|
-
oracle: {
|
|
1347
|
-
supra: "",
|
|
1348
|
-
switchboard: "",
|
|
1349
|
-
pyth: {
|
|
1350
|
-
feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
|
|
1351
|
-
feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
|
|
1352
|
-
}
|
|
1353
|
-
}
|
|
1354
|
-
},
|
|
1355
|
-
wbtc: {
|
|
1356
|
-
id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
1357
|
-
metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
|
|
1358
|
-
treasury: "",
|
|
1359
|
-
oracle: {
|
|
1360
|
-
supra: "",
|
|
1361
|
-
switchboard: "",
|
|
1362
|
-
pyth: {
|
|
1363
|
-
feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
|
|
1364
|
-
feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
|
|
1365
|
-
}
|
|
1366
|
-
}
|
|
1367
|
-
},
|
|
1368
|
-
weth: {
|
|
1369
|
-
id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
1370
|
-
metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
|
|
1371
|
-
treasury: "",
|
|
1372
|
-
oracle: {
|
|
1373
|
-
supra: "",
|
|
1374
|
-
switchboard: "",
|
|
1375
|
-
pyth: {
|
|
1376
|
-
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
1377
|
-
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
1378
|
-
}
|
|
1379
|
-
}
|
|
1380
|
-
},
|
|
1381
|
-
wusdc: {
|
|
1382
|
-
id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
1383
|
-
metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
|
|
1384
|
-
treasury: "",
|
|
1385
|
-
oracle: {
|
|
1386
|
-
supra: "",
|
|
1387
|
-
switchboard: "",
|
|
1388
|
-
pyth: {
|
|
1389
|
-
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
1390
|
-
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
1391
|
-
}
|
|
1392
|
-
}
|
|
1393
|
-
},
|
|
1394
|
-
wusdt: {
|
|
1395
|
-
id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
1396
|
-
metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
|
|
1397
|
-
treasury: "",
|
|
1398
|
-
oracle: {
|
|
1399
|
-
supra: "",
|
|
1400
|
-
switchboard: "",
|
|
1401
|
-
pyth: {
|
|
1402
|
-
feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
|
1403
|
-
feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
},
|
|
1407
|
-
sui: {
|
|
1408
|
-
id: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
1409
|
-
metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
|
|
1410
|
-
treasury: "",
|
|
1411
|
-
oracle: {
|
|
1412
|
-
supra: "",
|
|
1413
|
-
switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
|
|
1414
|
-
pyth: {
|
|
1415
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1416
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1417
|
-
}
|
|
1418
|
-
}
|
|
1419
|
-
},
|
|
1420
|
-
afsui: {
|
|
1421
|
-
id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
1422
|
-
metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
|
|
1423
|
-
treasury: "",
|
|
1424
|
-
oracle: {
|
|
1425
|
-
supra: "",
|
|
1426
|
-
switchboard: "",
|
|
1427
|
-
pyth: {
|
|
1428
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1429
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1430
|
-
}
|
|
1431
|
-
}
|
|
1432
|
-
},
|
|
1433
|
-
hasui: {
|
|
1434
|
-
id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
1435
|
-
metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
|
|
1436
|
-
treasury: "",
|
|
1437
|
-
oracle: {
|
|
1438
|
-
supra: "",
|
|
1439
|
-
switchboard: "",
|
|
1440
|
-
pyth: {
|
|
1441
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1442
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1443
|
-
}
|
|
1444
|
-
}
|
|
1445
|
-
},
|
|
1446
|
-
vsui: {
|
|
1447
|
-
id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
1448
|
-
metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
|
|
1449
|
-
treasury: "",
|
|
1450
|
-
oracle: {
|
|
1451
|
-
supra: "",
|
|
1452
|
-
switchboard: "",
|
|
1453
|
-
pyth: {
|
|
1454
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1455
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1456
|
-
}
|
|
1457
|
-
}
|
|
1458
|
-
},
|
|
1459
|
-
sca: {
|
|
1460
|
-
id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
1461
|
-
metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
|
|
1462
|
-
treasury: "",
|
|
1463
|
-
oracle: {
|
|
1464
|
-
supra: "",
|
|
1465
|
-
switchboard: "",
|
|
1466
|
-
pyth: {
|
|
1467
|
-
feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
1468
|
-
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
1469
|
-
}
|
|
1470
|
-
}
|
|
1471
|
-
}
|
|
1472
|
-
},
|
|
1473
|
-
oracles: {
|
|
1474
|
-
xOracle: "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
|
|
1475
|
-
xOracleCap: "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
|
|
1476
|
-
supra: { registry: "", registryCap: "", holder: "" },
|
|
1477
|
-
switchboard: { registry: "", registryCap: "" },
|
|
1478
|
-
pyth: {
|
|
1479
|
-
registry: "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
|
|
1480
|
-
registryCap: "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
|
|
1481
|
-
state: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
|
|
1482
|
-
wormhole: "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
|
|
1483
|
-
wormholeState: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
|
|
1484
|
-
}
|
|
1485
|
-
},
|
|
1486
|
-
packages: {
|
|
1487
|
-
coinDecimalsRegistry: {
|
|
1488
|
-
id: "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
|
|
1489
|
-
upgradeCap: "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
|
|
1490
|
-
},
|
|
1491
|
-
math: {
|
|
1492
|
-
id: "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
|
|
1493
|
-
upgradeCap: "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
|
|
1494
|
-
},
|
|
1495
|
-
whitelist: {
|
|
1496
|
-
id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
|
|
1497
|
-
upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
|
|
1498
|
-
},
|
|
1499
|
-
x: {
|
|
1500
|
-
id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
|
|
1501
|
-
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
1502
|
-
},
|
|
1503
|
-
protocol: {
|
|
1504
|
-
id: "0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1",
|
|
1505
|
-
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
1506
|
-
},
|
|
1507
|
-
// protocol: {
|
|
1508
|
-
// id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
1509
|
-
// upgradeCap:
|
|
1510
|
-
// '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
1511
|
-
// },
|
|
1512
|
-
protocolWhitelist: {
|
|
1513
|
-
id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
|
|
1514
|
-
upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
|
|
1515
|
-
},
|
|
1516
|
-
// query: {
|
|
1517
|
-
// id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
1518
|
-
// upgradeCap:
|
|
1519
|
-
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
1520
|
-
// },
|
|
1521
|
-
query: {
|
|
1522
|
-
id: "0xe4f9d62d17746d5b9dbf0d5557747430021a71575780b515161210cdba0a4c1c",
|
|
1523
|
-
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
1524
|
-
},
|
|
1525
|
-
supra: { id: "", upgradeCap: "" },
|
|
1526
|
-
pyth: {
|
|
1527
|
-
id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
|
|
1528
|
-
upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
|
|
1529
|
-
},
|
|
1530
|
-
switchboard: { id: "", upgradeCap: "" },
|
|
1531
|
-
xOracle: {
|
|
1532
|
-
id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
|
|
1533
|
-
upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
|
|
1534
|
-
},
|
|
1535
|
-
testCoin: { id: "", upgradeCap: "" }
|
|
1536
|
-
}
|
|
1537
|
-
},
|
|
1538
|
-
spool: {
|
|
1539
|
-
// id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
1540
|
-
id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1541
|
-
adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
|
|
1542
|
-
// object:
|
|
1543
|
-
// '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
1544
|
-
object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1545
|
-
pools: {
|
|
1546
|
-
sweth: {
|
|
1547
|
-
id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
1548
|
-
rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
1549
|
-
},
|
|
1550
|
-
ssui: {
|
|
1551
|
-
// id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
1552
|
-
id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
|
|
1553
|
-
rewardPoolId: (
|
|
1554
|
-
// '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
1555
|
-
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
1556
|
-
)
|
|
1557
|
-
},
|
|
1558
|
-
swusdc: {
|
|
1559
|
-
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
1560
|
-
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
1561
|
-
rewardPoolId: (
|
|
1562
|
-
// '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
1563
|
-
"0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
|
|
1564
|
-
)
|
|
1565
|
-
},
|
|
1566
|
-
swusdt: {
|
|
1567
|
-
// id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
1568
|
-
id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
|
|
1569
|
-
rewardPoolId: (
|
|
1570
|
-
// '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
1571
|
-
"0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
|
|
1572
|
-
)
|
|
1573
|
-
},
|
|
1574
|
-
scetus: {
|
|
1575
|
-
id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
1576
|
-
rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
1577
|
-
},
|
|
1578
|
-
safsui: {
|
|
1579
|
-
// id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
1580
|
-
id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
|
|
1581
|
-
rewardPoolId: (
|
|
1582
|
-
// '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
1583
|
-
"0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
|
|
1584
|
-
)
|
|
1585
|
-
},
|
|
1586
|
-
shasui: {
|
|
1587
|
-
// id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
1588
|
-
id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
|
|
1589
|
-
rewardPoolId: (
|
|
1590
|
-
// '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
1591
|
-
"0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
|
|
1592
|
-
)
|
|
1593
|
-
},
|
|
1594
|
-
svsui: {
|
|
1595
|
-
// id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
1596
|
-
id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
|
|
1597
|
-
rewardPoolId: (
|
|
1598
|
-
// '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
1599
|
-
"0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
|
|
1600
|
-
)
|
|
1632
|
+
* @description Provides cache for getObjects of the SuiKit.
|
|
1633
|
+
* @param objectIds
|
|
1634
|
+
* @returns Promise<SuiObjectData[]>
|
|
1635
|
+
*/
|
|
1636
|
+
async queryGetObjects(objectIds, options = {
|
|
1637
|
+
showContent: true
|
|
1638
|
+
}) {
|
|
1639
|
+
if (objectIds.length === 0)
|
|
1640
|
+
return [];
|
|
1641
|
+
return this.queryClient.fetchQuery({
|
|
1642
|
+
queryKey: queryKeys.rpc.getObjects(
|
|
1643
|
+
objectIds,
|
|
1644
|
+
this.walletAddress,
|
|
1645
|
+
options
|
|
1646
|
+
),
|
|
1647
|
+
queryFn: async () => {
|
|
1648
|
+
return await callWithRateLimit(
|
|
1649
|
+
this.tokenBucket,
|
|
1650
|
+
() => this.suiKit.getObjects(objectIds, options)
|
|
1651
|
+
);
|
|
1601
1652
|
}
|
|
1602
|
-
}
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
|
|
1618
|
-
referralBindings: "0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09",
|
|
1619
|
-
bindingTableId: "0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1",
|
|
1620
|
-
referralRevenuePool: "0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07",
|
|
1621
|
-
revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
|
|
1622
|
-
referralTiers: "0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e",
|
|
1623
|
-
tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
|
|
1624
|
-
// authorizedWitnessList:
|
|
1625
|
-
// '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
|
|
1626
|
-
authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
|
|
1627
|
-
version: "0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e"
|
|
1628
|
-
},
|
|
1629
|
-
vesca: {
|
|
1630
|
-
id: "0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4",
|
|
1631
|
-
object: "0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4",
|
|
1632
|
-
adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
|
|
1633
|
-
tableId: "0xe3153b2bf124be0b86cb8bd468346a861efd0da52fc42197b54d2f616488a311",
|
|
1634
|
-
table: "0x611cb8d9d4d90867467b5ebdf4cc447a0047ed5b01334a28a29fcfe733e3d609",
|
|
1635
|
-
treasury: "0xe8c112c09b88158dc6c8e23d1fbae5b3c7136cdee54b7dafc08e65db28c4a5bc",
|
|
1636
|
-
config: "0xe0a2ff281e73c1d53cfa85807080f87e833e4f1a7f93dcf8800b3865269a76b9"
|
|
1637
|
-
},
|
|
1638
|
-
loyaltyProgram: {
|
|
1639
|
-
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1640
|
-
object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1641
|
-
rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
|
|
1642
|
-
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
1643
|
-
},
|
|
1644
|
-
scoin: {
|
|
1645
|
-
id: "0xad2ca2aa5089df94bb2d444d5eb3520378c2f2dfb3a0bd2a2c994145ac4b0a53",
|
|
1646
|
-
coins: {
|
|
1647
|
-
ssui: {
|
|
1648
|
-
coinType: "0xfac769100bccc0caebcf4f4e2d00ac2f8883f07f724be28940df90605f5e7e9a::scallop_sui::SCALLOP_SUI",
|
|
1649
|
-
treasury: "0x9cb4551b36c17d37e19d700147fa819ea1c487ff8bcf18374de2cceb2e9d4845"
|
|
1650
|
-
},
|
|
1651
|
-
scetus: {
|
|
1652
|
-
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
1653
|
-
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
1654
|
-
},
|
|
1655
|
-
ssca: {
|
|
1656
|
-
coinType: "0x0a9d3c6c9af9f6e8def82921541bcbd17f73ed31bed3adcb684f2a4c267e42f0::scallop_sca::SCALLOP_SCA",
|
|
1657
|
-
treasury: "0xe818636d1d6c46d6ea1a2dce9d94696d7cbc18ce27451b603eeaa47aba8d75e0"
|
|
1658
|
-
},
|
|
1659
|
-
swusdc: {
|
|
1660
|
-
coinType: "0xaedc3ab75db8680b81a755015fa90124d217be93457b893c05bac033817defaf::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
1661
|
-
treasury: "0xfc6971648f867f7fd6928d1b873af71577e2eaf2c7543ef8bc82c431d833ae78"
|
|
1662
|
-
},
|
|
1663
|
-
swusdt: {
|
|
1664
|
-
coinType: "0xbf02fc87ddc104b342ad8414c85ceadf5b0c823c055a06fb0ed776272c01a52a::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
1665
|
-
treasury: "0xb9593e2c3a0ba796ee815012b75ae46468ea78cda0188b9ac6816efe65503521"
|
|
1666
|
-
},
|
|
1667
|
-
sweth: {
|
|
1668
|
-
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
1669
|
-
treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
|
|
1670
|
-
},
|
|
1671
|
-
safsui: {
|
|
1672
|
-
coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
|
|
1673
|
-
treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
|
|
1674
|
-
},
|
|
1675
|
-
shasui: {
|
|
1676
|
-
coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
1677
|
-
treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
|
|
1678
|
-
},
|
|
1679
|
-
svsui: {
|
|
1680
|
-
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
1681
|
-
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6\u0192"
|
|
1653
|
+
});
|
|
1654
|
+
}
|
|
1655
|
+
/**
|
|
1656
|
+
* @description Provides cache for getOwnedObjects of the SuiKit.
|
|
1657
|
+
* @param input
|
|
1658
|
+
* @returns Promise<PaginatedObjectsResponse>
|
|
1659
|
+
*/
|
|
1660
|
+
async queryGetOwnedObjects(input) {
|
|
1661
|
+
return this.queryClient.fetchQuery({
|
|
1662
|
+
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1663
|
+
queryFn: async () => {
|
|
1664
|
+
return await callWithRateLimit(
|
|
1665
|
+
this.tokenBucket,
|
|
1666
|
+
() => this.client.getOwnedObjects(input)
|
|
1667
|
+
);
|
|
1682
1668
|
}
|
|
1683
|
-
}
|
|
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
|
+
);
|
|
1679
|
+
}
|
|
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
|
+
);
|
|
1690
|
+
}
|
|
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;
|
|
1713
|
+
}
|
|
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";
|
|
1684
1720
|
}
|
|
1685
1721
|
};
|
|
1686
1722
|
|
|
1687
1723
|
// src/models/scallopAddress.ts
|
|
1724
|
+
var import_axios = __toESM(require("axios"));
|
|
1688
1725
|
var EMPTY_ADDRESSES = {
|
|
1689
1726
|
core: {
|
|
1690
1727
|
version: "",
|
|
@@ -2410,10 +2447,11 @@ var isolatedAssetZod = import_zod2.z.object({
|
|
|
2410
2447
|
value: import_zod2.z.boolean()
|
|
2411
2448
|
})
|
|
2412
2449
|
});
|
|
2413
|
-
var ISOLATED_ASSET_KEY = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::IsolatedAssetKey";
|
|
2414
2450
|
var getIsolatedAssets = async (address) => {
|
|
2415
2451
|
try {
|
|
2416
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`;
|
|
2417
2455
|
const isolatedAssets = [];
|
|
2418
2456
|
if (!marketObject)
|
|
2419
2457
|
return isolatedAssets;
|
|
@@ -2448,6 +2486,8 @@ var getIsolatedAssets = async (address) => {
|
|
|
2448
2486
|
var isIsolatedAsset = async (utils, coinName) => {
|
|
2449
2487
|
try {
|
|
2450
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`;
|
|
2451
2491
|
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
2452
2492
|
"getDynamicFields",
|
|
2453
2493
|
marketObject
|
|
@@ -2503,7 +2543,7 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2503
2543
|
const queryTarget = `${packageId}::market_query::market_data`;
|
|
2504
2544
|
const args = [marketId];
|
|
2505
2545
|
const queryResult = await query.cache.queryInspectTxn({ queryTarget, args });
|
|
2506
|
-
const marketData = queryResult?.events[0]
|
|
2546
|
+
const marketData = queryResult?.events[0]?.parsedJson;
|
|
2507
2547
|
for (const pool of marketData?.pools ?? []) {
|
|
2508
2548
|
const coinType = (0, import_utils3.normalizeStructTag)(pool.type.name);
|
|
2509
2549
|
const poolCoinName = query.utils.parseCoinNameFromType(coinType);
|
|
@@ -2559,6 +2599,7 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2559
2599
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2560
2600
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2561
2601
|
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2602
|
+
// isIsolated: false,
|
|
2562
2603
|
maxSupplyCoin,
|
|
2563
2604
|
...calculatedMarketPoolData
|
|
2564
2605
|
};
|
|
@@ -2597,6 +2638,7 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2597
2638
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2598
2639
|
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2599
2640
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2641
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2600
2642
|
...calculatedMarketCollateralData
|
|
2601
2643
|
};
|
|
2602
2644
|
}
|
|
@@ -2644,79 +2686,73 @@ var getMarketPools = async (query, poolCoinNames = [...SUPPORT_POOLS], indexer =
|
|
|
2644
2686
|
return marketPools;
|
|
2645
2687
|
};
|
|
2646
2688
|
var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, coinPrice) => {
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
name: {
|
|
2673
|
-
type: "0x1::type_name::TypeName",
|
|
2674
|
-
value: {
|
|
2675
|
-
name: coinType.substring(2)
|
|
2676
|
-
}
|
|
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)
|
|
2677
2714
|
}
|
|
2678
|
-
});
|
|
2679
|
-
if (!balanceSheetDynamicFieldObjectResponse)
|
|
2680
|
-
return void 0;
|
|
2681
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse.data;
|
|
2682
|
-
if (balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content) {
|
|
2683
|
-
const dynamicFields = balanceSheetDynamicFieldObject.content.fields;
|
|
2684
|
-
balanceSheet = dynamicFields.value.fields;
|
|
2685
2715
|
}
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
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)
|
|
2694
2730
|
}
|
|
2695
|
-
});
|
|
2696
|
-
if (!borrowIndexDynamicFieldObjectResponse)
|
|
2697
|
-
return void 0;
|
|
2698
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse.data;
|
|
2699
|
-
if (borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content) {
|
|
2700
|
-
const dynamicFields = borrowIndexDynamicFieldObject.content.fields;
|
|
2701
|
-
borrowIndex = dynamicFields.value.fields;
|
|
2702
2731
|
}
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
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)
|
|
2711
2746
|
}
|
|
2712
|
-
});
|
|
2713
|
-
if (!interestModelDynamicFieldObjectResponse)
|
|
2714
|
-
return void 0;
|
|
2715
|
-
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse.data;
|
|
2716
|
-
if (interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content) {
|
|
2717
|
-
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
2718
|
-
interestModel = dynamicFields.value.fields;
|
|
2719
2747
|
}
|
|
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 () => {
|
|
2720
2756
|
const borrowFeeDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2721
2757
|
parentId: marketId,
|
|
2722
2758
|
name: {
|
|
@@ -2728,16 +2764,11 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2728
2764
|
}
|
|
2729
2765
|
}
|
|
2730
2766
|
});
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
borrowFeeRate = dynamicFields.value.fields;
|
|
2737
|
-
}
|
|
2738
|
-
}
|
|
2739
|
-
}
|
|
2740
|
-
if (balanceSheet && borrowIndex && interestModel && (USE_TEST_ADDRESS || borrowFeeRate)) {
|
|
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
|
+
};
|
|
2741
2772
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
2742
2773
|
type: interestModel.type.fields,
|
|
2743
2774
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -2751,7 +2782,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2751
2782
|
reserve: balanceSheet.revenue,
|
|
2752
2783
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
2753
2784
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
2754
|
-
borrowFeeRate:
|
|
2785
|
+
borrowFeeRate: await getBorrowFee(),
|
|
2755
2786
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
2756
2787
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
2757
2788
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -2767,7 +2798,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2767
2798
|
const maxSupplyCoin = (0, import_bignumber2.default)(
|
|
2768
2799
|
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2769
2800
|
).shiftedBy(-coinDecimal).toNumber();
|
|
2770
|
-
|
|
2801
|
+
return {
|
|
2771
2802
|
coinName: poolCoinName,
|
|
2772
2803
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
2773
2804
|
coinType: query.utils.parseCoinType(poolCoinName),
|
|
@@ -2787,10 +2818,12 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2787
2818
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2788
2819
|
maxSupplyCoin,
|
|
2789
2820
|
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2821
|
+
// isIsolated: false,
|
|
2790
2822
|
...calculatedMarketPoolData
|
|
2791
2823
|
};
|
|
2824
|
+
} catch (e) {
|
|
2825
|
+
console.error(e);
|
|
2792
2826
|
}
|
|
2793
|
-
return marketPool;
|
|
2794
2827
|
};
|
|
2795
2828
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
2796
2829
|
const marketId = query.address.get("core.market");
|
|
@@ -2839,85 +2872,76 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
2839
2872
|
);
|
|
2840
2873
|
return marketCollateralIndexer;
|
|
2841
2874
|
}
|
|
2842
|
-
let marketCollateral;
|
|
2843
|
-
let riskModel;
|
|
2844
|
-
let collateralStat;
|
|
2845
2875
|
const marketId = query.address.get("core.market");
|
|
2846
2876
|
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
2847
2877
|
showContent: true
|
|
2848
2878
|
}))?.data;
|
|
2849
|
-
if (marketObject)
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
}
|
|
2861
|
-
}
|
|
2862
|
-
});
|
|
2863
|
-
if (!riskModelDynamicFieldObjectResponse)
|
|
2864
|
-
return void 0;
|
|
2865
|
-
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse.data;
|
|
2866
|
-
if (riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content) {
|
|
2867
|
-
const dynamicFields = riskModelDynamicFieldObject.content.fields;
|
|
2868
|
-
riskModel = dynamicFields.value.fields;
|
|
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)
|
|
2869
2890
|
}
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
collateralStat = dynamicFields.value.fields;
|
|
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)
|
|
2886
2906
|
}
|
|
2887
2907
|
}
|
|
2888
|
-
}
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
2894
|
-
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
2895
|
-
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
2896
|
-
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
2897
|
-
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
2898
|
-
totalCollateralAmount: collateralStat.amount
|
|
2899
|
-
});
|
|
2900
|
-
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2901
|
-
query.utils,
|
|
2902
|
-
parsedMarketCollateralData
|
|
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()}`
|
|
2903
2913
|
);
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
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
|
+
};
|
|
2921
2945
|
};
|
|
2922
2946
|
var getObligations = async ({
|
|
2923
2947
|
address
|
|
@@ -3145,6 +3169,9 @@ var getSpools = async (query, stakeMarketCoinNames = [...SUPPORT_SPOOLS], indexe
|
|
|
3145
3169
|
var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPrices) => {
|
|
3146
3170
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
3147
3171
|
marketPool = marketPool || await query.getMarketPool(coinName, indexer);
|
|
3172
|
+
if (!marketPool) {
|
|
3173
|
+
throw new Error("Failed to fetch marketPool");
|
|
3174
|
+
}
|
|
3148
3175
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
3149
3176
|
const rewardPoolId = query.address.get(
|
|
3150
3177
|
`spool.pools.${marketCoinName}.rewardPoolId`
|
|
@@ -3154,10 +3181,10 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
|
|
|
3154
3181
|
if (indexer) {
|
|
3155
3182
|
const spoolIndexer = await query.indexer.getSpool(marketCoinName);
|
|
3156
3183
|
const coinName2 = query.utils.parseCoinName(marketCoinName);
|
|
3157
|
-
const
|
|
3184
|
+
const rewardCoinName2 = query.utils.getSpoolRewardCoinName(marketCoinName);
|
|
3158
3185
|
spoolIndexer.coinPrice = coinPrices?.[coinName2] || spoolIndexer.coinPrice;
|
|
3159
3186
|
spoolIndexer.marketCoinPrice = (coinPrices?.[coinName2] ?? 0) * (marketPool ? marketPool.conversionRate : 0) || spoolIndexer.marketCoinPrice;
|
|
3160
|
-
spoolIndexer.rewardCoinPrice = coinPrices?.[
|
|
3187
|
+
spoolIndexer.rewardCoinPrice = coinPrices?.[rewardCoinName2] || spoolIndexer.rewardCoinPrice;
|
|
3161
3188
|
return spoolIndexer;
|
|
3162
3189
|
}
|
|
3163
3190
|
const spoolObjectResponse = await query.cache.queryGetObjects(
|
|
@@ -3166,70 +3193,71 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
|
|
|
3166
3193
|
showContent: true
|
|
3167
3194
|
}
|
|
3168
3195
|
);
|
|
3169
|
-
if (
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3196
|
+
if (!(spoolObjectResponse[0] && spoolObjectResponse[1])) {
|
|
3197
|
+
throw new Error("Fail to fetch spoolObjectResponse!");
|
|
3198
|
+
}
|
|
3199
|
+
const rewardCoinName = query.utils.getSpoolRewardCoinName(marketCoinName);
|
|
3200
|
+
coinPrices = coinPrices || await query.utils.getCoinPrices([coinName, rewardCoinName]);
|
|
3201
|
+
const spoolObject = spoolObjectResponse[0];
|
|
3202
|
+
const rewardPoolObject = spoolObjectResponse[1];
|
|
3203
|
+
if (spoolObject.content && "fields" in spoolObject.content) {
|
|
3204
|
+
const spoolFields = spoolObject.content.fields;
|
|
3205
|
+
const parsedSpoolData = parseOriginSpoolData({
|
|
3206
|
+
stakeType: spoolFields.stake_type,
|
|
3207
|
+
maxDistributedPoint: spoolFields.max_distributed_point,
|
|
3208
|
+
distributedPoint: spoolFields.distributed_point,
|
|
3209
|
+
distributedPointPerPeriod: spoolFields.distributed_point_per_period,
|
|
3210
|
+
pointDistributionTime: spoolFields.point_distribution_time,
|
|
3211
|
+
maxStake: spoolFields.max_stakes,
|
|
3212
|
+
stakes: spoolFields.stakes,
|
|
3213
|
+
index: spoolFields.index,
|
|
3214
|
+
createdAt: spoolFields.created_at,
|
|
3215
|
+
lastUpdate: spoolFields.last_update
|
|
3216
|
+
});
|
|
3217
|
+
const marketCoinPrice = (coinPrices?.[coinName] ?? 0) * marketPool.conversionRate;
|
|
3218
|
+
const marketCoinDecimal = query.utils.getCoinDecimal(marketCoinName);
|
|
3219
|
+
const calculatedSpoolData = calculateSpoolData(
|
|
3220
|
+
parsedSpoolData,
|
|
3221
|
+
marketCoinPrice,
|
|
3222
|
+
marketCoinDecimal
|
|
3223
|
+
);
|
|
3224
|
+
if (rewardPoolObject.content && "fields" in rewardPoolObject.content) {
|
|
3225
|
+
const rewardPoolFields = rewardPoolObject.content.fields;
|
|
3226
|
+
const parsedSpoolRewardPoolData = parseOriginSpoolRewardPoolData({
|
|
3227
|
+
claimed_rewards: rewardPoolFields.claimed_rewards,
|
|
3228
|
+
exchange_rate_numerator: rewardPoolFields.exchange_rate_numerator,
|
|
3229
|
+
exchange_rate_denominator: rewardPoolFields.exchange_rate_denominator,
|
|
3230
|
+
rewards: rewardPoolFields.rewards,
|
|
3231
|
+
spool_id: rewardPoolFields.spool_id
|
|
3187
3232
|
});
|
|
3188
|
-
const
|
|
3189
|
-
const
|
|
3190
|
-
const
|
|
3233
|
+
const rewardCoinPrice = coinPrices?.[rewardCoinName] ?? 0;
|
|
3234
|
+
const rewardCoinDecimal = query.utils.getCoinDecimal(rewardCoinName);
|
|
3235
|
+
const calculatedRewardPoolData = calculateSpoolRewardPoolData(
|
|
3191
3236
|
parsedSpoolData,
|
|
3237
|
+
parsedSpoolRewardPoolData,
|
|
3238
|
+
calculatedSpoolData,
|
|
3239
|
+
rewardCoinPrice,
|
|
3240
|
+
rewardCoinDecimal
|
|
3241
|
+
);
|
|
3242
|
+
spool = {
|
|
3243
|
+
marketCoinName,
|
|
3244
|
+
symbol: query.utils.parseSymbol(marketCoinName),
|
|
3245
|
+
coinType: query.utils.parseCoinType(coinName),
|
|
3246
|
+
marketCoinType: query.utils.parseMarketCoinType(coinName),
|
|
3247
|
+
rewardCoinType: isMarketCoin(rewardCoinName) ? query.utils.parseMarketCoinType(rewardCoinName) : query.utils.parseCoinType(rewardCoinName),
|
|
3248
|
+
coinDecimal: query.utils.getCoinDecimal(coinName),
|
|
3249
|
+
rewardCoinDecimal: query.utils.getCoinDecimal(rewardCoinName),
|
|
3250
|
+
coinPrice: coinPrices?.[coinName] ?? 0,
|
|
3192
3251
|
marketCoinPrice,
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
spool_id: rewardPoolFields.spool_id
|
|
3203
|
-
});
|
|
3204
|
-
const rewardCoinPrice = coinPrices?.[rewardCoinName] ?? 0;
|
|
3205
|
-
const rewardCoinDecimal = query.utils.getCoinDecimal(rewardCoinName);
|
|
3206
|
-
const calculatedRewardPoolData = calculateSpoolRewardPoolData(
|
|
3207
|
-
parsedSpoolData,
|
|
3208
|
-
parsedSpoolRewardPoolData,
|
|
3209
|
-
calculatedSpoolData,
|
|
3210
|
-
rewardCoinPrice,
|
|
3211
|
-
rewardCoinDecimal
|
|
3212
|
-
);
|
|
3213
|
-
spool = {
|
|
3214
|
-
marketCoinName,
|
|
3215
|
-
symbol: query.utils.parseSymbol(marketCoinName),
|
|
3216
|
-
coinType: query.utils.parseCoinType(coinName),
|
|
3217
|
-
marketCoinType: query.utils.parseMarketCoinType(coinName),
|
|
3218
|
-
rewardCoinType: isMarketCoin(rewardCoinName) ? query.utils.parseMarketCoinType(rewardCoinName) : query.utils.parseCoinType(rewardCoinName),
|
|
3219
|
-
coinDecimal: query.utils.getCoinDecimal(coinName),
|
|
3220
|
-
rewardCoinDecimal: query.utils.getCoinDecimal(rewardCoinName),
|
|
3221
|
-
coinPrice: coinPrices?.[coinName] ?? 0,
|
|
3222
|
-
marketCoinPrice,
|
|
3223
|
-
rewardCoinPrice,
|
|
3224
|
-
maxPoint: parsedSpoolData.maxPoint,
|
|
3225
|
-
distributedPoint: parsedSpoolData.distributedPoint,
|
|
3226
|
-
maxStake: parsedSpoolData.maxStake,
|
|
3227
|
-
...calculatedSpoolData,
|
|
3228
|
-
exchangeRateNumerator: parsedSpoolRewardPoolData.exchangeRateNumerator,
|
|
3229
|
-
exchangeRateDenominator: parsedSpoolRewardPoolData.exchangeRateDenominator,
|
|
3230
|
-
...calculatedRewardPoolData
|
|
3231
|
-
};
|
|
3232
|
-
}
|
|
3252
|
+
rewardCoinPrice,
|
|
3253
|
+
maxPoint: parsedSpoolData.maxPoint,
|
|
3254
|
+
distributedPoint: parsedSpoolData.distributedPoint,
|
|
3255
|
+
maxStake: parsedSpoolData.maxStake,
|
|
3256
|
+
...calculatedSpoolData,
|
|
3257
|
+
exchangeRateNumerator: parsedSpoolRewardPoolData.exchangeRateNumerator,
|
|
3258
|
+
exchangeRateDenominator: parsedSpoolRewardPoolData.exchangeRateDenominator,
|
|
3259
|
+
...calculatedRewardPoolData
|
|
3260
|
+
};
|
|
3233
3261
|
}
|
|
3234
3262
|
}
|
|
3235
3263
|
return spool;
|
|
@@ -4337,7 +4365,7 @@ var getTotalVeScaTreasuryAmount = async (utils, veScaTreasury) => {
|
|
|
4337
4365
|
}
|
|
4338
4366
|
});
|
|
4339
4367
|
const results = res.results;
|
|
4340
|
-
if (results && results[1]
|
|
4368
|
+
if (results && results[1]?.returnValues) {
|
|
4341
4369
|
const value = Uint8Array.from(results[1].returnValues[0][0]);
|
|
4342
4370
|
const type = results[1].returnValues[0][1];
|
|
4343
4371
|
(0, import_assert.default)(type === "u64", "Result type is not u64");
|
|
@@ -4507,10 +4535,10 @@ var ScallopUtils = class {
|
|
|
4507
4535
|
* @param address - ScallopAddress instance.
|
|
4508
4536
|
*/
|
|
4509
4537
|
async init(force = false, address) {
|
|
4510
|
-
if (
|
|
4511
|
-
await this.address.read();
|
|
4512
|
-
} else {
|
|
4538
|
+
if (address && !this.address)
|
|
4513
4539
|
this.address = address;
|
|
4540
|
+
if (force || !this.address.getAddresses()) {
|
|
4541
|
+
await this.address.read();
|
|
4514
4542
|
}
|
|
4515
4543
|
}
|
|
4516
4544
|
/**
|
|
@@ -4810,30 +4838,38 @@ var ScallopUtils = class {
|
|
|
4810
4838
|
const priceId = this.address.get(
|
|
4811
4839
|
`core.coins.${coinName}.oracle.pyth.feed`
|
|
4812
4840
|
);
|
|
4813
|
-
|
|
4841
|
+
if (priceId) {
|
|
4842
|
+
acc[coinName] = priceId;
|
|
4843
|
+
}
|
|
4814
4844
|
return acc;
|
|
4815
4845
|
},
|
|
4816
4846
|
{}
|
|
4817
4847
|
);
|
|
4818
4848
|
await Promise.allSettled(
|
|
4819
|
-
Object.entries(priceIds).map(async ([coinName, priceId]) => {
|
|
4849
|
+
Object.entries(priceIds).filter(([_, priceId]) => !!priceId).map(async ([coinName, priceId]) => {
|
|
4820
4850
|
const pythConnection = new import_pyth_sui_js.SuiPriceServiceConnection(endpoint);
|
|
4821
4851
|
try {
|
|
4822
4852
|
const feed = await this.cache.queryClient.fetchQuery({
|
|
4823
|
-
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4853
|
+
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4854
|
+
priceId,
|
|
4855
|
+
endpoint
|
|
4856
|
+
),
|
|
4824
4857
|
queryFn: async () => {
|
|
4825
|
-
return await pythConnection.getLatestPriceFeeds([priceId]);
|
|
4858
|
+
return await pythConnection.getLatestPriceFeeds([priceId]) ?? [];
|
|
4826
4859
|
}
|
|
4827
4860
|
});
|
|
4828
|
-
if (feed) {
|
|
4829
|
-
const data = parseDataFromPythPriceFeed(
|
|
4861
|
+
if (feed[0]) {
|
|
4862
|
+
const data = parseDataFromPythPriceFeed(
|
|
4863
|
+
feed[0],
|
|
4864
|
+
this.address
|
|
4865
|
+
);
|
|
4830
4866
|
this._priceMap.set(coinName, {
|
|
4831
4867
|
price: data.price,
|
|
4832
4868
|
publishTime: data.publishTime
|
|
4833
4869
|
});
|
|
4834
4870
|
coinPrices[coinName] = data.price;
|
|
4871
|
+
failedRequests.delete(coinName);
|
|
4835
4872
|
}
|
|
4836
|
-
failedRequests.delete(coinName);
|
|
4837
4873
|
} catch (e) {
|
|
4838
4874
|
console.warn(
|
|
4839
4875
|
`Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
|
|
@@ -5571,6 +5607,9 @@ var generateSpoolQuickMethod = ({
|
|
|
5571
5607
|
stakeMarketCoinName,
|
|
5572
5608
|
stakeAccountId
|
|
5573
5609
|
);
|
|
5610
|
+
if (stakeAccountIds.length === 0) {
|
|
5611
|
+
throw new Error(`No stakeAccountIds found for user ${sender}`);
|
|
5612
|
+
}
|
|
5574
5613
|
if (typeof amountOrMarketCoin === "number") {
|
|
5575
5614
|
const stakedMarketCoinAmount = await stakeHelper(
|
|
5576
5615
|
builder,
|
|
@@ -6701,7 +6740,7 @@ var getSCoinTotalSupply = async ({
|
|
|
6701
6740
|
typeArgs
|
|
6702
6741
|
});
|
|
6703
6742
|
const results = queryResults?.results;
|
|
6704
|
-
if (results && results[0]
|
|
6743
|
+
if (results && results[0]?.returnValues) {
|
|
6705
6744
|
const value = Uint8Array.from(results[0].returnValues[0][0]);
|
|
6706
6745
|
const type = results[0].returnValues[0][1];
|
|
6707
6746
|
(0, import_assert2.default)(type === "u64", "Result type is not u64");
|
|
@@ -6845,11 +6884,12 @@ var ScallopQuery = class {
|
|
|
6845
6884
|
* @param address - ScallopAddress instance.
|
|
6846
6885
|
*/
|
|
6847
6886
|
async init(force = false, address) {
|
|
6848
|
-
if (
|
|
6849
|
-
await this.address.read();
|
|
6850
|
-
} else {
|
|
6887
|
+
if (address && !this.address) {
|
|
6851
6888
|
this.address = address;
|
|
6852
6889
|
}
|
|
6890
|
+
if (force || !this.address.getAddresses()) {
|
|
6891
|
+
await this.address.read();
|
|
6892
|
+
}
|
|
6853
6893
|
await this.utils.init(force, this.address);
|
|
6854
6894
|
}
|
|
6855
6895
|
/* ==================== Core Query Methods ==================== */
|
|
@@ -7357,10 +7397,10 @@ var ScallopBuilder = class {
|
|
|
7357
7397
|
* @param address - ScallopAddress instance.
|
|
7358
7398
|
*/
|
|
7359
7399
|
async init(force = false, address) {
|
|
7360
|
-
if (
|
|
7361
|
-
await this.address.read();
|
|
7362
|
-
} else {
|
|
7400
|
+
if (address && !this.address)
|
|
7363
7401
|
this.address = address;
|
|
7402
|
+
if (force || !this.address.getAddresses()) {
|
|
7403
|
+
await this.address.read();
|
|
7364
7404
|
}
|
|
7365
7405
|
await this.query.init(force, this.address);
|
|
7366
7406
|
await this.utils.init(force, this.address);
|
|
@@ -7612,7 +7652,7 @@ var ScallopClient = class {
|
|
|
7612
7652
|
const sender = walletAddress || this.walletAddress;
|
|
7613
7653
|
txBlock.setSender(sender);
|
|
7614
7654
|
const obligations = await this.query.getObligations(sender);
|
|
7615
|
-
const specificObligationId = obligationId || obligations
|
|
7655
|
+
const specificObligationId = obligationId || obligations[0]?.id;
|
|
7616
7656
|
if (specificObligationId) {
|
|
7617
7657
|
await txBlock.addCollateralQuick(
|
|
7618
7658
|
amount,
|
|
@@ -7683,7 +7723,7 @@ var ScallopClient = class {
|
|
|
7683
7723
|
txBlock.setSender(sender);
|
|
7684
7724
|
const stakeMarketCoinName = this.utils.parseMarketCoinName(stakeCoinName);
|
|
7685
7725
|
const stakeAccounts = await this.query.getStakeAccounts(stakeMarketCoinName);
|
|
7686
|
-
const targetStakeAccount = stakeAccountId || stakeAccounts[0]
|
|
7726
|
+
const targetStakeAccount = stakeAccountId || stakeAccounts[0]?.id;
|
|
7687
7727
|
const marketCoin = await txBlock.depositQuick(amount, stakeCoinName, false);
|
|
7688
7728
|
if (targetStakeAccount) {
|
|
7689
7729
|
await txBlock.stakeQuick(
|
|
@@ -7818,7 +7858,7 @@ var ScallopClient = class {
|
|
|
7818
7858
|
const sender = walletAddress || this.walletAddress;
|
|
7819
7859
|
txBlock.setSender(sender);
|
|
7820
7860
|
const stakeAccounts = await this.query.getStakeAccounts(stakeMarketCoinName);
|
|
7821
|
-
const targetStakeAccount = stakeAccountId || stakeAccounts[0]
|
|
7861
|
+
const targetStakeAccount = stakeAccountId || stakeAccounts[0]?.id;
|
|
7822
7862
|
if (targetStakeAccount) {
|
|
7823
7863
|
await txBlock.stakeQuick(amount, stakeMarketCoinName, targetStakeAccount);
|
|
7824
7864
|
} else {
|
|
@@ -8275,6 +8315,7 @@ var Scallop = class {
|
|
|
8275
8315
|
ScallopIndexer,
|
|
8276
8316
|
ScallopQuery,
|
|
8277
8317
|
ScallopUtils,
|
|
8318
|
+
TEST_ADDRESSES,
|
|
8278
8319
|
UNLOCK_ROUND_DURATION,
|
|
8279
8320
|
USE_TEST_ADDRESS,
|
|
8280
8321
|
assetCoins,
|