@scallop-io/sui-scallop-sdk 1.3.2 → 1.3.3-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/queryKeys.d.ts +2 -1
- package/dist/index.js +820 -788
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +819 -788
- package/dist/index.mjs.map +1 -1
- package/dist/types/query/core.d.ts +1 -0
- package/package.json +1 -2
- package/src/constants/enum.ts +11 -4
- package/src/constants/index.ts +1 -0
- package/src/constants/queryKeys.ts +2 -2
- package/src/constants/testAddress.ts +76 -35
- package/src/models/scallopBuilder.ts +2 -3
- package/src/models/scallopQuery.ts +4 -3
- package/src/models/scallopUtils.ts +39 -28
- package/src/queries/coreQuery.ts +222 -216
- package/src/queries/isolatedAsset.ts +4 -4
- package/src/queries/portfolioQuery.ts +6 -9
- package/src/queries/referralQuery.ts +0 -1
- package/src/queries/spoolQuery.ts +1 -1
- package/src/types/query/core.ts +1 -0
- package/dist/models/scallopPrice.d.ts +0 -0
- package/src/models/scallopPrice.ts +0 -0
package/dist/index.mjs
CHANGED
|
@@ -254,11 +254,20 @@ var voloCoinIds = {
|
|
|
254
254
|
var sCoinIds = {
|
|
255
255
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
256
256
|
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
257
|
-
|
|
257
|
+
// TODO: Change this to the correct value on production release
|
|
258
|
+
ssui: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
259
|
+
// ssui: '0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
|
|
258
260
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
261
|
+
// TODO: Change this to the correct value on production release
|
|
262
|
+
ssca: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
263
|
+
// '0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
|
|
264
|
+
// TODO: Change this to the correct value on production release
|
|
265
|
+
swusdc: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
266
|
+
// '0xad4d71551d31092230db1fd482008ea42867dbf27b286e9c70a79d2a6191d58d::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC',
|
|
267
|
+
swusdt: (
|
|
268
|
+
// '0xe6e5a012ec20a49a3d1d57bd2b67140b96cd4d3400b9d79e541f7bdbab661f95::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT',
|
|
269
|
+
"0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT"
|
|
270
|
+
),
|
|
262
271
|
sweth: "0x67540ceb850d418679e69f1fb6b2093d6df78a2a699ffc733f7646096d552e9b::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
263
272
|
safsui: "0x00671b1fa2a124f5be8bdae8b91ee711462c5d9e31bda232e70fd9607b523c88::scallop_af_sui::SCALLOP_AF_SUI",
|
|
264
273
|
shasui: "0x9a2376943f7d22f88087c259c5889925f332ca4347e669dc37d54c2bf651af3c::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
@@ -359,10 +368,10 @@ var queryKeys = {
|
|
|
359
368
|
]
|
|
360
369
|
},
|
|
361
370
|
oracle: {
|
|
362
|
-
getPythLatestPriceFeed: (pythPriceId) => [
|
|
371
|
+
getPythLatestPriceFeed: (pythPriceId, endpoint) => [
|
|
363
372
|
"oracle",
|
|
364
373
|
"getPythPriceId",
|
|
365
|
-
{ pythPriceId }
|
|
374
|
+
{ pythPriceId, endpoint }
|
|
366
375
|
]
|
|
367
376
|
}
|
|
368
377
|
};
|
|
@@ -374,6 +383,430 @@ var MAX_LOCK_DURATION = MAX_LOCK_ROUNDS * UNLOCK_ROUND_DURATION;
|
|
|
374
383
|
var MIN_INITIAL_LOCK_AMOUNT = 1e10;
|
|
375
384
|
var MIN_TOP_UP_AMOUNT = 1e9;
|
|
376
385
|
|
|
386
|
+
// src/constants/testAddress.ts
|
|
387
|
+
var TEST_ADDRESSES = {
|
|
388
|
+
core: {
|
|
389
|
+
// version:
|
|
390
|
+
// '0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
|
|
391
|
+
version: "0xd318de9b0f6873879a82cbfcc2daa1d1591a8b54e7cea9f4b567da63c692a52b",
|
|
392
|
+
versionCap: "0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07",
|
|
393
|
+
// object:
|
|
394
|
+
// '0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
|
|
395
|
+
object: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
|
|
396
|
+
// market:
|
|
397
|
+
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
398
|
+
market: "0x9d6434e97f3f98fd9b0c0e1dca22632073985abcd22541feae7ee1e34cbe3af2",
|
|
399
|
+
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
400
|
+
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
401
|
+
// obligationAccessStore:
|
|
402
|
+
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
403
|
+
obligationAccessStore: "0x46e9b44a77ee9c9d33cc2689ecdfbb8f681935cbc6bdf6ac3df048e396c36c82",
|
|
404
|
+
coins: {
|
|
405
|
+
usdc: {
|
|
406
|
+
id: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
|
|
407
|
+
metaData: "0x69b7a7c3c200439c1b5f3b19d7d495d5966d5f08de66c69276152f8db3992ec6",
|
|
408
|
+
treasury: "",
|
|
409
|
+
oracle: {
|
|
410
|
+
supra: "",
|
|
411
|
+
switchboard: "",
|
|
412
|
+
pyth: {
|
|
413
|
+
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
414
|
+
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
cetus: {
|
|
419
|
+
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
420
|
+
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
421
|
+
treasury: "",
|
|
422
|
+
oracle: {
|
|
423
|
+
supra: "",
|
|
424
|
+
switchboard: "",
|
|
425
|
+
pyth: {
|
|
426
|
+
feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
|
|
427
|
+
feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
wapt: {
|
|
432
|
+
id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
433
|
+
metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
|
|
434
|
+
treasury: "",
|
|
435
|
+
oracle: {
|
|
436
|
+
supra: "",
|
|
437
|
+
switchboard: "",
|
|
438
|
+
pyth: {
|
|
439
|
+
feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
|
|
440
|
+
feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
wsol: {
|
|
445
|
+
id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
446
|
+
metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
|
|
447
|
+
treasury: "",
|
|
448
|
+
oracle: {
|
|
449
|
+
supra: "",
|
|
450
|
+
switchboard: "",
|
|
451
|
+
pyth: {
|
|
452
|
+
feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
|
|
453
|
+
feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
wbtc: {
|
|
458
|
+
id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
459
|
+
metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
|
|
460
|
+
treasury: "",
|
|
461
|
+
oracle: {
|
|
462
|
+
supra: "",
|
|
463
|
+
switchboard: "",
|
|
464
|
+
pyth: {
|
|
465
|
+
feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
|
|
466
|
+
feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
weth: {
|
|
471
|
+
id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
472
|
+
metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
|
|
473
|
+
treasury: "",
|
|
474
|
+
oracle: {
|
|
475
|
+
supra: "",
|
|
476
|
+
switchboard: "",
|
|
477
|
+
pyth: {
|
|
478
|
+
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
479
|
+
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
wusdc: {
|
|
484
|
+
id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
485
|
+
metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
|
|
486
|
+
treasury: "",
|
|
487
|
+
oracle: {
|
|
488
|
+
supra: "",
|
|
489
|
+
switchboard: "",
|
|
490
|
+
pyth: {
|
|
491
|
+
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
492
|
+
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
wusdt: {
|
|
497
|
+
id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
498
|
+
metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
|
|
499
|
+
treasury: "",
|
|
500
|
+
oracle: {
|
|
501
|
+
supra: "",
|
|
502
|
+
switchboard: "",
|
|
503
|
+
pyth: {
|
|
504
|
+
feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
|
505
|
+
feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
sui: {
|
|
510
|
+
id: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
511
|
+
metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
|
|
512
|
+
treasury: "",
|
|
513
|
+
oracle: {
|
|
514
|
+
supra: "",
|
|
515
|
+
switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
|
|
516
|
+
pyth: {
|
|
517
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
518
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
afsui: {
|
|
523
|
+
id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
524
|
+
metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
|
|
525
|
+
treasury: "",
|
|
526
|
+
oracle: {
|
|
527
|
+
supra: "",
|
|
528
|
+
switchboard: "",
|
|
529
|
+
pyth: {
|
|
530
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
531
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
hasui: {
|
|
536
|
+
id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
537
|
+
metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
|
|
538
|
+
treasury: "",
|
|
539
|
+
oracle: {
|
|
540
|
+
supra: "",
|
|
541
|
+
switchboard: "",
|
|
542
|
+
pyth: {
|
|
543
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
544
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
vsui: {
|
|
549
|
+
id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
550
|
+
metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
|
|
551
|
+
treasury: "",
|
|
552
|
+
oracle: {
|
|
553
|
+
supra: "",
|
|
554
|
+
switchboard: "",
|
|
555
|
+
pyth: {
|
|
556
|
+
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
557
|
+
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
},
|
|
561
|
+
sca: {
|
|
562
|
+
id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
563
|
+
metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
|
|
564
|
+
treasury: "",
|
|
565
|
+
oracle: {
|
|
566
|
+
supra: "",
|
|
567
|
+
switchboard: "",
|
|
568
|
+
pyth: {
|
|
569
|
+
feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
570
|
+
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
sbeth: {
|
|
575
|
+
id: "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
|
|
576
|
+
metaData: "0x89b04ba87f8832d4d76e17a1c9dce72eb3e64d372cf02012b8d2de5384faeef0",
|
|
577
|
+
treasury: "",
|
|
578
|
+
oracle: {
|
|
579
|
+
supra: "",
|
|
580
|
+
switchboard: "",
|
|
581
|
+
pyth: {
|
|
582
|
+
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
583
|
+
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
},
|
|
588
|
+
oracles: {
|
|
589
|
+
xOracle: "0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f",
|
|
590
|
+
xOracleCap: "0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90",
|
|
591
|
+
supra: { registry: "", registryCap: "", holder: "" },
|
|
592
|
+
switchboard: { registry: "", registryCap: "" },
|
|
593
|
+
pyth: {
|
|
594
|
+
registry: "0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213",
|
|
595
|
+
registryCap: "0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd",
|
|
596
|
+
state: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
|
|
597
|
+
wormhole: "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
|
|
598
|
+
wormholeState: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
packages: {
|
|
602
|
+
coinDecimalsRegistry: {
|
|
603
|
+
id: "0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d",
|
|
604
|
+
upgradeCap: "0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6"
|
|
605
|
+
},
|
|
606
|
+
math: {
|
|
607
|
+
id: "0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f",
|
|
608
|
+
upgradeCap: "0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6"
|
|
609
|
+
},
|
|
610
|
+
whitelist: {
|
|
611
|
+
id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
|
|
612
|
+
upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
|
|
613
|
+
},
|
|
614
|
+
x: {
|
|
615
|
+
id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
|
|
616
|
+
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
617
|
+
},
|
|
618
|
+
protocol: {
|
|
619
|
+
id: "0x6c23585e940a989588432509107e98bae06dbca4e333f26d0635d401b3c7c76d",
|
|
620
|
+
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
621
|
+
},
|
|
622
|
+
// protocol: {
|
|
623
|
+
// id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
624
|
+
// upgradeCap:
|
|
625
|
+
// '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
626
|
+
// },
|
|
627
|
+
protocolWhitelist: {
|
|
628
|
+
id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
|
|
629
|
+
upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
|
|
630
|
+
},
|
|
631
|
+
// query: {
|
|
632
|
+
// id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
633
|
+
// upgradeCap:
|
|
634
|
+
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
635
|
+
// },
|
|
636
|
+
query: {
|
|
637
|
+
id: "0x89706958f43fb170de134579e3fbc53972b946ee78bd2442d8e1adc36074fbdc",
|
|
638
|
+
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
639
|
+
},
|
|
640
|
+
supra: { id: "", upgradeCap: "" },
|
|
641
|
+
pyth: {
|
|
642
|
+
id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
|
|
643
|
+
upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
|
|
644
|
+
},
|
|
645
|
+
switchboard: { id: "", upgradeCap: "" },
|
|
646
|
+
xOracle: {
|
|
647
|
+
id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
|
|
648
|
+
upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
|
|
649
|
+
},
|
|
650
|
+
testCoin: { id: "", upgradeCap: "" }
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
spool: {
|
|
654
|
+
// id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
655
|
+
id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
656
|
+
adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
|
|
657
|
+
// object:
|
|
658
|
+
// '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
659
|
+
object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
660
|
+
pools: {
|
|
661
|
+
sweth: {
|
|
662
|
+
id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
663
|
+
rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
664
|
+
},
|
|
665
|
+
ssui: {
|
|
666
|
+
// id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
667
|
+
id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
|
|
668
|
+
rewardPoolId: (
|
|
669
|
+
// '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
670
|
+
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
671
|
+
)
|
|
672
|
+
},
|
|
673
|
+
susdc: {
|
|
674
|
+
id: "0x0b5f5f413bd3799e4052c37311966c77f3a4545eb125d2e93e67a68478021918",
|
|
675
|
+
rewardPoolId: "0x85ed6ed72ea97c35dbf0cdc7ed6fbc48d8ec15de9b17c74bf4512df8a6d7f166"
|
|
676
|
+
},
|
|
677
|
+
swusdc: {
|
|
678
|
+
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
679
|
+
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
680
|
+
rewardPoolId: (
|
|
681
|
+
// '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
682
|
+
"0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
|
|
683
|
+
)
|
|
684
|
+
},
|
|
685
|
+
swusdt: {
|
|
686
|
+
// id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
687
|
+
id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
|
|
688
|
+
rewardPoolId: (
|
|
689
|
+
// '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
690
|
+
"0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
|
|
691
|
+
)
|
|
692
|
+
},
|
|
693
|
+
scetus: {
|
|
694
|
+
id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
695
|
+
rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
696
|
+
},
|
|
697
|
+
safsui: {
|
|
698
|
+
// id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
699
|
+
id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
|
|
700
|
+
rewardPoolId: (
|
|
701
|
+
// '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
702
|
+
"0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
|
|
703
|
+
)
|
|
704
|
+
},
|
|
705
|
+
shasui: {
|
|
706
|
+
// id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
707
|
+
id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
|
|
708
|
+
rewardPoolId: (
|
|
709
|
+
// '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
710
|
+
"0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
|
|
711
|
+
)
|
|
712
|
+
},
|
|
713
|
+
svsui: {
|
|
714
|
+
// id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
715
|
+
id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
|
|
716
|
+
rewardPoolId: (
|
|
717
|
+
// '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
718
|
+
"0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
|
|
719
|
+
)
|
|
720
|
+
}
|
|
721
|
+
},
|
|
722
|
+
config: ""
|
|
723
|
+
},
|
|
724
|
+
borrowIncentive: {
|
|
725
|
+
id: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
726
|
+
adminCap: "0x56ac8e6f2b360b2b35c0168d72cc6cd17d9592afb83709865cb87af24bb2025b",
|
|
727
|
+
object: "0x85769d63565ce99c7622f8e336ca1460926ddf29738ad2a39407b5cac29f61fe",
|
|
728
|
+
query: "0x8e0d00f8ff1199d7c5fe56cea0e901a525daeefff0445a1635ace8282ae3302c",
|
|
729
|
+
incentivePools: "0x9d564c93128c6ab0c0d3e050a47f11df0b91494f3bb779bdc1301c1c637f15eb",
|
|
730
|
+
incentiveAccounts: "0x09e6040e798246de04941bc79a3ba62d3eca6d7a218cc30f21fb07f478fa2926",
|
|
731
|
+
config: "0x43d4ca1dfc90b161c4240facd119e74e4b850cca2957f88c2ec289c9380da064"
|
|
732
|
+
},
|
|
733
|
+
referral: {
|
|
734
|
+
id: "0x1bf5a8ce77050d8052549d743e16b469f15aa6b81b752b78b6ebb65179665f5a",
|
|
735
|
+
object: "0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec",
|
|
736
|
+
adminCap: "0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd",
|
|
737
|
+
referralBindings: "0xcf184487782bed962bf678001efe775d31fb94b9992333a57594cf15d79d5ced",
|
|
738
|
+
bindingTableId: "0x41a50e258c0a266ce84e0e1a618dbf70b878cc943909e613089a50afcceb2bc0",
|
|
739
|
+
referralRevenuePool: "0xc24e3e5e37032f29a3dd91a9a1f057af8821b7e6c148e9683900ac8b6d30f0c6",
|
|
740
|
+
revenueTableId: "0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd",
|
|
741
|
+
referralTiers: "0x144350f3db9b46d11b140084cd54e6de0b9c3b8d265ce8059b51d0ef58ea464b",
|
|
742
|
+
tiersTableId: "0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d",
|
|
743
|
+
// authorizedWitnessList:
|
|
744
|
+
// '0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
|
|
745
|
+
authorizedWitnessList: "0x9d6223dc52015b8a3986a573590ef2af8f1b8f3e4685513888c052f001b87e7f",
|
|
746
|
+
version: "0x3545849eb97723e676a476ec9d4fe5f2eb0eb2c6b78972851114fd4c7ed4639f"
|
|
747
|
+
},
|
|
748
|
+
vesca: {
|
|
749
|
+
id: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
750
|
+
object: "0x1158813b32962c2d22888fae257d5f2365b03631f0cd5d5b912ccdf51ff4e2f2",
|
|
751
|
+
adminCap: "0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5",
|
|
752
|
+
tableId: "0x0a0b7f749baeb61e3dfee2b42245e32d0e6b484063f0a536b33e771d573d7246",
|
|
753
|
+
table: "0xd3a4632b1080f7d96e1c2487d4dabf2c1196916937c505a69954ac9f393be8d0",
|
|
754
|
+
treasury: "0xafa4b6231e49c15a22d641ce33fda761baaf650fa21899dfa2eb1716146e7306",
|
|
755
|
+
config: "0x7cbcb0a342179577a117dfdff974cf1ab765d3b571067bf22ddf5f9e3a667922"
|
|
756
|
+
},
|
|
757
|
+
loyaltyProgram: {
|
|
758
|
+
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
759
|
+
object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
760
|
+
rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
|
|
761
|
+
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
762
|
+
},
|
|
763
|
+
scoin: {
|
|
764
|
+
id: "0x773dab39c90fe05439b06a2d061795e52a974ff92c2aef90b2ee467acf7f33c8",
|
|
765
|
+
coins: {
|
|
766
|
+
ssui: {
|
|
767
|
+
coinType: "0xf569919046f19a0c40b519ecfbb6ca0319698cd5908716c29b62ef56541f298b::scallop_sui::SCALLOP_SUI",
|
|
768
|
+
treasury: "0x0e499640a12c38dd9cc44532f5bc5fd1b6da86d2f9a8810357250f4b26e9e5c7"
|
|
769
|
+
},
|
|
770
|
+
scetus: {
|
|
771
|
+
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
772
|
+
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
773
|
+
},
|
|
774
|
+
ssca: {
|
|
775
|
+
coinType: "0x958428555e778e55918a59eb1c92c77f32b5c554fa3a5e56cd0815086b5072e7::scallop_sca::SCALLOP_SCA",
|
|
776
|
+
treasury: "0x5f1c5de1df7341075d119570269b7b452af50afe8363080638f1ae29a554c038"
|
|
777
|
+
},
|
|
778
|
+
swusdc: {
|
|
779
|
+
coinType: "0xf5447c4305a486d8c8557559887c2c39449ddb5e748f15d33946d02a1663c158::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
780
|
+
treasury: "0x471fbab72578bab577263006fe32543b6e76153fffa2bef69affe4bc4934258f"
|
|
781
|
+
},
|
|
782
|
+
swusdt: {
|
|
783
|
+
coinType: "0xac781d9f73058ff5e69f9bf8dde32f2e8c71c66d7fe8497fc83b2d9182254b22::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
784
|
+
treasury: "0x921a4ed4bb4b4f11f51a462c83f4c0f6b60a90e441d1bc0d26d6fd893146bf4d"
|
|
785
|
+
},
|
|
786
|
+
sweth: {
|
|
787
|
+
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
788
|
+
treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
|
|
789
|
+
},
|
|
790
|
+
safsui: {
|
|
791
|
+
coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
|
|
792
|
+
treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
|
|
793
|
+
},
|
|
794
|
+
shasui: {
|
|
795
|
+
coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
796
|
+
treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
|
|
797
|
+
},
|
|
798
|
+
svsui: {
|
|
799
|
+
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
800
|
+
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6"
|
|
801
|
+
},
|
|
802
|
+
ssbeth: {
|
|
803
|
+
coinType: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
804
|
+
treasury: "0xfd0f02def6358a1f266acfa1493d4707ee8387460d434fb667d63d755ff907ed"
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
|
|
377
810
|
// src/models/scallop.ts
|
|
378
811
|
import { SuiKit as SuiKit7 } from "@scallop-io/sui-kit";
|
|
379
812
|
|
|
@@ -1068,541 +1501,149 @@ var ScallopCache = class {
|
|
|
1068
1501
|
async invalidateAllCache() {
|
|
1069
1502
|
return Object.values(queryKeys.rpc).map(
|
|
1070
1503
|
(t) => this.queryClient.invalidateQueries({
|
|
1071
|
-
queryKey: t(),
|
|
1072
|
-
type: "all"
|
|
1073
|
-
})
|
|
1074
|
-
);
|
|
1075
|
-
}
|
|
1076
|
-
/**
|
|
1077
|
-
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1078
|
-
* @param QueryInspectTxnParams
|
|
1079
|
-
* @param txBlock
|
|
1080
|
-
* @returns Promise<DevInspectResults>
|
|
1081
|
-
*/
|
|
1082
|
-
async queryInspectTxn({
|
|
1083
|
-
queryTarget,
|
|
1084
|
-
args,
|
|
1085
|
-
typeArgs
|
|
1086
|
-
}) {
|
|
1087
|
-
const txBlock = new SuiTxBlock();
|
|
1088
|
-
txBlock.moveCall(queryTarget, args, typeArgs);
|
|
1089
|
-
const query = await this.queryClient.fetchQuery({
|
|
1090
|
-
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1091
|
-
queryFn: async () => {
|
|
1092
|
-
return await callWithRateLimit(
|
|
1093
|
-
this.tokenBucket,
|
|
1094
|
-
() => this.suiKit.inspectTxn(txBlock)
|
|
1095
|
-
);
|
|
1096
|
-
}
|
|
1097
|
-
});
|
|
1098
|
-
return query;
|
|
1099
|
-
}
|
|
1100
|
-
/**
|
|
1101
|
-
* @description Provides cache for getObject of the SuiKit.
|
|
1102
|
-
* @param objectId
|
|
1103
|
-
* @param QueryObjectParams
|
|
1104
|
-
* @returns Promise<SuiObjectResponse>
|
|
1105
|
-
*/
|
|
1106
|
-
async queryGetObject(objectId, options) {
|
|
1107
|
-
return this.queryClient.fetchQuery({
|
|
1108
|
-
queryKey: queryKeys.rpc.getObject(objectId, this.walletAddress, options),
|
|
1109
|
-
queryFn: async () => {
|
|
1110
|
-
return await callWithRateLimit(
|
|
1111
|
-
this.tokenBucket,
|
|
1112
|
-
() => this.client.getObject({
|
|
1113
|
-
id: objectId,
|
|
1114
|
-
options
|
|
1115
|
-
})
|
|
1116
|
-
);
|
|
1117
|
-
}
|
|
1118
|
-
});
|
|
1119
|
-
}
|
|
1120
|
-
/**
|
|
1121
|
-
* @description Provides cache for getObjects of the SuiKit.
|
|
1122
|
-
* @param objectIds
|
|
1123
|
-
* @returns Promise<SuiObjectData[]>
|
|
1124
|
-
*/
|
|
1125
|
-
async queryGetObjects(objectIds, options = {
|
|
1126
|
-
showContent: true
|
|
1127
|
-
}) {
|
|
1128
|
-
if (objectIds.length === 0)
|
|
1129
|
-
return [];
|
|
1130
|
-
return this.queryClient.fetchQuery({
|
|
1131
|
-
queryKey: queryKeys.rpc.getObjects(
|
|
1132
|
-
objectIds,
|
|
1133
|
-
this.walletAddress,
|
|
1134
|
-
options
|
|
1135
|
-
),
|
|
1136
|
-
queryFn: async () => {
|
|
1137
|
-
return await callWithRateLimit(
|
|
1138
|
-
this.tokenBucket,
|
|
1139
|
-
() => this.suiKit.getObjects(objectIds, options)
|
|
1140
|
-
);
|
|
1141
|
-
}
|
|
1142
|
-
});
|
|
1504
|
+
queryKey: t(),
|
|
1505
|
+
type: "all"
|
|
1506
|
+
})
|
|
1507
|
+
);
|
|
1143
1508
|
}
|
|
1144
1509
|
/**
|
|
1145
|
-
* @description Provides cache for
|
|
1146
|
-
* @param
|
|
1147
|
-
* @
|
|
1510
|
+
* @description Provides cache for inspectTxn of the SuiKit.
|
|
1511
|
+
* @param QueryInspectTxnParams
|
|
1512
|
+
* @param txBlock
|
|
1513
|
+
* @returns Promise<DevInspectResults>
|
|
1148
1514
|
*/
|
|
1149
|
-
async
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
});
|
|
1159
|
-
}
|
|
1160
|
-
async queryGetDynamicFields(input) {
|
|
1161
|
-
return this.queryClient.fetchQuery({
|
|
1162
|
-
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1515
|
+
async queryInspectTxn({
|
|
1516
|
+
queryTarget,
|
|
1517
|
+
args,
|
|
1518
|
+
typeArgs
|
|
1519
|
+
}) {
|
|
1520
|
+
const txBlock = new SuiTxBlock();
|
|
1521
|
+
txBlock.moveCall(queryTarget, args, typeArgs);
|
|
1522
|
+
const query = await this.queryClient.fetchQuery({
|
|
1523
|
+
queryKey: queryKeys.rpc.getInspectTxn(queryTarget, args, typeArgs),
|
|
1163
1524
|
queryFn: async () => {
|
|
1164
1525
|
return await callWithRateLimit(
|
|
1165
1526
|
this.tokenBucket,
|
|
1166
|
-
() => this.
|
|
1527
|
+
() => this.suiKit.inspectTxn(txBlock)
|
|
1167
1528
|
);
|
|
1168
1529
|
}
|
|
1169
1530
|
});
|
|
1531
|
+
return query;
|
|
1170
1532
|
}
|
|
1171
|
-
|
|
1533
|
+
/**
|
|
1534
|
+
* @description Provides cache for getObject of the SuiKit.
|
|
1535
|
+
* @param objectId
|
|
1536
|
+
* @param QueryObjectParams
|
|
1537
|
+
* @returns Promise<SuiObjectResponse>
|
|
1538
|
+
*/
|
|
1539
|
+
async queryGetObject(objectId, options) {
|
|
1172
1540
|
return this.queryClient.fetchQuery({
|
|
1173
|
-
queryKey: queryKeys.rpc.
|
|
1541
|
+
queryKey: queryKeys.rpc.getObject(objectId, this.walletAddress, options),
|
|
1174
1542
|
queryFn: async () => {
|
|
1175
1543
|
return await callWithRateLimit(
|
|
1176
1544
|
this.tokenBucket,
|
|
1177
|
-
() => this.client.
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
}
|
|
1182
|
-
async queryGetAllCoinBalances(owner) {
|
|
1183
|
-
return this.queryClient.fetchQuery({
|
|
1184
|
-
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1185
|
-
queryFn: async () => {
|
|
1186
|
-
const allBalances = await callWithRateLimit(
|
|
1187
|
-
this.tokenBucket,
|
|
1188
|
-
() => this.client.getAllBalances({ owner })
|
|
1189
|
-
);
|
|
1190
|
-
if (!allBalances)
|
|
1191
|
-
return {};
|
|
1192
|
-
const balances = allBalances.reduce(
|
|
1193
|
-
(acc, coinBalance) => {
|
|
1194
|
-
if (coinBalance.totalBalance !== "0") {
|
|
1195
|
-
acc[normalizeStructTag2(coinBalance.coinType)] = coinBalance.totalBalance;
|
|
1196
|
-
}
|
|
1197
|
-
return acc;
|
|
1198
|
-
},
|
|
1199
|
-
{}
|
|
1545
|
+
() => this.client.getObject({
|
|
1546
|
+
id: objectId,
|
|
1547
|
+
options
|
|
1548
|
+
})
|
|
1200
1549
|
);
|
|
1201
|
-
return balances;
|
|
1202
1550
|
}
|
|
1203
1551
|
});
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
// '0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
1227
|
-
market: "0x8606ed145cc887985b8ed793f7753ff5dc762a42c379dac035f568e1bac58490",
|
|
1228
|
-
adminCap: "0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c",
|
|
1229
|
-
coinDecimalsRegistry: "0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668",
|
|
1230
|
-
// obligationAccessStore:
|
|
1231
|
-
// '0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
1232
|
-
obligationAccessStore: "0x48b472d68ca910c45f7f3b6c26836b6aa6d2569810d94b1b939023da05ae0a23",
|
|
1233
|
-
coins: {
|
|
1234
|
-
cetus: {
|
|
1235
|
-
id: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b",
|
|
1236
|
-
metaData: "0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da",
|
|
1237
|
-
treasury: "",
|
|
1238
|
-
oracle: {
|
|
1239
|
-
supra: "",
|
|
1240
|
-
switchboard: "",
|
|
1241
|
-
pyth: {
|
|
1242
|
-
feed: "e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef",
|
|
1243
|
-
feedObject: "0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14"
|
|
1244
|
-
}
|
|
1245
|
-
}
|
|
1246
|
-
},
|
|
1247
|
-
wapt: {
|
|
1248
|
-
id: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
1249
|
-
metaData: "0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8",
|
|
1250
|
-
treasury: "",
|
|
1251
|
-
oracle: {
|
|
1252
|
-
supra: "",
|
|
1253
|
-
switchboard: "",
|
|
1254
|
-
pyth: {
|
|
1255
|
-
feed: "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5",
|
|
1256
|
-
feedObject: "0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f"
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
},
|
|
1260
|
-
wsol: {
|
|
1261
|
-
id: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
1262
|
-
metaData: "0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e",
|
|
1263
|
-
treasury: "",
|
|
1264
|
-
oracle: {
|
|
1265
|
-
supra: "",
|
|
1266
|
-
switchboard: "",
|
|
1267
|
-
pyth: {
|
|
1268
|
-
feed: "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d",
|
|
1269
|
-
feedObject: "0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469"
|
|
1270
|
-
}
|
|
1271
|
-
}
|
|
1272
|
-
},
|
|
1273
|
-
wbtc: {
|
|
1274
|
-
id: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
1275
|
-
metaData: "0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd",
|
|
1276
|
-
treasury: "",
|
|
1277
|
-
oracle: {
|
|
1278
|
-
supra: "",
|
|
1279
|
-
switchboard: "",
|
|
1280
|
-
pyth: {
|
|
1281
|
-
feed: "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
|
|
1282
|
-
feedObject: "0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2"
|
|
1283
|
-
}
|
|
1284
|
-
}
|
|
1285
|
-
},
|
|
1286
|
-
weth: {
|
|
1287
|
-
id: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
1288
|
-
metaData: "0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f",
|
|
1289
|
-
treasury: "",
|
|
1290
|
-
oracle: {
|
|
1291
|
-
supra: "",
|
|
1292
|
-
switchboard: "",
|
|
1293
|
-
pyth: {
|
|
1294
|
-
feed: "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
|
|
1295
|
-
feedObject: "0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab"
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
},
|
|
1299
|
-
wusdc: {
|
|
1300
|
-
id: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
1301
|
-
metaData: "0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189",
|
|
1302
|
-
treasury: "",
|
|
1303
|
-
oracle: {
|
|
1304
|
-
supra: "",
|
|
1305
|
-
switchboard: "",
|
|
1306
|
-
pyth: {
|
|
1307
|
-
feed: "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
|
|
1308
|
-
feedObject: "0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab"
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
},
|
|
1312
|
-
wusdt: {
|
|
1313
|
-
id: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
1314
|
-
metaData: "0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c",
|
|
1315
|
-
treasury: "",
|
|
1316
|
-
oracle: {
|
|
1317
|
-
supra: "",
|
|
1318
|
-
switchboard: "",
|
|
1319
|
-
pyth: {
|
|
1320
|
-
feed: "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b",
|
|
1321
|
-
feedObject: "0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572"
|
|
1322
|
-
}
|
|
1323
|
-
}
|
|
1324
|
-
},
|
|
1325
|
-
sui: {
|
|
1326
|
-
id: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
1327
|
-
metaData: "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",
|
|
1328
|
-
treasury: "",
|
|
1329
|
-
oracle: {
|
|
1330
|
-
supra: "",
|
|
1331
|
-
switchboard: "0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594",
|
|
1332
|
-
pyth: {
|
|
1333
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1334
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1335
|
-
}
|
|
1336
|
-
}
|
|
1337
|
-
},
|
|
1338
|
-
afsui: {
|
|
1339
|
-
id: "0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc",
|
|
1340
|
-
metaData: "0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d",
|
|
1341
|
-
treasury: "",
|
|
1342
|
-
oracle: {
|
|
1343
|
-
supra: "",
|
|
1344
|
-
switchboard: "",
|
|
1345
|
-
pyth: {
|
|
1346
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1347
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1348
|
-
}
|
|
1349
|
-
}
|
|
1350
|
-
},
|
|
1351
|
-
hasui: {
|
|
1352
|
-
id: "0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d",
|
|
1353
|
-
metaData: "0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24",
|
|
1354
|
-
treasury: "",
|
|
1355
|
-
oracle: {
|
|
1356
|
-
supra: "",
|
|
1357
|
-
switchboard: "",
|
|
1358
|
-
pyth: {
|
|
1359
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1360
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1361
|
-
}
|
|
1362
|
-
}
|
|
1363
|
-
},
|
|
1364
|
-
vsui: {
|
|
1365
|
-
id: "0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55",
|
|
1366
|
-
metaData: "0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd",
|
|
1367
|
-
treasury: "",
|
|
1368
|
-
oracle: {
|
|
1369
|
-
supra: "",
|
|
1370
|
-
switchboard: "",
|
|
1371
|
-
pyth: {
|
|
1372
|
-
feed: "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744",
|
|
1373
|
-
feedObject: "0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37"
|
|
1374
|
-
}
|
|
1375
|
-
}
|
|
1376
|
-
},
|
|
1377
|
-
sca: {
|
|
1378
|
-
id: "0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6",
|
|
1379
|
-
metaData: "0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844",
|
|
1380
|
-
treasury: "",
|
|
1381
|
-
oracle: {
|
|
1382
|
-
supra: "",
|
|
1383
|
-
switchboard: "",
|
|
1384
|
-
pyth: {
|
|
1385
|
-
feed: "7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc",
|
|
1386
|
-
feedObject: "0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985"
|
|
1387
|
-
}
|
|
1388
|
-
}
|
|
1552
|
+
}
|
|
1553
|
+
/**
|
|
1554
|
+
* @description Provides cache for getObjects of the SuiKit.
|
|
1555
|
+
* @param objectIds
|
|
1556
|
+
* @returns Promise<SuiObjectData[]>
|
|
1557
|
+
*/
|
|
1558
|
+
async queryGetObjects(objectIds, options = {
|
|
1559
|
+
showContent: true
|
|
1560
|
+
}) {
|
|
1561
|
+
if (objectIds.length === 0)
|
|
1562
|
+
return [];
|
|
1563
|
+
return this.queryClient.fetchQuery({
|
|
1564
|
+
queryKey: queryKeys.rpc.getObjects(
|
|
1565
|
+
objectIds,
|
|
1566
|
+
this.walletAddress,
|
|
1567
|
+
options
|
|
1568
|
+
),
|
|
1569
|
+
queryFn: async () => {
|
|
1570
|
+
return await callWithRateLimit(
|
|
1571
|
+
this.tokenBucket,
|
|
1572
|
+
() => this.suiKit.getObjects(objectIds, options)
|
|
1573
|
+
);
|
|
1389
1574
|
}
|
|
1390
|
-
}
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1575
|
+
});
|
|
1576
|
+
}
|
|
1577
|
+
/**
|
|
1578
|
+
* @description Provides cache for getOwnedObjects of the SuiKit.
|
|
1579
|
+
* @param input
|
|
1580
|
+
* @returns Promise<PaginatedObjectsResponse>
|
|
1581
|
+
*/
|
|
1582
|
+
async queryGetOwnedObjects(input) {
|
|
1583
|
+
return this.queryClient.fetchQuery({
|
|
1584
|
+
queryKey: queryKeys.rpc.getOwnedObjects(input),
|
|
1585
|
+
queryFn: async () => {
|
|
1586
|
+
return await callWithRateLimit(
|
|
1587
|
+
this.tokenBucket,
|
|
1588
|
+
() => this.client.getOwnedObjects(input)
|
|
1589
|
+
);
|
|
1402
1590
|
}
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
whitelist: {
|
|
1414
|
-
id: "0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f",
|
|
1415
|
-
upgradeCap: "0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761"
|
|
1416
|
-
},
|
|
1417
|
-
x: {
|
|
1418
|
-
id: "0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162",
|
|
1419
|
-
upgradeCap: "0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e"
|
|
1420
|
-
},
|
|
1421
|
-
protocol: {
|
|
1422
|
-
id: "0x87ddec2984645dbbe2403a509cc6edf393a43acdba9b77d45da2bcbefcf733c1",
|
|
1423
|
-
upgradeCap: "0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a"
|
|
1424
|
-
},
|
|
1425
|
-
// protocol: {
|
|
1426
|
-
// id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
1427
|
-
// upgradeCap:
|
|
1428
|
-
// '0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
1429
|
-
// },
|
|
1430
|
-
protocolWhitelist: {
|
|
1431
|
-
id: "0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf",
|
|
1432
|
-
upgradeCap: "0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449"
|
|
1433
|
-
},
|
|
1434
|
-
// query: {
|
|
1435
|
-
// id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
1436
|
-
// upgradeCap:
|
|
1437
|
-
// '0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
1438
|
-
// },
|
|
1439
|
-
query: {
|
|
1440
|
-
id: "0xe4f9d62d17746d5b9dbf0d5557747430021a71575780b515161210cdba0a4c1c",
|
|
1441
|
-
upgradeCap: "0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f"
|
|
1442
|
-
},
|
|
1443
|
-
supra: { id: "", upgradeCap: "" },
|
|
1444
|
-
pyth: {
|
|
1445
|
-
id: "0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a",
|
|
1446
|
-
upgradeCap: "0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157"
|
|
1447
|
-
},
|
|
1448
|
-
switchboard: { id: "", upgradeCap: "" },
|
|
1449
|
-
xOracle: {
|
|
1450
|
-
id: "0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6",
|
|
1451
|
-
upgradeCap: "0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0"
|
|
1452
|
-
},
|
|
1453
|
-
testCoin: { id: "", upgradeCap: "" }
|
|
1454
|
-
}
|
|
1455
|
-
},
|
|
1456
|
-
spool: {
|
|
1457
|
-
// id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
1458
|
-
id: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1459
|
-
adminCap: "0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a",
|
|
1460
|
-
// object:
|
|
1461
|
-
// '0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
1462
|
-
object: "0x1742655fe5872dfa6456673f9e38612a4965e6979e6cd7696a7f1225f28bae21",
|
|
1463
|
-
pools: {
|
|
1464
|
-
sweth: {
|
|
1465
|
-
id: "0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787",
|
|
1466
|
-
rewardPoolId: "0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077"
|
|
1467
|
-
},
|
|
1468
|
-
ssui: {
|
|
1469
|
-
// id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
1470
|
-
id: "0xb9617f83c06ebdeac0a8834782b1015e1cc7ea23739e30c132c4bfb95c37a579",
|
|
1471
|
-
rewardPoolId: (
|
|
1472
|
-
// '0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
1473
|
-
"0xc3206071a8d43212efb6e3b5504f2321f8df97ab122b466c0bc7cfdf398dc13a"
|
|
1474
|
-
)
|
|
1475
|
-
},
|
|
1476
|
-
swusdc: {
|
|
1477
|
-
// id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
1478
|
-
id: "0xf1b383b9cf2e9f515fc69567df1053098f273849d09cd84b0278a773429bd2b2",
|
|
1479
|
-
rewardPoolId: (
|
|
1480
|
-
// '0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
1481
|
-
"0xc71c53ee6505d928ba15bea4fe4f45d98c9c31eced94b72d00a7827d4b7ba3ff"
|
|
1482
|
-
)
|
|
1483
|
-
},
|
|
1484
|
-
swusdt: {
|
|
1485
|
-
// id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
1486
|
-
id: "0xb5567dfa5c7fc17a249e959732664c50713dd8c23db1a11376b27df800c17418",
|
|
1487
|
-
rewardPoolId: (
|
|
1488
|
-
// '0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
1489
|
-
"0x60768b0687ff0235e376a039709a683e4c436098785e473b67b32dbab47b69ab"
|
|
1490
|
-
)
|
|
1491
|
-
},
|
|
1492
|
-
scetus: {
|
|
1493
|
-
id: "0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e",
|
|
1494
|
-
rewardPoolId: "0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f"
|
|
1495
|
-
},
|
|
1496
|
-
safsui: {
|
|
1497
|
-
// id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
1498
|
-
id: "0xc568bb4c991258e839aa54802ecda04fcd9838c826bc3b42b40af81b23c458c8",
|
|
1499
|
-
rewardPoolId: (
|
|
1500
|
-
// '0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
1501
|
-
"0x389a3cbeda742b918941bb24fd00e077bad3367484394d6234f8209b9a6aa03d"
|
|
1502
|
-
)
|
|
1503
|
-
},
|
|
1504
|
-
shasui: {
|
|
1505
|
-
// id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
1506
|
-
id: "0x93f3f4499bf89f2d05ddc1f8b15f51701a7c6c4d0ac0b9c3bc99462cbbd8e321",
|
|
1507
|
-
rewardPoolId: (
|
|
1508
|
-
// '0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
1509
|
-
"0x94cee1be7f5ff34193f3aabef0b14142cb28af4d905fe487a9a7d85a15edb6aa"
|
|
1510
|
-
)
|
|
1511
|
-
},
|
|
1512
|
-
svsui: {
|
|
1513
|
-
// id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
1514
|
-
id: "0xa970e9087f80cb59e9299b8e7af7175d977ad6c9af0322aa4440e138fbd7ae00",
|
|
1515
|
-
rewardPoolId: (
|
|
1516
|
-
// '0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
1517
|
-
"0x38eee9699c4fc132a6623e54b865f047df4fc6eb83af807300f44e8f4b235ff0"
|
|
1518
|
-
)
|
|
1591
|
+
});
|
|
1592
|
+
}
|
|
1593
|
+
async queryGetDynamicFields(input) {
|
|
1594
|
+
return this.queryClient.fetchQuery({
|
|
1595
|
+
queryKey: queryKeys.rpc.getDynamicFields(input),
|
|
1596
|
+
queryFn: async () => {
|
|
1597
|
+
return await callWithRateLimit(
|
|
1598
|
+
this.tokenBucket,
|
|
1599
|
+
() => this.client.getDynamicFields(input)
|
|
1600
|
+
);
|
|
1519
1601
|
}
|
|
1520
|
-
}
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
treasury: "0xe8c112c09b88158dc6c8e23d1fbae5b3c7136cdee54b7dafc08e65db28c4a5bc",
|
|
1554
|
-
config: "0xe0a2ff281e73c1d53cfa85807080f87e833e4f1a7f93dcf8800b3865269a76b9"
|
|
1555
|
-
},
|
|
1556
|
-
loyaltyProgram: {
|
|
1557
|
-
id: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1558
|
-
object: "0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907",
|
|
1559
|
-
rewardPool: "0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f",
|
|
1560
|
-
userRewardTableId: "0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e"
|
|
1561
|
-
},
|
|
1562
|
-
scoin: {
|
|
1563
|
-
id: "0xad2ca2aa5089df94bb2d444d5eb3520378c2f2dfb3a0bd2a2c994145ac4b0a53",
|
|
1564
|
-
coins: {
|
|
1565
|
-
ssui: {
|
|
1566
|
-
coinType: "0xfac769100bccc0caebcf4f4e2d00ac2f8883f07f724be28940df90605f5e7e9a::scallop_sui::SCALLOP_SUI",
|
|
1567
|
-
treasury: "0x9cb4551b36c17d37e19d700147fa819ea1c487ff8bcf18374de2cceb2e9d4845"
|
|
1568
|
-
},
|
|
1569
|
-
scetus: {
|
|
1570
|
-
coinType: "0x8b71e6d323ed78515af2bead13bf3d0da1562ba4a99234eb7c4f14fd39ef0427::scallop_cetus::SCALLOP_CETUS",
|
|
1571
|
-
treasury: "0xd786f4b2d26278cc7911a3445b1b085eab60f269ef9dbb6b87e803d52f155003"
|
|
1572
|
-
},
|
|
1573
|
-
ssca: {
|
|
1574
|
-
coinType: "0x0a9d3c6c9af9f6e8def82921541bcbd17f73ed31bed3adcb684f2a4c267e42f0::scallop_sca::SCALLOP_SCA",
|
|
1575
|
-
treasury: "0xe818636d1d6c46d6ea1a2dce9d94696d7cbc18ce27451b603eeaa47aba8d75e0"
|
|
1576
|
-
},
|
|
1577
|
-
swusdc: {
|
|
1578
|
-
coinType: "0xaedc3ab75db8680b81a755015fa90124d217be93457b893c05bac033817defaf::scallop_wormhole_usdc::SCALLOP_WORMHOLE_USDC",
|
|
1579
|
-
treasury: "0xfc6971648f867f7fd6928d1b873af71577e2eaf2c7543ef8bc82c431d833ae78"
|
|
1580
|
-
},
|
|
1581
|
-
swusdt: {
|
|
1582
|
-
coinType: "0xbf02fc87ddc104b342ad8414c85ceadf5b0c823c055a06fb0ed776272c01a52a::scallop_wormhole_usdt::SCALLOP_WORMHOLE_USDT",
|
|
1583
|
-
treasury: "0xb9593e2c3a0ba796ee815012b75ae46468ea78cda0188b9ac6816efe65503521"
|
|
1584
|
-
},
|
|
1585
|
-
sweth: {
|
|
1586
|
-
coinType: "0x27d54f43e3eda701be56b82e5756e41c84467cd202f5cf713d5f9e45a9f1b6bc::scallop_wormhole_eth::SCALLOP_WORMHOLE_ETH",
|
|
1587
|
-
treasury: "0x032b4c8fac94c038dbe986f7587e9b1e4ef580b5ee06d2ef249d85459b7ef05d"
|
|
1588
|
-
},
|
|
1589
|
-
safsui: {
|
|
1590
|
-
coinType: "0xb75b46d975d8d80670b53a6bee90baaa8ce2e0b7d397f079447d641eef6b44ad::scallop_af_sui::SCALLOP_AF_SUI",
|
|
1591
|
-
treasury: "0x21450ef0570ef3d224ffa3b873ab802e439ece7b93cc7efad10ae0c1e3b3fcfe"
|
|
1592
|
-
},
|
|
1593
|
-
shasui: {
|
|
1594
|
-
coinType: "0xd973a723874e2c7cde196602a79155a1343a933f8cf87d9b1bb7408bc1acbc58::scallop_ha_sui::SCALLOP_HA_SUI",
|
|
1595
|
-
treasury: "0xf822fc1402207e47d2e3ba8ff6e1e594bf1de777dc5ebd2744619cd2726e3b0d"
|
|
1596
|
-
},
|
|
1597
|
-
svsui: {
|
|
1598
|
-
coinType: "0x97023a317320c4498cc4cd239dd02fd30c28246e5e8f81325d63f2bd8d70f6b3::scallop_v_sui::SCALLOP_V_SUI",
|
|
1599
|
-
treasury: "0x327114f0bf3559d7e2de10282147ed76a236c7c6775029165c4db09a6062ead6\u0192"
|
|
1602
|
+
});
|
|
1603
|
+
}
|
|
1604
|
+
async queryGetDynamicFieldObject(input) {
|
|
1605
|
+
return this.queryClient.fetchQuery({
|
|
1606
|
+
queryKey: queryKeys.rpc.getDynamicFieldObject(input),
|
|
1607
|
+
queryFn: async () => {
|
|
1608
|
+
return await callWithRateLimit(
|
|
1609
|
+
this.tokenBucket,
|
|
1610
|
+
() => this.client.getDynamicFieldObject(input)
|
|
1611
|
+
);
|
|
1612
|
+
}
|
|
1613
|
+
});
|
|
1614
|
+
}
|
|
1615
|
+
async queryGetAllCoinBalances(owner) {
|
|
1616
|
+
return this.queryClient.fetchQuery({
|
|
1617
|
+
queryKey: queryKeys.rpc.getAllCoinBalances(owner),
|
|
1618
|
+
queryFn: async () => {
|
|
1619
|
+
const allBalances = await callWithRateLimit(
|
|
1620
|
+
this.tokenBucket,
|
|
1621
|
+
() => this.client.getAllBalances({ owner })
|
|
1622
|
+
);
|
|
1623
|
+
if (!allBalances)
|
|
1624
|
+
return {};
|
|
1625
|
+
const balances = allBalances.reduce(
|
|
1626
|
+
(acc, coinBalance) => {
|
|
1627
|
+
if (coinBalance.totalBalance !== "0") {
|
|
1628
|
+
acc[normalizeStructTag2(coinBalance.coinType)] = coinBalance.totalBalance;
|
|
1629
|
+
}
|
|
1630
|
+
return acc;
|
|
1631
|
+
},
|
|
1632
|
+
{}
|
|
1633
|
+
);
|
|
1634
|
+
return balances;
|
|
1600
1635
|
}
|
|
1601
|
-
}
|
|
1636
|
+
});
|
|
1637
|
+
}
|
|
1638
|
+
async queryGetCoinBalance(input) {
|
|
1639
|
+
if (!input.coinType)
|
|
1640
|
+
return "0";
|
|
1641
|
+
return (await this.queryGetAllCoinBalances(input.owner) || {})[normalizeStructTag2(input.coinType)] ?? "0";
|
|
1602
1642
|
}
|
|
1603
1643
|
};
|
|
1604
1644
|
|
|
1605
1645
|
// src/models/scallopAddress.ts
|
|
1646
|
+
import axios from "axios";
|
|
1606
1647
|
var EMPTY_ADDRESSES = {
|
|
1607
1648
|
core: {
|
|
1608
1649
|
version: "",
|
|
@@ -2312,6 +2353,89 @@ var getSupplyLimit = async (utils, poolName) => {
|
|
|
2312
2353
|
return parsedData.data.fields.value;
|
|
2313
2354
|
};
|
|
2314
2355
|
|
|
2356
|
+
// src/queries/isolatedAsset.ts
|
|
2357
|
+
import { z as zod2 } from "zod";
|
|
2358
|
+
var isolatedAssetZod = zod2.object({
|
|
2359
|
+
dataType: zod2.string(),
|
|
2360
|
+
type: zod2.string(),
|
|
2361
|
+
hasPublicTransfer: zod2.boolean(),
|
|
2362
|
+
fields: zod2.object({
|
|
2363
|
+
id: zod2.object({
|
|
2364
|
+
id: zod2.string()
|
|
2365
|
+
}),
|
|
2366
|
+
name: zod2.object({
|
|
2367
|
+
type: zod2.string()
|
|
2368
|
+
}),
|
|
2369
|
+
value: zod2.boolean()
|
|
2370
|
+
})
|
|
2371
|
+
});
|
|
2372
|
+
var getIsolatedAssets = async (address) => {
|
|
2373
|
+
try {
|
|
2374
|
+
const marketObject = address.get("core.market");
|
|
2375
|
+
const protocolObject = address.get("core.packages.protocol.id");
|
|
2376
|
+
const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
|
|
2377
|
+
const isolatedAssets = [];
|
|
2378
|
+
if (!marketObject)
|
|
2379
|
+
return isolatedAssets;
|
|
2380
|
+
let hasNextPage = false;
|
|
2381
|
+
let nextCursor = null;
|
|
2382
|
+
const isIsolatedDynamicField = (dynamicField) => {
|
|
2383
|
+
return dynamicField.name.type === ISOLATED_ASSET_KEY;
|
|
2384
|
+
};
|
|
2385
|
+
do {
|
|
2386
|
+
const response = await address.cache.queryGetDynamicFields({
|
|
2387
|
+
parentId: marketObject,
|
|
2388
|
+
cursor: nextCursor,
|
|
2389
|
+
limit: 10
|
|
2390
|
+
});
|
|
2391
|
+
if (!response)
|
|
2392
|
+
break;
|
|
2393
|
+
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
2394
|
+
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
2395
|
+
if (response && response.hasNextPage && response.nextCursor) {
|
|
2396
|
+
hasNextPage = true;
|
|
2397
|
+
nextCursor = response.nextCursor;
|
|
2398
|
+
} else {
|
|
2399
|
+
hasNextPage = false;
|
|
2400
|
+
}
|
|
2401
|
+
} while (hasNextPage);
|
|
2402
|
+
return isolatedAssets;
|
|
2403
|
+
} catch (e) {
|
|
2404
|
+
console.error(e);
|
|
2405
|
+
return [];
|
|
2406
|
+
}
|
|
2407
|
+
};
|
|
2408
|
+
var isIsolatedAsset = async (utils, coinName) => {
|
|
2409
|
+
try {
|
|
2410
|
+
const marketObject = utils.address.get("core.market");
|
|
2411
|
+
const protocolObject = utils.address.get("core.packages.protocol.id");
|
|
2412
|
+
const ISOLATED_ASSET_KEY = `${protocolObject}::market_dynamic_keys::IsolatedAssetKey`;
|
|
2413
|
+
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
2414
|
+
"getDynamicFields",
|
|
2415
|
+
marketObject
|
|
2416
|
+
]);
|
|
2417
|
+
if (cachedData) {
|
|
2418
|
+
const coinType2 = utils.parseCoinType(coinName);
|
|
2419
|
+
return cachedData.includes(coinType2);
|
|
2420
|
+
}
|
|
2421
|
+
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
2422
|
+
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
2423
|
+
parentId: marketObject,
|
|
2424
|
+
name: {
|
|
2425
|
+
type: ISOLATED_ASSET_KEY,
|
|
2426
|
+
value: coinType
|
|
2427
|
+
}
|
|
2428
|
+
});
|
|
2429
|
+
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
2430
|
+
if (!parsedData.success)
|
|
2431
|
+
return false;
|
|
2432
|
+
return parsedData.data.fields.value;
|
|
2433
|
+
} catch (e) {
|
|
2434
|
+
console.error(e);
|
|
2435
|
+
return false;
|
|
2436
|
+
}
|
|
2437
|
+
};
|
|
2438
|
+
|
|
2315
2439
|
// src/queries/coreQuery.ts
|
|
2316
2440
|
var queryMarket = async (query, indexer = false) => {
|
|
2317
2441
|
const coinPrices = await query.utils.getCoinPrices();
|
|
@@ -2396,8 +2520,8 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2396
2520
|
borrowFee: parsedMarketPoolData.borrowFee,
|
|
2397
2521
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2398
2522
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2399
|
-
|
|
2400
|
-
isIsolated: false,
|
|
2523
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2524
|
+
// isIsolated: false,
|
|
2401
2525
|
maxSupplyCoin,
|
|
2402
2526
|
...calculatedMarketPoolData
|
|
2403
2527
|
};
|
|
@@ -2436,6 +2560,7 @@ var queryMarket = async (query, indexer = false) => {
|
|
|
2436
2560
|
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2437
2561
|
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2438
2562
|
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2563
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2439
2564
|
...calculatedMarketCollateralData
|
|
2440
2565
|
};
|
|
2441
2566
|
}
|
|
@@ -2483,79 +2608,73 @@ var getMarketPools = async (query, poolCoinNames = [...SUPPORT_POOLS], indexer =
|
|
|
2483
2608
|
return marketPools;
|
|
2484
2609
|
};
|
|
2485
2610
|
var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, coinPrice) => {
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
name: {
|
|
2512
|
-
type: "0x1::type_name::TypeName",
|
|
2513
|
-
value: {
|
|
2514
|
-
name: coinType.substring(2)
|
|
2515
|
-
}
|
|
2611
|
+
try {
|
|
2612
|
+
coinPrice = coinPrice || (await query.utils.getCoinPrices([poolCoinName]))?.[poolCoinName];
|
|
2613
|
+
if (indexer) {
|
|
2614
|
+
const marketPoolIndexer = await query.indexer.getMarketPool(poolCoinName);
|
|
2615
|
+
marketPoolIndexer.coinPrice = coinPrice || marketPoolIndexer.coinPrice;
|
|
2616
|
+
marketPoolIndexer.coinWrappedType = query.utils.getCoinWrappedType(
|
|
2617
|
+
marketPoolIndexer.coinName
|
|
2618
|
+
);
|
|
2619
|
+
return marketPoolIndexer;
|
|
2620
|
+
}
|
|
2621
|
+
const marketId = query.address.get("core.market");
|
|
2622
|
+
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
2623
|
+
showContent: true
|
|
2624
|
+
}))?.data;
|
|
2625
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
2626
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
2627
|
+
const fields = marketObject.content.fields;
|
|
2628
|
+
const coinType = query.utils.parseCoinType(poolCoinName);
|
|
2629
|
+
const balanceSheetParentId = fields.vault.fields.balance_sheets.fields.table.fields.id.id;
|
|
2630
|
+
const balanceSheetDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2631
|
+
parentId: balanceSheetParentId,
|
|
2632
|
+
name: {
|
|
2633
|
+
type: "0x1::type_name::TypeName",
|
|
2634
|
+
value: {
|
|
2635
|
+
name: coinType.substring(2)
|
|
2516
2636
|
}
|
|
2517
|
-
});
|
|
2518
|
-
if (!balanceSheetDynamicFieldObjectResponse)
|
|
2519
|
-
return void 0;
|
|
2520
|
-
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse.data;
|
|
2521
|
-
if (balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content) {
|
|
2522
|
-
const dynamicFields = balanceSheetDynamicFieldObject.content.fields;
|
|
2523
|
-
balanceSheet = dynamicFields.value.fields;
|
|
2524
2637
|
}
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2638
|
+
});
|
|
2639
|
+
const balanceSheetDynamicFieldObject = balanceSheetDynamicFieldObjectResponse?.data;
|
|
2640
|
+
if (!(balanceSheetDynamicFieldObject && balanceSheetDynamicFieldObject.content && "fields" in balanceSheetDynamicFieldObject.content))
|
|
2641
|
+
throw new Error(
|
|
2642
|
+
`Failed to fetch balanceSheetDynamicFieldObject for ${poolCoinName}: ${balanceSheetDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
2643
|
+
);
|
|
2644
|
+
const balanceSheet = balanceSheetDynamicFieldObject.content.fields.value.fields;
|
|
2645
|
+
const borrowIndexParentId = fields.borrow_dynamics.fields.table.fields.id.id;
|
|
2646
|
+
const borrowIndexDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2647
|
+
parentId: borrowIndexParentId,
|
|
2648
|
+
name: {
|
|
2649
|
+
type: "0x1::type_name::TypeName",
|
|
2650
|
+
value: {
|
|
2651
|
+
name: coinType.substring(2)
|
|
2533
2652
|
}
|
|
2534
|
-
});
|
|
2535
|
-
if (!borrowIndexDynamicFieldObjectResponse)
|
|
2536
|
-
return void 0;
|
|
2537
|
-
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse.data;
|
|
2538
|
-
if (borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content) {
|
|
2539
|
-
const dynamicFields = borrowIndexDynamicFieldObject.content.fields;
|
|
2540
|
-
borrowIndex = dynamicFields.value.fields;
|
|
2541
2653
|
}
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2654
|
+
});
|
|
2655
|
+
const borrowIndexDynamicFieldObject = borrowIndexDynamicFieldObjectResponse?.data;
|
|
2656
|
+
if (!(borrowIndexDynamicFieldObject && borrowIndexDynamicFieldObject.content && "fields" in borrowIndexDynamicFieldObject.content))
|
|
2657
|
+
throw new Error(
|
|
2658
|
+
`Failed to fetch borrowIndexDynamicFieldObject for ${poolCoinName}`
|
|
2659
|
+
);
|
|
2660
|
+
const borrowIndex = borrowIndexDynamicFieldObject.content.fields.value.fields;
|
|
2661
|
+
const interestModelParentId = fields.interest_models.fields.table.fields.id.id;
|
|
2662
|
+
const interestModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2663
|
+
parentId: interestModelParentId,
|
|
2664
|
+
name: {
|
|
2665
|
+
type: "0x1::type_name::TypeName",
|
|
2666
|
+
value: {
|
|
2667
|
+
name: coinType.substring(2)
|
|
2550
2668
|
}
|
|
2551
|
-
});
|
|
2552
|
-
if (!interestModelDynamicFieldObjectResponse)
|
|
2553
|
-
return void 0;
|
|
2554
|
-
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse.data;
|
|
2555
|
-
if (interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content) {
|
|
2556
|
-
const dynamicFields = interestModelDynamicFieldObject.content.fields;
|
|
2557
|
-
interestModel = dynamicFields.value.fields;
|
|
2558
2669
|
}
|
|
2670
|
+
});
|
|
2671
|
+
const interestModelDynamicFieldObject = interestModelDynamicFieldObjectResponse?.data;
|
|
2672
|
+
if (!(interestModelDynamicFieldObject && interestModelDynamicFieldObject.content && "fields" in interestModelDynamicFieldObject.content))
|
|
2673
|
+
throw new Error(
|
|
2674
|
+
`Failed to fetch interestModelDynamicFieldObject for ${poolCoinName}: ${interestModelDynamicFieldObject}`
|
|
2675
|
+
);
|
|
2676
|
+
const interestModel = interestModelDynamicFieldObject.content.fields.value.fields;
|
|
2677
|
+
const getBorrowFee = async () => {
|
|
2559
2678
|
const borrowFeeDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2560
2679
|
parentId: marketId,
|
|
2561
2680
|
name: {
|
|
@@ -2567,16 +2686,11 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2567
2686
|
}
|
|
2568
2687
|
}
|
|
2569
2688
|
});
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
borrowFeeRate = dynamicFields.value.fields;
|
|
2576
|
-
}
|
|
2577
|
-
}
|
|
2578
|
-
}
|
|
2579
|
-
if (balanceSheet && borrowIndex && interestModel && (USE_TEST_ADDRESS || borrowFeeRate)) {
|
|
2689
|
+
const borrowFeeDynamicFieldObject = borrowFeeDynamicFieldObjectResponse?.data;
|
|
2690
|
+
if (!(borrowFeeDynamicFieldObject && borrowFeeDynamicFieldObject.content && "fields" in borrowFeeDynamicFieldObject.content))
|
|
2691
|
+
return { value: "0" };
|
|
2692
|
+
return borrowFeeDynamicFieldObject.content.fields.value.fields;
|
|
2693
|
+
};
|
|
2580
2694
|
const parsedMarketPoolData = parseOriginMarketPoolData({
|
|
2581
2695
|
type: interestModel.type.fields,
|
|
2582
2696
|
maxBorrowRate: interestModel.max_borrow_rate.fields,
|
|
@@ -2590,7 +2704,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2590
2704
|
reserve: balanceSheet.revenue,
|
|
2591
2705
|
reserveFactor: interestModel.revenue_factor.fields,
|
|
2592
2706
|
borrowWeight: interestModel.borrow_weight.fields,
|
|
2593
|
-
borrowFeeRate:
|
|
2707
|
+
borrowFeeRate: await getBorrowFee(),
|
|
2594
2708
|
baseBorrowRatePerSec: interestModel.base_borrow_rate_per_sec.fields,
|
|
2595
2709
|
borrowRateOnHighKink: interestModel.borrow_rate_on_high_kink.fields,
|
|
2596
2710
|
borrowRateOnMidKink: interestModel.borrow_rate_on_mid_kink.fields,
|
|
@@ -2606,7 +2720,7 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2606
2720
|
const maxSupplyCoin = BigNumber2(
|
|
2607
2721
|
await getSupplyLimit(query.utils, poolCoinName) ?? "0"
|
|
2608
2722
|
).shiftedBy(-coinDecimal).toNumber();
|
|
2609
|
-
|
|
2723
|
+
return {
|
|
2610
2724
|
coinName: poolCoinName,
|
|
2611
2725
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
2612
2726
|
coinType: query.utils.parseCoinType(poolCoinName),
|
|
@@ -2625,12 +2739,13 @@ var getMarketPool = async (query, poolCoinName, indexer = false, marketObject, c
|
|
|
2625
2739
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
2626
2740
|
minBorrowAmount: parsedMarketPoolData.minBorrowAmount,
|
|
2627
2741
|
maxSupplyCoin,
|
|
2628
|
-
|
|
2629
|
-
isIsolated: false,
|
|
2742
|
+
isIsolated: await isIsolatedAsset(query.utils, poolCoinName),
|
|
2743
|
+
// isIsolated: false,
|
|
2630
2744
|
...calculatedMarketPoolData
|
|
2631
2745
|
};
|
|
2746
|
+
} catch (e) {
|
|
2747
|
+
console.error(e);
|
|
2632
2748
|
}
|
|
2633
|
-
return marketPool;
|
|
2634
2749
|
};
|
|
2635
2750
|
var getMarketCollaterals = async (query, collateralCoinNames = [...SUPPORT_COLLATERALS], indexer = false) => {
|
|
2636
2751
|
const marketId = query.address.get("core.market");
|
|
@@ -2679,85 +2794,76 @@ var getMarketCollateral = async (query, collateralCoinName, indexer = false, mar
|
|
|
2679
2794
|
);
|
|
2680
2795
|
return marketCollateralIndexer;
|
|
2681
2796
|
}
|
|
2682
|
-
let marketCollateral;
|
|
2683
|
-
let riskModel;
|
|
2684
|
-
let collateralStat;
|
|
2685
2797
|
const marketId = query.address.get("core.market");
|
|
2686
2798
|
marketObject = marketObject || (await query.cache.queryGetObject(marketId, {
|
|
2687
2799
|
showContent: true
|
|
2688
2800
|
}))?.data;
|
|
2689
|
-
if (marketObject)
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
}
|
|
2701
|
-
}
|
|
2702
|
-
});
|
|
2703
|
-
if (!riskModelDynamicFieldObjectResponse)
|
|
2704
|
-
return void 0;
|
|
2705
|
-
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse.data;
|
|
2706
|
-
if (riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content) {
|
|
2707
|
-
const dynamicFields = riskModelDynamicFieldObject.content.fields;
|
|
2708
|
-
riskModel = dynamicFields.value.fields;
|
|
2801
|
+
if (!(marketObject && marketObject.content?.dataType === "moveObject"))
|
|
2802
|
+
throw new Error(`Failed to fetch marketObject`);
|
|
2803
|
+
const fields = marketObject.content.fields;
|
|
2804
|
+
const coinType = query.utils.parseCoinType(collateralCoinName);
|
|
2805
|
+
const riskModelParentId = fields.risk_models.fields.table.fields.id.id;
|
|
2806
|
+
const riskModelDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2807
|
+
parentId: riskModelParentId,
|
|
2808
|
+
name: {
|
|
2809
|
+
type: "0x1::type_name::TypeName",
|
|
2810
|
+
value: {
|
|
2811
|
+
name: coinType.substring(2)
|
|
2709
2812
|
}
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
collateralStat = dynamicFields.value.fields;
|
|
2813
|
+
}
|
|
2814
|
+
});
|
|
2815
|
+
const riskModelDynamicFieldObject = riskModelDynamicFieldObjectResponse?.data;
|
|
2816
|
+
if (!(riskModelDynamicFieldObject && riskModelDynamicFieldObject.content && "fields" in riskModelDynamicFieldObject.content))
|
|
2817
|
+
throw new Error(
|
|
2818
|
+
`Failed to fetch riskModelDynamicFieldObject for ${riskModelDynamicFieldObjectResponse?.error?.code.toString()}: `
|
|
2819
|
+
);
|
|
2820
|
+
const riskModel = riskModelDynamicFieldObject.content.fields.value.fields;
|
|
2821
|
+
const collateralStatParentId = fields.collateral_stats.fields.table.fields.id.id;
|
|
2822
|
+
const collateralStatDynamicFieldObjectResponse = await query.cache.queryGetDynamicFieldObject({
|
|
2823
|
+
parentId: collateralStatParentId,
|
|
2824
|
+
name: {
|
|
2825
|
+
type: "0x1::type_name::TypeName",
|
|
2826
|
+
value: {
|
|
2827
|
+
name: coinType.substring(2)
|
|
2726
2828
|
}
|
|
2727
2829
|
}
|
|
2728
|
-
}
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
2734
|
-
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
2735
|
-
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
2736
|
-
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
2737
|
-
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
2738
|
-
totalCollateralAmount: collateralStat.amount
|
|
2739
|
-
});
|
|
2740
|
-
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2741
|
-
query.utils,
|
|
2742
|
-
parsedMarketCollateralData
|
|
2830
|
+
});
|
|
2831
|
+
const collateralStatDynamicFieldObject = collateralStatDynamicFieldObjectResponse?.data;
|
|
2832
|
+
if (!(collateralStatDynamicFieldObject && collateralStatDynamicFieldObject.content && "fields" in collateralStatDynamicFieldObject.content))
|
|
2833
|
+
throw new Error(
|
|
2834
|
+
`Failed to fetch collateralStatDynamicFieldObject for ${collateralCoinName}: ${collateralStatDynamicFieldObjectResponse?.error?.code.toString()}`
|
|
2743
2835
|
);
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2836
|
+
const collateralStat = collateralStatDynamicFieldObject.content.fields.value.fields;
|
|
2837
|
+
const parsedMarketCollateralData = parseOriginMarketCollateralData({
|
|
2838
|
+
type: riskModel.type.fields,
|
|
2839
|
+
collateralFactor: riskModel.collateral_factor.fields,
|
|
2840
|
+
liquidationFactor: riskModel.liquidation_factor.fields,
|
|
2841
|
+
liquidationDiscount: riskModel.liquidation_discount.fields,
|
|
2842
|
+
liquidationPanelty: riskModel.liquidation_penalty.fields,
|
|
2843
|
+
liquidationReserveFactor: riskModel.liquidation_revenue_factor.fields,
|
|
2844
|
+
maxCollateralAmount: riskModel.max_collateral_amount,
|
|
2845
|
+
totalCollateralAmount: collateralStat.amount
|
|
2846
|
+
});
|
|
2847
|
+
const calculatedMarketCollateralData = calculateMarketCollateralData(
|
|
2848
|
+
query.utils,
|
|
2849
|
+
parsedMarketCollateralData
|
|
2850
|
+
);
|
|
2851
|
+
return {
|
|
2852
|
+
coinName: collateralCoinName,
|
|
2853
|
+
symbol: query.utils.parseSymbol(collateralCoinName),
|
|
2854
|
+
coinType: query.utils.parseCoinType(collateralCoinName),
|
|
2855
|
+
marketCoinType: query.utils.parseMarketCoinType(collateralCoinName),
|
|
2856
|
+
coinWrappedType: query.utils.getCoinWrappedType(collateralCoinName),
|
|
2857
|
+
coinDecimal: query.utils.getCoinDecimal(collateralCoinName),
|
|
2858
|
+
coinPrice: coinPrice ?? 0,
|
|
2859
|
+
collateralFactor: parsedMarketCollateralData.collateralFactor,
|
|
2860
|
+
liquidationFactor: parsedMarketCollateralData.liquidationFactor,
|
|
2861
|
+
liquidationDiscount: parsedMarketCollateralData.liquidationDiscount,
|
|
2862
|
+
liquidationPanelty: parsedMarketCollateralData.liquidationPanelty,
|
|
2863
|
+
liquidationReserveFactor: parsedMarketCollateralData.liquidationReserveFactor,
|
|
2864
|
+
isIsolated: await isIsolatedAsset(query.utils, collateralCoinName),
|
|
2865
|
+
...calculatedMarketCollateralData
|
|
2866
|
+
};
|
|
2761
2867
|
};
|
|
2762
2868
|
var getObligations = async ({
|
|
2763
2869
|
address
|
|
@@ -2986,7 +3092,7 @@ var getSpool = async (query, marketCoinName, indexer = false, marketPool, coinPr
|
|
|
2986
3092
|
const coinName = query.utils.parseCoinName(marketCoinName);
|
|
2987
3093
|
marketPool = marketPool || await query.getMarketPool(coinName, indexer);
|
|
2988
3094
|
if (!marketPool) {
|
|
2989
|
-
throw new Error(
|
|
3095
|
+
throw new Error(`Failed to fetch marketPool for ${marketCoinName}`);
|
|
2990
3096
|
}
|
|
2991
3097
|
const poolId = query.address.get(`spool.pools.${marketCoinName}.id`);
|
|
2992
3098
|
const rewardPoolId = query.address.get(
|
|
@@ -3714,12 +3820,8 @@ var getObligationAccounts = async (query, ownerAddress, indexer = false) => {
|
|
|
3714
3820
|
};
|
|
3715
3821
|
var getObligationAccount = async (query, obligationId, ownerAddress, indexer = false, market, coinPrices, coinAmounts) => {
|
|
3716
3822
|
market = market || await query.queryMarket(indexer);
|
|
3717
|
-
const
|
|
3718
|
-
.../* @__PURE__ */ new Set([
|
|
3719
|
-
...Object.values(market.collaterals).map(
|
|
3720
|
-
(collateral) => collateral.coinName
|
|
3721
|
-
)
|
|
3722
|
-
])
|
|
3823
|
+
const poolAssetCoinNames = [
|
|
3824
|
+
.../* @__PURE__ */ new Set([...Object.values(market.pools).map((pool) => pool.coinName)])
|
|
3723
3825
|
];
|
|
3724
3826
|
const obligationQuery = await query.queryObligation(obligationId);
|
|
3725
3827
|
const borrowIncentivePools = await query.getBorrowIncentivePools(
|
|
@@ -3727,8 +3829,9 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3727
3829
|
indexer
|
|
3728
3830
|
);
|
|
3729
3831
|
const borrowIncentiveAccounts = await query.getBorrowIncentiveAccounts(obligationId);
|
|
3730
|
-
coinPrices = coinPrices || await query.utils.getCoinPrices(
|
|
3731
|
-
coinAmounts = coinAmounts || await query.getCoinAmounts(
|
|
3832
|
+
coinPrices = coinPrices || await query.utils.getCoinPrices(poolAssetCoinNames);
|
|
3833
|
+
coinAmounts = coinAmounts || await query.getCoinAmounts(poolAssetCoinNames, ownerAddress);
|
|
3834
|
+
console.log(coinPrices);
|
|
3732
3835
|
const collaterals = {};
|
|
3733
3836
|
const debts = {};
|
|
3734
3837
|
const borrowIncentives = {};
|
|
@@ -3740,7 +3843,7 @@ var getObligationAccount = async (query, obligationId, ownerAddress, indexer = f
|
|
|
3740
3843
|
let totalRewardedPools = 0;
|
|
3741
3844
|
let totalBorrowedValue = BigNumber4(0);
|
|
3742
3845
|
let totalBorrowedValueWithWeight = BigNumber4(0);
|
|
3743
|
-
for (const assetCoinName of
|
|
3846
|
+
for (const assetCoinName of poolAssetCoinNames) {
|
|
3744
3847
|
const collateral = obligationQuery?.collaterals.find((collateral2) => {
|
|
3745
3848
|
const collateralCoinName = query.utils.parseCoinNameFromType(
|
|
3746
3849
|
collateral2.type.name
|
|
@@ -4045,7 +4148,7 @@ var getTotalValueLocked = async (query, indexer = false) => {
|
|
|
4045
4148
|
import BigNumber5 from "bignumber.js";
|
|
4046
4149
|
import { SUI_CLOCK_OBJECT_ID, SuiTxBlock as SuiTxBlock2 } from "@scallop-io/sui-kit";
|
|
4047
4150
|
import { bcs } from "@mysten/sui/bcs";
|
|
4048
|
-
import { z as
|
|
4151
|
+
import { z as zod3 } from "zod";
|
|
4049
4152
|
import assert from "assert";
|
|
4050
4153
|
var getVescaKeys = async (utils, ownerAddress) => {
|
|
4051
4154
|
const owner = ownerAddress || utils.suiKit.currentAddress();
|
|
@@ -4094,10 +4197,10 @@ var getVeScas = async ({
|
|
|
4094
4197
|
}
|
|
4095
4198
|
return result;
|
|
4096
4199
|
};
|
|
4097
|
-
var SuiObjectRefZod =
|
|
4098
|
-
objectId:
|
|
4099
|
-
digest:
|
|
4100
|
-
version:
|
|
4200
|
+
var SuiObjectRefZod = zod3.object({
|
|
4201
|
+
objectId: zod3.string(),
|
|
4202
|
+
digest: zod3.string(),
|
|
4203
|
+
version: zod3.string()
|
|
4101
4204
|
});
|
|
4102
4205
|
var getVeSca = async (utils, veScaKey, ownerAddress) => {
|
|
4103
4206
|
const tableId = utils.address.get(`vesca.tableId`);
|
|
@@ -4231,16 +4334,16 @@ var queryVeScaKeyIdFromReferralBindings = async (address, refereeAddress) => {
|
|
|
4231
4334
|
|
|
4232
4335
|
// src/queries/loyaltyProgramQuery.ts
|
|
4233
4336
|
import BigNumber6 from "bignumber.js";
|
|
4234
|
-
import { z as
|
|
4235
|
-
var rewardPoolFieldsZod =
|
|
4236
|
-
balance:
|
|
4237
|
-
enable_claim:
|
|
4337
|
+
import { z as zod4 } from "zod";
|
|
4338
|
+
var rewardPoolFieldsZod = zod4.object({
|
|
4339
|
+
balance: zod4.string(),
|
|
4340
|
+
enable_claim: zod4.boolean()
|
|
4238
4341
|
}).transform((value) => ({
|
|
4239
4342
|
totalPoolReward: BigNumber6(value.balance).shiftedBy(-9).toNumber(),
|
|
4240
4343
|
isClaimEnabled: value.enable_claim
|
|
4241
4344
|
}));
|
|
4242
|
-
var userRewardFieldsZod =
|
|
4243
|
-
value:
|
|
4345
|
+
var userRewardFieldsZod = zod4.object({
|
|
4346
|
+
value: zod4.string()
|
|
4244
4347
|
}).transform((value) => BigNumber6(value.value).shiftedBy(-9).toNumber());
|
|
4245
4348
|
var getLoyaltyProgramInformations = async (query, veScaKey) => {
|
|
4246
4349
|
const rewardPool = query.address.get("loyaltyProgram.rewardPool");
|
|
@@ -4351,10 +4454,10 @@ var ScallopUtils = class {
|
|
|
4351
4454
|
* @param address - ScallopAddress instance.
|
|
4352
4455
|
*/
|
|
4353
4456
|
async init(force = false, address) {
|
|
4354
|
-
if (
|
|
4355
|
-
await this.address.read();
|
|
4356
|
-
} else {
|
|
4457
|
+
if (address && !this.address)
|
|
4357
4458
|
this.address = address;
|
|
4459
|
+
if (force || !this.address.getAddresses()) {
|
|
4460
|
+
await this.address.read();
|
|
4358
4461
|
}
|
|
4359
4462
|
}
|
|
4360
4463
|
/**
|
|
@@ -4654,30 +4757,38 @@ var ScallopUtils = class {
|
|
|
4654
4757
|
const priceId = this.address.get(
|
|
4655
4758
|
`core.coins.${coinName}.oracle.pyth.feed`
|
|
4656
4759
|
);
|
|
4657
|
-
|
|
4760
|
+
if (priceId) {
|
|
4761
|
+
acc[coinName] = priceId;
|
|
4762
|
+
}
|
|
4658
4763
|
return acc;
|
|
4659
4764
|
},
|
|
4660
4765
|
{}
|
|
4661
4766
|
);
|
|
4662
4767
|
await Promise.allSettled(
|
|
4663
|
-
Object.entries(priceIds).map(async ([coinName, priceId]) => {
|
|
4768
|
+
Object.entries(priceIds).filter(([_, priceId]) => !!priceId).map(async ([coinName, priceId]) => {
|
|
4664
4769
|
const pythConnection = new SuiPriceServiceConnection(endpoint);
|
|
4665
4770
|
try {
|
|
4666
4771
|
const feed = await this.cache.queryClient.fetchQuery({
|
|
4667
|
-
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4772
|
+
queryKey: queryKeys.oracle.getPythLatestPriceFeed(
|
|
4773
|
+
priceId,
|
|
4774
|
+
endpoint
|
|
4775
|
+
),
|
|
4668
4776
|
queryFn: async () => {
|
|
4669
4777
|
return await pythConnection.getLatestPriceFeeds([priceId]) ?? [];
|
|
4670
4778
|
}
|
|
4671
4779
|
});
|
|
4672
4780
|
if (feed[0]) {
|
|
4673
|
-
const data = parseDataFromPythPriceFeed(
|
|
4781
|
+
const data = parseDataFromPythPriceFeed(
|
|
4782
|
+
feed[0],
|
|
4783
|
+
this.address
|
|
4784
|
+
);
|
|
4674
4785
|
this._priceMap.set(coinName, {
|
|
4675
4786
|
price: data.price,
|
|
4676
4787
|
publishTime: data.publishTime
|
|
4677
4788
|
});
|
|
4678
4789
|
coinPrices[coinName] = data.price;
|
|
4790
|
+
failedRequests.delete(coinName);
|
|
4679
4791
|
}
|
|
4680
|
-
failedRequests.delete(coinName);
|
|
4681
4792
|
} catch (e) {
|
|
4682
4793
|
console.warn(
|
|
4683
4794
|
`Failed to get price ${coinName} feeds with endpoint ${endpoint}: ${e}`
|
|
@@ -6634,88 +6745,6 @@ var getSCoinSwapRate = async (query, fromSCoin, toSCoin, underlyingCoinPrice) =>
|
|
|
6634
6745
|
|
|
6635
6746
|
// src/models/scallopQuery.ts
|
|
6636
6747
|
import { normalizeSuiAddress } from "@mysten/sui/utils";
|
|
6637
|
-
|
|
6638
|
-
// src/queries/isolatedAsset.ts
|
|
6639
|
-
import { z as zod4 } from "zod";
|
|
6640
|
-
var isolatedAssetZod = zod4.object({
|
|
6641
|
-
dataType: zod4.string(),
|
|
6642
|
-
type: zod4.string(),
|
|
6643
|
-
hasPublicTransfer: zod4.boolean(),
|
|
6644
|
-
fields: zod4.object({
|
|
6645
|
-
id: zod4.object({
|
|
6646
|
-
id: zod4.string()
|
|
6647
|
-
}),
|
|
6648
|
-
name: zod4.object({
|
|
6649
|
-
type: zod4.string()
|
|
6650
|
-
}),
|
|
6651
|
-
value: zod4.boolean()
|
|
6652
|
-
})
|
|
6653
|
-
});
|
|
6654
|
-
var ISOLATED_ASSET_KEY = "0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e::market_dynamic_keys::IsolatedAssetKey";
|
|
6655
|
-
var getIsolatedAssets = async (address) => {
|
|
6656
|
-
try {
|
|
6657
|
-
const marketObject = address.get("core.market");
|
|
6658
|
-
const isolatedAssets = [];
|
|
6659
|
-
if (!marketObject)
|
|
6660
|
-
return isolatedAssets;
|
|
6661
|
-
let hasNextPage = false;
|
|
6662
|
-
let nextCursor = null;
|
|
6663
|
-
const isIsolatedDynamicField = (dynamicField) => {
|
|
6664
|
-
return dynamicField.name.type === ISOLATED_ASSET_KEY;
|
|
6665
|
-
};
|
|
6666
|
-
do {
|
|
6667
|
-
const response = await address.cache.queryGetDynamicFields({
|
|
6668
|
-
parentId: marketObject,
|
|
6669
|
-
cursor: nextCursor,
|
|
6670
|
-
limit: 10
|
|
6671
|
-
});
|
|
6672
|
-
if (!response)
|
|
6673
|
-
break;
|
|
6674
|
-
const isolatedAssetCoinTypes = response.data.filter(isIsolatedDynamicField).map(({ name }) => `0x${name.value.type.name}`);
|
|
6675
|
-
isolatedAssets.push(...isolatedAssetCoinTypes);
|
|
6676
|
-
if (response && response.hasNextPage && response.nextCursor) {
|
|
6677
|
-
hasNextPage = true;
|
|
6678
|
-
nextCursor = response.nextCursor;
|
|
6679
|
-
} else {
|
|
6680
|
-
hasNextPage = false;
|
|
6681
|
-
}
|
|
6682
|
-
} while (hasNextPage);
|
|
6683
|
-
return isolatedAssets;
|
|
6684
|
-
} catch (e) {
|
|
6685
|
-
console.error(e);
|
|
6686
|
-
return [];
|
|
6687
|
-
}
|
|
6688
|
-
};
|
|
6689
|
-
var isIsolatedAsset = async (utils, coinName) => {
|
|
6690
|
-
try {
|
|
6691
|
-
const marketObject = utils.address.get("core.market");
|
|
6692
|
-
const cachedData = utils.address.cache.queryClient.getQueryData([
|
|
6693
|
-
"getDynamicFields",
|
|
6694
|
-
marketObject
|
|
6695
|
-
]);
|
|
6696
|
-
if (cachedData) {
|
|
6697
|
-
const coinType2 = utils.parseCoinType(coinName);
|
|
6698
|
-
return cachedData.includes(coinType2);
|
|
6699
|
-
}
|
|
6700
|
-
const coinType = utils.parseCoinType(coinName).slice(2);
|
|
6701
|
-
const object = await utils.cache.queryGetDynamicFieldObject({
|
|
6702
|
-
parentId: marketObject,
|
|
6703
|
-
name: {
|
|
6704
|
-
type: ISOLATED_ASSET_KEY,
|
|
6705
|
-
value: coinType
|
|
6706
|
-
}
|
|
6707
|
-
});
|
|
6708
|
-
const parsedData = isolatedAssetZod.safeParse(object?.data?.content);
|
|
6709
|
-
if (!parsedData.success)
|
|
6710
|
-
return false;
|
|
6711
|
-
return parsedData.data.fields.value;
|
|
6712
|
-
} catch (e) {
|
|
6713
|
-
console.error(e);
|
|
6714
|
-
return false;
|
|
6715
|
-
}
|
|
6716
|
-
};
|
|
6717
|
-
|
|
6718
|
-
// src/models/scallopQuery.ts
|
|
6719
6748
|
var ScallopQuery = class {
|
|
6720
6749
|
constructor(params, instance) {
|
|
6721
6750
|
this.params = params;
|
|
@@ -6785,11 +6814,12 @@ var ScallopQuery = class {
|
|
|
6785
6814
|
* @param address - ScallopAddress instance.
|
|
6786
6815
|
*/
|
|
6787
6816
|
async init(force = false, address) {
|
|
6788
|
-
if (
|
|
6789
|
-
await this.address.read();
|
|
6790
|
-
} else {
|
|
6817
|
+
if (address && !this.address) {
|
|
6791
6818
|
this.address = address;
|
|
6792
6819
|
}
|
|
6820
|
+
if (force || !this.address.getAddresses()) {
|
|
6821
|
+
await this.address.read();
|
|
6822
|
+
}
|
|
6793
6823
|
await this.utils.init(force, this.address);
|
|
6794
6824
|
}
|
|
6795
6825
|
/* ==================== Core Query Methods ==================== */
|
|
@@ -7297,10 +7327,10 @@ var ScallopBuilder = class {
|
|
|
7297
7327
|
* @param address - ScallopAddress instance.
|
|
7298
7328
|
*/
|
|
7299
7329
|
async init(force = false, address) {
|
|
7300
|
-
if (
|
|
7301
|
-
await this.address.read();
|
|
7302
|
-
} else {
|
|
7330
|
+
if (address && !this.address)
|
|
7303
7331
|
this.address = address;
|
|
7332
|
+
if (force || !this.address.getAddresses()) {
|
|
7333
|
+
await this.address.read();
|
|
7304
7334
|
}
|
|
7305
7335
|
await this.query.init(force, this.address);
|
|
7306
7336
|
await this.utils.init(force, this.address);
|
|
@@ -8214,6 +8244,7 @@ export {
|
|
|
8214
8244
|
ScallopIndexer,
|
|
8215
8245
|
ScallopQuery,
|
|
8216
8246
|
ScallopUtils,
|
|
8247
|
+
TEST_ADDRESSES,
|
|
8217
8248
|
UNLOCK_ROUND_DURATION,
|
|
8218
8249
|
USE_TEST_ADDRESS,
|
|
8219
8250
|
assetCoins,
|