Skip to content

Commit d3844b3

Browse files
authored
Nemo/add vault tvl (#15906)
1 parent 94e8996 commit d3844b3

File tree

10 files changed

+1268
-266
lines changed

10 files changed

+1268
-266
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
const sui = require("../helper/chain/sui");
2+
const BigNumber = require("bignumber.js");
3+
const {COIN_CONFIG, MMT_TYPE_CONFIG} = require("../nemo/coinConfig.js");
4+
const {desU64} = require("../nemo/bytes");
5+
const {getExchangeRate} = require("../nemo/price");
6+
const {getVaultTvlByAmountB, getDynamicFieldObject} = require("../nemo/util");
7+
8+
const nemoPackageId = "0x2b71664477755b90f9fb71c9c944d5d0d3832fec969260e3f18efc7d855f57c4";
9+
const syTableParentId = "0xcb74e46f4049e1afc3edcd77172ac6f9adfe1068cec6ca99ff6b80ca7879bd33";
10+
11+
const watchCoinType = [
12+
'0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI',
13+
'0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC',
14+
'0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA',
15+
'0xeb7a05a3224837c5e5503575aed0be73c091d1ce5e43aa3c3e716e0ae614608f::scallop_deep::SCALLOP_DEEP',
16+
'0xb1d7df34829d1513b73ba17cb7ad90c88d1e104bb65ab8f62f13e0cc103783d3::scallop_sb_usdt::SCALLOP_SB_USDT',
17+
'0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH',
18+
'0xd285cbbf54c87fd93cd15227547467bb3e405da8bbf2ab99f83f323f88ac9a65::scallop_usdy::SCALLOP_USDY',
19+
'0x0a228d1c59071eccf3716076a1f71216846ee256d9fb07ea11fb7c1eb56435a5::scallop_musd::SCALLOP_MUSD',
20+
'0x622345b3f80ea5947567760eec7b9639d0582adcfd6ab9fccb85437aeda7c0d0::scallop_wal::SCALLOP_WAL',
21+
'0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc::afsui::AFSUI',
22+
'0xd1b72982e40348d069bb1ff701e634c117bb5f741f44dff91e472d3b01461e55::stsui::STSUI',
23+
'0xd8b855d48fb4d8ffbb5c4a3ecac27b00f3712ce58626deb5a16a290e0c6edf84::nwal::NWAL',
24+
'0x83556891f4a0f233ce7b05cfe7f957d4020492a34f5405b2cb9377d060bef4bf::spring_sui::SPRING_SUI',
25+
'0x922d15d7f55c13fd790f6e54397470ec592caa2b508df292a2e8553f3d3b274f::msui::MSUI',
26+
'0x502867b177303bf1bf226245fcdd3403c177e78d175a55a56c0602c7ff51c7fa::trevin_sui::TREVIN_SUI',
27+
'0x41ff228bfd566f0c707173ee6413962a77e3929588d010250e4e76f0d1cc0ad4::ksui::KSUI',
28+
'0x285b49635f4ed253967a2a4a5f0c5aea2cbd9dd0fc427b4086f3fad7ccef2c29::i_sui::I_SUI',
29+
'0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT',
30+
'0xd01d27939064d79e4ae1179cd11cfeeff23943f32b1a842ea1a1e15a0045d77d::st_sbuck::ST_SBUCK',
31+
"0x7f29e761222a44b2141596e920edcc9049f8610f9d33f5354454d088e1f53b62::x_sui_sui_nevlp::X_SUI_SUI_NEVLP",
32+
"0x295d7f569467934c934e6101284628ecbbb1e68d5c5baa8d4667ff09c42068ad::suiusdt_usdc_nevlp::SUIUSDT_USDC_NEVLP"
33+
];
34+
35+
const watchCoinTypeNotConvert = [
36+
'0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc::afsui::AFSUI',
37+
'0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI',
38+
'0xd1b72982e40348d069bb1ff701e634c117bb5f741f44dff91e472d3b01461e55::stsui::STSUI',
39+
'0x83556891f4a0f233ce7b05cfe7f957d4020492a34f5405b2cb9377d060bef4bf::spring_sui::SPRING_SUI',
40+
'0x02358129a7d66f943786a10b518fdc79145f1fc8d23420d9948c4aeea190f603::fud_sui::FUD_SUI',
41+
'0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55::cert::CERT',
42+
];
43+
44+
async function tvl(api) {
45+
const marketIds = await sui.queryEvents({
46+
eventType: `${nemoPackageId}::market_factory::MarketCreatedEvent`,
47+
transform: i => i.market_id
48+
});
49+
50+
const markets = await sui.getObjects(marketIds);
51+
52+
for (const market of markets) {
53+
if (!market) continue;
54+
55+
const {type, fields} = market;
56+
await getTvl(type, fields, api);
57+
}
58+
}
59+
60+
async function getTvl(type, fields, api) {
61+
const typeString = type.replace(">", "").split("<")[1];
62+
if (!typeString) return null;
63+
64+
const syTokens = typeString.split(", ")[0].slice(2);
65+
66+
const tokensObject = await getDynamicFieldObject(
67+
syTableParentId, syTokens, {idType: "0x1::type_name::TypeName"});
68+
if (!tokensObject || !tokensObject.content) return null;
69+
70+
const tokens = "0x" + tokensObject.content.fields.value.fields.name;
71+
72+
const coinConfig = COIN_CONFIG[tokens];
73+
74+
if (!coinConfig) return null;
75+
if (!watchCoinType.includes(coinConfig.coinType)) return null;
76+
77+
const txBlockBytes = await getExchangeRate(coinConfig);
78+
79+
const inspectionResult = await sui.call(
80+
'sui_devInspectTransactionBlock',
81+
['0x0000000000000000000000000000000000000000000000000000000000000000',
82+
Buffer.from(txBlockBytes).toString('base64')],
83+
{withMetadata: true}
84+
);
85+
86+
if (inspectionResult?.effects?.status?.status !== 'success') {
87+
return null;
88+
}
89+
90+
const returnValues = inspectionResult.results[inspectionResult.results?.length - 1].returnValues;
91+
const res1 = returnValues[0][0];
92+
const res2 = returnValues[1][0];
93+
const priceVoucher1 = desU64(Uint8Array.from(res1));
94+
const priceVoucher2 = desU64(Uint8Array.from(res2));
95+
96+
const pyState = await sui.getObject(fields.py_state_id);
97+
const ptSupply = pyState.fields.pt_supply;
98+
const floatingPt = BigNumber(ptSupply).minus(fields.total_pt);
99+
100+
if (coinConfig.provider === 'Nemo') {
101+
const pt2SyAmount = floatingPt.div(priceVoucher1).times(priceVoucher2);
102+
103+
console.log(`floatingPt: ${floatingPt.toString()}, ptSupply: ${ptSupply}, pt2SyAmount: ${pt2SyAmount.toString()}, marketId: ${fields.id.id}`);
104+
105+
const vault = await sui.getObject(MMT_TYPE_CONFIG[coinConfig.coinType].VAULT_ID);
106+
const amountB = await getVaultTvlByAmountB(vault);
107+
108+
const totalSupply = vault.fields.treasury_cap.fields.total_supply.fields.value;
109+
110+
const lpTokenPrice = BigNumber(amountB).div(BigNumber(totalSupply));
111+
112+
console.log(`lpTokenPrice: ${lpTokenPrice.toString()}, amountB: ${amountB}, totalSupply: ${totalSupply}`);
113+
114+
api.add(coinConfig.underlyingCoinType, pt2SyAmount.times(lpTokenPrice).toFixed(0));
115+
} else {
116+
let rate1 = new BigNumber(priceVoucher1).div(new BigNumber(2).pow(64)).toString();
117+
let rate2 = new BigNumber(priceVoucher2).div(new BigNumber(2).pow(64)).toString();
118+
119+
const pt2SyAmount = floatingPt.div(rate1);
120+
121+
if (watchCoinTypeNotConvert.includes(coinConfig.coinType)) {
122+
api.add(tokens, pt2SyAmount.toFixed(0));
123+
} else {
124+
let underlyingBalance = pt2SyAmount.multipliedBy(rate2);
125+
api.add(coinConfig.underlyingCoinType, underlyingBalance.toFixed(0));
126+
}
127+
}
128+
}
129+
130+
module.exports = {
131+
timetravel: false,
132+
methodology: 'Count all floating PT assets in the Nemo markets.',
133+
sui: {
134+
tvl,
135+
},
136+
};

projects/nemo-vault/index.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const sui = require("../helper/chain/sui");
2+
const {getVaultTvlByAmountB} = require("../nemo/util");
3+
4+
const VAULT_LIST = [
5+
"0x18fe46d697a3ce2c87b62db5435678ff8df179efc913e250e888019d2f1c4105",
6+
"0x1c29c232ff5a34eb8edf9b3dd593890cd2c537d7a57e30c6730391271de0b5e6",
7+
"0x9356a36b0066561f66db7681d87537c8d9a992ca8e12095be91dcea500211015",
8+
"0x5ca7c661f9e454bbcd780f4d376ccbf536ec34402d99a840bdfb595021e9d727",
9+
]
10+
11+
async function tvl(api) {
12+
const vaults = await sui.getObjects(VAULT_LIST);
13+
14+
for (let vault of vaults) {
15+
const vaultTypes = vault.type.replace(">", "").split("<")[1].split(', ');
16+
const tvl = await getVaultTvlByAmountB(vault);
17+
api.add(vaultTypes[1], tvl);
18+
}
19+
}
20+
21+
module.exports = {
22+
timetravel: false,
23+
methodology: 'Count all assets are deposited into Nemo vault.',
24+
sui: {
25+
tvl,
26+
},
27+
};

projects/nemo/bytes.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,19 @@ function desU128(data, offset = 0) {
3333
return (BigInt(value4) << BigInt(96)) | (BigInt(value3) << BigInt(64)) | (BigInt(value2) << BigInt(32)) | BigInt(value1);
3434
}
3535

36+
// console.log(JSON.stringify(Array.from(hexToBytes('0x2'))))
37+
// console.log(JSON.stringify(Array.from(textToBytes('coin'))))
38+
// console.log(JSON.stringify(Array.from(textToBytes('balance_mut'))))
39+
// console.log(JSON.stringify(hexToBytes('0x1570fc89d472ebd7f0926028a261575289983cc69a928e42330c0cf6d0e24861')))
40+
// console.log(JSON.stringify(hexToBytes('0xeb0fd6ce92111543c021fad91034743d8b25992e4d7ffe3d3e907dc5fa1b8698')))
41+
// console.log(JSON.stringify(hexToBytes('0x15eda7330c8f99c30e430b4d82fd7ab2af3ead4ae17046fcb224aa9bad394f6b')))
42+
// console.log(JSON.stringify(hexToBytes('0xccd3898005a269c1e9074fe28bca2ff46784e8ee7c13b576862d9758266c3a4d')))
43+
// console.log(JSON.stringify(hexToBytes('0x0330bbb1df8d16c52e347bb797dddca9dcac08c1362502ad8cc830bc3aa7250b')))
44+
// console.log(JSON.stringify(hexToBytes('0x4a8d13937be10f97e450d1b8eb5846b749f9d3f470243b6cfa660e3d75b1fc49')))
45+
// console.log(JSON.stringify(hexToBytes('0xf8b4342324f0cfa17998beacfd5f8cfed85f0f7c8a6b567c65796dfdb1a75c9c')))
46+
// console.log(JSON.stringify(hexToBytes('0x0000000000000000000000000000000000000000000000000000000000000006')))
47+
// console.log(toU64(1000))
48+
3649
module.exports = {
3750
hexToBytes,
3851
toU64,

projects/nemo/coinConfig.js

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,8 +468,102 @@ const COIN_CONFIG = {
468468
"pyStateId": "0x5142c6988b3fefa8786a6197fb731468cd53c44000ddbf7178faef459b762c6d",
469469
"marketFactoryConfigId": "0x4a8d13937be10f97e450d1b8eb5846b749f9d3f470243b6cfa660e3d75b1fc49",
470470
"marketStateId": "0x51929957c5947a457345c5ecfdf853a4048d27aa37365f5c9b6dbba8e7e557b8"
471+
}, "0x7f29e761222a44b2141596e920edcc9049f8610f9d33f5354454d088e1f53b62::x_sui_sui_nevlp::X_SUI_SUI_NEVLP": {
472+
"coinType": "0x7f29e761222a44b2141596e920edcc9049f8610f9d33f5354454d088e1f53b62::x_sui_sui_nevlp::X_SUI_SUI_NEVLP",
473+
"provider": "Nemo",
474+
"decimal": "9",
475+
"pyStateId": "0xecc7a0cbd816b7943ef26c45ea1688277d9cd95f42eac75dcc94ca1e6863b8fd",
476+
"syStateId": "0xccd3898005a269c1e9074fe28bca2ff46784e8ee7c13b576862d9758266c3a4d",
477+
"syCoinType": "0xa109a93556023ebde3dde738b204539feac83fc8abaf8529cd4c444b08622756::nevlp_xsui_sui::NEVLP_XSUI_SUI",
478+
"underlyingCoinType": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
479+
"nemoContractId": "0x0f286ad004ea93ea6ad3a953b5d4f3c7306378b0dcc354c3f4ebb1d506d3b47f",
480+
"marketFactoryConfigId": "0x4a8d13937be10f97e450d1b8eb5846b749f9d3f470243b6cfa660e3d75b1fc49",
481+
"marketStateId": "0x2c1d1803b890b0600ba606aa935553472b8b08a81dcef67e2ba7504d43fa6234",
482+
"priceOracleConfigId": "0xb9cc723bf7494325be2f3333a3fb72f46d53abe3603e3f326fc761287850db0e",
483+
"yieldTokenType": "0x2b6602099970374cf58a2a1b9d96f005fccceb81e92eb059873baf420eb6c717::x_sui::X_SUI",
484+
"oraclePackageId": "0x944edf6984885433c699b7ce35b0e14da85bc6fd6696fb6dbb03ca7260b5eff2",
485+
"oracleTicket": "0x0dc8929f779b6945aba11860227c59cc785b7b4bb305d32f521ba9b9220b6ae5",
486+
"oracleVoucherPackageId": "0x8783841625738f73a6b0085f5dad270b4b0bd2e5cdb278dc95201e45bd1a332b",
487+
}, "0x295d7f569467934c934e6101284628ecbbb1e68d5c5baa8d4667ff09c42068ad::suiusdt_usdc_nevlp::SUIUSDT_USDC_NEVLP" : {
488+
"coinType": "0x295d7f569467934c934e6101284628ecbbb1e68d5c5baa8d4667ff09c42068ad::suiusdt_usdc_nevlp::SUIUSDT_USDC_NEVLP",
489+
"provider": "Nemo",
490+
"decimal": "9",
491+
"pyStateId": "0x1274d5deded97aca90c9ad9fef04a68d4f915ce5e008e1be28307c693f6c25c4",
492+
"syStateId": "0xccd3898005a269c1e9074fe28bca2ff46784e8ee7c13b576862d9758266c3a4d",
493+
"syCoinType": "0x23f7d6b1de8c099fe15f638c4517acfd85d4d893ae669a24ea348e262e03b07e::nevLP_suiUSDT_USDC::NEVLP_SUIUSDT_USDC",
494+
"underlyingCoinType": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
495+
"nemoContractId": "0x0f286ad004ea93ea6ad3a953b5d4f3c7306378b0dcc354c3f4ebb1d506d3b47f",
496+
"marketFactoryConfigId": "0x4a8d13937be10f97e450d1b8eb5846b749f9d3f470243b6cfa660e3d75b1fc49",
497+
"marketStateId": "0xb13b492e36200638bb7380be9e4975f2b7c3b9af55f201c22e6cbad2dd942788",
498+
"priceOracleConfigId": "0xb9cc723bf7494325be2f3333a3fb72f46d53abe3603e3f326fc761287850db0e",
499+
"yieldTokenType": "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT",
500+
"oraclePackageId": "0x16c08984e498f616a1e7dd083a08e399e54e0656ce0e26bc1b3ffc4790dc09c4",
501+
"oracleTicket": "0x900f66b9a1d78481cf313b835e94a3bdcbe4cf58d4c004a302f7c184142f2b6d",
502+
"oracleVoucherPackageId": "0x8783841625738f73a6b0085f5dad270b4b0bd2e5cdb278dc95201e45bd1a332b",
503+
}
504+
}
505+
506+
const MMT = {
507+
MMT_ORACLE_ID: "0x6cc485157712b67d3bbc71110947084aad0d23d7661add04e13038cfa765e80a",
508+
MMT_ORACLE_PACKAGE_ID: "0x45fe3ef1ed2d9b444b8041a84e426242ad129483bf56000cdd514b8065967f4d",
509+
PRICE_ADAPTER_PACKAGE_ID: "0x454ae856685130db7e5f86851add03d8252cebddbaff59db196548f3bd93d32a",
510+
REGISTRY_ID: "0x6f8c395de3f250e08c01a25500c185d74cb182002d76750189c7e20a514befa8",
511+
ORACLE_STATE: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
512+
SET_PRICE_CAP_REGISTRY: "0xd088d1eaf09dfda03c989acf3063fd0e3e14432a2d21bf9fd2be30bf76373bfd",
513+
CLOCK_ADDRESS: "0x0000000000000000000000000000000000000000000000000000000000000006"
514+
}
515+
516+
const VAULT_CONFIG = {VAULT_PACKAGE_ID: '0xba95f1404db682baf28b22b512625c244df9615e0c5162b26eaf78852429eba5'};
517+
const MMT_TYPE_CONFIG = {
518+
"0x811d7913fa37da1a16fd0cbdebfec15a89f20a8894922e07527c86823b6c27f8::suiusdt_usdc_nevlp::SUIUSDT_USDC_NEVLP": {
519+
VAULT_ID: "0x30a8285b76ba17f0202c60f5d5be769ca644db00ac944924b58408c5a1f971e8",
520+
POOL_ID: "0xb0a595cb58d35e07b711ac145b4846c8ed39772c6d6f6716d89d71c64384543b",
521+
COIN_A_TYPE: "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT",
522+
COIN_B_TYPE: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
523+
CONFIG_TYPE: "0xaa5c53240d338514907ce7254a14730716adc3c0d1d4f55485b0178d61881947::config::Uncorrelated",
524+
},
525+
"0x7f29e761222a44b2141596e920edcc9049f8610f9d33f5354454d088e1f53b62::x_sui_sui_nevlp::X_SUI_SUI_NEVLP": {
526+
VAULT_ID: "0x9356a36b0066561f66db7681d87537c8d9a992ca8e12095be91dcea500211015",
527+
POOL_ID: "0x9c92c5b8e9d83e485fb4c86804ac8b920bb0beaace5e61a5b0239218f627f8e9",
528+
COIN_A_TYPE: "0x2b6602099970374cf58a2a1b9d96f005fccceb81e92eb059873baf420eb6c717::x_sui::X_SUI",
529+
COIN_B_TYPE: "0x2::sui::SUI",
530+
CONFIG_TYPE: "0xaa5c53240d338514907ce7254a14730716adc3c0d1d4f55485b0178d61881947::config::Uncorrelated",
531+
},
532+
"0x295d7f569467934c934e6101284628ecbbb1e68d5c5baa8d4667ff09c42068ad::suiusdt_usdc_nevlp::SUIUSDT_USDC_NEVLP": {
533+
VAULT_ID: "0x18fe46d697a3ce2c87b62db5435678ff8df179efc913e250e888019d2f1c4105",
534+
POOL_ID: "0xb0a595cb58d35e07b711ac145b4846c8ed39772c6d6f6716d89d71c64384543b",
535+
COIN_A_TYPE: "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT",
536+
COIN_B_TYPE: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
537+
CONFIG_TYPE: "0xaa5c53240d338514907ce7254a14730716adc3c0d1d4f55485b0178d61881947::config::Uncorrelated",
538+
},
539+
"0xa9759f952198f985f5e05f6a37956e33b0c496bb02264ef92e4ee63c3eaaa06a::xbtc_wbtc_nevlp::XBTC_WBTC_NEVLP": {
540+
VAULT_ID: "0x5ca7c661f9e454bbcd780f4d376ccbf536ec34402d99a840bdfb595021e9d727",
541+
POOL_ID: "0x57a662791cea065610455797dfd2751a3c10d929455d3ea88154a2b40cf6614e",
542+
COIN_A_TYPE: "0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50::xbtc::XBTC",
543+
COIN_B_TYPE: "0xaafb102dd0902f5055cadecd687fb5b71ca82ef0e0285d90afde828ec58ca96b::btc::BTC",
544+
CONFIG_TYPE: "0xaa5c53240d338514907ce7254a14730716adc3c0d1d4f55485b0178d61881947::config::Uncorrelated",
545+
}
546+
}
547+
548+
const PYTH_ORACLE_MAP = {
549+
'0x2::sui::SUI': {
550+
priceInfoObjectId: '0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37'
551+
},
552+
'0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI': {
553+
priceInfoObjectId: '0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37'
554+
},
555+
'0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT': {
556+
priceInfoObjectId: '0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572'
557+
},
558+
'0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC': {
559+
priceInfoObjectId: '0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab'
471560
}
472561
}
562+
473563
module.exports = {
474-
COIN_CONFIG
564+
COIN_CONFIG,
565+
MMT_TYPE_CONFIG,
566+
VAULT_CONFIG,
567+
MMT,
568+
PYTH_ORACLE_MAP
475569
};

projects/nemo/constants.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ const SPRING_SUI_STAKING_INFO_LIST = [
7474
"0x922d15d7f55c13fd790f6e54397470ec592caa2b508df292a2e8553f3d3b274f::msui::MSUI",
7575
value: "0x985dd33bc2a8b5390f2c30a18d32e9a63a993a5b52750c6fe2e6ac8baeb69f48",
7676
},
77+
{
78+
coinType:
79+
"0x2b6602099970374cf58a2a1b9d96f005fccceb81e92eb059873baf420eb6c717::x_sui::X_SUI",
80+
value: "0x0431232199873db77a92aa645cd43521437e9cc5c6fff07fd03edb88afe0b25a",
81+
}
7782
]
7883

7984
const HAEDAL = {

0 commit comments

Comments
 (0)